前言
当你用 模型上下文协议(MCP) 给 LLM 代理接入工具时,是不是常遇到这些问题?
- • 工具写了,但代理不会用;
- • 性能难衡量,不知道改哪里;
- • 做了很多功能,反而让代理更混乱。
今天,我们想和你聊聊 Anthropic 内部的实战经验——如何从"原型搭建"到"评估优化",一步步让工具更符合代理的"使用习惯"。这些方法来自我们用 Claude Code 优化内部工具的过程,帮我们把工具的有效率提升了 40%,其中很多案例都是我们踩过的"深坑",希望能帮你少走弯路。
一、先搞懂:工具不是"API 包装器",是"代理与世界的桥梁"
在传统软件中,getWeather("NYC") 是确定性的——输入相同,输出一定相同。但 LLM 代理是"非确定性"的:当用户问"今天要带伞吗?“,代理可能调用天气工具,可能用常识回答,甚至可能问"你在哪?”。
工具的本质,是"确定性系统(工具)“与"非确定性代理"之间的契约。好的工具,要让代理"想用、会用、用得有效"。比如我们内部的"日程安排工具”,不是简单包装"创建事件"的 API,而是整合了"查空闲时间"“订会议室”"附上次会议笔记"三个功能 —— LLM 代理用一次调用就能完成任务,比拆成三个工具高效得多。这也是我们常说的:“对代理友好的工具,对人类也往往很直观”。
二、从原型到评估:一套可复制的工具优化流程
1. 快速搭原型:别等"完美",先试"能用"
我们试过很多次:一开始想把工具做"全面",结果反而不知道哪里出问题。后来改成"快速原型+本地测试"的模式,效率提升了 50%。
具体步骤:
- • 用 Claude Code 生成初版:如果你用 Claude Code 写工具,记得提供工具依赖的软件库、API 或 SDK 文档(比如 MCP SDK 的官方文档)。我们通常会用官方文档中的
llms.txt文件(比如我们的 API 文档),因为它是扁平结构,更适合 LLM 读取。 - • 封装成本地 MCP 服务器:将工具封装在 本地 MCP 服务器 或 桌面端扩展(DXT) 中,然后连接到 Claude Code 或 Claude 桌面应用测试。连接方法很简单:用
claude mcp add <name> <command> [args...]命令添加本地 MCP 服务器到 Claude Code,或通过"设置 > 开发者"添加到 Claude 桌面应用。 - • 重点测"代理会不会调用":比如我们做"通讯录工具"时,一开始写了
list_contacts(返回所有联系人),结果代理每次都要翻几百条,后来改成search_contacts(按姓名/部门筛选),调用率直接提升了 60%——这就是"工具要适配代理习惯"的真实案例。
二、做评估:用数据帮你找"优化方向"
没有评估的优化,都是"瞎猜"。我们内部的评估流程,核心是"三个指标":
- • 准确率:代理用工具完成任务的成功率(比如"安排会议"的正确率);
- • 调用效率:完成任务需要调用多少次工具(越少越好);
- • token 消耗:工具返回的内容占多少上下文(越少越好)。
1. 生成真实任务
我们会收集 50-100 个真实任务,这些任务都来自我们内部的工作流,以下是一些优秀任务的示例:
- • 安排下周与 Jane 的会议,讨论我们最新的 Acme 公司项目。附上上次项目规划会议的笔记,并预订一个会议室。
- • 客户 ID 9182 报告称,他们的一次购买尝试被扣款三次。查找所有相关日志条目,并确定是否有其他客户受到相同问题的影响。
- • 客户 Sarah Chen 刚刚提交了取消请求。准备一份挽留报价。确定:(1)她离开的原因,(2)哪类挽留报价最具吸引力,以及(3)在提出报价前应注意的任何风险因素。
以下是一些较弱的任务示例:
- • 下周安排与 jane@acme.corp 的会议。
- • 在支付日志中搜索
purchase_complete和customer_id=9182。 - • 查找客户 ID 45892 提交的取消请求。
这些任务的特点是"有明确的验证标准"——比如"查扣款记录"的验证标准是"找到所有相关日志条目,并列出受影响的客户 ID",这样我们就能用自动化脚本验证代理的响应是否正确。
2. 自动化运行评估
我们用 API 自动化运行评估,流程很简单:
- • 为每个任务设置一个循环(交替调用 LLM API 和工具);
- • 让代理输出结构化响应(用于验证)和推理过程(用于分析);
- • 收集数据:比如我们做"日志查询工具"时,发现错误率很高,原因是"参数命名太模糊"(原来叫
log,后来改成log_type),改了之后错误率下降了 35%。
3. 分析结果:从"代理的困惑"中找问题
我们会仔细分析代理的推理过程(思维链,CoT),看看它在哪里卡壳。比如我们推出 Claude 的 网页搜索工具 时,发现 Claude 会不必要地在query参数后附加2025,导致搜索结果偏差。我们通过改进工具描述(明确说明query参数不需要加年份),解决了这个问题,性能提升了 20%。
三、和代理协作:让它帮你改工具
我们试过让 Claude Code 分析评估结果,自动优化工具——比如它会帮我们把"分散的三个工具"整合成"一个综合工具",或者修改工具描述(比如把"user"改成"user_id",避免歧义)。
举个例子:我们做"Asana 工具"时,一开始的描述是"用于管理 Asana 项目",后来 Claude 建议改成"用于搜索 Asana 项目、创建任务、添加评论",更明确的功能描述让代理的调用率提升了 25%。更神奇的是,Claude 还能帮我们保持工具实现和描述的一致性——比如它会检查工具的输入参数是否和描述中的一致,避免"描述写的是user_id,但实现用的是user"的问题。
四、写高效工具的 5 个原则(来自 Anthropic 的踩坑总结)
1. 工具要"少而精",别贪多
我们试过给代理加 20 个工具,结果它反而不会用了。后来改成"聚焦高频率任务"(比如"日程安排"“日志查询”“客户 Context 汇总”),效率提升了 40%。原则:与其做 10 个"能用"的工具,不如做 3 个"好用"的
以下是一些示例:
- • 与其实现
list_users、list_events和create_event工具,不如考虑实现一个schedule_event工具,该工具能查找可用时间并安排事件。 - • 与其实现
read_logs工具,不如考虑实现一个search_logs工具,该工具仅返回相关日志行及其周围上下文。 - • 与其实现
get_customer_by_id、list_transactions和list_notes工具,不如实现一个get_customer_context工具,该工具能一次性汇总客户最近且相关的所有信息。
2. 命名要"明确",别让代理猜
代理对"命名"很敏感。比如我们做"日志查询工具"时,一开始的参数叫log,结果代理有时候传"日志类型",有时候传"日志内容",错误率很高。后来改成log_type(明确是日志类型),错误率下降了 35%。再比如,我们做"用户工具"时,把user改成user_id,避免了"用户"和"用户 ID"的歧义,调用率提升了 20%。
你的 AI 代理可能会访问数十个 MCP 服务器和数百种不同的工具——包括其他开发者提供的工具。当工具功能重叠或目的模糊时,代理可能会混淆该使用哪些工具。
命名空间化(将相关工具归入共同前缀下)有助于区分大量工具;MCP 客户端有时会默认这样做。例如,按服务(如 asana_search、jira_search)和按资源(如 asana_projects_search、asana_users_search)对工具进行命名空间划分,可以帮助代理在合适的时间选择正确的工具。
我们发现,选择前缀式还是后缀式的命名空间化方案,会对我们的工具使用评估产生显著影响。这种影响因 LLM 而异,我们鼓励你根据自己的评估选择合适的命名方案。
代理可能会调用错误的工具、用错误的参数调用正确的工具、调用过少的工具,或错误地处理工具响应。通过选择性地实现那些名称能反映任务自然细分的工具,你既能减少加载到代理上下文中的工具数量和描述数量,又能将部分代理计算负担从代理上下文转移到工具调用本身。这降低了代理整体犯错的风险。
3. 返回的内容要"有意义",别给垃圾
在设计工具实现时,应谨慎地只向代理返回高信噪比的信息。这意味着工具应优先考虑信息的上下文相关性,而非过度追求灵活性。同时,应摒弃低级别的技术标识符(例如:uuid、256px_image_url、mime_type),因为这些标识符通常难以直接指导代理的下一步行动。相比之下,像 name、image_url 和 file_type 这样的字段,更能直接地帮助代理理解并执行后续操作。
普遍而言,代理更容易成功地处理自然语言的名称、术语或标识符,而不是晦涩难懂的标识符。实践表明,将任意的字母数字 UUID 转换为更具语义且可解释的语言(甚至设计一套全新的 ID 方案),能够显著提高 Claude 在检索任务中的精度,有效减少模型产生幻觉的几率。
此外,在某些场景下,代理可能需要同时与自然语言和技术标识符进行交互,例如,为了触发下游的工具调用。一个具体的例子是:search_user(name='jane') → send_message(id=12345)。为了支持这种需求,可以在工具中引入一个简单的 response_format 枚举参数,允许代理自主选择工具返回的信息粒度,例如 “concise”(简洁)或 “detailed”(详细)的响应。
你可以添加更多格式以获得更大的灵活性,类似于 GraphQL,你可以选择想要接收的确切信息片段。以下是一个用于控制工具响应详细程度的 ResponseFormat 枚举示例:
enum ResponseFormat {
DETAILED = "detailed",
CONCISE = "concise"
}
这是一个详细工具响应的示例(206 个 tokens):

