Web fetch
web_fetch 工具执行普通的 HTTP GET 请求并提取可读内容(HTML 转换为 markdown 或文本)。它不执行 JavaScript。
对于重度依赖 JS 的网站或受登录保护的页面,请改为使用 Web Browser。
web_fetch 默认启用 — 无需配置。代理可以立即调用它:
await web_fetch({ url: "https://example.com/article" });Fetch
使用类似 Chrome 的 User-Agent 和
Accept-Language标头发送 HTTP GET 请求。阻止私有/内部主机名并重新检查重定向。Extract
在 HTML 响应上运行 Readability(主要内容提取)。
Fallback (optional)
如果 Readability 失败并配置了 Firecrawl,则通过启用反机器人模式的 Firecrawl API 进行重试。
Cache
结果会被缓存 15 分钟(可配置),以减少对同一 URL 的重复获取。
{ 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 回退
Section titled “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 if FIRECRAWL_API_KEY is set 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并在运行时注册 匹配提供商的已安装插件。目前捆绑的提供商是 Firecrawl。 - 沙箱隔离的
web_fetch调用仅限于捆绑的提供商。 - 如果禁用了 Readability,
web_fetch将直接跳转到所选 提供商的回退选项。如果没有可用的提供商,它将安全地失败。
可信环境变量代理
Section titled “可信环境变量代理”如果您的部署需要 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是针对可信的虚拟 IP 代理栈的特定选择加入项;除非您的代理拥有这些合成 IP 范围并在解析后强制执行其自己的目标策略,否则请保持它们未设置- 重定向会受到
maxRedirects的检查和限制 useTrustedEnvProxy是一个明确的选择加入项,仅应针对操作员控制的代理启用,这些代理在 DNS 解析后仍强制执行出站策略web_fetch是尽力而为的——某些站点需要使用 Web Browser
工具配置文件
Section titled “工具配置文件”如果您使用工具配置文件或允许列表,请添加 web_fetch 或 group:web:
{ tools: { allow: ["web_fetch"], // or: allow: ["group:web"] (includes web_fetch, web_search, and x_search) },}- Web Search —— 使用多个提供商搜索网络
- Web Browser —— 针对重度 JS 站点的完整浏览器自动化
- Firecrawl —— Firecrawl 搜索和抓取工具