OpenClaw 検索プロバイダー選定ガイド (Brave/Gemini/Grok/Tavily/SerpAPI など)

AI Expert

難易度: 中級 | 所要時間: 20 分 | 学習の成果: 実際の利用シーンに基づいて、OpenClaw に最適な検索プロバイダーを選択する方法を習得する

対象読者

  • OpenClaw の基礎セットアップを完了し、本格的に検索機能を導入したい開発者
  • 10 個のプロバイダーを前に、どれを選べばよいか迷っているエンジニア
  • 特定のシナリオ(RAG / 評判分析 / EC トラッキングなど)で検索動作を深くカスタマイズしたい方

コア依存関係

  • OpenClaw(最新バージョン)
  • Node.js 18+
  • 少なくとも 1 つの検索プロバイダーの API Key

プロジェクト構造

openclaw/
├── config.yaml     # すべてのプロバイダー設定はここ
└── .env            # API Key を保存(リポジトリにはコミットしない)

1. OpenClaw 検索機能の概要

OpenClaw の Agentic Loop において、検索ツールは「リアルタイム感知レイヤー」の役割を果たします。エージェントが自身の学習データだけでは不十分だと判断した際、能動的に検索ツールを呼び出して情報を補完し、次の行動を決定します。

ユーザーの質問
   ↓
エージェントの思考:最新の情報が必要か?
   ↓ はい
検索プロバイダーを呼び出し → 結果を取得
   ↓
情報を統合 → 回答を生成

[!TIP]
検索プロバイダーがない場合、OpenClaw はモデルの学習データのみに依存するため、「最新バージョンは何か」「ニュース」といった質問に対して誤った情報を生成(ハルシネーション)する可能性があります。検索の設定は、エージェントを真に「生きた」ものにするための第一歩です。

現在、OpenClaw は 10 個の検索プロバイダーをサポートしており、大きく 2 つのカテゴリに分けられます:

タイププロバイダー特徴無料枠開始価格
公式Perplexity構造化された結果、時間/ドメインフィルタなし$1/M tokens
公式Brave Searchプライバシー優先、地域検索~1,000回/月$5/1k
公式GeminiGoogle エコシステム、自動 Grounding無料枠が豊富prompt ごとに課金
公式GrokWeb + X(Twitter) のダブル検索なし$10/1k ツール呼び出し
公式Kimi256K 超長文コンテキストなし$0.60/M tokens
サードパーティTavilyLLM 最適化、構造化出力1,000回/月従量課金
サードパーティSerper.dev最速かつ最安の Google SERP登録時に 2,500回付与$0.30/1k
サードパーティSerpAPIマルチエンジン対応、スクリーンショット可250回/月$7.50/1k
サードパーティExaセマンティック・ニューラル検索無料トライアル従量課金
サードパーティDataForSEOエンタープライズ級、10種以上のエンジン$1 試用金$0.60/1k

2. 選定のコア基準

プロバイダーを選ぶ前に、以下の 4 つの基準を確認してください:

基準重要な問い決定への影響
鮮度どの程度新しい結果が必要か?(リアルタイム / 週内 / 月内)ニュース系ならリアルタイムインデックス必須
品質生のリンク集が必要か、それとも要約された結果か?AI Agent の場合は要約型を優先
コスト月間の平均呼び出し回数の予測は?高頻度なシナリオではコスト削減の余地が大きい
機能ドメインホワイトリスト / 地理位置情報のシミュレーションは必要か?バーティカルな(垂直型)シナリオでは機能差が重要

3. 10 大シナリオ別選定ガイド

シナリオ 1:コード QA エージェント

ニーズ: ユーザーが「このエラーの直し方は?」「このライブラリの最新 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  # 1ヶ月以内の内容で古いドキュメントを除外
        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分キャッシュ。同時間帯の重複呼び出しを防止
      serper:
        apiKey:
          source: env
          provider: default
          id: SERPER_API_KEY
        type: news              # ニュースエンドポイントに切り替え
        num: 10                 # 1回につき10件取得

[!TIP]
ニュースシナリオで cacheTtlMinutes を 30 に設定するのは合理的です。同じニュース群は 30 分以内では大きく変わらないため、重複呼び出しは避けるべきです。


