Tools
ウェブ検索
web_search ツールは、設定済みのプロバイダーを使用して Web を検索し、
結果を返します。結果はクエリごとに 15 分間キャッシュされます(設定可能)。
OpenClaw には、X(旧 Twitter)の投稿向けの x_search と、
軽量な URL 取得向けの web_fetch も含まれています。このフェーズでは、web_fetch は
ローカルのままで、web_search と x_search は内部で xAI Responses を使用できます。
クイックスタート
プロバイダーを選択
プロバイダーを選び、必要なセットアップを完了します。一部のプロバイダーは キー不要ですが、API キーを使用するものもあります。詳細は下記のプロバイダーページを 参照してください。
設定
openclaw configure --section web
これにより、プロバイダーと必要な認証情報が保存されます。env
var(たとえば BRAVE_API_KEY)を設定し、API に基づく
プロバイダーではこの手順を省略することもできます。
使用
エージェントは web_search を呼び出せるようになります。
await web_search({ query: "OpenClaw plugin SDK" });
X の投稿には、次を使用します。
await x_search({ query: "dinner recipes" });
プロバイダーの選択
スニペット付きの構造化結果。llm-context モード、国/言語フィルターをサポートします。無料枠を利用できます。
キー不要のフォールバック。API キーは不要です。非公式の HTML ベース統合です。
コンテンツ抽出(ハイライト、テキスト、要約)を備えたニューラル + キーワード検索。
構造化結果。深い抽出には firecrawl_search と firecrawl_scrape を組み合わせるのが最適です。
Google Search グラウンディングによる、引用付きの AI 合成回答。
xAI Web グラウンディングによる、引用付きの AI 合成回答。
Moonshot Web 検索による、引用付きの AI 合成回答。グラウンディングされていないチャットフォールバックは明示的に失敗します。
MiniMax Token Plan 検索 API による構造化結果。
サインイン済みのローカル Ollama ホスト、またはホスト型 Ollama API による検索。
コンテンツ抽出制御とドメインフィルタリングを備えた構造化結果。
セルフホスト型メタ検索。API キーは不要です。Google、Bing、DuckDuckGo などを集約します。
検索深度、トピックフィルタリング、URL 抽出用の tavily_extract を備えた構造化結果。
プロバイダー比較
| プロバイダー | 結果の形式 | フィルター | API キー |
|---|---|---|---|
| Brave | 構造化スニペット | 国、言語、時間、llm-context モード |
BRAVE_API_KEY |
| DuckDuckGo | 構造化スニペット | -- | なし(キー不要) |
| Exa | 構造化 + 抽出済み | ニューラル/キーワードモード、日付、コンテンツ抽出 | EXA_API_KEY |
| Firecrawl | 構造化スニペット | firecrawl_search ツール経由 |
FIRECRAWL_API_KEY |
| Gemini | AI 合成 + 引用 | -- | GEMINI_API_KEY |
| Grok | AI 合成 + 引用 | -- | XAI_API_KEY |
| 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 |
| Perplexity | 構造化スニペット | 国、言語、時間、ドメイン、コンテンツ制限 | PERPLEXITY_API_KEY / OPENROUTER_API_KEY |
| SearXNG | 構造化スニペット | カテゴリ、言語 | なし(セルフホスト) |
| Tavily | 構造化スニペット | tavily_search ツール経由 |
TAVILY_API_KEY |
自動検出
ネイティブ OpenAI Web 検索
OpenClaw Web 検索が有効で、管理対象プロバイダーが固定されていない場合、直接の OpenAI Responses モデルは、OpenAI のホスト型 web_search ツールを自動的に使用します。これはバンドルされた OpenAI Plugin のプロバイダー所有の動作であり、ネイティブ OpenAI API トラフィックにのみ適用されます。OpenAI 互換プロキシベース URL や Azure ルートには適用されません。OpenAI モデルで管理対象の web_search ツールを維持するには、tools.web.search.provider を brave など別のプロバイダーに設定します。または、管理対象検索とネイティブ OpenAI 検索の両方を無効にするには、tools.web.search.enabled: false を設定します。
ネイティブ Codex Web 検索
Codex 対応モデルは、OpenClaw の管理対象 web_search 関数の代わりに、プロバイダー ネイティブの Responses web_search ツールを任意で使用できます。
tools.web.search.openaiCodexの下で設定します- Codex 対応モデル(
openai-codex/*またはapi: "openai-codex-responses"を使用するプロバイダー)でのみ有効化されます - 管理対象の
web_searchは Codex 以外のモデルにも引き続き適用されます 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_search プロバイダー呼び出しは、OpenClaw の保護された fetch パスを使用します。
信頼済みプロバイダー API ホストに対して、OpenClaw は Surge、Clash、sing-box の fake-IP
DNS 応答を 198.18.0.0/15 と fc00::/7 で許可しますが、そのプロバイダーのホスト名に対してのみです。
その他のプライベート、ループバック、リンクローカル、メタデータ宛先は引き続きブロックされます。
この自動許可は、任意の web_fetch URL には適用されません。
web_fetch では、信頼済みプロキシがそれらの合成範囲を所有している場合にのみ、
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRange と
tools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange を明示的に有効にしてください。
Web 検索のセットアップ
ドキュメントとセットアップフロー内のプロバイダー一覧はアルファベット順です。自動検出は 別の優先順位を保持します。
provider が設定されていない場合、OpenClaw は次の順序でプロバイダーを確認し、
準備できている最初のものを使用します。
API に基づくプロバイダーを先に確認します。
- Brave --
BRAVE_API_KEYまたはplugins.entries.brave.config.webSearch.apiKey(順序 10) - MiniMax Search --
MINIMAX_CODE_PLAN_KEY/MINIMAX_CODING_API_KEY/MINIMAX_OAUTH_TOKEN/MINIMAX_API_KEYまたはplugins.entries.minimax.config.webSearch.apiKey(順序 15) - Gemini --
plugins.entries.google.config.webSearch.apiKey、GEMINI_API_KEY、またはmodels.providers.google.apiKey(順序 20) - Grok --
XAI_API_KEYまたはplugins.entries.xai.config.webSearch.apiKey(順序 30) - Kimi --
KIMI_API_KEY/MOONSHOT_API_KEYまたはplugins.entries.moonshot.config.webSearch.apiKey(順序 40) - Perplexity --
PERPLEXITY_API_KEY/OPENROUTER_API_KEYまたはplugins.entries.perplexity.config.webSearch.apiKey(順序 50) - Firecrawl --
FIRECRAWL_API_KEYまたはplugins.entries.firecrawl.config.webSearch.apiKey(順序 60) - Exa --
EXA_API_KEYまたはplugins.entries.exa.config.webSearch.apiKey。任意のplugins.entries.exa.config.webSearch.baseUrlは Exa エンドポイントを上書きします(順序 65) - Tavily --
TAVILY_API_KEYまたはplugins.entries.tavily.config.webSearch.apiKey(順序 70)
その後のキー不要フォールバック:
- DuckDuckGo -- アカウントや API キー不要のキー不要 HTML フォールバック(順序 100)
- Ollama Web Search -- 設定済みのローカル Ollama ホストが到達可能で、
ollama signinでサインイン済みの場合のキー不要フォールバック。ホストが必要とする場合は Ollama プロバイダーの bearer auth を再利用でき、OLLAMA_API_KEYが設定されている場合は直接https://ollama.com検索を呼び出せます(順序 110) - SearXNG --
SEARXNG_BASE_URLまたはplugins.entries.searxng.config.webSearch.baseUrl(順序 200)
プロバイダーが検出されない場合は、Brave にフォールバックします(設定を促す キー不足エラーが表示されます)。
設定
{
tools: {
web: {
search: {
enabled: true, // default: true
provider: "brave", // or omit for auto-detection
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}
プロバイダー固有の設定(API キー、ベース URL、モード)は
plugins.entries.<plugin>.config.webSearch.* の下にあります。Gemini は専用の Web 検索設定と GEMINI_API_KEY の後に、優先度の低いフォールバックとして
models.providers.google.apiKey と models.providers.google.baseUrl も再利用できます。例についてはプロバイダーページを参照してください。
tools.web.search.provider は、同梱およびインストール済み Plugin のマニフェストで宣言された Web 検索プロバイダー ID に対して検証されます。"brvae" のようなタイプミスは、自動検出に黙ってフォールバックするのではなく、設定検証に失敗します。設定済みのプロバイダーに、サードパーティ Plugin のアンインストール後に残った
plugins.entries.<plugin> ブロックのような古い Plugin 証跡しかない場合、OpenClaw は起動の堅牢性を保ち、警告を報告するため、Plugin を再インストールするか、openclaw doctor --fix を実行して古い設定をクリーンアップできます。
web_fetch のフォールバックプロバイダー選択は別です。
tools.web.fetch.providerで選択します- またはそのフィールドを省略し、OpenClaw に利用可能な認証情報から最初に準備済みの Web 取得プロバイダーを自動検出させます
- サンドボックス化されていない
web_fetchは、contracts.webFetchProvidersを宣言するインストール済み Plugin プロバイダーを使用できます。サンドボックス化された取得は同梱のみのままです - 現在の同梱 Web 取得プロバイダーは 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 検索モデル(既定は
kimi-k2.6)
x_search には plugins.entries.xai.config.xSearch.* を設定します。Grok Web 検索と同じ XAI_API_KEY フォールバックを使用します。
従来の tools.web.x_search.* 設定は 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
},
},
},
},
},
}
環境変数
Gateway プロセス環境でプロバイダー環境変数を設定します。
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 |
時間フィルター: day、week、month、または 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 のみ) |
x_search
x_search は xAI を使用して X(旧 Twitter)の投稿をクエリし、引用付きの AI 合成回答を返します。自然言語クエリと任意の構造化フィルターを受け入れます。OpenClaw は、このツール呼び出しを処理するリクエストでのみ組み込みの xAI x_search ツールを有効にします。
x_search 設定
{
plugins: {
entries: {
xai: {
config: {
xSearch: {
enabled: true,
model: "grok-4-1-fast-non-reasoning",
baseUrl: "https://api.x.ai/v1", // optional, overrides webSearch.baseUrl
inlineCitations: false,
maxTurns: 2,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
webSearch: {
apiKey: "xai-...", // optional if XAI_API_KEY is set
baseUrl: "https://api.x.ai/v1", // optional shared xAI Responses base URL
},
},
},
},
},
}
plugins.entries.xai.config.xSearch.baseUrl が設定されている場合、x_search は <baseUrl>/responses に投稿します。そのフィールドが省略されている場合は、plugins.entries.xai.config.webSearch.baseUrl、次に従来の tools.web.search.grok.baseUrl、最後に公開 xAI エンドポイントへフォールバックします。
x_search パラメーター
| パラメーター | 説明 |
|---|---|
query |
検索クエリ(必須) |
allowed_x_handles |
結果を特定の X ハンドルに制限します |
excluded_x_handles |
特定の X ハンドルを除外します |
from_date |
この日付以降の投稿のみを含めます(YYYY-MM-DD) |
to_date |
この日付以前の投稿のみを含めます(YYYY-MM-DD) |
enable_image_understanding |
一致した投稿に添付された画像を xAI に検査させます |
enable_video_understanding |
一致した投稿に添付された動画を xAI に検査させます |
x_search の例
await x_search({
query: "dinner recipes",
allowed_x_handles: ["nytfood"],
from_date: "2026-03-01",
});
// Per-post stats: use the exact status URL or status ID when possible
await x_search({
query: "https://x.com/huntharo/status/1905678901234567890",
});
例
// Basic search
await web_search({ query: "OpenClaw plugin SDK" });
// German-specific search
await web_search({ query: "TV online schauen", country: "DE", language: "de" });
// Recent results (past week)
await web_search({ query: "AI developments", freshness: "week" });
// Date range
await web_search({
query: "climate research",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// Domain filtering (Perplexity only)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});
ツールプロファイル
ツールプロファイルまたは許可リストを使用する場合は、web_search、x_search、または group:web を追加します。
{
tools: {
allow: ["web_search", "x_search"],
// or: allow: ["group:web"] (includes web_search, x_search, and web_fetch)
},
}
関連
- Web Fetch -- URL を取得して読みやすいコンテンツを抽出します
- Web Browser -- JS の多いサイト向けの完全なブラウザー自動化
- Grok Search --
web_searchプロバイダーとしての Grok - Ollama Web Search -- Ollama ホスト経由のキー不要な Web 検索