Tools
Web フェッチ
web_fetch は通常の HTTP GET を実行し、読み取り可能なコンテンツ(HTML から
Markdown またはテキスト)を抽出します。JavaScript は実行しません。JS を多用するサイトや
ログインで保護されたページには、代わりに Web Browser を使用してください。
クイックスタート
デフォルトで有効になっており、設定は不要です。
await web_fetch({ url: "https://example.com/article" });ツールパラメーター
urlstringrequired取得する URL。http(s) のみ。
extractMode'markdown' | 'text'default: markdownメインコンテンツ抽出後の出力形式。
maxCharsnumber出力をこの文字数で切り詰めます。tools.web.fetch.maxCharsCap の範囲に制限されます。
結果
web_fetch は、次のフィールドを持つ閉じた構造化結果を返します。
- リクエストメタデータ:
url、finalUrl、status、extractMode、extractor - 任意のレスポンスメタデータ:
contentType、title、warning(存在しない場合は省略) - ラップされたコンテンツのメタデータ:
externalContent、truncated、length、rawLength、fetchedAt、tookMs、text - キャッシュヒット時の任意の
cached: true - 切り詰められたコンテンツが非公開の一時ファイルに書き込まれた場合の任意の
spill: { path, chars, truncated? }。truncatedは、そのファイルにソースコンテンツの 一部が含まれる場合にのみ存在します
length はラップされた text の長さです。rawLength は外部コンテンツでラップされる前の
抽出済みコンテンツの長さです。
動作の仕組み
取得
Chrome に似た User-Agent と Accept-Language
ヘッダーを使用して HTTP GET を送信します。プライベート/内部ホスト名をブロックし、リダイレクトを再確認します。
抽出
HTML レスポンスに対して Readability(メインコンテンツ抽出)を実行します。
フォールバック(任意)
Readability が失敗し、取得プロバイダーが利用可能な場合、そのプロバイダーを通じて 再試行します(たとえば Firecrawl のボット回避モード)。
キャッシュ
同じ URL の繰り返し取得を減らすため、結果は 15 分間(設定可能) キャッシュされます。
進行状況の更新
web_fetch は、5 秒後も取得が保留中の場合にのみ、公開の進行状況行を出力します。
ページのコンテンツを取得しています...高速なキャッシュヒットや短時間のネットワークレスポンスはタイマーが作動する前に完了するため、 進行状況行は表示されません。呼び出しをキャンセルするとタイマーがクリアされます。 進行状況行はチャンネル UI の状態にすぎず、取得したページコンテンツが含まれることはありません。
設定
{ tools: { web: { fetch: { enabled: true, // デフォルト: true provider: "firecrawl", // 任意。自動検出する場合は省略 maxChars: 20000, // デフォルトの出力文字数。maxCharsCap により上限設定 maxCharsCap: 20000, // maxChars パラメーターのハード上限 maxResponseBytes: 750000, // 切り詰め前の最大ダウンロードサイズ(32000-10000000) timeoutSeconds: 30, cacheTtlMinutes: 15, maxRedirects: 3, useTrustedEnvProxy: false, // 信頼できる HTTP(S) 環境プロキシによる DNS 解決を許可 readability: true, // Readability 抽出を使用 userAgent: "Mozilla/5.0 ...", // User-Agent を上書き ssrfPolicy: { allowRfc2544BenchmarkRange: true, // 198.18.0.0/15 を使用する信頼できる偽 IP プロキシ向けのオプトイン allowIpv6UniqueLocalRange: true, // fc00::/7 を使用する信頼できる偽 IP プロキシ向けのオプトイン }, }, }, },}Firecrawl フォールバック
Readability 抽出が失敗した場合、web_fetch は、ボット回避と抽出精度の向上のために
Firecrawl へフォールバックできます。
{ tools: { web: { fetch: { provider: "firecrawl", // 任意。利用可能な認証情報から自動検出する場合は省略 }, }, }, plugins: { entries: { firecrawl: { enabled: true, config: { webFetch: { // apiKey: "fc-...", // 任意。キーなしのスターターアクセスでは省略 baseUrl: "https://api.firecrawl.dev", onlyMainContent: true, maxAgeMs: 172800000, // キャッシュ期間(2 日) timeoutSeconds: 60, }, }, }, }, },}plugins.entries.firecrawl.config.webFetch.apiKey は任意で、SecretRef オブジェクトをサポートします。
従来の tools.web.fetch.firecrawl.* 設定は、openclaw doctor --fix を介して
plugins.entries.firecrawl.config.webFetch に自動移行されます。
現在のランタイム動作:
tools.web.fetch.providerは取得フォールバックプロバイダーを明示的に選択します。providerが省略された場合、OpenClaw は設定済みの認証情報から、準備が整った最初の Web 取得 プロバイダーを自動検出します。サンドボックス化されていないweb_fetchは、contracts.webFetchProvidersを宣言し、ランタイムで対応するプロバイダーを登録する インストール済み Plugin を使用できます。現在、公式 Firecrawl Plugin がこの フォールバックを提供しています。- サンドボックス化された
web_fetch呼び出しでは、バンドルされたプロバイダーに加え、 公式 npm または ClawHub の出自が検証されたインストール済みプロバイダーを許可します。現在許可されるのは 公式 Firecrawl Plugin です。サードパーティーの外部取得 Plugin は引き続き除外されます。 - Readability が無効な場合、
web_fetchは選択した プロバイダーフォールバックへ直接進みます。利用可能なプロバイダーがない場合は、フェイルクローズします。
信頼できる環境プロキシ
デプロイ環境で web_fetch を信頼できる送信 HTTP(S) プロキシ経由にする必要がある場合は、
tools.web.fetch.useTrustedEnvProxy: true を設定します。
このモードでも、OpenClaw はリクエスト送信前にホスト名ベースの SSRF チェックを適用しますが、 ローカル DNS ピンニングを行う代わりに、プロキシによる DNS 解決を許可します。 プロキシが運用者の管理下にあり、DNS 解決後に送信ポリシーを適用する場合にのみ有効にしてください。
制限と安全性
maxCharsはtools.web.fetch.maxCharsCap(デフォルト20000)の範囲に制限されます- レスポンス本文は解析前に
maxResponseBytes(デフォルト750000、32000-10000000 の範囲に制限) を上限とします。上限を超えるレスポンスは警告付きで切り詰められます - プライベート/内部ホスト名はブロックされます
tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangeとtools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRangeは、信頼できる偽 IP プロキシスタック向けの限定的な オプトインです。プロキシがこれらの合成範囲を所有し、独自の宛先ポリシーを 適用する場合を除き、未設定のままにしてください- リダイレクトはチェックされ、
maxRedirects(デフォルト3)によって制限されます useTrustedEnvProxyは明示的なオプトインであり、 DNS 解決後も送信ポリシーを適用する運用者管理下のプロキシに対してのみ有効にしてくださいweb_fetchはベストエフォートです。一部のサイトでは Web Browser が必要です
ツールプロファイル
ツールプロファイルまたは許可リストを使用する場合は、web_fetch または group:web を追加します。
{ tools: { allow: ["web_fetch"], // または: allow: ["group:web"] (web_fetch、web_search、x_search を含む) },}関連項目
- Web Search -- 複数のプロバイダーで Web を検索
- Web Browser -- JS を多用するサイト向けの完全なブラウザー自動化
- Firecrawl -- Firecrawl の検索およびスクレイピングツール