OpenClaw 검색 Provider 선정 가이드 (Brave/Gemini/Grok/Tavily/SerpAPI 등)

AI Expert

난이도: 중급 | 소요 시간: 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
공식GeminiGoogle 생태계, 자동 Grounding무료 할당량 충분Prompt당 과금
공식Grok웹 + X 플랫폼 이중 검색없음$10/1k 도구 호출
공식Kimi256K 초장문 컨텍스트없음$0.60/M tokens
제3자TavilyLLM 최적화, 구조화된 출력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_searchx_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로 글로벌 시장을 커버할 수 있습니다:

시장locationhlgl
미국New York, New York, United Statesenus
영국London, England, United Kingdomengb
독일Berlin, Berlin, Germanydede
일본Tokyo, Tokyo, Japanjajp
프랑스Paris, Ile-de-France, Francefrfr
브라질São Paulo, São Paulo, Brazilptbr

시나리오 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회/월
Tavily1,000회/월
SerpAPI250회/월
합계~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회)
코드 문답 에이전트PerplexitysearchDomainFilter, model: sonar~$1
뉴스 요약 봇Serper.devtype: news, cacheTtlMinutes: 30$0.30–$1
학술 연구 에이전트ExaincludeDomains, endpoint: auto사용량 과금
X/Twitter 여론 모니터링Grokx_search, allowedXHandles$10/1k 호출
이커머스 가격 추적SerpAPIengine: google_shopping, gl$7.50
SEO 콘텐츠 생성DataForSEOmode: normal, locationCode$0.60
기업 지식 검색Brave + Gogglesgoggles_id$5/1k
다국어 시장 조사SerpAPIlocation, hl, gl$7.50
고빈도 저비용 배치Serper.devcacheTtlMinutes: 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의 결과를 비교하여 시나리오별 최적 설정 고도화

추가 자료: