Skip to main content
OpenClaw には、次の 2 つの軽量 Web ツールが付属しています。
  • web_search — Brave Search API、Google 検索グラウンディングを備えた Gemini、Grok、Kimi、または Perplexity Search API を使用して Web を検索します。
  • web_fetch — HTTP フェッチ + 可読抽出 (HTML → マークダウン/テキスト)。
これらはブラウザの自動化ではありません**。 JS を多用するサイトまたはログインの場合は、 ブラウザツール

仕組み

  • web_search は、構成されたプロバイダーを呼び出し、結果を返します。
  • 結果はクエリによって 15 分間キャッシュされます (構成可能)。
  • web_fetch はプレーンな HTTP GET を実行し、読み取り可能なコンテンツを抽出します (HTML → マークダウン/テキスト)。 JavaScript は実行されません
  • web_fetch は (明示的に無効にしない限り) デフォルトで有効になります。
プロバイダー固有の詳細については、Brave Search セットアップ および Perplexity Search セットアップ を参照してください。

検索プロバイダーの選択|プロバイダー |結果の形状 |プロバイダー固有のフィルター |メモ | APIキー |

| ------------------------- | ---------------------------------- | -------------------------------------------- | ------------------------------------------------------------------------------ | ------------------------------------------ | | Brave Search API |スニペットを使用した構造化された結果 | countrylanguageui_lang、時間 | Brave llm-context モードをサポート | BRAVE_API_KEY | | ジェミニ | AI が合成した回答 + 引用 | — | Google 検索の基礎を使用する | GEMINI_API_KEY | | グロク | AI が合成した回答 + 引用 | — | xAI Web ベースの応答を使用 | XAI_API_KEY || | AI が合成した回答 + 引用 | — | Moonshot Web 検索を使用します。 KIMI_API_KEY / MOONSHOT_API_KEY | | Perplexity Search API |スニペットを使用した構造化された結果 | countrylanguage、時間、domain_filter |コンテンツ抽出制御をサポートします。 OpenRouter は Sonar 互換性パスを使用します。 PERPLEXITY_API_KEY / OPENROUTER_API_KEY |

自動検出

上の表はアルファベット順です。 provider が明示的に設定されていない場合、ランタイム自動検出は次の順序でプロバイダーをチェックします。
  1. BraveBRAVE_API_KEY 環境変数または tools.web.search.apiKey 構成
  2. GeminiGEMINI_API_KEY 環境変数または tools.web.search.gemini.apiKey 構成
  3. GrokXAI_API_KEY 環境変数または tools.web.search.grok.apiKey 構成
  4. KIMI_API_KEY / MOONSHOT_API_KEY 環境変数または tools.web.search.kimi.apiKey 構成
  5. 複雑さPERPLEXITY_API_KEYOPENROUTER_API_KEY、または tools.web.search.perplexity.apiKey 構成
キーが見つからない場合は、Brave に戻ります (キーが見つからないというエラーが表示され、キーを構成するように求められます)。

Web 検索の設定

openclaw configure --section web を使用して API キーを設定し、プロバイダーを選択します。

勇敢な探索1. brave.com/search/api で Brave Search API アカウントを作成します

  1. ダッシュボードで、検索 プランを選択し、API キーを生成します。
  2. openclaw configure --section web を実行してキーを構成に保存するか、環境に BRAVE_API_KEY を設定します。
各 Brave プランには、月額 5 ドルの無料クレジット (更新) が含まれています。検索 プランの料金は 1,000 リクエストあたり 5 ドルなので、クレジットは月あたり 1,000 クエリをカバーします。セット 予期せぬ請求を避けるために、Brave ダッシュボードで使用制限を確認してください。を参照してください。 現在のプランについては Brave API ポータル と 価格設定。

複雑性検索

  1. perplexity.ai/settings/api で Perplexity アカウントを作成します。
  2. ダッシュボードで API キーを生成します
  3. openclaw configure --section web を実行してキーを構成に保存するか、環境に PERPLEXITY_API_KEY を設定します。
従来の Sonar/OpenRouter との互換性を確保するには、代わりに OPENROUTER_API_KEY を設定するか、sk-or-... キーを使用して tools.web.search.perplexity.apiKey を構成します。 tools.web.search.perplexity.baseUrl または model を設定すると、Perplexity がチャット完了互換パスに再び組み込まれます。 詳細については、Perplexity Search API ドキュメント を参照してください。

キーを保管する場所

構成経由: openclaw configure --section web を実行します。プロバイダーに応じて、キーは tools.web.search.apiKey または tools.web.search.perplexity.apiKey に保存されます。環境経由: ゲートウェイ プロセス環境で PERPLEXITY_API_KEYOPENROUTER_API_KEY、または BRAVE_API_KEY を設定します。ゲートウェイのインストールの場合は、~/.openclaw/.env (またはサービス環境) に配置します。 環境変数 を参照してください。

構成例

勇敢な検索:
{
  tools: {
    web: {
      search: {
        enabled: true,
        provider: "brave",
        apiKey: "YOUR_BRAVE_API_KEY", // optional if BRAVE_API_KEY is set // pragma: allowlist secret
      },
    },
  },
}
Brave LLM コンテキスト モード:
{
  tools: {
    web: {
      search: {
        enabled: true,
        provider: "brave",
        apiKey: "YOUR_BRAVE_API_KEY", // optional if BRAVE_API_KEY is set // pragma: allowlist secret
        brave: {
          mode: "llm-context",
        },
      },
    },
  },
}
llm-context は、標準の Brave スニペットの代わりに、グラウンディング用に抽出されたページ チャンクを返します。 このモードでは、country および language / search_lang は引き続き機能しますが、ui_lang freshnessdate_after、および date_before は拒否されます。 複雑な検索:
{
  tools: {
    web: {
      search: {
        enabled: true,
        provider: "perplexity",
        perplexity: {
          apiKey: "pplx-...", // optional if PERPLEXITY_API_KEY is set
        },
      },
    },
  },
}
OpenRouter / Sonar 互換性による複雑性:
{
  tools: {
    web: {
      search: {
        enabled: true,
        provider: "perplexity",
        perplexity: {
          apiKey: "<openrouter-api-key>", // optional if OPENROUTER_API_KEY is set
          baseUrl: "https://openrouter.ai/api/v1",
          model: "perplexity/sonar-pro",
        },
      },
    },
  },
}

Gemini の使用 (Google 検索のグラウンディング)

Gemini モデルは、組み込みの Google 検索グラウンディング をサポートしています。 これは、引用付きのライブ Google 検索結果に裏付けられた AI 合成回答を返します。

Gemini API キーの取得

  1. Google AI Studio に移動します。
  2. APIキーを作成する
  3. ゲートウェイ環境で GEMINI_API_KEY を設定するか、tools.web.search.gemini.apiKey を構成します

Gemini 検索のセットアップ

{
  tools: {
    web: {
      search: {
        provider: "gemini",
        gemini: {
          // API key (optional if GEMINI_API_KEY is set)
          apiKey: "AIza...",
          // Model (defaults to "gemini-2.5-flash")
          model: "gemini-2.5-flash",
        },
      },
    },
  },
}
代替環境: ゲートウェイ環境で GEMINI_API_KEY を設定します。 ゲートウェイのインストールの場合は、~/.openclaw/.env に配置します。

注記- Gemini グラウンディングからの引用 URL は、Google の URL から自動的に解決されます

URL をダイレクト URL にリダイレクトします。
  • リダイレクト解決では、最終的な引用 URL を返す前に SSRF ガード パス (HEAD + リダイレクト チェック + http/https 検証) を使用します。
  • リダイレクト解決では厳密な SSRF デフォルトが使用されるため、プライベート/内部ターゲットへのリダイレクトはブロックされます。
  • デフォルトのモデル (gemini-2.5-flash) は高速でコスト効率が高くなります。 アースをサポートするすべての Gemini モデルを使用できます。

ウェブ検索

設定したプロバイダーを使用して Web を検索します。

要件

  • tools.web.search.enabledfalse であってはなりません (デフォルト: 有効)
  • 選択したプロバイダーの API キー:
    • 勇敢: BRAVE_API_KEY または tools.web.search.apiKey
    • 双子座: GEMINI_API_KEY または tools.web.search.gemini.apiKey
    • Grok: XAI_API_KEY または tools.web.search.grok.apiKey
    • キミ: KIMI_API_KEYMOONSHOT_API_KEY、または tools.web.search.kimi.apiKey
    • 困惑: PERPLEXITY_API_KEYOPENROUTER_API_KEY、または tools.web.search.perplexity.apiKey

構成

{
  tools: {
    web: {
      search: {
        enabled: true,
        apiKey: "BRAVE_API_KEY_HERE", // optional if BRAVE_API_KEY is set
        maxResults: 5,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
      },
    },
  },
}

ツールパラメータ