这是一个简洁工具响应的示例(72 个 tokens):

即使是你的工具响应结构——例如 XML、JSON 或 Markdown——也可能对评估性能产生影响:不存在放之四海而皆准的解决方案。这是因为 LLM 是基于下一个 token 的预测进行训练的,通常对与其训练数据匹配的格式表现更好。最佳的响应结构会因任务和代理而有很大差异。我们鼓励你根据自己的评估选择最佳的响应结构。
4. 优化 token 消耗:别让工具占满上下文
我们遇到过"工具返回 10000 个 token"的情况,结果代理根本处理不了。后来我们加了"分页"“过滤”"截断"功能,比如search_logs工具支持page=1&limit=10(分页)、log_type="error"(过滤)、truncate=true(截断长内容),token 消耗减少了 70%。另外,我们还会优化工具响应的格式——比如用 JSON 格式比 XML 格式更省 token,因为 JSON 更简洁,更符合 LLM 的训练数据格式。
5. 对工具描述做提示工程:像给新人讲工具一样
工具描述是代理了解工具的"窗口",所以要写得"明确、具体、无歧义"。比如我们做"网页搜索工具"时,一开始的描述是"用于搜索网页",后来改成"用于搜索 2025 年之前的网页内容,返回标题、链接、摘要,支持query参数(搜索关键词)和limit参数(返回结果数量)",更明确的描述让代理的搜索准确率提升了 20%。再比如,我们做"SWE-bench Verified"评估时,对工具描述做了精确优化,让 Claude Sonnet 3.5 的性能提升了 15%,达到了最先进水平(错误率下降了 10%,任务完成率提升了 8%)。
五、展望未来:工具要"适配代理的进化"
随着 LLM 的能力提升,工具的设计也会变——比如未来的工具可能会"自动学习代理的习惯"(比如代理经常用search_contacts查"销售部",工具会默认筛选"销售部"),或者"动态调整响应格式"(比如代理喜欢 JSON,就返回 JSON;喜欢 Markdown,就返回 Markdown)。
但不管怎么变,“以评估为驱动”“以代理为中心"的原则不会变。我们相信,好的工具,不仅要让代理"用得顺手”,也要让人类"用得舒服"——就像我们内部的工具,最后都成了工程师自己常用的工具。
最后
为什么要学AI大模型
当下,⼈⼯智能市场迎来了爆发期,并逐渐进⼊以⼈⼯通⽤智能(AGI)为主导的新时代。企业纷纷官宣“ AI+ ”战略,为新兴技术⼈才创造丰富的就业机会,⼈才缺⼝将达 400 万!
DeepSeek问世以来,生成式AI和大模型技术爆发式增长,让很多岗位重新成了炙手可热的新星,岗位薪资远超很多后端岗位,在程序员中稳居前列。