シナリオ 3:学術リサーチエージェント

ニーズ: 研究者のために論文を検索し、特定の研究方向の最新の進展を分析する。キーワード一致だけでなく、文脈(セマンティック)を理解する必要がある。

推奨: Exa, セマンティック検索 + ドメインフィルタ

Exa は embedding(ベクトル)ベースのインデックスを使用しているため、「量子コンピューティングの暗号学への応用」といった意味的なクエリを理解でき、キーワードの単なる一致に依存しません。

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 へのリアルタイムな投稿を追跡する。通常の Web 検索では X の内容はなかなか取得できない。

推奨: Grok, x_search を有効化

これは Grok 独自の能力です。他のプロバイダーでは不可能な X プラットフォームの内容を直接検索できます。

tools:
  web:
    search:
      enabled: true
      provider: grok
      grok:
        apiKey:
          source: env
          provider: default
          id: XAI_API_KEY
        model: grok-4-1-fast    # エージェント検索に最適化されたモデル
        inlineCitations: true
        tools:
          - type: x_search
            fromDate: "2025-01-01"      # 指定日以降の投稿のみ
            allowedXHandles:            # オプション:特定の公式アカウントのみ追跡
              - "sama"
              - "karpathy"
              - "ylecun"
          - type: web_search            # 同時にWeb検索も行い、背景情報を補足
            enableImageUnderstanding: true

[!WARNING]
web_searchx_search は各 $10/1000 回の呼び出しとなります。高頻度なモニタリングでは cacheTtlMinutes を設定するか、アプリケーション層で重複排除を行い、短時間での頻繁なトリガーを避けてください。


シナリオ 5:EC 価格トラッキング

ニーズ: Google Shopping 上の競合他社の価格変動を監視する、またはユーザーのために商品の最安値を調べる。

推奨: SerpAPI, engine: google_shopping

SerpAPI は、Google Shopping データの構造化出力において最も完成度が高いプロバイダーであり、価格、店舗、評価などのフィールドを取得可能です。

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  # 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 モードはキュー方式(約 5 分で返却)で、価格は 1 回わずか $0.0006 とリアルタイムモードより 3 分の 1 以下です。SEO 分析にリアルタイム性は不要なため、コストを大幅に抑えられます。

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: 2392      # 2392 = 日本;2840 = 米国;2826 = 英国
        languageCode: ja

[!TIP]
DataForSEO は locationCode(数値コード)で地域を指定します。よく使われるコードは、日本 2392、米国 2840、英国 2826 です。公式地域リストで全リストを確認できます。


シナリオ 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           # 1ヶ月以内の内容を検索

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: "Tokyo, Tokyo, Japan"
        hl: ja          # インターフェース言語:日本語
        gl: jp          # 地域:日本

マルチ市場設定の考え方: 異なるエージェントタスクに動的に location / hl / gl パラメータを渡すことで、一つのプロバイダーでグローバル市場をカバーできます:

市場locationhlgl
日本Tokyo, Tokyo, Japanjajp
米国New York, New York, United Statesenus
英国London, England, United Kingdomengb
ドイツBerlin, Berlin, Germanydede

シナリオ 9:高頻度・低コストのバッチ処理

ニーズ: エージェントが頻繁に検索を実行する必要がある(例:数分おきにキーワード群を監視)。コストが最大の懸念。

推奨: Serper.dev の大量プラン + 積極的なキャッシュ戦略

Serper は大量購入で 1k 回あたり $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 回の検索):

プロバイダー単価月間コスト
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 からスタート

ニーズ: 個人プロジェクトや初期検証段階で、お金をかけずに検索機能を実用化したい。

戦略: 3 つの無料枠を使い回す

プロバイダー無料枠合計
Brave Search~1,000回/月
Tavily1,000回/月
SerpAPI250回/月
合計~2,250回/月

設定の考え方としては、3 つのプロバイダーの API Key をすべて設定しておき、現在のシナリオに最適なものを OpenClaw のデフォルトプロバイダーに指定。無料枠を使い切りそうになったら手動または自動で切り替えます。

