Skip to content

Claude 开发者平台高级工具使用功能介绍

概述

Anthropic 发布了三个测试版功能,使 Claude 能够更高效地动态发现、学习和执行工具:

  • 工具搜索工具 – 允许 Claude 按需发现工具,无需预先加载所有定义
  • 编程式工具调用 – 使 Claude 能够通过代码而非顺序 API 调用来编排工具
  • 工具使用示例 – 提供超出模式定义的具体使用模式

工具搜索工具

问题

大型工具库会消耗大量 token。一个五服务器配置(GitHub、Slack、Sentry、Grafana、Splunk)在开始任何对话之前总共需要约 55K token。该功能指出,在 Anthropic 的规模下,"工具定义在优化前消耗 134K token"。

工具选择错误频繁发生,尤其是名称相似的工具,如 notification-send-usernotification-send-channel

解决方案

工具搜索工具无需预先加载所有工具定义,而是按需发现相关工具。根据文档,这可以实现"在保持访问完整工具库的同时,将 token 使用量减少 85%"。

内部测试显示准确率提升:Opus 4 从 49% 提升到 74%,Opus 4.5 从 79.5% 提升到 88.1%。

实现

工具标记 defer_loading: true 以启用按需发现:

json
{
  "tools": [
    {"type": "tool_search_tool_regex_20251119", "name": "tool_search_tool_regex"},
    {
      "name": "github.createPullRequest",
      "description": "Create a pull request",
      "defer_loading": true
    }
  ]
}

对于 MCP 服务器,可以延迟加载整个服务器,同时保持高频使用工具处于加载状态。

使用场景

适用于:

  • 工具定义消耗 >10K token
  • 工具选择准确率问题
  • 具有多个服务器的 MCP 系统
  • 可用工具 10 个以上

不太适用于:

  • 小型库(<10 个工具)
  • 每个会话频繁使用的工具
  • 紧凑的工具定义

编程式工具调用

问题

传统工具调用存在两个瓶颈:

  1. 上下文污染 – 中间结果不必要地累积。分析 10MB 日志文件中的错误模式会将整个文件加载到上下文中,尽管只需要摘要。

  2. 推理开销 – 每次工具调用都需要完整的模型推理过程。一个五工具工作流意味着五次独立推理加上手动结果综合。

解决方案

Claude 编写 Python 代码来编排工具、处理输出并控制进入其上下文的内容。代码在沙箱环境中执行,只有最终结果对模型可见。

示例用例:查找超出 Q3 差旅预算的团队成员。

传统方法:获取 20 名团队成员 → 获取每人的 50-100 条费用项目(20 次调用)→ 获取预算 → 所有 2,000+ 条项目进入上下文 → Claude 手动求和比较。

使用编程式工具调用:Claude 编写代码并行获取数据、本地过滤,仅返回超出限额的 2-3 人。

效率提升

  • Token 节省:减少 37%(复杂任务从 43,588 降至 27,297 token)
  • 延迟:通过在一个代码块中编排 20+ 次调用,消除 19+ 次推理过程
  • 准确率:知识检索从 25.6% 提升到 28.5%;GIA 基准从 46.5% 提升到 51.2%

实现

步骤 1 – 将工具标记为可从代码调用:

json
{
  "tools": [
    {"type": "code_execution_20250825", "name": "code_execution"},
    {
      "name": "get_team_members",
      "allowed_callers": ["code_execution_20250825"]
    }
  ]
}

步骤 2 – Claude 生成 Python 编排代码

步骤 3 – 工具在代码执行环境内执行,而非 Claude 的上下文

步骤 4 – 仅最终输出返回给 Claude

使用场景

最适用于:

  • 需要聚合的大型数据集
  • 多步工作流(3+ 次依赖调用)
  • 在 Claude 查看之前过滤/转换结果
  • 跨多个项目的并行操作

不太适用于:

  • 单工具调用
  • 需要 Claude 查看所有中间结果的任务
  • 响应较小的快速查询

工具使用示例

问题

JSON Schema 定义结构有效性,但无法表达使用模式:何时包含可选参数、哪些组合有意义,或 API 约定。

示例:具有必需 title 字段和多个可选嵌套字段的支持工单 API 会留下未解答的问题:

  • 日期格式:"2024-11-06"、"Nov 6, 2024" 还是 ISO 8601?
  • ID 约定:UUID、"USR-12345" 还是 "12345"?
  • 何时填充嵌套结构?
  • escalation.levelpriority 之间的关系?

解决方案

工具使用示例展示具体使用模式:

json
{
  "name": "create_ticket",
  "input_examples": [
    {
      "title": "Login page returns 500 error",
      "priority": "critical",
      "labels": ["bug", "authentication", "production"],
      "reporter": {
        "id": "USR-12345",
        "name": "Jane Smith",
        "contact": {"email": "jane@acme.com", "phone": "+1-555-0123"}
      },
      "due_date": "2024-11-06",
      "escalation": {"level": 2, "notify_manager": true, "sla_hours": 4}
    },
    {
      "title": "Add dark mode support",
      "labels": ["feature-request", "ui"],
      "reporter": {"id": "USR-67890", "name": "Alex Chen"}
    },
    {"title": "Update API documentation"}
  ]
}

内部测试显示,复杂参数处理的准确率从 72% 提升到 90%。

使用场景

最适用于:

  • 具有非明显模式的复杂嵌套结构
  • 具有条件包含的多个可选参数
  • 特定领域的 API 约定
  • 需要澄清的相似工具

不太适用于:

  • 简单的单参数工具
  • 标准格式(URL、电子邮件)
  • 更适合通过模式约束处理的验证

最佳实践

策略性分层使用功能

从最大的瓶颈开始:

  • 工具定义导致的上下文膨胀 → 工具搜索工具
  • 大型中间结果 → 编程式工具调用
  • 参数错误 → 工具使用示例

根据需要叠加其他功能;它们是互补的。

工具搜索设置

使用清晰、描述性的工具名称和描述:

json
{
  "name": "search_customer_orders",
  "description": "Search for customer orders by date range, status, or total amount. Returns order details including items, shipping, and payment info."
}

保持三到五个最常用工具始终加载;延迟加载其余工具。

编程式工具调用设置

清晰记录返回格式,帮助 Claude 编写正确的解析逻辑:

json
{
  "name": "get_orders",
  "description": "Retrieve orders for a customer. Returns: List of order objects with id, total (float), status, items array, and created_at timestamp"
}

选择支持并行运行且幂等的工具。

工具使用示例设置

精心设计展示最小、部分和完整规范模式的真实数据示例。保持示例简洁(每个工具 1-5 个),专注于实际的歧义点。

入门

使用测试版 header 启用功能:

python
client.beta.messages.create(
    betas=["advanced-tool-use-2025-11-20"],
    model="claude-sonnet-4-5-20250929",
    max_tokens=4096,
    tools=[
        {"type": "tool_search_tool_regex_20251119", "name": "tool_search_tool_regex"},
        {"type": "code_execution_20250825", "name": "code_execution"},
    ]
)

详见 平台文档 获取详细指南和 cookbook。

实际应用

Claude for Excel 使用编程式工具调用读取和修改包含数千行的电子表格,而不会使模型的上下文窗口过载,展示了传统工具模式之前无法实现的实际能力。