文章

【Anthropic】Claude 代理工具高级特性:工具搜索、编程调用、使用示例

  1. 问题与动机
  2. 特性一:工具搜索(Tool Search)
  3. 特性二:编程工具调用(Programmatic Tool Calling)
  4. 特性三:工具使用示例(Tool Use Examples)
  5. 分层策略与实施
  6. 可用性与接入
  7. 核心思想

原文:Advanced Tool Use on the Claude Developer Platform

问题与动机

在构建大规模 AI 代理系统时,工具定义会消耗大量 token。传统的「一次性加载所有工具」模式下,工具定义可能在代理读取实际请求之前就已吃掉 50,000+ token,导致:

  • 上下文窗口被浪费
  • 推理成本和延迟增加
  • 模型在复杂工具协调任务中表现下降

Anthropic 针对这些瓶颈发布了三项测试版特性。

特性一:工具搜索(Tool Search)

允许 Claude 动态发现工具,而非一次加载全部定义。

工作机制:

在工具定义中标记 defer_loading: true,该工具在代理真正需要时才被加载。Claude 可以通过搜索接口查询和发现可用工具。

性能收益:

  • Token 消耗减少 ~85%:在测试场景中从约 77K token 下降到 8.7K token
  • 准确率显著提升:Opus 4.5 在知识检索任务中从 79.5% 提升到 88.1%
  • 与缓存兼容:可与提示缓存(prompt caching)配合使用,进一步提升成本效率

特性二:编程工具调用(Programmatic Tool Calling)

传统工具使用需要多轮 API 调用;此特性让 Claude 通过代码执行来编排工具,中间结果不进入 Claude 的上下文窗口。

工作机制:

代理在执行环境中直接编排多个工具调用,控制流程和条件分支,类似于编写脚本。

性能收益:

  • Token 消耗减少 37%:在复杂研究任务中
  • 消除多轮推理:对于多步骤工作流至关重要
  • 准确率改进:知识检索准确率从 25.6% 提升到 28.5%
  • 支持并行执行:多个工具可并行调用,而非顺序执行

典型场景:

预算合规性检查需要处理数千条支出行项,传统方法会将所有行项塞入上下文,导致推理变差;编程调用则将逻辑留在执行环境中,模型只关注决策和控制。

特性三:工具使用示例(Tool Use Examples)

超越 JSON Schema 定义,提供具体的使用样板,帮助模型理解:

  • 格式约定
  • 参数关联关系
  • 可选字段的包含方式
  • 实际调用模式

性能收益:

  • 准确率从 72% 提升到 90%:在复杂参数处理的内部测试中

这看似简单,但能显著减少模型的「猜测成本」,特别是在字段组合和边界情况处理上。

分层策略与实施

三项特性的最佳使用方式是分层应用

  1. 先诊断性能瓶颈(是 token 消耗、推理轮数还是格式理解?)
  2. 针对最严重的瓶颈优先应用特性(例如工具众多则先用工具搜索)
  3. 根据需要补充其他特性

避免盲目全量启用,应结合具体场景灵活组合。

可用性与接入

  • 发布状态:测试版(Beta)
  • 接入方式:通过 Claude Developer Platform API,添加请求头 betas=["advanced-tool-use-2025-11-20"]
  • 文档:Developer Platform 官方文档和 GitHub cookbook 提供代码示例

核心思想

Anthropic 这三项特性的本质是突破 agent 工具使用的根本瓶颈

  • 工具搜索解决「定义爆炸」——用惰性加载替代全量加载,削弱工具数量的诅咒
  • 编程调用解决「推理碎片化」——把复杂协调从模型推理转移到确定性执行环境,节省推理成本
  • 使用示例解决「理解歧义」——通过具体样板而非抽象定义消除格式猜测

关键洞察是这三个瓶颈相互独立且都很关键。不是”选一个”而是”依症状组合”。对于工具多、任务复杂、格式复杂的真实 agent 场景,往往需要三个特性同时发力。

Anthropic 特意强调「分层策略」而非一刀切,反映了对工程现实的理解:不同 agent 的主要瓶颈不同,盲目优化错误的维度比不优化还糟。这套思路对设计任何复杂系统都有参考价值。

本文由作者按照 CC BY 4.0 进行授权