メインコンテンツへスキップ
web_fetch はプレーンな HTTP GET を実行し、読み取り可能なコンテンツ(HTML から markdown またはテキスト)を抽出します。JavaScript は実行しません。JS が多いサイトや ログイン保護されたページでは、代わりに Web Browser を使用してください。

クイックスタート

デフォルトで有効で、設定は不要です。
await web_fetch({ url: "https://example.com/article" });

ツールパラメーター

url
string
必須
取得する URL。http(s) のみ。
extractMode
'markdown' | 'text'
デフォルト:"markdown"
メインコンテンツ抽出後の出力形式。
maxChars
number
出力をこの文字数に切り詰めます。tools.web.fetch.maxCharsCap にクランプされます。

仕組み

1

Fetch

Chrome 風の User-Agent と Accept-Language ヘッダーで HTTP GET を送信します。プライベート/内部ホスト名をブロックし、リダイレクトを再チェックします。
2

Extract

HTML レスポンスに対して Readability(メインコンテンツ抽出)を実行します。
3

Fallback (optional)

Readability が失敗し、fetch provider が利用可能な場合は、その provider 経由で再試行します (例: Firecrawl のボット回避モード)。
4

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: 20000, // default output chars; capped by maxCharsCap
        maxCharsCap: 20000, // hard cap for maxChars param
        maxResponseBytes: 750000, // max download size before truncation (32000-10000000)
        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: 172800000, // cache duration (2 days)
            timeoutSeconds: 60,
          },
        },
      },
    },
  },
}
plugins.entries.firecrawl.config.webFetch.apiKey は任意で、SecretRef オブジェクトをサポートします。 レガシーの tools.web.fetch.firecrawl.* 設定は、openclaw doctor --fix によって plugins.entries.firecrawl.config.webFetch へ自動移行されます。
Firecrawl API キー SecretRef を設定していて、それが解決されず、 FIRECRAWL_API_KEY env フォールバックもない場合、Gateway の起動は即座に失敗します。
Firecrawl の baseUrl オーバーライドは制限されています。ホストされたトラフィックは https://api.firecrawl.dev を使用します。セルフホストのオーバーライドはプライベートまたは 内部エンドポイントを対象にする必要があり、http:// はそれらのプライベートターゲットに対してのみ受け入れられます。
現在のランタイム動作:
  • tools.web.fetch.provider は fetch フォールバック provider を明示的に選択します。
  • provider が省略された場合、OpenClaw は設定済み認証情報から最初に準備完了になった web-fetch provider を自動検出します。サンドボックス化されていない web_fetch は、 contracts.webFetchProviders を宣言し、実行時に一致する provider を登録する インストール済み plugins を使用できます。公式 Firecrawl plugin は現在この フォールバックを提供します。
  • サンドボックス化された web_fetch 呼び出しでは、バンドル済み provider と、公式 npm または ClawHub の由来が検証されたインストール済み provider が許可されます。現在は 公式 Firecrawl plugin が許可され、サードパーティの外部 fetch plugins は除外されたままです。
  • Readability が無効な場合、web_fetch は選択された provider フォールバックへ直接進みます。 provider が利用できない場合は fail closed します。

信頼済み env proxy

デプロイ環境で web_fetch が信頼済みのアウトバウンド HTTP(S) proxy を経由する必要がある場合は、tools.web.fetch.useTrustedEnvProxy: true を設定します。 このモードでも、OpenClaw はリクエスト送信前にホスト名ベースの SSRF チェックを適用しますが、 ローカル DNS ピンニングではなく proxy に DNS 解決を任せます。これは proxy が operator によって制御され、 DNS 解決後にアウトバウンドポリシーを適用する場合にのみ有効にしてください。
HTTP(S) proxy env var が設定されていない場合、またはターゲットホストが NO_PROXY によって除外されている場合、web_fetch はローカル DNS ピンニングを伴う通常の厳格なパスにフォールバックします。

制限と安全性

  • maxCharstools.web.fetch.maxCharsCap(デフォルト 20000)にクランプされます
  • レスポンス本文は解析前に maxResponseBytes(デフォルト 750000、32000-10000000 にクランプ)で上限設定されます。大きすぎるレスポンスは警告付きで切り詰められます
  • プライベート/内部ホスト名はブロックされます
  • tools.web.fetch.ssrfPolicy.allowRfc2544BenchmarkRangetools.web.fetch.ssrfPolicy.allowIpv6UniqueLocalRange は、信頼済み fake-IP proxy スタック向けの 狭い opt-in です。proxy がそれらの合成レンジを所有し、独自の宛先ポリシーを適用している場合を除き、 未設定のままにしてください
  • リダイレクトはチェックされ、maxRedirects(デフォルト 3)によって制限されます
  • useTrustedEnvProxy は明示的な opt-in であり、DNS 解決後もアウトバウンドポリシーを適用する operator 管理の proxy に対してのみ有効にしてください
  • web_fetch はベストエフォートです。一部のサイトでは Web Browser が必要です

ツールプロファイル

ツールプロファイルまたは allowlist を使用している場合は、web_fetch または group:web を追加します。
{
  tools: {
    allow: ["web_fetch"],
    // or: allow: ["group:web"]  (includes web_fetch, web_search, and x_search)
  },
}

関連

  • Web Search — 複数の provider で Web を検索
  • Web Browser — JS が多いサイト向けの完全なブラウザー自動化
  • Firecrawl — Firecrawl の検索およびスクレイピングツール