Anthropic 在 Claude 开发者平台上推出高级工具使用:工具搜索工具、程序化工具调用和工具使用示例

Anthropic 在 Claude 开发者平台上发布了三个测试版功能——工具搜索工具、编程式工具调用和工具使用示例——旨在让 Claude 能够使用非常庞大的工具库,而不会耗尽上下文窗口。该公司表示,这些功能实现了传统工具使用模式无法实现的内部构建,包括 Claude for Excel,它使用编程式工具调用来读取和修改包含数千行的电子表格。

Anthropic 正在解决的问题

Anthropic 将目标定义为能够在数百或数千个工具之间无缝工作的智能体——一个集成 git 操作、文件操作、包管理器、测试框架和部署管道的 IDE 助手,或者一个同时连接 Slack、GitHub、Google Drive、Jira、公司数据库以及数十个 MCP 服务器的运维协调器。

目前有三重限制阻碍了这一目标:

  • 工具定义导致的上下文膨胀。 工具结果和定义在智能体读取请求之前就可能消耗 50,000+ token。智能体应该按需发现和加载工具,只保留与当前任务相关的内容。
  • 自然语言工具调用带来的推理开销。 每次调用都需要一次完整的推理过程,中间结果无论是否有用都会堆积在上下文中。代码天然适合循环、条件判断和数据转换等编排逻辑。
  • 使用知识的模式限制。 JSON 模式定义了结构上有效的内容,但无法表达何时包含可选参数、哪些组合有意义,或 API 期望的约定。

Tool Search Tool:按需工具发现

Tool Search Tool 让 Claude 使用搜索工具访问数千个工具,而不会耗尽上下文窗口。Claude 不会预先加载所有工具定义,而是只看到当前任务实际需要的工具。

预先加载所有工具的开销

Anthropic 用五服务器 MCP 配置说明了这个问题:

服务器 工具数 约计 tokens
GitHub 35 ~26K
Slack 11 ~21K
Sentry 5 ~3K
Grafana 5 ~3K
Splunk 2 ~2K

对话尚未开始,58 个工具就已消耗约 55K tokens。加入 Jira 等服务器——仅 Jira 就占用约 17K tokens——开销将推高至 100K+ tokens。Anthropic 表示,在优化之前,工具定义曾消耗 134K tokens。

Token 成本并非唯一问题。Anthropic 指出,最常见的失败是工具选择错误和参数不正确,尤其是当工具名称相似时,例如 notification-send-user 与 notification-send-channel。

Tool Search Tool 能保留多少上下文

Anthropic 报告称,与 Claude 的传统方法相比,Tool Search Tool 保留了 191,300 tokens 的上下文,而传统方法为 122,800 tokens。

传统方法:

  • 所有工具定义预先加载(50+ 个 MCP 工具约 72K tokens)
  • 对话历史和系统提示词争夺剩余空间
  • 总上下文消耗:开始任何工作前约 77K tokens

使用 Tool Search Tool:

  • 仅预先加载 Tool Search Tool(约 500 tokens)
  • 按需发现工具(3–5 个相关工具,约 3K tokens)
  • 总上下文消耗:约 8.7K tokens,保留 95% 的上下文窗口

Anthropic 将其描述为减少 85% 的 token 使用量,同时保持对完整工具库的访问。

MCP 评估中的准确率提升

Anthropic 报告称,在处理大型工具库时,MCP 评估的准确率显著提升:

  • Opus 4:从 49% 提升至 74%
  • Opus 4.5:从 79.5% 提升至 88.1%

Tool Search Tool 的工作原理

您将所有工具定义提供给 API,但将工具标记为 defer_loading: true,以便按需发现它们。延迟加载的工具最初不会加载到 Claude 的上下文中。Claude 只能看到 Tool Search Tool 本身以及标记为 defer_loading: false 的工具——即最关键、最常用的工具。

当 Claude 需要特定功能时,它会搜索相关工具。Tool Search Tool 返回匹配工具的引用,然后在 Claude 的上下文中展开为完整定义。例如,如果 Claude 需要与 GitHub 交互,它会搜索“github”,并且只加载 github.createPullRequest 和 github.listIssues — 而不会加载来自 Slack、Jira 和 Google Drive 的其他 50 多个工具。

对于 MCP 服务器,您可以延迟加载整个服务器,同时保留特定的高频工具。

Claude Developer Platform 提供开箱即用的基于正则表达式和基于 BM25 的搜索工具,您也可以使用嵌入或其他策略实现自定义搜索工具。

提示缓存说明: Tool Search Tool 不会破坏提示缓存,因为延迟加载的工具完全不会包含在初始提示中。它们只在 Claude 搜索之后才被添加到上下文中,因此系统提示和核心工具定义保持可缓存。

何时使用 Tool Search Tool 最划算

Anthropic 指出,该功能在工具调用之前增加了一个搜索步骤,因此当上下文节省和准确性提升超过额外延迟时,它能带来最佳回报。

适用场景:

  • 工具定义消耗超过 10K tokens
  • 遇到工具选择准确性问题
  • 正在构建使用多个服务器的 MCP 系统
  • 有 10 个以上可用工具

收益较小时:

  • 工具库较小(少于 10 个工具)
  • 所有工具在每次会话中都被频繁使用
  • 工具定义紧凑

Programmatic Tool Calling: orchestrating tools from code

Programmatic Tool Calling allows Claude to invoke tools in a code execution environment, reducing the impact on the model's context window. Rather than requesting tools one at a time with each result returned to context, Claude writes code that calls multiple tools, processes their outputs, and controls what information actually enters its context window.

The two problems with traditional tool calling

Anthropic identifies two fundamental issues as workflows grow more complex:

  • Context pollution from intermediate results. When Claude analyzes a 10MB log file for error patterns, the entire file enters its context window even though Claude only needs a summary of error frequencies. When fetching customer data across multiple tables, every record accumulates in context regardless of relevance.
  • Inference overhead and manual synthesis. Each tool call requires a full model inference pass. After receiving results, Claude must

Sources