Tools

Web 検索

web_search は、設定済みのプロバイダーを使用してウェブを検索し、 正規化された結果を返します。結果はクエリごとに15分間キャッシュされます(設定可能)。 OpenClaw には、X(旧Twitter)の投稿を検索する x_search と、軽量なURL取得を行う web_fetch も同梱されています。web_fetch は常にローカルで実行されます。 Grok がプロバイダーの場合、web_search は xAI Responses 経由で処理され、 x_search は常に xAI Responses を使用します。

クイックスタート

  • プロバイダーを選択する

    プロバイダーを選択し、必要なセットアップを完了します。一部のプロバイダーは キーなしで利用できますが、APIキーが必要なものもあります。詳細については、 以下の各プロバイダーのページを参照してください。

  • 設定する

    bash
    openclaw configure --section web

    これにより、プロバイダーと必要な認証情報が保存されます。APIを利用する プロバイダーの場合は、代わりにプロバイダーの環境変数(例: BRAVE_API_KEY)を設定し、この手順を省略できます。

  • 使用する

    javascript
    await web_search({ query: "OpenClaw plugin SDK" });

    Xの投稿の場合:

    javascript
    await x_search({ query: "dinner recipes" });
  • プロバイダーの選択

    Brave Search

    スニペット付きの構造化された結果。llm-context モードと国・言語フィルターに対応しています。無料枠を利用できます。

    Codex Hosted Search

    Codex app-server アカウントを通じて、根拠に基づきAIが統合した回答を提供します。

    DuckDuckGo

    キー不要のプロバイダーです。APIキーは必要ありません。HTMLを利用した非公式の統合です。

    Exa

    コンテンツ抽出(ハイライト、テキスト、要約)を備えたニューラル検索とキーワード検索。

    Firecrawl

    構造化された結果。詳細な抽出には firecrawl_search および firecrawl_scrape と組み合わせるのが最適です。

    Gemini

    Google Search のグラウンディングにより、引用付きでAIが統合した回答を提供します。

    Grok

    xAI のウェブグラウンディングにより、引用付きでAIが統合した回答を提供します。

    Kimi

    Moonshot のウェブ検索により、引用付きでAIが統合した回答を提供します。グラウンディングされていないチャットへのフォールバックは明示的に失敗します。

    MiniMax Search

    MiniMax Token Plan 検索APIによる構造化された結果。

    Ollama Web Search

    サインイン済みのローカルOllamaホストまたはホスト型Ollama APIを介して検索します。

    Parallel

    有料のParallel Search API(PARALLEL_API_KEY)。より高いレート制限と目的に応じた調整を提供します。

    Parallel Search(無料)

    オプトインでキー不要。LLM向けに最適化された高密度の抜粋を提供するParallelの無料Search MCPで、APIキーは不要です。

    Perplexity

    コンテンツ抽出制御とドメインフィルタリングを備えた構造化された結果。

    SearXNG

    セルフホスト型のメタ検索。APIキーは不要です。Google、Bing、DuckDuckGoなどを集約します。

    Tavily

    検索深度、トピックフィルタリング、URL抽出用の tavily_extract を備えた構造化された結果。

    プロバイダーの比較

    プロバイダー 結果の形式 フィルター APIキー
    Brave 構造化されたスニペット 国、言語、期間、llm-context モード BRAVE_API_KEY
    Codex Hosted Search AIによる統合 + ソースURL ドメイン、コンテキストサイズ、ユーザーの所在地 なし。Codex/OpenAIへのサインインを使用
    DuckDuckGo 構造化されたスニペット -- なし(キー不要)
    Exa 構造化 + 抽出済み ニューラル/キーワードモード、日付、コンテンツ抽出 EXA_API_KEY
    Firecrawl 構造化されたスニペット firecrawl_search ツール経由 FIRECRAWL_API_KEY
    Gemini AIによる統合 + 引用 -- GEMINI_API_KEY
    Grok AIによる統合 + 引用 -- xAI OAuth、XAI_API_KEY、または plugins.entries.xai.config.webSearch.apiKey
    Kimi AIによる統合 + 引用。グラウンディングされていないチャットへのフォールバック時は失敗 -- KIMI_API_KEY / MOONSHOT_API_KEY
    MiniMax Search 構造化されたスニペット リージョン(global / cn MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN
    Ollama Web Search 構造化されたスニペット -- サインイン済みのローカルホストでは不要。https://ollama.com の直接検索では OLLAMA_API_KEY
    Parallel LLMコンテキスト向けに順位付けされた高密度の抜粋 -- PARALLEL_API_KEY(有料)
    Parallel Search(無料) LLMコンテキスト向けに順位付けされた高密度の抜粋 -- なし(無料のSearch MCP)
    Perplexity 構造化されたスニペット 国、言語、期間、ドメイン、コンテンツ制限 PERPLEXITY_API_KEY / OPENROUTER_API_KEY
    SearXNG 構造化されたスニペット カテゴリー、言語 なし(セルフホスト)
    Tavily 構造化されたスニペット tavily_search ツール経由 TAVILY_API_KEY

    自動検出

    ドキュメントおよびセットアップフロー内のプロバイダー一覧はアルファベット順です。 自動検出では、それとは別の固定された優先順位を使用し、認証情報が必要な (requiresCredential !== false)プロバイダーのうち、設定済みのものだけを選択します。 provider が設定されていない場合、OpenClaw は次の順序でプロバイダーを確認し、 準備が整っている最初のものを使用します。

    最初にAPIを利用するプロバイダー:

    1. Brave -- BRAVE_API_KEY または plugins.entries.brave.config.webSearch.apiKey(順序10)
    2. MiniMax Search -- MINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY / MINIMAX_OAUTH_TOKEN / MINIMAX_API_KEY または plugins.entries.minimax.config.webSearch.apiKey(順序15)
    3. Gemini -- plugins.entries.google.config.webSearch.apiKeyGEMINI_API_KEY、または models.providers.google.apiKey(順序20)
    4. Grok -- xAI OAuth、XAI_API_KEY、または plugins.entries.xai.config.webSearch.apiKey(順序30)
    5. Kimi -- KIMI_API_KEY / MOONSHOT_API_KEY または plugins.entries.moonshot.config.webSearch.apiKey(順序40)
    6. Perplexity -- PERPLEXITY_API_KEY / OPENROUTER_API_KEY または plugins.entries.perplexity.config.webSearch.apiKey(順序50)
    7. Firecrawl -- FIRECRAWL_API_KEY または plugins.entries.firecrawl.config.webSearch.apiKey(順序60)
    8. Exa -- EXA_API_KEY または plugins.entries.exa.config.webSearch.apiKey。任意の plugins.entries.exa.config.webSearch.baseUrl でExaのエンドポイントを上書きできます(順序65)
    9. Tavily -- TAVILY_API_KEY または plugins.entries.tavily.config.webSearch.apiKey(順序70)
    10. Parallel -- PARALLEL_API_KEY または plugins.entries.parallel.config.webSearch.apiKey を介した有料のParallel Search API。任意の plugins.entries.parallel.config.webSearch.baseUrl でエンドポイントを上書きできます(順序75)

    その後に、エンドポイントが設定されたプロバイダー:

    1. SearXNG -- SEARXNG_BASE_URL または plugins.entries.searxng.config.webSearch.baseUrl(順序200)

    Parallel Search(無料)DuckDuckGoOllama Web SearchCodex Hosted Search などのキー不要プロバイダーは、内部的な順序値を持っていても、 自動検出では決して選択されません。これらは tools.web.search.provider で明示的に 選択した場合、または openclaw configure --section web を介して選択した場合にのみ 使用されます。APIを利用するプロバイダーが設定されていないという理由だけで、 OpenClaw が管理対象の web_search クエリをキー不要のプロバイダーへ送信することはありません。

    OpenAI Responses モデルは例外です。tools.web.search.provider が未設定の場合、 上記の管理対象プロバイダーではなく、OpenAIのネイティブウェブ検索を使用します (後述)。管理対象の経路を使用するには、tools.web.search.providerparallel-free(または別のプロバイダー)に設定してください。

    OpenAIネイティブウェブ検索

    直接 OpenAI Responses モデル(api: "openai-responses"、プロバイダーは openai、ベース URL なし、または公式 OpenAI API ベース URL)は、OpenClaw のウェブ検索が有効で、管理対象プロバイダーが固定されていない場合、OpenAI がホストする web_search ツールを自動的に使用します。これはバンドルされた OpenAI Plugin 内でプロバイダーが所有する動作であり、OpenAI 互換プロキシのベース URL や Azure ルートには適用されません。OpenAI モデルで管理対象の web_search ツールを使用し続けるには、tools.web.search.providerbrave などの別のプロバイダーに設定します。または、管理対象検索と OpenAI ネイティブ検索の両方を無効にするには、tools.web.search.enabled: false を設定します。

    ネイティブ Codex ウェブ検索

    Codex app-server ランタイムは、ウェブ検索が有効で、管理対象プロバイダーが選択されていない場合、Codex がホストする web_search ツールを自動的に使用します。ネイティブのホスト型検索と OpenClaw の管理対象 web_search 動的ツールは相互排他的であるため、管理対象検索でネイティブのドメイン制限を回避することはできません。ホスト型検索が利用できない、明示的に無効化されている、または選択された管理対象プロバイダーに置き換えられている場合、OpenClaw は管理対象ツールを使用します。本番環境の app-server トラフィックはユーザー定義の web 名前空間を拒否するため、OpenClaw は Codex のスタンドアロン web.run 拡張機能を無効(features.standalone_web_search: false)のままにします。

    • ネイティブ検索は tools.web.search.openaiCodex で設定します
    • tools.web.search.provider: "codex" を設定すると、任意の親モデル向けの管理対象 web_search プロバイダーとして Codex Hosted Search が準備されます。各呼び出しでは制限付きの一時的な Codex app-server ターンが実行され、Codex がホスト型の webSearch 項目を出力しない場合は失敗します。
    • mode: "cached" がデフォルトの設定ですが、Codex は制限のない app-server ターンではこれをライブの外部アクセスとして解決します。ライブアクセスを明示的に要求するには "live" を設定します
    • OpenClaw の管理対象 web_search を使用するには、tools.web.search.providerbrave などの管理対象プロバイダーに設定します
    • Codex ホスト型検索を使用しない場合は、tools.web.search.openaiCodex.enabled: false を設定します。他の管理対象プロバイダーは引き続き利用できます
    • Codex のネイティブツール対象範囲を制限した場合も、管理対象 web_search は利用可能なままです
    • allowedDomains が設定されている場合、ホスト型検索を利用できないときは自動的な管理対象フォールバックがフェイルクローズとなり、ネイティブの許可リストを回避できません
    • ツールが無効な LLM のみの実行では、ネイティブ検索と管理対象検索の両方が無効になります
    • tools.web.search.enabled: false は、管理対象検索とネイティブ検索の両方を無効にします

    永続的に有効となる Codex 検索ポリシーの変更時には、すでに読み込まれた app-server スレッドが古いホスト型検索アクセスを保持しないように、新しいバインド済みスレッドが開始されます。ターンごとの一時的な制限では、一時的な制限付きスレッドを使用し、後で再開できるように既存のバインディングを維持します。

    直接の OpenAI ChatGPT Responses トラフィックでも、OpenAI がホストする web_search ツールを使用できます。この別経路は引き続き tools.web.search.openaiCodex.enabled: true による明示的な有効化が必要で、api: "openai-chatgpt-responses" を使用する対象の openai/* モデルにのみ適用されます。

    json5
    {  tools: {    web: {      search: {        enabled: true,        // 任意: Codex 以外の親モデルからも Codex Hosted Search を使用します。        provider: "codex",        openaiCodex: {          enabled: true,          mode: "cached",          allowedDomains: ["example.com"],          contextSize: "high",          userLocation: {            country: "US",            city: "New York",            timezone: "America/New_York",          },        },      },    },  },}

    ネイティブ Codex 検索に対応していないランタイムやプロバイダーでは、Codex は OpenClaw の動的ツール名前空間を介して管理対象 web_search フォールバックを使用できます。Codex ホスト型検索ではなく、OpenClaw のプロバイダー固有のネットワーク制御が必要な場合は、管理対象プロバイダーを明示的に指定してください。

    provider: "codex" を選択すると、バンドルされた codex Plugin が有効になり、前述の tools.web.search.openaiCodex と同じ制限が使用されます。まず openclaw models auth login --provider openai で Codex app-server を認証してください。親エージェントは任意のモデルまたはランタイムを使用できます。Codex を介して実行されるのは、制限付き検索ワーカーのみです。

    ネットワークの安全性

    管理対象 HTTP web_search プロバイダーの呼び出しでは、現在のプロバイダー自身のホスト名にスコープを限定した OpenClaw の保護付きフェッチ経路を使用します。そのホスト名に限り、OpenClaw は 198.18.0.0/15 および fc00::/7 内の Surge、Clash、sing-box の偽 IP DNS 応答を許可します。その他のプライベート、ループバック、リンクローカル、メタデータ宛先は引き続きブロックされます。Codex Hosted Search は例外です。制限付きワーカーがネットワークアクセスを Codex app-server のホスト型 web_search ツールに委任します。

    この自動許可は、任意の web_fetch URL には適用されません。web_fetch では、信頼するプロキシがそれらの合成範囲を所有している場合に限り、tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangetools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange を明示的に有効にしてください。

    設定

    json5
    {  tools: {    web: {      search: {        enabled: true, // デフォルト: true        provider: "brave", // または自動検出する場合は省略        maxResults: 5,        timeoutSeconds: 30,        cacheTtlMinutes: 15,      },    },  },}

    プロバイダー固有の設定(API キー、ベース URL、モード)は plugins.entries.<plugin>.config.webSearch.* に配置します。Gemini は、専用のウェブ検索設定と GEMINI_API_KEY の後に、優先度の低いフォールバックとして models.providers.google.apiKeymodels.providers.google.baseUrl を再利用することもできます。例については、各プロバイダーのページを参照してください。 Grok は、openclaw models auth login --provider xai --method oauth で作成した xAI OAuth 認証プロファイルを再利用することもできます。API キー設定は引き続きフォールバックとして使用されます。

    tools.web.search.provider は、バンドル済みおよびインストール済み Plugin のマニフェストで宣言されたウェブ検索プロバイダー ID に対して検証されます。"brvae" のような入力ミスは、自動検出へ暗黙的にフォールバックするのではなく、設定検証で失敗します。設定されたプロバイダーについて、サードパーティー Plugin のアンインストール後に残った plugins.entries.<plugin> ブロックなど、古い Plugin 情報しかない場合、OpenClaw は起動の耐障害性を維持しつつ警告を報告します。Plugin を再インストールするか、openclaw doctor --fix を実行して古い設定をクリーンアップできます。

    web_fetch のフォールバックプロバイダー選択は別に行われます。

    • tools.web.fetch.provider で選択します
    • または、そのフィールドを省略し、設定済みの認証情報から最初に利用可能なウェブフェッチプロバイダーを OpenClaw に自動検出させます
    • サンドボックス化されていない web_fetch は、contracts.webFetchProviders を宣言するインストール済み Plugin プロバイダーを使用できます。サンドボックス化されたフェッチでは、バンドル済みプロバイダーと検証済みの公式 Plugin インストールを許可しますが、外部のサードパーティー Plugin は除外されます
    • 現在、公式 Firecrawl Plugin は唯一のバンドル済み webFetchProviders 提供元であり、plugins.entries.firecrawl.config.webFetch.* で設定します

    openclaw onboard または openclaw configure --section webKimi を選択すると、OpenClaw は次の項目も確認できます。

    • Moonshot API リージョン(https://api.moonshot.ai/v1 または https://api.moonshot.cn/v1
    • デフォルトの Kimi ウェブ検索モデル(デフォルトは kimi-k2.6

    x_searchplugins.entries.xai.config.xSearch.* で設定します。チャットと同じ xAI 認証プロファイル、または Grok ウェブ検索で使用する XAI_API_KEY / Plugin ウェブ検索認証情報を使用します。 従来の tools.web.x_search.* 設定は、openclaw doctor --fix によって自動移行されます。 openclaw onboard または openclaw configure --section web で Grok を選択すると、Grok の設定完了直後に、同じ認証情報を使用する任意の x_search 設定も OpenClaw によって提示されます。これは Grok 経路内の独立した後続手順であり、最上位のウェブ検索プロバイダーを別途選択するものではありません。別のプロバイダーを選択した場合、OpenClaw は x_search プロンプトを表示しません。

    API キーの保存

    設定ファイル

    openclaw configure --section web を実行するか、キーを直接設定します。

    json5
    {  plugins: {    entries: {      brave: {        config: {          webSearch: {            apiKey: "YOUR_KEY", // pragma: allowlist secret          },        },      },    },  },}

    環境変数

    Gateway プロセス環境でプロバイダーの環境変数を設定します。

    bash
    export BRAVE_API_KEY="YOUR_KEY"

    Gateway のインストールでは、~/.openclaw/.env に配置します。 環境変数を参照してください。

    ツールパラメーター

    パラメーター 説明
    query 検索クエリ(必須)
    count 返す結果数(1~10、デフォルト: 5)
    country 2 文字の ISO 国コード(例: "US"、"DE")
    language ISO 639-1 言語コード(例: "en"、"de")
    search_lang 検索言語コード(Brave のみ)
    freshness 期間フィルター: dayweekmonth、または year
    date_after この日付より後の結果(YYYY-MM-DD)
    date_before この日付より前の結果(YYYY-MM-DD)
    ui_lang UI 言語コード(Brave のみ)
    domain_filter ドメイン許可リスト/拒否リストの配列(Perplexity のみ)
    max_tokens コンテンツ全体のトークン上限(ネイティブ Perplexity Search API のみ)
    max_tokens_per_page ページごとの抽出トークン上限(ネイティブ Perplexity Search API のみ)

    x_search は xAI を使用して X(旧 Twitter)の投稿を検索し、引用付きの AI 統合回答を返します。自然言語クエリと任意の構造化フィルターを受け入れます。OpenClaw は組み込みの xAI x_search ツールを永続的に登録するのではなく、リクエストごとに構築するため、実際に呼び出したターンでのみ有効になります。

    x_search の設定

    enabledを省略した場合、x_searchが公開されるのは、アクティブなモデルのプロバイダーがxaiで、かつxAIの認証情報を解決できる場合のみです。既知の非xAIプロバイダーを使用するアクティブなモデルでプロバイダーをまたいだ利用を有効にするには、plugins.entries.xai.config.xSearch.enabledtrueに設定します。アクティブなモデルのプロバイダーが指定されていないか解決できない場合、このツールは非表示のままです。すべてのプロバイダーで無効にするには、enabledfalseに設定します。xAIの認証情報は常に必要です。

    json5
    {  plugins: {    entries: {      xai: {        config: {          xSearch: {            enabled: true, // 既知の非xAIモデルプロバイダーでは必須            model: "grok-4.3",            baseUrl: "https://api.x.ai/v1", // 任意、webSearch.baseUrlを上書き            inlineCitations: false,            maxTurns: 2,            timeoutSeconds: 30,            cacheTtlMinutes: 15,          },          webSearch: {            apiKey: "xai-...", // xAI認証プロファイルまたはXAI_API_KEYが設定されている場合は任意            baseUrl: "https://api.x.ai/v1", // 任意の共有xAI ResponsesベースURL          },        },      },    },  },}

    plugins.entries.xai.config.xSearch.baseUrlが設定されている場合、x_search<baseUrl>/responsesにPOSTします。このフィールドを省略した場合、plugins.entries.xai.config.webSearch.baseUrl、従来のtools.web.search.grok.baseUrl、最後に公開xAIエンドポイント(https://api.x.ai/v1)の順にフォールバックします。

    x_searchのパラメーター

    パラメーター 説明
    query 検索クエリ(必須)
    allowed_x_handles 結果を最大20件のXハンドルに限定
    excluded_x_handles 最大20件のXハンドルを除外
    from_date この日付以降の投稿のみを含める(YYYY-MM-DD)
    to_date この日付以前の投稿のみを含める(YYYY-MM-DD)
    enable_image_understanding 一致した投稿に添付された画像をxAIが解析できるようにする
    enable_video_understanding 一致した投稿に添付された動画をxAIが解析できるようにする

    allowed_x_handlesexcluded_x_handlesは同時に指定できません。

    x_searchの例

    javascript
    await x_search({  query: "dinner recipes",  allowed_x_handles: ["nytfood"],  from_date: "2026-03-01",});
    javascript
    // 投稿ごとの統計:可能な場合は正確なステータスURLまたはステータスIDを使用await x_search({  query: "https://x.com/huntharo/status/1905678901234567890",});

    javascript
    // 基本的な検索await web_search({ query: "OpenClaw plugin SDK" }); // ドイツ向けの検索await web_search({ query: "TV online schauen", country: "DE", language: "de" }); // 最近の結果(過去1週間)await web_search({ query: "AI developments", freshness: "week" }); // 日付範囲await web_search({  query: "climate research",  date_after: "2024-01-01",  date_before: "2024-06-30",}); // ドメインのフィルタリング(Perplexityのみ)await web_search({  query: "product reviews",  domain_filter: ["-reddit.com", "-pinterest.com"],});

    ツールプロファイル

    ツールプロファイルまたは許可リストを使用する場合は、web_searchx_search、またはgroup:webを追加します。

    json5
    {  tools: {    allow: ["web_search", "x_search"],    // または:allow: ["group:web"]  (web_search、x_search、web_fetchを含む)  },}

    関連項目

    • Web Fetch -- URLを取得し、読みやすいコンテンツを抽出
    • Web Browser -- JavaScriptを多用するサイト向けの完全なブラウザー自動化
    • Grok Search -- web_searchプロバイダーとしてのGrok
    • Ollama Web Search -- Ollamaホストを介したキー不要のウェブ検索
    Was this useful?
    On this page

    On this page