跳转到内容

Web Fetch

web_fetch 工具执行普通的 HTTP GET 请求并提取可读内容 (HTML 转 markdown 或文本)。它执行 JavaScript。

对于重度依赖 JS 的网站或登录保护的页面,请改用 Web Browser

web_fetch 默认已启用 — 无需配置。Agent 可以 立即调用它:

await web_fetch({ url: "https://example.com/article" });
参数类型描述
urlstring要获取的 URL(必填,仅限 http/https)
extractModestring"markdown"(默认)或 "text"
maxCharsnumber将输出截断为指定字符数
  1. Fetch

    使用类似 Chrome 的 User-Agent 和 Accept-Language 标头发送 HTTP GET 请求。 阻止私有/内部主机名并重新检查重定向。

  2. Extract

    在 HTML 响应上运行 Readability(主要内容提取)。

  3. Fallback (optional)

    如果 Readability 失败且配置了 Firecrawl,则通过 Firecrawl API 使用反机器人模式重试。

  4. Cache

    结果会被缓存 15 分钟(可配置),以减少对同一 URL 的重复 获取。

{
tools: {
web: {
fetch: {
enabled: true, // default: true
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,
readability: true, // use Readability extraction
userAgent: "Mozilla/5.0 ...", // override User-Agent
},
},
},
}

如果 Readability 提取失败,web_fetch 可以回退到 Firecrawl 以进行反爬虫并更好地提取内容:

{
tools: {
web: {
fetch: {
firecrawl: {
enabled: true,
apiKey: "fc-...", // optional if FIRECRAWL_API_KEY is set
baseUrl: "https://api.firecrawl.dev",
onlyMainContent: true,
maxAgeMs: 86400000, // cache duration (1 day)
timeoutSeconds: 60,
},
},
},
},
}

tools.web.fetch.firecrawl.apiKey 支持 SecretRef 对象。

  • maxChars 被限制为 tools.web.fetch.maxCharsCap
  • 响应体在解析前被限制为 maxResponseBytes;超大的 响应将被截断并显示警告
  • 私有/内部主机名被阻止
  • 重定向会受到 maxRedirects 的检查和限制
  • web_fetch 是尽力而为的 —— 某些站点需要 Web Browser

如果您使用工具配置文件或允许列表,请添加 web_fetchgroup:web

{
tools: {
allow: ["web_fetch"],
// or: allow: ["group:web"] (includes both web_fetch and web_search)
},
}
  • Web Search — 使用多个提供商搜索网络
  • Web Browser — 针对 JavaScript 重型网站的完整浏览器自动化
  • Firecrawl — Firecrawl 搜索和抓取工具