OpenClaw 검색 Provider 선정 가이드 (Brave/Gemini/Grok/Tavily/SerpAPI 등)
난이도: 중급 | 소요 시간: 20분 | 학습 목표: 실제 시나리오에 맞춰 OpenClaw에 가장 적합한 검색 Provider를 선택하는 방법 습득
대상 독자
- OpenClaw 기초 구축을 완료하고 본격적으로 검색 기능을 도입하려는 개발자
- 10개의 Provider 중 무엇을 선택해야 할지 고민 중인 엔지니어
- 특정 시나리오(RAG / 여론 모니터링 / 이커머스 추적 등)에서 검색 동작을 심층적으로 커스터마이징하고 싶은 사용자
핵심 의존성
- OpenClaw (최신 버전)
- Node.js 18+
- 최소 하나 이상의 검색 Provider API Key
프로젝트 구조
openclaw/
├── config.yaml # 모든 Provider 설정이 여기에 위치함
└── .env # API Key 저장소 (저장소에 커밋 금지)
1. OpenClaw 검색 능력 개요
OpenClaw의 Agentic Loop에서 검색 도구는 "실시간 인지 계층" 역할을 합니다. 에이전트가 자신의 학습 데이터가 충분하지 않다고 판단할 때, 능동적으로 검색 도구를 호출하여 정보를 보충한 뒤 다음 행동을 결정합니다.
사용자 질문
↓
에이전트 사고: 최신 정보가 필요한가?
↓ 예
검색 Provider 호출 → 결과 획득
↓
정보 통합 → 답변 생성
[!TIP]
검색 Provider가 없으면 OpenClaw는 모델의 학습 데이터에만 의존하게 되어, "최신 버전이 무엇인가", "오늘의 뉴스"와 같은 질문에 잘못된 답변(할루시네이션)을 할 수 있습니다. 검색 설정은 에이전트를 진정으로 "살아있게" 만드는 첫 번째 단계입니다.
현재 OpenClaw는 두 가지 유형의 10개 검색 Provider를 지원합니다:
| 유형 | Provider | 특징 | 무료 할당량 | 시작 가격 |
|---|---|---|---|---|
| 공식 | Perplexity | 구조화된 결과, 시간/도메인 필터링 | 없음 | $1/M tokens |
| 공식 | Brave Search | 개인정보 보호 우선, 지역 검색 | ~1,000회/월 | $5/1k |
| 공식 | Gemini | Google 생태계, 자동 Grounding | 무료 할당량 충분 | Prompt당 과금 |
| 공식 | Grok | 웹 + X 플랫폼 이중 검색 | 없음 | $10/1k 도구 호출 |
| 공식 | Kimi | 256K 초장문 컨텍스트 | 없음 | $0.60/M tokens |
| 제3자 | Tavily | LLM 최적화, 구조화된 출력 | 1,000회/월 | 사용량 과금 |
| 제3자 | Serper.dev | 가장 빠르고 저렴한 Google SERP | 가입 시 2,500회 제공 | $0.30/1k |
| 제3자 | SerpAPI | 다중 엔진 보장, 스크린샷 지원 | 250회/월 | $7.50/1k |
| 제3자 | Exa | 시맨틱 신경망 검색 | 무료 체험 | 사용량 과금 |
| 제3자 | DataForSEO | 기업용, 10개 이상의 엔진 | $1 체험 머니 | $0.60/1k |
2. 선정 핵심 차원
Provider를 선택하기 전 다음 4가지를 먼저 고려하세요:
| 차원 | 핵심 질문 | 의사결정 영향 |
|---|---|---|
| 시의성 | 결과가 얼마나 최신이어야 하는가? 실시간 / 주 단위 / 월 단위? | 뉴스 부문은 실시간 인덱싱 필수 |
| 품질 | 원본 링크 목록이 필요한가, 전처리된 요약이 필요한가? | AI 에이전트 시나리오에서는 요약형 우선 |
| 비용 | 월평균 호출 예상량은 얼마인가? | 고빈도 시나리오에서 비용 절감 효율 극대화 |
| 기능 | 도메인 화이트리스트 / 위치 시뮬레이션 / 특정 엔진이 필요한가? | 버티컬 시나리오의 기능 차이가 핵심 |
3. 10대 시나리오별 선정 가이드
시나리오 1: 코드 문답 에이전트
요구사항 특징: 사용자가 "이 에러 어떻게 고쳐요", "이 라이브러리의 최신 API는 뭐예요"라고 물을 때, 답변은 주로 GitHub, Stack Overflow, 공식 문서에 있습니다.
추천: Perplexity + searchDomainFilter
이유는 Perplexity의 sonar 모델이 기술 콘텐츠 이해도가 가장 높으며, 도메인 화이트리스트를 통해 권위 있는 기술 사이트의 결과만 강제로 가져와 저품질 블로그의 간섭을 피할 수 있기 때문입니다.
tools:
web:
search:
enabled: true
provider: perplexity
maxResults: 5
perplexity:
apiKey:
source: env
provider: default
id: PERPLEXITY_API_KEY
model: sonar # 가볍고 빠름, 충분한 성능
searchRecencyFilter: month # 최근 한 달 내 콘텐츠로 오래된 문서 필터링
searchDomainFilter:
- "github.com"
- "stackoverflow.com"
- "docs.python.org"
- "developer.mozilla.org"
- "pkg.go.dev"
효과: 에이전트가 코드 관련 답변 시 인용 출처가 모두 신뢰할 수 있는 기술 사이트로 제한되어 신뢰도가 대폭 향상됩니다.
시나리오 2: 뉴스 요약 봇
요구사항 특징: 매일 아침 특정 분야(AI / 테크 / 금융)의 최신 뉴스를 수집하며, 시의성이 최우선 순위입니다.
추천: Serper.dev (type: news)
Serper는 전용 News 엔드포인트를 제공하여 Google News의 실시간 결과를 직접 가져오며, 응답 속도가 1–2초로 매우 빠르고 가격도 가장 저렴한 편에 속합니다.
tools:
web:
search:
enabled: true
provider: serper
maxResults: 10
cacheTtlMinutes: 30 # 뉴스 캐시 30분, 동일 시간대 반복 호출 시 API 낭비 방지
serper:
apiKey:
source: env
provider: default
id: SERPER_API_KEY
type: news # News 엔드포인트로 전환
num: 10 # 매회 10개 수집
[!TIP]
뉴스 시나리오에서cacheTtlMinutes를 30분으로 설정하는 것은 합리적입니다. 동일한 뉴스는 30분 내에 크게 변하지 않으므로 반복 호출은 낭비입니다.
시나리오 3: 학술 연구 에이전트
요구사항 특징: 연구원을 도와 논문을 검색하고 특정 연구 방향의 최신 진척 상황을 분석합니다. 단순 키워드 매칭이 아닌 의미(시맨틱) 이해가 필요합니다.
추천: Exa (시맨틱 검색 + 도메인 필터링)
Exa는 임베딩 벡터 인덱스를 기반으로 하여 "양자 컴퓨팅의 암호학 응용"과 같은 시맨틱 쿼리를 이해하며, 단순히 키워드만 일치하는 것이 아닌 맥락상 관련된 내용을 찾아냅니다.
tools:
web:
search:
enabled: true
provider: exa
maxResults: 8
exa:
apiKey:
source: env
provider: default
id: EXA_API_KEY
endpoint: auto # 속도와 품질의 자동 균형
includeDomains:
- "arxiv.org"
- "semanticscholar.org"
- "pubmed.ncbi.nlm.nih.gov"
- "nature.com"
- "science.org"
startPublishedDate: "2024-01-01" # 2024년 이후 논문만 검색
일반 키워드 검색과 비교: 동일한 쿼리에서 Exa는 의미적으로는 연관되지만 제목에 키워드가 없는 논문을 찾아낼 수 있어 재현율(Recall)이 월등히 높습니다.
시나리오 4: X/Twitter 여론 모니터링
요구사항 특징: 특정 브랜드, 제품, 주제에 대한 X 플랫폼의 실시간 토론을 추적합니다. 일반 웹 검색으로는 X의 콘텐츠를 제대로 수집할 수 없습니다.
추천: Grok (x_search 활성화)
이것은 Grok만의 독보적인 능력입니다. 다른 Provider가 할 수 없는 X 플랫폼 콘텐츠를 직접 검색합니다.
tools:
web:
search:
enabled: true
provider: grok
grok:
apiKey:
source: env
provider: default
id: XAI_API_KEY
model: grok-4-1-fast # Agentic 검색에 최적화된 모델
inlineCitations: true
tools:
- type: x_search
fromDate: "2025-01-01" # 특정 날짜 이후의 게시물만
allowedXHandles: # 선택 사항: 특정 계정만 추적
- "sama"
- "karpathy"
- "ylecun"
- type: web_search # 웹 검색도 함께 켜서 배경 정보 보충
enableImageUnderstanding: true
[!WARNING]
web_search와x_search는 도구 호출당 각각 $10/1000입니다. 고빈도 모니터링 시나리오에서는cacheTtlMinutes를 설정하거나 애플리케이션 계층에서 중복 제거를 수행하여 반복 실행을 피하세요.
시나리오 5: 이커머스 가격 추적
요구사항 특징: 경쟁사의 Google Shopping 가격 변동을 모니터링하거나 사용자를 위해 특정 상품의 최저가를 검색합니다.
추천: SerpAPI (engine: google_shopping)
SerpAPI는 현재 Google Shopping 데이터를 구조화된 출력으로 가장 완벽하게 지원하는 Provider로, 가격, 판매처, 평점 등의 필드를 가져올 수 있습니다.
tools:
web:
search:
enabled: true
provider: serpapi
maxResults: 20
cacheTtlMinutes: 60 # 가격 데이터 1시간 캐시
serpapi:
apiKey:
source: env
provider: default
id: SERPAPI_API_KEY
engine: google_shopping # 쇼핑 엔진으로 전환
gl: us # 미국 시장
hl: en
# 선택 사항: 지리적 위치 시뮬레이션
location: "New York, New York, United States"
반환 데이터 예시 (SerpAPI 구조화 출력):
{
"shopping_results": [
{
"title": "Product Name",
"price": "$29.99",
"source": "Amazon",
"rating": 4.5,
"reviews": 1234,
"link": "https://..."
}
]
}
시나리오 6: SEO 콘텐츠 생성
요구사항 특징: 키워드의 SERP 구조(제목, 요약, 경쟁 기사)를 대량으로 분석하여 콘텐츠 팀의 주제 전략을 돕습니다.
추천: DataForSEO (mode: normal)
DataForSEO의 normal 모드는 큐(Queue) 방식(약 5분 후 반환)으로 작동하며, 가격이 회당 $0.0006로 실시간 모드보다 3배 이상 저렴합니다. SEO 분석은 실시간일 필요가 없으므로 normal 모드를 사용하여 비용을 대폭 절감하세요.
tools:
web:
search:
enabled: true
provider: dataforseo
maxResults: 10
cacheTtlMinutes: 1440 # SEO 데이터는 변화가 느리므로 24시간 캐시
dataforseo:
login:
source: env
provider: default
id: DATAFORSEO_LOGIN
password:
source: env
provider: default
id: DATAFORSEO_PASSWORD
engine: google
mode: normal # 큐 모드, 회당 $0.0006 (live는 $0.002)
locationCode: 2840 # 2840 = 미국; 2826 = 영국; 2392 = 일본
languageCode: en
[!TIP]
DataForSEO는locationCode숫자로 지역을 지정합니다. 주요 코드: 미국2840, 영국2826, 독일2276, 일본2392. 공식 지역 리스트에서 전체 목록을 확인할 수 있습니다.
시나리오 7: 기업 내부 지식 검색
요구사항 특징: 사내 Wiki, 기술 문서 사이트가 있으며 에이전트가 이러한 신뢰할 수 있는 소스에서 우선적으로 검색하고 무관한 외부 사이트는 차단하고 싶습니다.
추천: Brave Search + Goggles
Brave의 Goggles 기능을 사용하면 검색 순위 규칙을 커스터마이징할 수 있습니다. 내부 문서 사이트의 가중치를 높이고 경쟁사 사이트는 낮추거나 차단할 수 있습니다.
tools:
web:
search:
enabled: true
provider: brave
maxResults: 8
brave:
apiKey:
source: env
provider: default
id: BRAVE_API_KEY
# Goggles URL: search.brave.com/goggles에서 생성 및 게시 후 획득
goggles_id: "https://raw.githubusercontent.com/your-org/goggles/main/internal-docs.goggle"
freshness: pm # 최근 한 달 내 콘텐츠 검색
Goggles 설정 예시 (.goggle 파일 내용):
# 기업 내부 문서 우선순위 최고
$boost=10,site=docs.yourcompany.com
$boost=10,site=wiki.yourcompany.com
# 경쟁사 사이트 가중치 하락
$downrank=5,site=competitor.com
# 저품질 스팸 사이트 차단
$discard,site=spamsite.example
시나리오 8: 다국어 시장 조사
요구사항 특징: 글로벌 시장 분석을 위해 각 국가/언어 환경의 검색 결과를 시뮬레이션하여 현지 경쟁 상황을 파악해야 합니다.
추천: SerpAPI (location + hl + gl 조합)
SerpAPI는 정밀한 지리적 위치 시뮬레이션을 지원하여 특정 도시의 사용자인 것처럼 검색을 수행할 수 있습니다.
tools:
web:
search:
enabled: true
provider: serpapi
serpapi:
apiKey:
source: env
provider: default
id: SERPAPI_API_KEY
engine: google
# 예: 독일 베를린 사용자 시뮬레이션
location: "Berlin, Berlin, Germany"
hl: de # 인터페이스 언어: 독일어
gl: de # 지역: 독일
다국어 시장 설정 전략: 각 에이전트 작업에 location / hl / gl 파라미터를 동적으로 전달하여 하나의 Provider로 글로벌 시장을 커버할 수 있습니다:
| 시장 | location | hl | gl |
|---|---|---|---|
| 미국 | New York, New York, United States | en | us |
| 영국 | London, England, United Kingdom | en | gb |
| 독일 | Berlin, Berlin, Germany | de | de |
| 일본 | Tokyo, Tokyo, Japan | ja | jp |
| 프랑스 | Paris, Ile-de-France, France | fr | fr |
| 브라질 | São Paulo, São Paulo, Brazil | pt | br |
시나리오 9: 고빈도 저비용 대량 작업
요구사항 특징: 에이전트가 빈번하게 검색을 트리거해야 하며(예: 몇 분 간격 키워드 모니터링), 비용이 가장 큰 고려 사항입니다.
추천: Serper.dev 대량 요금제 + 공격적인 캐시 전략
Serper 대량 구매 시 1,000회당 $0.30까지 내려가며, 합리적인 캐시를 적용하면 업계 최저 수준으로 운영 가능합니다.
tools:
web:
search:
enabled: true
provider: serper
maxResults: 5 # 최소한의 필요량만 설정
timeoutSeconds: 15 # 오래 기다리지 않고 빠른 실패 유도
cacheTtlMinutes: 120 # 2시간 캐시, 동일 쿼리 중복 방지
serper:
apiKey:
source: env
provider: default
id: SERPER_API_KEY
type: search
num: 5
비용 계산 비교 (월 10,000회 검색 기준):
| Provider | 단가 | 월 비용 |
|---|---|---|
| SerpAPI | $7.50/1k | $75 |
| Perplexity sonar-pro | $6/M tokens (약 $3/1k) | $30 |
| Serper.dev | $0.30/1k | $3 |
| Tavily basic | ~회당 $0.004 | $40 |
2시간 캐시를 적용하면 실제 유효 호출량은 원본의 30%–50%로 줄어들어 실제 비용은 더 낮아집니다.
시나리오 10: $0 예산으로 시작
요구사항 특징: 개인 프로젝트나 초기 검증 단계로 지출을 원치 않지만 검색 기능은 제대로 작동하길 원합니다.
전략: 세 가지 무료 할당량 교차 사용
| Provider | 무료 할당량 | 합계 |
|---|---|---|
| Brave Search | ~1,000회/월 | |
| Tavily | 1,000회/월 | |
| SerpAPI | 250회/월 | |
| 합계 | ~2,250회/월 |
설정 방법은 세 가지 API Key를 모두 준비하고, OpenClaw의 기본 Provider를 가장 적합한 것으로 지정한 뒤 할당량이 소진되면 수동/자동으로 전환하는 것입니다.
tools:
web:
search:
enabled: true
provider: tavily # 메인: 매월 1000회 무료
maxResults: 5
cacheTtlMinutes: 60 # 무료 할당량 효율 극대화
tavily:
apiKey:
source: env
provider: default
id: TAVILY_API_KEY
searchDepth: basic # 1 credit 소모되는 basic 사용 (advanced는 2 credits)
maxResults: 5
includeAnswer: true
할당량이 거의 소진되면 provider: brave로 한 줄만 수정하면 됩니다.
[!TIP]
Tavily Dashboard에서 실시간 사용량을 확인할 수 있으니, 알람을 설정하여 한도 도달 전 미리 전환하는 것이 좋습니다.
4. 시나리오 → Provider 퀵 요약표
| 시나리오 | 추천 Provider | 핵심 설정 파라미터 | 월 비용 추정 (1k회) |
|---|---|---|---|
| 코드 문답 에이전트 | Perplexity | searchDomainFilter, model: sonar | ~$1 |
| 뉴스 요약 봇 | Serper.dev | type: news, cacheTtlMinutes: 30 | $0.30–$1 |
| 학술 연구 에이전트 | Exa | includeDomains, endpoint: auto | 사용량 과금 |
| X/Twitter 여론 모니터링 | Grok | x_search, allowedXHandles | $10/1k 호출 |
| 이커머스 가격 추적 | SerpAPI | engine: google_shopping, gl | $7.50 |
| SEO 콘텐츠 생성 | DataForSEO | mode: normal, locationCode | $0.60 |
| 기업 지식 검색 | Brave + Goggles | goggles_id | $5/1k |
| 다국어 시장 조사 | SerpAPI | location, hl, gl | $7.50 |
| 고빈도 저비용 배치 | Serper.dev | cacheTtlMinutes: 120 | $0.30–$1 |
| 예산 $0 시작 | Tavily / Brave 교체 | searchDepth: basic, 캐시 | $0 |
5. 심화: 다중 Provider 예비(Fallback) 전략
운영 환경에서는 메인 Provider 오류나 할당량 소진 시 자동으로 전환되는 예비 전략을 설정하는 것이 좋습니다.
tools:
web:
search:
enabled: true
provider: perplexity # 메인 Provider
maxResults: 5
timeoutSeconds: 20 # 20초 후 예비 로직 트리거
perplexity:
apiKey:
source: env
provider: default
id: PERPLEXITY_API_KEY
model: sonar
# 예비 Provider (메인 사용 불가 시 자동 전환)
fallback:
provider: serper
serper:
apiKey:
source: env
provider: default
id: SERPER_API_KEY
type: search
num: 5
예비 로직이 트리거되는 상황:
- 메인 Provider가 429(속도 제한 초과) 반환 시
- 메인 Provider 응답 시간 초과 (
timeoutSeconds설정값) - 메인 Provider가 5xx 에러(서버 오류) 반환 시
6. 자주 발생하는 문제 해결
Q1: Provider를 설정했지만 에이전트가 검색을 트리거하지 않음
원인: 에이전트 프롬프트에 검색 도구 사용 지침이 없거나, 모델이 인터넷 연결이 필요 없다고 판단한 경우입니다.
해결: 시스템 프롬프트에 다음과 같은 지침을 추가하세요:
최신 정보가 불확실할 경우 능동적으로 검색 도구를 사용하여 실시간 데이터를 획득하고, 학습 데이터에 의존한 추측을 하지 마세요.
Q2: Perplexity searchDomainFilter가 작동하지 않음
원인: 도메인 형식에 https:// 프리픽스를 포함한 경우입니다.
해결:
# 잘못된 예
searchDomainFilter:
- "https://github.com"
# 올바른 예
searchDomainFilter:
- "github.com"
Q3: Serper.dev 결과가 Google 직접 검색과 다름
원인: Serper는 기본적으로 미국 지역 검색을 시뮬레이션합니다. 특정 지역 결과가 필요하면 gl 파라미터를 추가해야 합니다.
해결:
serper:
type: search
gl: kr # 한국 결과
hl: ko
Q4: Grok x_search에서 X 플랫폼 콘텐츠가 나오지 않음
원인: 이전 방식인 search_parameters 설정은 2025년 12월부로 폐기되었습니다. 새로운 tools 형식을 사용해야 합니다.
해결: 시나리오 4의 예시처럼 tools: [{type: x_search}] 형식을 사용하고 OpenClaw를 최신 버전으로 업데이트하세요.
Q5: DataForSEO normal 모드에서 응답이 너무 늦음
원인: normal 모드는 큐 처리 방식으로 평균 3–5분이 소요되며 이는 정상입니다.
해결: 실시간 결과가 필요하면 mode: live로 전환하세요 ($0.002, 약 3배 비쌈). 대량 SEO 분석은 5분 정도 기다리는 것을 권장합니다.
Q6: 무료 할당량 소진 후 에이전트 에러 발생
원인: 예비 Provider가 설정되지 않아 단일 Provider 실패 시 전체 요청이 실패합니다.
해결: 5절의 fallback 설정을 적용하거나 OpenClaw 알림에서 할당량 경고를 설정하여 미리 교체하세요.
7. 향후 발전 방향
- 쿼리 유형별 지능형 라우팅: 코드 질문은 Perplexity, 뉴스는 Serper, 학술은 Exa로 보내도록 에이전트 프롬프트 최적화
- 검색 결과 2차 처리: Firecrawl과 결합하여 요약뿐만 아니라 전체 페이지 본문 크롤링
- 사용량 모니터링 및 자동 전환: 각 Provider의 사용량 API를 통합하여 할당량 20% 잔여 시 자동 전환
- 결과 품질 평가: 동일 쿼리에 대해 각 Provider의 결과를 비교하여 시나리오별 최적 설정 고도화
추가 자료: