Tools
Web fetch
web_fetch ツールは通常の HTTP GET を実行し、読み取り可能なコンテンツを抽出します
(HTML を Markdown またはテキストに変換)。JavaScript は実行しません。
JS に大きく依存するサイトやログイン保護されたページには、代わりに Web ブラウザーを使用してください。
クイックスタート
web_fetch はデフォルトで有効です -- 設定は不要です。エージェントは
すぐに呼び出せます。
await web_fetch({ url: "https://example.com/article" });ツールパラメーター
urlstringrequired取得する URL。http(s) のみ。
extractMode'markdown' | 'text'default: markdown本文抽出後の出力形式。
maxCharsnumber出力をこの文字数に切り詰めます。
仕組み
Fetch
Chrome 風の User-Agent と Accept-Language ヘッダーで HTTP GET を送信します。
プライベート/内部ホスト名をブロックし、リダイレクトを再チェックします。
Extract
HTML レスポンスに対して Readability(本文抽出)を実行します。
Fallback (optional)
Readability が失敗し、Firecrawl が選択されている場合は、ボット回避モードで Firecrawl API 経由で再試行します。
Cache
同じ URL の繰り返し取得を減らすため、結果は 15 分間(設定可能)キャッシュされます。
進行状況の更新
web_fetch は、取得が 5 秒後もまだ保留中の場合にのみ公開の進行状況行を出力します。
Fetching page content...高速なキャッシュヒットや素早いネットワーク応答はタイマー発火前に完了するため、 進行状況行は表示されません。呼び出しがキャンセルされると、タイマーはクリアされます。 取得が最終的に完了すると、エージェントは通常のツール結果を受け取ります。 進行状況行はチャンネル UI 状態にすぎず、取得したページ内容を含むことはありません。
設定
{ tools: { web: { fetch: { enabled: true, // default: true provider: "firecrawl", // optional; omit for auto-detect maxChars: 50000, // max output chars maxCharsCap: 50000, // hard cap for maxChars param maxResponseBytes: 2000000, // max download size before truncation timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // let a trusted HTTP(S) env proxy resolve DNS readability: true, // use Readability extraction userAgent: "Mozilla/5.0 ...", // override User-Agent ssrfPolicy: { allowRfc2544BenchmarkRange: true, // opt-in for trusted fake-IP proxies using 198.18.0.0/15 allowIpv6UniqueLocalRange: true, // opt-in for trusted fake-IP proxies using fc00::/7 }, }, }, },}Firecrawl フォールバック
Readability 抽出が失敗した場合、web_fetch はボット回避とより良い抽出のために
Firecrawlへフォールバックできます。
{ tools: { web: { fetch: { provider: "firecrawl", // optional; omit for auto-detect from available credentials }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // optional; omit for keyless starter access baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 86400000, // cache duration (1 day) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey は任意で、SecretRef オブジェクトをサポートします。
従来の tools.web.fetch.firecrawl.* 設定は openclaw doctor --fix によって自動移行されます。
現在のランタイム動作:
tools.web.fetch.providerは取得フォールバックプロバイダーを明示的に選択します。providerが省略されている場合、OpenClaw は設定済み認証情報から最初に準備できた web-fetch プロバイダーを自動検出します。サンドボックス化されていないweb_fetchは、contracts.webFetchProvidersを宣言し、ランタイムで一致するプロバイダーを登録する インストール済み plugins を使用できます。公式 Firecrawl plugin がこのフォールバックを提供します。- サンドボックス化された
web_fetch呼び出しは、バンドル済みプロバイダーに加えて、 公式 npm または ClawHub の来歴が検証されたインストール済みプロバイダーを許可します。 現時点では公式 Firecrawl plugin が許可されます。サードパーティの外部取得 plugins は除外されたままです。 - Readability が無効な場合、
web_fetchは選択されたプロバイダーフォールバックへ直接進みます。 利用可能なプロバイダーがない場合は、フェイルクローズします。
信頼済み env プロキシ
デプロイで web_fetch が信頼済みのアウトバウンド HTTP(S) プロキシを経由する必要がある場合は、
tools.web.fetch.useTrustedEnvProxy: true を設定します。
このモードでも、OpenClaw はリクエスト送信前にホスト名ベースの SSRF チェックを適用しますが、 ローカル DNS ピン留めを行わず、プロキシに DNS 解決を任せます。これは、プロキシがオペレーター管理下にあり、 DNS 解決後にアウトバウンドポリシーを適用する場合にのみ有効にしてください。
制限と安全性
maxCharsはtools.web.fetch.maxCharsCapに丸められます- レスポンス本文は解析前に
maxResponseBytesで上限が設定されます。大きすぎるレスポンスは警告付きで切り詰められます - プライベート/内部ホスト名はブロックされます
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeとtools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeは、信頼済み fake-IP プロキシスタック向けの限定的なオプトインです。 プロキシがそれらの合成範囲を所有し、独自の宛先ポリシーを適用している場合を除き、未設定のままにしてください- リダイレクトはチェックされ、
maxRedirectsによって制限されます useTrustedEnvProxyは明示的なオプトインであり、DNS 解決後もアウトバウンドポリシーを適用する オペレーター管理下のプロキシに対してのみ有効にするべきですweb_fetchはベストエフォートです -- 一部のサイトでは Web ブラウザーが必要です
ツールプロファイル
ツールプロファイルまたは許可リストを使用する場合は、web_fetch または group:web を追加します。
{ tools: { allow: ["web_fetch"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}