tools:
  web:
    search:
      enabled: true
      provider: tavily          # 主力:月間1000回無料
      maxResults: 5
      cacheTtlMinutes: 60       # キャッシュを活用して無料枠を最大化
      tavily:
        apiKey:
          source: env
          provider: default
          id: TAVILY_API_KEY
        searchDepth: basic      # advanced(2クレジット)ではなくbasic(1クレジット)を使用
        maxResults: 5
        includeAnswer: true

枠を使い切りそうな時は、provider: brave に 1 行書き換えるだけで他の設定を変えずに Brave へ切り替えられます。

[!TIP]
Tavily は Dashboard でリアルタイムに使用量を確認できます。使用量アラートを設定し、制限に達する前に切り替えることで、検索機能の中断を回避できます。

4. シナリオ → プロバイダー早見表

シナリオ推奨プロバイダーキーとなる設定月間目安(1k回)
コード QA エージェントPerplexitysearchDomainFilter, model: sonar~$1
ニュース要約ボットSerper.devtype: news, cacheTtlMinutes: 30$0.30–$1
学術リサーチエージェントExaincludeDomains, endpoint: auto従量課金
X/Twitter 評判分析Grokx_search, allowedXHandles$10/1k 呼び出し
EC 価格トラッキング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 / BravesearchDepth: basic, キャッシュ$0

5. 応用:マルチプロバイダー・フォールバック戦略

本番環境では、メインのプロバイダーが故障したり制限に達したりした際に自動的に切り替わる、バックアップ戦略の設定を推奨します。

tools:
  web:
    search:
      enabled: true
      provider: perplexity      # メイン
      maxResults: 5
      timeoutSeconds: 20        # 20秒タイムアウト後にフォールバック発動
      perplexity:
        apiKey:
          source: env
          provider: default
          id: PERPLEXITY_API_KEY
        model: sonar

      # バックアップ・プロバイダー(メイン使用不可時に自動切り替え)
      fallback:
        provider: serper
        serper:
          apiKey:
            source: env
            provider: default
            id: SERPER_API_KEY
          type: search
          num: 5

フォールバックが発動する主なケース:

  • メインが 429(レート制限)を返した
  • メインのレスポンスがタイムアウトした(timeoutSeconds
  • メインが 5xx エラー(サーバー障害)を返した

6. よくあるトラブルシューティング

Q1: プロバイダーを設定したが、エージェントが検索を実行しない

原因: エージェントのプロンプトに検索ツールの使用を促す指示がないか、モデルが「ネット接続は不要」と判断している。

解決: システムプロンプトに明確な指示を加えます。例:

最新の情報が不明な場合は、能動的に検索ツールを使用してリアルタイムデータを取得してください。学習データに基づいた推測は避けてください。

Q2: Perplexity の searchDomainFilter が効かない

原因: ドメインの形式が間違っている。https:// 接頭辞は不要です。

解決:

# 誤り
searchDomainFilter:
  - "https://github.com"

# 正解
searchDomainFilter:
  - "github.com"

Q3: DataForSEO の normal モードで結果がなかなか返ってこない

原因: normal モードはキュー処理であり、平均 3〜5 分かかります。これは正常な動作です。

解決: リアルタイムな結果が必要な場合は mode: live に切り替えてください(コストは約 3 倍)。大量の SEO 分析であれば待つ価値は十分にあるため、normal を推奨します。

Q4: 予算の無料枠を使い切ってエージェントがエラーになる

原因: フォールバックが設定されておらず、単一のプロバイダーの枠が尽きた際にリクエストが失敗している。

解決: セクション 5 のように fallback を設定するか、各社のダッシュボードでアラートを設定して事前に切り替えてください。

7. さらにその先へ

  • クエリタイプに応じたスマートルーティング: コード関連は Perplexity、ニュースは Serper、学術内容は Exa へと、エージェントのプロンプトで誘導する
  • 検索結果の二次処理: Firecrawl と組み合わせて、検索結果のスニペットだけでなくページ全文をスクレイピングする
  • 品質評価: 同一クエリに対して異なるプロバイダーの結果を比較し、特定のシナリオにおける最適解を見出す

参考資料: