网页获取工具
网页获取工具允许Claude从指定的网页和PDF文档中检索完整内容。
网页获取工具允许Claude从指定的网页和PDF文档中检索完整内容。
网页获取工具目前处于测试阶段。要启用它,请在您的API请求中使用测试版头部web-fetch-2025-09-10
。
请使用此表单提供关于模型响应质量、API本身或文档质量的反馈。
在Claude处理不受信任的输入以及敏感数据的环境中启用网页获取工具会带来数据泄露风险。我们建议仅在受信任的环境中或处理非敏感数据时使用此工具。
为了最小化泄露风险,Claude不被允许动态构造URL。Claude只能获取用户明确提供的URL或来自先前网页搜索或网页获取结果的URL。然而,在使用此工具时仍存在应仔细考虑的剩余风险。
如果数据泄露是一个问题,请考虑:
- 完全禁用网页获取工具
- 使用
max_uses
参数限制请求数量 - 使用
allowed_domains
参数限制为已知安全域名
支持的模型
网页获取功能可用于:
- Claude Opus 4.1 (
claude-opus-4-1-20250805
) - Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Sonnet 3.7 (
claude-3-7-sonnet-20250219
) - Claude Sonnet 3.5 v2 (已弃用) (
claude-3-5-sonnet-latest
) - Claude Haiku 3.5 (
claude-3-5-haiku-latest
)
网页获取的工作原理
当您将网页获取工具添加到API请求中时:
- Claude根据提示和可用URL决定何时获取内容。
- API从指定URL检索完整的文本内容。
- 对于PDF,会执行自动文本提取。
- Claude分析获取的内容并提供带有可选引用的响应。
如何使用网页获取
在您的API请求中提供网页获取工具:
工具定义
网页获取工具支持以下参数:
最大使用次数
max_uses
参数限制执行的网页获取次数。如果Claude尝试的获取次数超过允许的次数,web_fetch_tool_result
将是一个带有max_uses_exceeded
错误代码的错误。目前没有默认限制。
域名过滤
使用域名过滤器时:
- 域名不应包含HTTP/HTTPS协议(使用
example.com
而不是https://example.com
) - 子域名会自动包含(
example.com
涵盖docs.example.com
) - 支持子路径(
example.com/blog
) - 您可以使用
allowed_domains
或blocked_domains
,但不能在同一个请求中同时使用两者。
请注意,域名中的Unicode字符可能通过同形异义字攻击创建安全漏洞,其中来自不同脚本的视觉上相似的字符可以绕过域名过滤器。例如,аmazon.com
(使用西里尔字母’а’)可能看起来与amazon.com
相同,但代表不同的域名。
配置域名允许/阻止列表时:
- 尽可能使用仅ASCII域名
- 考虑URL解析器可能以不同方式处理Unicode规范化
- 使用潜在的同形异义字变体测试您的域名过滤器
- 定期审核您的域名配置以查找可疑的Unicode字符
内容限制
max_content_tokens
参数限制将包含在上下文中的内容量。如果获取的内容超过此限制,将被截断。这有助于在获取大型文档时控制token使用量。
max_content_tokens
参数限制是近似的。实际使用的输入token数量可能会有少量变化。
引用
与始终启用引用的网页搜索不同,网页获取的引用是可选的。设置"citations": {"enabled": true}
以启用Claude引用获取文档中的特定段落。
向最终用户显示网页结果或网页结果中包含的信息时,内联引用必须在您的用户界面中清晰可见且可点击。
响应
以下是示例响应结构:
获取结果
获取结果包括:
url
:被获取的URLcontent
:包含获取内容的文档块retrieved_at
:内容被检索时的时间戳
网页获取工具缓存结果以提高性能并减少冗余请求。这意味着返回的内容可能并不总是URL上可用的最新版本。缓存行为是自动管理的,可能会随时间变化以针对不同内容类型和使用模式进行优化。
对于PDF文档,内容将作为base64编码数据返回:
错误
当网页获取工具遇到错误时,Anthropic API返回200(成功)响应,错误在响应体中表示:
这些是可能的错误代码:
invalid_input
:无效的URL格式url_too_long
:URL超过最大长度(250个字符)url_not_allowed
:URL被域名过滤规则和模型限制阻止url_not_accessible
:获取内容失败(HTTP错误)too_many_requests
:超过速率限制unsupported_content_type
:不支持的内容类型(仅支持文本和PDF)max_uses_exceeded
:超过最大网页获取工具使用次数unavailable
:发生内部错误
URL验证
出于安全原因,网页获取工具只能获取之前在对话上下文中出现过的URL。这包括:
- 用户消息中的URL
- 客户端工具结果中的URL
- 来自先前网页搜索或网页获取结果的URL
该工具无法获取Claude生成的任意URL或来自基于容器的服务器工具(代码执行、Bash等)的URL。
组合搜索和获取
网页获取与网页搜索无缝协作,实现全面的信息收集:
在此工作流程中,Claude将:
- 使用网页搜索查找相关文章
- 选择最有希望的结果
- 使用网页获取检索完整内容
- 提供带有引用的详细分析
提示缓存
网页获取与提示缓存配合使用。要启用提示缓存,请在您的请求中添加cache_control
断点。缓存的获取结果可以在对话轮次之间重复使用。
流式传输
启用流式传输时,获取事件是流的一部分,在内容检索期间会暂停:
批量请求
您可以在消息批处理API中包含网页获取工具。通过消息批处理API的网页获取工具调用与常规消息API请求中的定价相同。
使用和定价
Web fetch usage has no additional charges beyond standard token costs:
The web fetch tool is available on the Anthropic API at no additional cost. You only pay standard token costs for the fetched content that becomes part of your conversation context.
To protect against inadvertently fetching large content that would consume excessive tokens, use the max_content_tokens
parameter to set appropriate limits based on your use case and budget considerations.
Example token usage for typical content:
- Average web page (10KB): ~2,500 tokens
- Large documentation page (100KB): ~25,000 tokens
- Research paper PDF (500KB): ~125,000 tokens