与此同时AI与各行各业深度融合,飞速发展,成为炙手可热的新风口,企业非常需要了解AI、懂AI、会用AI的员工,纷纷开出高薪招聘AI大模型相关岗位。

最近很多程序员朋友都已经学习或者准备学习 AI 大模型,后台也经常会有小伙伴咨询学习路线和学习资料,我特别拜托北京清华大学学士和美国加州理工学院博士学位的鲁为民老师给大家这里给大家准备了一份涵盖了AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频 全系列的学习资料,这些学习资料不仅深入浅出,而且非常实用,让大家系统而高效地掌握AI大模型的各个知识点。
这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】
AI大模型系统学习路线
在面对AI大模型开发领域的复杂与深入,精准学习显得尤为重要。一份系统的技术路线图,不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点,还能提供一条高效、有序的学习路径。

但知道是一回事,做又是另一回事,初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性,在这基础上,找到高质量的学习资源,不浪费时间、不走弯路,又是重中之重。
AI大模型入门到实战的视频教程+项目包
看视频学习是一种高效、直观、灵活且富有吸引力的学习方式,可以更直观地展示过程,能有效提升学习兴趣和理解力,是现在获取知识的重要途径

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

海量AI大模型必读的经典书籍(PDF)
阅读AI大模型经典书籍可以帮助读者提高技术水平,开拓视野,掌握核心技术,提高解决问题的能力,同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说,阅读经典书籍是非常有必要的。

600+AI大模型报告(实时更新)
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

AI大模型面试真题+答案解析
我们学习AI大模型必然是想找到高薪的工作,下面这些面试题都是总结当前最新、最热、最高频的面试题,并且每道题都有详细的答案,面试前刷完这套面试题资料,小小offer,不在话下


这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

被折叠的 条评论
为什么被折叠?



