メインコンテンツへスキップ

Web Search

web_search ツールは、設定済みのプロバイダーを使って Web を検索し、 結果を返します。結果はクエリごとに 15 分間キャッシュされます(設定可能)。 OpenClaw には、X(旧 Twitter)の投稿向けの x_search と、 軽量な URL 取得のための web_fetch も含まれています。このフェーズでは、web_fetch は ローカルのままで、web_searchx_search は内部的に xAI Responses を使うことがあります。
web_search は軽量な HTTP ツールであり、ブラウザー自動化ではありません。 JS の多いサイトやログインが必要な場合は Web Browser を使ってください。 特定の URL を取得するには、Web Fetch を使ってください。

クイックスタート

1

プロバイダーを選ぶ

プロバイダーを選び、必要なセットアップを完了してください。プロバイダーによっては API キー不要で使えますが、API キーを使うものもあります。詳細は下記の プロバイダーページを参照してください。
2

設定

openclaw configure --section web
これにより、プロバイダーと必要な認証情報が保存されます。API ベースの プロバイダーでは、環境変数(たとえば BRAVE_API_KEY)を設定して この手順を省略することもできます。
3

使う

これでエージェントは web_search を呼び出せます。
await web_search({ query: "OpenClaw plugin SDK" });
X の投稿には次を使います。
await x_search({ query: "dinner recipes" });

プロバイダーを選ぶ

Brave Search

スニペット付きの構造化結果。llm-context モード、国/言語フィルターに対応。無料枠あり。

DuckDuckGo

API キー不要のフォールバック。API キーは不要。非公式の HTML ベース統合。

Exa

コンテンツ抽出(ハイライト、テキスト、要約)付きのニューラル + キーワード検索。

Firecrawl

構造化結果。深い抽出には firecrawl_searchfirecrawl_scrape の組み合わせが最適。

Gemini

Google Search grounding による、引用付きの AI 合成回答。

Grok

xAI Web grounding による、引用付きの AI 合成回答。

Kimi

Moonshot Web 検索による、引用付きの AI 合成回答。

MiniMax Search

MiniMax Coding Plan 検索 API による構造化結果。

Ollama Web Search

設定済みの Ollama ホスト経由の API キー不要検索。ollama signin が必要です。

Perplexity

コンテンツ抽出制御とドメインフィルタリング付きの構造化結果。

SearXNG

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

Tavily

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

プロバイダー比較

