本页面是 Anthropic 所提供工具的参考,以及您可以在任何工具定义上设置的可选属性的参考。有关工具使用的概念性介绍,请参阅使用 Claude 进行工具使用。有关在您的应用程序中实现工具使用的指导,请参阅定义工具。
Anthropic 提供两种类型的工具:在 Anthropic 基础设施上执行的服务器工具(server tools),以及由 Anthropic 定义架构但由您的应用程序处理执行的客户端工具(client tools)。这两种工具都会与任何用户定义的工具一起出现在您请求的 tools 数组中。
| 工具 | type | 执行位置 | 状态 |
|---|---|---|---|
| 网络搜索工具 | web_search_20260318web_search_20260209web_search_20250305 | 服务器 | 正式版(GA) |
| 网络抓取工具 | web_fetch_20260318web_fetch_20260309web_fetch_20260209web_fetch_20250910 | 服务器 | 正式版(GA) |
| 代码执行工具 | code_execution_20260521code_execution_20260120code_execution_20250825 | 服务器 | 正式版(GA) |
| 顾问工具 | advisor_20260301 | 服务器 | Beta:advisor-tool-2026-03-01 |
| 工具搜索工具 | tool_search_tool_regex_20251119tool_search_tool_bm25_20251119 | 服务器 | 正式版(GA) |
| MCP 连接器 | mcp_toolset | 服务器 | Beta:mcp-client-2025-11-20 |
| 记忆工具 | memory_20250818 | 客户端 | 正式版(GA) |
| Bash 工具 | bash_20250124 | 客户端 | 正式版(GA) |
| 文本编辑器工具 | text_editor_20250728text_editor_20250124 | 客户端 | 正式版(GA) |
| 计算机使用工具 | computer_20251124computer_20250124 | 客户端 | Beta:computer-use-2025-11-24computer-use-2025-01-24 |
有关模型兼容性,请参阅各工具的页面。支持的模型因工具和工具版本而异。
工具搜索的 type 值也接受不带日期的别名:
tool_search_tool_regex 和 tool_search_tool_bm25。这些别名会解析为
最新的带日期版本。
大多数 Anthropic 提供的工具在 type 字符串中带有 _YYYYMMDD 后缀。当工具的行为、架构或模型支持发生变化时,会发布新版本。旧版本仍然可用,以便现有集成继续正常工作。
当一个工具有多个活跃版本时,它们之间的关系各不相同:
web_search_20260209 和 web_fetch_20260209 在其前代版本的基础上增加了动态内容过滤功能;web_fetch_20260309 增加了缓存绕过选项;web_search_20260318 和 web_fetch_20260318 增加了响应包含控制功能。code_execution_20260120 增加了在沙箱内进行程序化工具调用的功能;code_execution_20260521 在工具描述中披露了每个单元格的时间限制。在每种情况下,新旧版本都是当前版本;您使用哪个版本取决于您是否需要新功能。text_editor_20250728 适用于 Claude 4 模型,text_editor_20250124 适用于更早的模型。您使用的版本取决于您所针对的模型。tool_search_tool_regex_20251119 和 tool_search_tool_bm25_20251119 是同时发布的两种搜索算法。两者互不取代。code_execution_20250522 仅支持 Python。code_execution_20250825 增加了 Bash 和文件操作功能。mcp_toolset 类型不使用日期版本控制;版本控制改为通过 anthropic-beta 标头传递。
tools 数组中的每个工具(包括用户定义的工具)都接受可选属性,这些属性控制工具的加载方式、谁可以调用它以及如何验证其输入。这些属性可以组合使用:您可以在同一个工具上同时设置 defer_loading、cache_control 和 strict。
| 属性 | 用途 | 适用范围 | 详细指南 |
|---|---|---|---|
cache_control | 在此工具定义处设置提示缓存断点 | 所有工具 | 提示缓存 |
strict | 保证对工具名称和输入进行架构验证 | 除 mcp_toolset 外的所有工具 | 严格工具使用 |
defer_loading | 将该工具从初始系统提示中排除;当工具搜索为其返回 tool_reference 时按需加载 | 所有工具(对于 mcp_toolset,请参阅工具配置) | 工具搜索工具 |
allowed_callers | 限制哪些调用方可以调用该工具 | 除 mcp_toolset 外的所有工具 | 程序化工具调用 |
input_examples | 提供示例输入对象,帮助 Claude 理解如何调用该工具 | 用户定义的工具和 Anthropic 架构的客户端工具。不适用于服务器工具。 | 定义工具 |
eager_input_streaming | 为此工具启用细粒度输入流式传输(true)或保持标准缓冲流式传输(false) | 仅限用户定义的工具 | 细粒度工具流式传输 |
allowed_callers 的取值allowed_callers 是一个数组,可接受以下值的任意组合:
| 值 | 含义 |
|---|---|
"direct" | 模型可以在 tool_use 块中直接调用此工具。如果省略 allowed_callers,这是默认值。 |
"code_execution_20260120" | 在 code_execution_20260120 或更高版本沙箱内运行的代码可以调用此工具。 |
allowed_callers 中同时接受 "code_execution_20260120" 和 "code_execution_20260521",且两者可互换:使用任一代码执行工具版本的请求都满足列出任一调用方的工具的要求。无论请求声明的是哪个版本,响应块始终将调用方标记为 code_execution_20260120。
从数组中省略 "direct"(例如 "allowed_callers": ["code_execution_20260120"])会引导 Claude 仅从代码执行内部调用该工具。响应的 tool_use 块包含一个 caller 字段,用于标识是哪个调用方调用了该工具。有关完整说明(包括 caller 响应结构和错误行为),请参阅程序化工具调用。
defer_loading 与提示缓存设置了 defer_loading: true 的工具会在计算缓存键之前从渲染的工具部分中剥离。它们根本不会出现在系统提示前缀中。当工具搜索发现一个延迟加载的工具并为其返回 tool_reference 时,该工具的完整定义会在对话正文中的该位置内联展开,而不是在前缀中。
这意味着 defer_loading: true 会保留您的提示缓存。您可以向请求添加延迟加载的工具而不会使现有缓存条目失效,并且缓存在发现该工具的轮次和调用该工具的轮次之间保持有效。
有关如何将 defer_loading 与 cache_control 断点结合使用,请参阅工具搜索工具的提示缓存指南。
Was this page helpful?