Web 获取工具 (web_fetch)
本文档介绍了 Qwen Code 的 web_fetch 工具。
描述
使用 web_fetch 从指定 URL 获取内容,并通过 AI 模型进行处理。该工具接收一个 URL 和一个提示词作为输入,获取 URL 内容后,使用一个小型快速模型结合提示词对内容进行处理。
参数
web_fetch 接收三个参数:
url(字符串,必需):要从中获取内容的 URL。必须是格式完整的有效 URL,以http://或https://开头。prompt(字符串,必需):描述你想从页面内容中提取什么信息的提示词。format(字符串,可选):仅控制发送给服务器的Accept头部,表明你对内容的偏好。无论指定何种格式,所有获取到的内容都会归一化为纯文本以供 LLM 处理。如果未指定,默认为"auto"。"auto"(默认):通过内容协商优先获取 markdown(Accept: text/markdown, text/html;q=0.9, text/plain;q=0.8, */*;q=0.1),然后回退到 HTML、纯文本或其他内容类型。推荐用于大多数场景,因为对于支持 markdown 的服务器,这可以减少最多 80% 的 token 消耗,同时仍然支持仅返回 JSON 的 API。"markdown":优先请求Accept: text/markdown, */*;q=0.1。当你明确需要 markdown 内容时使用。"html":优先请求Accept: text/html, */*;q=0.1。当服务器要求在 Accept 头部包含 HTML 时使用。内容仍会转换为纯文本供 LLM 处理。"text":优先请求Accept: text/plain, */*;q=0.1。当你特别需要纯文本内容时使用。
如何将 web_fetch 与 Qwen Code 结合使用
要将 web_fetch 与 Qwen Code 一起使用,请提供一个 URL 和一个描述你想从该 URL 中提取什么内容的提示词。该工具会在获取 URL 内容之前请求确认。确认后,工具会直接获取内容并通过 AI 模型进行处理。
该工具会自动:
- 在必要时将 HTML 转换为文本
- 处理 GitHub blob URL(将其转换为 raw URL)
- 将 HTTP URL 升级为 HTTPS 以提高安全性
- 支持 markdown 的内容协商(显著减少 token 使用)
用法:
web_fetch(url="https://example.com", prompt="Summarize the main points of this article")指定格式:
web_fetch(url="https://example.com", prompt="Get the raw content", format="markdown")web_fetch 示例
总结单篇文章:
web_fetch(url="https://example.com/news/latest", prompt="Can you summarize the main points of this article?")提取特定信息:
web_fetch(url="https://arxiv.org/abs/2401.0001", prompt="What are the key findings and methodology described in this paper?")分析 GitHub 文档:
web_fetch(url="https://github.com/QwenLM/Qwen/blob/main/README.md", prompt="What are the installation steps and main features?")获取 markdown 内容(适用于支持 Markdown for Agents 的服务器):
web_fetch(url="https://developers.cloudflare.com/fundamentals/reference/markdown-for-agents/", prompt="Extract the key information", format="markdown")重要说明
- 单次 URL 处理:
web_fetch一次只处理一个 URL。要分析多个 URL,请分别调用该工具。 - URL 格式: 该工具会自动将 HTTP URL 升级为 HTTPS,并将 GitHub blob URL 转换为 raw 格式,以获得更好的内容访问效果。
- 内容协商: 该工具支持“Markdown for Agents”内容协商。当使用
format="auto"(默认)时,它会发送Accept: text/markdown, text/html;q=0.9, text/plain;q=0.8, */*;q=0.1,允许支持 markdown 的服务器直接返回 markdown 而不是 HTML。低优先级的*/*回退使得仅返回 JSON 的 API 和其他非文本端点仍然可获取。这可以将 token 消耗减少最多 80%。 - 内容处理: 该工具直接获取内容并通过 AI 模型进行处理。当服务器返回 HTML 时,会将其转换为可读的文本格式。当服务器返回 markdown、纯文本或其他回退内容类型(如 JSON)时,则直接使用原内容。
- 输出质量: 输出的质量取决于提示词指令的清晰度。
- MCP 工具: 如果有 MCP 提供的 web 获取工具可用(名称以“mcp__”开头),建议优先使用该工具,因为它可能限制更少。
Markdown for Agents 支持
Qwen Code 的 web_fetch 工具实现了对 Cloudflare 的 Markdown for Agents 规范的支持。该特性允许网站直接向 AI 代理提供 markdown 内容,相比解析 HTML 可显著减少 token 消耗。
工作原理
format参数仅控制发送给服务器的Accept头部(不影响输出格式):format="auto":发送Accept: text/markdown, text/html;q=0.9, text/plain;q=0.8, */*;q=0.1format="markdown":发送Accept: text/markdown, */*;q=0.1format="html":发送Accept: text/html, */*;q=0.1format="text":发送Accept: text/plain, */*;q=0.1
- 如果服务器支持 markdown,它会返回
Content-Type: text/markdown - 工具直接使用 markdown 或纯文本内容,无需转换
- 如果服务器返回 HTML,则将其转换为可读的文本格式供 LLM 处理;markdown、纯文本以及回退内容类型(如 JSON)则直接使用
- 所有内容在交由 AI 模型处理前都归一化为文本
优势
- token 效率: markdown 内容通常比等效的 HTML 少消耗 80% 的 token
- 更好的结构: markdown 保留了语义结构(标题、列表等)
- 向后兼容: 适用于所有网站,对支持服务器提供增强体验
支持 markdown 的示例服务器
- Cloudflare 开发者文档
- Cloudflare 博客
- 任何使用 Cloudflare “Markdown for Agents” 特性的网站
Last updated on