Provider結果スタイルフィルターAPI キー
Brave構造化スニペット国、言語、時間、llm-context モードBRAVE_API_KEY
DuckDuckGo構造化スニペットなし(API キー不要)
Exa構造化 + 抽出済み内容ニューラル/キーワードモード、日付、コンテンツ抽出EXA_API_KEY
Firecrawl構造化スニペットfirecrawl_search ツール経由FIRECRAWL_API_KEY
GeminiAI 合成 + 引用GEMINI_API_KEY
GrokAI 合成 + 引用XAI_API_KEY
KimiAI 合成 + 引用KIMI_API_KEY / MOONSHOT_API_KEY
MiniMax Search構造化スニペットリージョン(global / cnMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY
Ollama Web Search構造化スニペットデフォルトでは不要。ollama signin が必要。Ollama プロバイダーの bearer auth を再利用可能
Perplexity構造化スニペット国、言語、時間、ドメイン、コンテンツ制限PERPLEXITY_API_KEY / OPENROUTER_API_KEY
SearXNG構造化スニペットカテゴリ、言語なし(セルフホスト)
Tavily構造化スニペットtavily_search ツール経由TAVILY_API_KEY

自動検出

ネイティブ Codex Web 検索

Codex 対応モデルは、OpenClaw 管理の web_search 関数の代わりに、 プロバイダーネイティブな Responses web_search ツールを使うこともできます。
  • これは tools.web.search.openaiCodex で設定します
  • 有効になるのは Codex 対応モデル(openai-codex/* または api: "openai-codex-responses" を使うプロバイダー)のみです
  • Codex 非対応モデルには、引き続き管理された web_search が適用されます
  • mode: "cached" がデフォルトであり、推奨設定です
  • tools.web.search.enabled: false は管理型検索とネイティブ検索の両方を無効化します
{
  tools: {
    web: {
      search: {
        enabled: true,
        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 の挙動を維持します。

Web 検索を設定する

ドキュメントとセットアップフローのプロバイダー一覧はアルファベット順です。自動検出は 別の優先順位を維持します。 provider が設定されていない場合、OpenClaw は次の順でプロバイダーを確認し、 準備ができている最初のものを使います。 まず API ベースのプロバイダー:
  1. BraveBRAVE_API_KEY または plugins.entries.brave.config.webSearch.apiKey(順序 10)
  2. MiniMax SearchMINIMAX_CODE_PLAN_KEY / MINIMAX_CODING_API_KEY または plugins.entries.minimax.config.webSearch.apiKey(順序 15)
  3. GeminiGEMINI_API_KEY または plugins.entries.google.config.webSearch.apiKey(順序 20)
  4. GrokXAI_API_KEY または plugins.entries.xai.config.webSearch.apiKey(順序 30)
  5. KimiKIMI_API_KEY / MOONSHOT_API_KEY または plugins.entries.moonshot.config.webSearch.apiKey(順序 40)
  6. PerplexityPERPLEXITY_API_KEY / OPENROUTER_API_KEY または plugins.entries.perplexity.config.webSearch.apiKey(順序 50)
  7. FirecrawlFIRECRAWL_API_KEY または plugins.entries.firecrawl.config.webSearch.apiKey(順序 60)
  8. ExaEXA_API_KEY または plugins.entries.exa.config.webSearch.apiKey(順序 65)
  9. TavilyTAVILY_API_KEY または plugins.entries.tavily.config.webSearch.apiKey(順序 70)
その後に API キー不要のフォールバック:
  1. DuckDuckGo — アカウントや API キー不要の、HTML ベースの API キー不要フォールバック(順序 100)
  2. Ollama Web Search — 設定済みの Ollama ホスト経由の API キー不要フォールバック。Ollama に到達可能であり、ollama signin でサインイン済みである必要があります。ホストが必要とする場合は Ollama プロバイダーの bearer auth を再利用できます(順序 110)
  3. SearXNGSEARXNG_BASE_URL または plugins.entries.searxng.config.webSearch.baseUrl(順序 200)
プロバイダーが検出されない場合は Brave にフォールバックします(設定を促す missing-key エラーが表示されます)。
すべてのプロバイダーキーフィールドは SecretRef オブジェクトをサポートします。自動検出モードでは、 OpenClaw は選択されたプロバイダーキーのみを解決し、選択されなかった SecretRefs は非アクティブのままです。

設定

{
  tools: {
    web: {
      search: {
        enabled: true, // デフォルト: true
        provider: "brave", // または自動検出のために省略
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}
プロバイダー固有の設定(API キー、base URL、モード)は plugins.entries.<plugin>.config.webSearch.* の下にあります。例は 各プロバイダーページを参照してください。 web_fetch のフォールバックプロバイダー選択は別です。
  • tools.web.fetch.provider で選びます
  • またはそのフィールドを省略して、利用可能な認証情報から最初に準備ができている web-fetch プロバイダーを OpenClaw に自動検出させます
  • 現在の同梱 web-fetch プロバイダーは Firecrawl で、 plugins.entries.firecrawl.config.webFetch.* で設定します
openclaw onboard または openclaw configure --section web 中に Kimi を選ぶと、OpenClaw は次も質問できます。
  • Moonshot API リージョン(https://api.moonshot.ai/v1 または https://api.moonshot.cn/v1
  • デフォルトの Kimi web-search モデル(デフォルトは kimi-k2.5
x_search については、plugins.entries.xai.config.xSearch.* を設定します。これは Grok Web 検索と同じ XAI_API_KEY フォールバックを使います。 レガシーな tools.web.x_search.* config は openclaw doctor --fix によって自動移行されます。 openclaw onboard または openclaw configure --section web 中に Grok を選ぶと、 OpenClaw は同じキーを使った任意の x_search セットアップも案内できます。 これは Grok 経路内の別の追加入力ステップであり、トップレベルの Web 検索プロバイダー選択とは別です。別のプロバイダーを選んだ場合、OpenClaw は x_search のプロンプトを表示しません。

API キーの保存

openclaw configure --section web を実行するか、キーを直接設定します。
{
  plugins: {
    entries: {
      brave: {
        config: {
          webSearch: {
            apiKey: "YOUR_KEY", // pragma: allowlist secret
          },
        },
      },
    },
  },
}

ツールパラメーター

Parameter説明
query検索クエリ(必須)
count返す結果数(1〜10、デフォルト: 5)
country2 文字の ISO 国コード(例: “US”、“DE”)
languageISO 639-1 言語コード(例: “en”、“de”)
search_lang検索言語コード(Brave のみ)
freshness時間フィルター: dayweekmonth、または year
date_afterこの日付以降の結果(YYYY-MM-DD)
date_beforeこの日付以前の結果(YYYY-MM-DD)
ui_langUI 言語コード(Brave のみ)
domain_filterドメインの許可/拒否リスト配列(Perplexity のみ)
max_tokens総コンテンツ予算、デフォルト 25000(Perplexity のみ)
max_tokens_per_pageページごとのトークン上限、デフォルト 2048(Perplexity のみ)
すべてのパラメーターがすべてのプロバイダーで使えるわけではありません。Brave の llm-context モードは ui_langfreshnessdate_afterdate_before を受け付けません。 Gemini、Grok、Kimi は、引用付きの 1 つの合成回答を返します。これらは 共有ツール互換性のために count を受け付けますが、 grounding された回答の形は変わりません。 Perplexity でも、Sonar/OpenRouter 互換経路(plugins.entries.perplexity.config.webSearch.baseUrl / model または OPENROUTER_API_KEY)を使う場合は同様です。 SearXNG は、信頼されたプライベートネットワークまたは loopback ホストに対してのみ http:// を受け付けます。 公開 SearXNG エンドポイントでは https:// を使う必要があります。 Firecrawl と Tavily は web_search では querycount のみをサポートします。 高度なオプションには、それぞれの専用ツールを使ってください。
x_search は xAI を使って X(旧 Twitter)の投稿をクエリし、 引用付きの AI 合成回答を返します。自然言語クエリと、 任意の構造化フィルターを受け付けます。OpenClaw は、このツール呼び出しに対応するリクエストでのみ、 組み込みの xAI x_search ツールを有効にします。
xAI のドキュメントでは、x_search はキーワード検索、セマンティック検索、ユーザー 検索、スレッド取得をサポートするとされています。reposts、 replies、bookmarks、views のような投稿ごとのエンゲージメント統計については、正確な投稿 URL または status ID を対象にしたルックアップを優先してください。 幅広いキーワード検索でも正しい投稿が見つかることはありますが、返ってくる 投稿ごとのメタデータは不完全になりがちです。良いパターンは、 まず投稿を特定し、その後でその正確な投稿に絞った 2 回目の x_search クエリを実行することです。

x_search の設定

{
  plugins: {
    entries: {
      xai: {
        config: {
          xSearch: {
            enabled: true,
            model: "grok-4-1-fast-non-reasoning",
            inlineCitations: false,
            maxTurns: 2,
            timeoutSeconds: 30,
            cacheTtlMinutes: 15,
          },
          webSearch: {
            apiKey: "xai-...", // XAI_API_KEY が設定されていれば省略可
          },
        },
      },
    },
  },
}

x_search パラメーター

Parameter説明
query検索クエリ(必須)
allowed_x_handles結果を特定の X ハンドルに限定する
excluded_x_handles特定の X ハンドルを除外する
from_dateこの日付以降の投稿のみを含める(YYYY-MM-DD)
to_dateこの日付以前の投稿のみを含める(YYYY-MM-DD)
enable_image_understandingxAI に一致した投稿に添付された画像を検査させる
enable_video_understandingxAI に一致した投稿に添付された動画を検査させる

x_search の例

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

// 基本検索
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 を追加してください。
{
  tools: {
    allow: ["web_search", "x_search"],
    // または: allow: ["group:web"]  (web_search、x_search、web_fetch を含む)
  },
}

関連

  • Web Fetch — URL を取得して読みやすい内容を抽出する
  • Web Browser — JS の多いサイト向けの完全なブラウザー自動化
  • Grok Searchweb_search プロバイダーとしての Grok
  • Ollama Web Search — Ollama ホスト経由の API キー不要 Web 検索