注記がない限り、すべてのパラメーターは Brave およびネイティブ Perplexity Search API で機能します。 Perplexity の OpenRouter / Sonar 互換パスは、query および freshness のみをサポートします。 tools.web.search.perplexity.baseUrl / model を設定するか、OPENROUTER_API_KEY を使用するか、sk-or-... キーを構成すると、検索 API のみのフィルターは明示的なエラーを返します。|パラメータ |説明 | | --------------------- | ----------------------------------------------------- | | query |検索クエリ (必須) | | count |返される結果 (1-10、デフォルト: 5) | | country | 2 文字の ISO 国コード (例: “US”、“DE”) | | language | ISO 639-1 言語コード (例: “en”、“de”) | | freshness |時間フィルター: dayweekmonth、または year | | date_after |この日付 (YYYY-MM-DD) 以降の結果 | | date_before |この日付より前の結果 (YYYY-MM-DD) | | ui_lang | UI 言語コード (Brave のみ) | | domain_filter |ドメイン許可リスト/拒否リスト配列 (Perplexity のみ) | | max_tokens |総コンテンツ予算、デフォルト 25000 (Perplexity のみ) | | max_tokens_per_page |ページごとのトークン制限、デフォルトは 2048 (Perplexity のみ) | 例:
// German-specific search
await web_search({
  query: "TV online schauen",
  country: "DE",
  language: "de",
});

// Recent results (past week)
await web_search({
  query: "TMBG interview",
  freshness: "week",
});

// Date range search
await web_search({
  query: "AI developments",
  date_after: "2024-01-01",
  date_before: "2024-06-30",
});

// Domain filtering (Perplexity only)
await web_search({
  query: "climate research",
  domain_filter: ["nature.com", "science.org", ".edu"],
});

// Exclude domains (Perplexity only)
await web_search({
  query: "product reviews",
  domain_filter: ["-reddit.com", "-pinterest.com"],
});

// More content extraction (Perplexity only)
await web_search({
  query: "detailed AI research",
  max_tokens: 50000,
  max_tokens_per_page: 4096,
});
Brave llm-context モードが有効な場合、ui_langfreshnessdate_after、および date_before はサポートされていません。これらのフィルターには Brave web モードを使用してください。

web_fetchURL を取得し、読み取り可能なコンテンツを抽出します

web_fetch の要件

  • tools.web.fetch.enabledfalse であってはなりません (デフォルト: 有効)
  • オプションの Firecrawl フォールバック: tools.web.fetch.firecrawl.apiKey または FIRECRAWL_API_KEY を設定します。

web_fetch 構成

{
  tools: {
    web: {
      fetch: {
        enabled: true,
        maxChars: 50000,
        maxCharsCap: 50000,
        maxResponseBytes: 2000000,
        timeoutSeconds: 30,
        cacheTtlMinutes: 15,
        maxRedirects: 3,
        userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
        readability: true,
        firecrawl: {
          enabled: true,
          apiKey: "FIRECRAWL_API_KEY_HERE", // optional if FIRECRAWL_API_KEY is set
          baseUrl: "https://api.firecrawl.dev",
          onlyMainContent: true,
          maxAgeMs: 86400000, // ms (1 day)
          timeoutSeconds: 60,
        },
      },
    },
  },
}

web_fetch ツールのパラメータ

  • url (必須、http/https のみ)
  • extractMode (markdown | text)
  • maxChars (長いページを切り詰める)
注:- web_fetch は、最初に可読性 (メインコンテンツの抽出) を使用し、次に Firecrawl (構成されている場合) を使用します。両方とも失敗した場合、ツールはエラーを返します。
  • Firecrawl リクエストはボット回避モードを使用し、デフォルトで結果をキャッシュします。
  • web_fetch は、デフォルトで Chrome のようなユーザー エージェントと Accept-Language を送信します。必要に応じて userAgent をオーバーライドします。
  • web_fetch はプライベート/内部ホスト名をブロックし、リダイレクトを再チェックします (maxRedirects で制限)。
  • maxCharstools.web.fetch.maxCharsCap にクランプされます。
  • web_fetch は、解析する前に、ダウンロードされた応答本文のサイズを tools.web.fetch.maxResponseBytes に制限します。サイズが大きすぎる応答は切り詰められ、警告が含まれます。
  • web_fetch はベストエフォート抽出です。一部のサイトではブラウザ ツールが必要です。
  • キーのセットアップとサービスの詳細については、Firecrawl を参照してください。
  • 繰り返しの取得を減らすために、応答はキャッシュされます (デフォルトは 15 分)。
  • ツール プロファイル/ホワイトリストを使用する場合は、web_search/web_fetch または group:web を追加します。
  • API キーが見つからない場合、web_search はドキュメント リンクを含む短いセットアップ ヒントを返します。