Anthropic《使用智能体编写高效的智能体工具》指南

TL;DR

Anthropic 发布了一份分步指南,展示了如何通过模型上下文协议(MCP)为 LLM 智能体创建和改进工具,使用 Claude Code 进行原型设计、评估和自动优化工具实现。该指南提炼了五个实用原则——工具选择、命名空间、有意义的上下文返回、令牌高效响应和提示工程规范——这些原则能持续提升智能体性能。


指南概述

该指南解释了开发者如何与智能体协作,构建高质量工具,从而扩展智能体 AI 系统的有效覆盖面。它涵盖了三个工作流程阶段——原型构建、全面评估和智能体辅助优化——并附有一组从 Anthropic 内部实验中提炼的简洁设计原则。


1. 构建原型

关键操作

  • 搭建本地 MCP 服务器或桌面扩展(DXT),并通过 Settings→Developer/Extensions 菜单将其连接到 Claude Code(claude mcp add <name> <command> …)或 Claude 桌面应用。
  • 提供适合 LLM 的文档(例如 llms.txt 文件),用于工具依赖的任何库、API 或 MCP SDK。
  • 手动测试并收集用户反馈,以在正式评估前发现粗糙之处。

重要性

动手原型设计能揭示智能体认为符合人体工学的工具接口,使开发者能够在投入全面评估之前进行迭代。


2. 运行系统性评估

生成现实任务

  • 使用 Claude Code 生成数十个基于真实场景的提示-响应对(例如,多步骤会议安排、日志分析、留存优惠生成)。
  • 避免过于简单的提示;强任务应要求多次工具调用和真实数据源。

执行评估

  • 实现一个智能体循环(while 循环),在每个任务中交替进行 LLM API 调用和工具调用。
  • 在系统提示中包含推理和反馈块,以便智能体在工具调用前发出思维链(CoT)。
  • 在 Claude 中启用交错思考,自动呈现内部推理。

收集的指标

  • 针对可验证的基准事实的顶级准确率。
  • 运行时间、工具调用次数、总令牌消耗和错误率。
  • 工具调用模式的分布,以识别冗余调用或分页需求。

使用智能体分析结果

  • 审查智能体的 CoT 和反馈,以定位模糊的描述、低效的实现或令人困惑的模式。
  • 检查原始记录(工具调用和响应)以发现隐藏的失败模式。
  • 使用观察到的错误模式(例如,错误的参数值)来优化工具规范。

3. 与智能体协作进行优化

  • 将评估记录串联起来并馈送给 Claude Code;Claude 可以建议重构、解决不一致并生成更新的工具定义。
  • 对修订后的工具迭代重新运行评估,直到性能在保留测试集上趋于平稳。
  • Anthropic 发现,Claude 生成的优化通常超过手动编写的“专家”实现。

4. 编写高效工具的原则

4.1 选择合适的工具

  • 优先选择高影响、任务特定的工具,而不是现有 API 的薄封装。
  • 设计只返回智能体所需数据的工具(例如,search_contacts 而不是 list_contacts)。
  • 尽可能将相关操作合并到一个工具中(例如,schedule_event 同时查找可用性并创建事件)。

4.2 清晰命名工具

  • 使用一致的前缀或后缀(例如,asana_search、jira_search)来划分功能域。
  • 正确的命名空间减少了加载的工具描述数量,降低了上下文负载,并最大限度地减少了意外误用。

4.3 返回有意义的上下文

  • 发出高信号字段(name、image_url、file_type),而不是不透明的标识符(uuid)。
  • 当需要技术 ID 时,提供人类可读的别名或简单的数字索引。
  • 提供 response_format 枚举(例如,concise vs detailed),以便智能体根据需要请求轻量或丰富的有效负载。

4.4 优化令牌效率

  • 实现分页、范围选择、过滤或截断,并设置合理的默认值(Claude Code 将工具响应限制为 25k 令牌)。
  • 编写可操作而非晦涩的错误消息,引导智能体获得修正后的输入。
  • 示例:与冗长响应相比,截断响应可节省约 ⅔ 的令牌,同时仍能支持后续操作。

4.5 对工具描述进行提示工程

  • 像向新员工介绍情况一样编写描述:明确参数名称、清晰的输入/输出契约和具体示例。
  • 避免使用模糊的名称(user),选择精确的名称(user_id)。
  • 微小的措辞调整可以带来巨大的性能提升;Claude Sonnet 3.5 在精确描述优化后在 SWE-bench 上取得了最先进的结果。

5. 展望未来

Anthropic 强调,为智能体构建工具需要从确定性软件契约转向非确定性、以智能体为中心的设计。通过原型 → 评估 → 智能体驱动的优化迭代,开发者可以系统地发现什么让工具对 LLM 智能体“符合人体工学”。随着 MCP 协议和底层 LLM 的发展,这种以评估驱动的方法论对于保持工具生态系统与日益强大的智能体保持一致仍至关重要。


参考资料与资源

Sources