Webツール
OpenClawには2つの軽量なWebツールが同梱されています:
web_search— Perplexity Search API、Brave Search API、Google Searchグラウンディングを備えたGemini、Grok、またはKimiを使用してウェブを検索します。web_fetch— HTTPフェッチ + 読み取り可能な抽出 (HTML → マークダウン/テキスト)。
これらはブラウザ自動化ではありません。JavaScriptが多用されるサイトやログインが必要なサイトには、Browserツールを使用してください。
仕組み
web_searchは設定されたプロバイダーを呼び出し、結果を返します。- 結果はクエリごとに15分間キャッシュされます(設定可能)。
web_fetchはプレーンなHTTP GETを実行し、読み取り可能なコンテンツを抽出します(HTML → マークダウン/テキスト)。JavaScriptは実行しません。web_fetchはデフォルトで有効です(明示的に無効にしない限り)。
プロバイダー固有の詳細については、Perplexity Searchの設定およびBrave Searchの設定を参照してください。
検索プロバイダーの選択
| プロバイダー | 長所 | 短所 | APIキー |
|---|---|---|---|
| Perplexity Search API | 高速、構造化された結果;ドメイン、言語、地域、鮮度フィルター;コンテンツ抽出 | — | PERPLEXITY_API_KEY |
| Brave Search API | 高速、構造化された結果 | フィルタリングオプションが少ない;AI利用規約が適用される | BRAVE_API_KEY |
| Gemini | Google Searchグラウンディング、AIによる統合 | Gemini APIキーが必要 | GEMINI_API_KEY |
| Grok | xAIのウェブグラウンディング応答 | xAI APIキーが必要 | XAI_API_KEY |
| Kimi | Moonshotのウェブ検索機能 | Moonshot APIキーが必要 | KIMI_API_KEY / MOONSHOT_API_KEY |
自動検出
providerが明示的に設定されていない場合、OpenClawは利用可能なAPIキーに基づいて使用するプロバイダーを自動検出します。以下の順序でチェックします:
- Brave —
BRAVE_API_KEY環境変数またはtools.web.search.apiKey設定 - Gemini —
GEMINI_API_KEY環境変数またはtools.web.search.gemini.apiKey設定 - Kimi —
KIMI_API_KEY/MOONSHOT_API_KEY環境変数またはtools.web.search.kimi.apiKey設定 - Perplexity —
PERPLEXITY_API_KEY環境変数またはtools.web.search.perplexity.apiKey設定 - Grok —
XAI_API_KEY環境変数またはtools.web.search.grok.apiKey設定
キーが見つからない場合、Braveにフォールバックします(設定を促すキー不足エラーが表示されます)。
ウェブ検索の設定
openclaw configure --section webを使用して、APIキーを設定し、プロバイダーを選択します。
Perplexity Search
- perplexity.ai/settings/api でPerplexityアカウントを作成します
- ダッシュボードでAPIキーを生成します
openclaw configure --section webを実行してキーを設定に保存するか、環境変数にPERPLEXITY_API_KEYを設定します。
詳細はPerplexity Search APIドキュメントを参照してください。
Brave Search
- brave.com/search/api でBrave Search APIアカウントを作成します
- ダッシュボードで、Data for Searchプラン(「Data for AI」ではない)を選択し、APIキーを生成します。
openclaw configure --section webを実行してキーを設定に保存する(推奨)か、環境変数にBRAVE_API_KEYを設定します。
Braveは有料プランを提供しています。現在の制限と価格についてはBrave APIポータルを確認してください。
キーの保存場所
設定経由(推奨): openclaw configure --section webを実行します。キーはtools.web.search.perplexity.apiKeyまたはtools.web.search.apiKeyの下に保存されます。
環境変数経由: Gatewayプロセスの環境にPERPLEXITY_API_KEYまたはBRAVE_API_KEYを設定します。ゲートウェイインストールの場合、~/.openclaw/.env(またはサービスの環境)に配置します。環境変数を参照してください。
設定例
Perplexity Search:
{
tools: {
web: {
search: {
enabled: true,
provider: "perplexity",
perplexity: {
apiKey: "pplx-...", // PERPLEXITY_API_KEYが設定されている場合はオプション
},
},
},
},
}
Brave Search:
{
tools: {
web: {
search: {
enabled: true,
provider: "brave",
apiKey: "YOUR_BRAVE_API_KEY", // BRAVE_API_KEYが設定されている場合はオプション // pragma: allowlist secret
},
},
},
}
Geminiの使用(Google Searchグラウンディング)
Geminiモデルは組み込みのGoogle Searchグラウンディングをサポートしており、引用付きのライブGoogle検索結果に裏付けられたAI統合回答を返します。
Gemini APIキーの取得
- Google AI Studioにアクセスします
- APIキーを作成します
- Gateway環境に
GEMINI_API_KEYを設定するか、tools.web.search.gemini.apiKeyを設定します
Gemini検索の設定
{
tools: {
web: {
search: {
provider: "gemini",
gemini: {
// APIキー (GEMINI_API_KEYが設定されている場合はオプション)
apiKey: "AIza...",
// モデル (デフォルトは "gemini-2.5-flash")
model: "gemini-2.5-flash",
},
},
},
},
}
環境変数の代替方法: Gateway環境にGEMINI_API_KEYを設定します。ゲートウェイインストールの場合、~/.openclaw/.envに配置します。
注意点
- Geminiグラウンディングからの引用URLは、GoogleのリダイレクトURLから直接URLに自動的に解決されます。
- リダイレクト解決は、最終的な引用URLを返す前に、SSRFガードパス(HEAD + リダイレクトチェック + http/https検証)を使用します。
- リダイレクト解決は厳格なSSRFデフォルトを使用するため、プライベート/内部ターゲットへのリダイレクトはブロックされます。
- デフォルトモデル(
gemini-2.5-flash)は高速でコスト効率が良いです。グラウンディングをサポートする任意のGeminiモデルを使用できます。
web_search
設定されたプロバイダーを使用してウェブを検索します。
必要条件
tools.web.search.enabledがfalseであってはならない(デフォルト: 有効)- 選択したプロバイダーのAPIキー:
- Brave:
BRAVE_API_KEYまたはtools.web.search.apiKey - Perplexity:
PERPLEXITY_API_KEYまたはtools.web.search.perplexity.apiKey - Gemini:
GEMINI_API_KEYまたはtools.web.search.gemini.apiKey - Grok:
XAI_API_KEYまたはtools.web.search.grok.apiKey - Kimi:
KIMI_API_KEY、MOONSHOT_API_KEY、またはtools.web.search.kimi.apiKey
- Brave:
設定
{
tools: {
web: {
search: {
enabled: true,
apiKey: "BRAVE_API_KEY_HERE", // BRAVE_API_KEYが設定されている場合はオプション
maxResults: 5,
timeoutSeconds: 30,
cacheTtlMinutes: 15,
},
},
},
}
ツールパラメータ
特に明記されていない限り、すべてのパラメータはBraveとPerplexityの両方で機能します。
| パラメータ | 説明 |
|---|---|
query | 検索クエリ(必須) |
count | 返す結果数(1-10、デフォルト: 5) |
country | 2文字のISO国コード(例: "US"、"DE") |
language | ISO 639-1言語コード(例: "en"、"de") |
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のみ) |
例:
// ドイツ語固有の検索
await web_search({
query: "TV online schauen",
country: "DE",
language: "de",
});
// 最近の結果(過去1週間)
await web_search({
query: "TMBG interview",
freshness: "week",
});
// 日付範囲検索
await web_search({
query: "AI developments",
date_after: "2024-01-01",
date_before: "2024-06-30",
});
// ドメインフィルタリング(Perplexityのみ)
await web_search({
query: "climate research",
domain_filter: ["nature.com", "science.org", ".edu"],
});
// ドメイン除外(Perplexityのみ)
await web_search({
query: "product reviews",
domain_filter: ["-reddit.com", "-pinterest.com"],
});
// より多くのコンテンツ抽出(Perplexityのみ)
await web_search({
query: "detailed AI research",
max_tokens: 50000,
max_tokens_per_page: 4096,
});
web_fetch
URLをフェッチし、読み取り可能なコンテンツを抽出します。
web_fetchの必要条件
tools.web.fetch.enabledがfalseであってはならない(デフォルト: 有効)- オプションの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", // FIRECRAWL_API_KEYが設定されている場合はオプション
baseUrl: "https://api.firecrawl.dev",
onlyMainContent: true,
maxAgeMs: 86400000, // ミリ秒 (1日)
timeoutSeconds: 60,
},
},
},
},
}
web_fetchツールパラメータ
url(必須、http/httpsのみ)extractMode(markdown|text)maxChars(長いページを切り詰める)
注意点:
web_fetchはまずReadability(メインコンテンツ抽出)を使用し、次にFirecrawl(設定されている場合)を使用します。両方とも失敗した場合、ツールはエラーを返します。- Firecrawlリクエストはデフォルトでボット回避モードを使用し、結果をキャッシュします。
web_fetchはデフォルトでChromeライクなUser-AgentとAccept-Languageを送信します。必要に応じてuserAgentをオーバーライドしてください。web_fetchはプライベート/内部ホスト名をブロックし、リダイレクトを再チェックします(maxRedirectsで制限)。maxCharsはtools.web.fetch.maxCharsCapにクランプされます。web_fetchは解析前にダウンロードしたレスポンスボディサイズをtools.web.fetch.maxResponseBytesに制限します。サイズ超過のレスポンスは切り詰められ、警告が含まれます。web_fetchはベストエフォートの抽出です。一部のサイトではブラウザツールが必要になります。- キーの設定とサービスの詳細についてはFirecrawlを参照してください。
- レスポンスはキャッシュされ(デフォルト15分)、繰り返しフェッチを減らします。
- ツールプロファイル/許可リストを使用する場合は、
web_search/web_fetchまたはgroup:webを追加してください。 - APIキーがない場合、
web_searchはドキュメントリンク付きの短い設定ヒントを返します。