
前言当你用 模型上下文协议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在提出报价前应注意的任何风险因素。以下是一些较弱的任务示例• 下周安排与 janeacme.corp 的会议。• 在支付日志中搜索purchase_complete和customer_id9182。• 查找客户 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(namejane)→send_message(id12345)。为了支持这种需求可以在工具中引入一个简单的response_format枚举参数允许代理自主选择工具返回的信息粒度例如“concise”简洁或“detailed”详细的响应。你可以添加更多格式以获得更大的灵活性类似于 GraphQL你可以选择想要接收的确切信息片段。以下是一个用于控制工具响应详细程度的 ResponseFormat 枚举示例enum ResponseFormat{DETAILEDdetailed,CONCISEconcise}这是一个详细工具响应的示例206 个 tokens这是一个简洁工具响应的示例72 个 tokens即使是你的工具响应结构——例如 XML、JSON 或 Markdown——也可能对评估性能产生影响不存在放之四海而皆准的解决方案。这是因为 LLM 是基于下一个 token 的预测进行训练的通常对与其训练数据匹配的格式表现更好。最佳的响应结构会因任务和代理而有很大差异。我们鼓励你根据自己的评估选择最佳的响应结构。4. 优化 token 消耗别让工具占满上下文我们遇到过工具返回 10000 个 token的情况结果代理根本处理不了。后来我们加了分页“过滤”截断功能比如search_logs工具支持page1limit10分页、log_typeerror过滤、truncatetrue截断长内容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 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】AI大模型系统学习路线在面对AI大模型开发领域的复杂与深入精准学习显得尤为重要。一份系统的技术路线图不仅能够帮助开发者清晰地了解从入门到精通所需掌握的知识点还能提供一条高效、有序的学习路径。但知道是一回事做又是另一回事初学者最常遇到的问题主要是理论知识缺乏、资源和工具的限制、模型理解和调试的复杂性在这基础上找到高质量的学习资源不浪费时间、不走弯路又是重中之重。AI大模型入门到实战的视频教程项目包看视频学习是一种高效、直观、灵活且富有吸引力的学习方式可以更直观地展示过程能有效提升学习兴趣和理解力是现在获取知识的重要途径光学理论是没用的要学会跟着一起敲要动手实操才能将自己的所学运用到实际当中去这时候可以搞点实战案例来学习。海量AI大模型必读的经典书籍PDF阅读AI大模型经典书籍可以帮助读者提高技术水平开拓视野掌握核心技术提高解决问题的能力同时也可以借鉴他人的经验。对于想要深入学习AI大模型开发的读者来说阅读经典书籍是非常有必要的。600AI大模型报告实时更新这套包含640份报告的合集涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师还是对AI大模型感兴趣的爱好者这套报告合集都将为您提供宝贵的信息和启示。AI大模型面试真题答案解析我们学习AI大模型必然是想找到高薪的工作下面这些面试题都是总结当前最新、最热、最高频的面试题并且每道题都有详细的答案面试前刷完这套面试题资料小小offer不在话下这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】