Tools
ウェブ取得
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 を上限とします。
仕組み
取得
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 検索 -- 複数のプロバイダーで Web を検索
- Web Browser -- JS を多用するサイト向けの完全なブラウザー自動操作
- Firecrawl -- Firecrawl の検索およびスクレイピングツール