赛博禅心 09月12日
AI Agent 工具构建与优化指南
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文介绍了为AI Agent构建高质量工具的方法,包括编写、评估和利用AI(如Claude)进行优化。核心在于理解工具是Agent与确定性系统间的契约,设计时需面向Agent而非开发者。文章提出了一种迭代流程:快速原型开发与本地测试,通过真实世界用例进行全面评估,并与Agent协作改进。强调了选择合适的工具、使用命名空间、返回有意义的上下文、优化Token效率以及进行有效的工具描述提示工程。最终目标是构建清晰、有意图且能智能辅助Agent解决实际问题的工具。

🛠️ **高质量工具构建的核心在于面向Agent设计**:工具被视为Agent与确定性系统间的契约,编写时应优先考虑Agent的需求,而非其他开发者。目标是扩大Agent解决任务的有效范围,使其能采用多种成功策略。

🔄 **迭代式工具开发与评估流程**:建议采取快速原型开发和本地测试,然后通过基于真实世界用例的全面评估来衡量效果。关键在于与Agent协作,分析评估结果并反复改进工具,收集准确率、运行时间、Token消耗等指标。

💡 **编写高效工具的五大原则**:包括选择少量、高影响力且整合功能的工具;利用命名空间避免Agent混淆;返回高信号、上下文相关的自然语言信息,并允许Agent控制响应的详略;优化Token效率,实现分页、过滤、截断,并提供清晰的错误指导;以及通过明确的提示工程,像解释给新同事一样清晰描述工具的预期输入输出。

原创 金色传说大聪明 2025-09-12 11:40 上海

如何编写、评估高质量的工具,以及如何用 AI 优化工具

⚙️

ANTHROPIC ENGINEERING

如何为 Agent 构建工具

Anthropic 刚刚发布了一篇很值得阅读的文章《如何为 Agent 构建工具,包括:如何编写高质量的工具和评估,以及如何利用 Claude 来为自己优化工具,从而提升性能。

本文是对内容重点的介绍,更多详细信息,可阅读原文

https://www.anthropic.com/engineering/writing-tools-for-agents

什么是工具?

传统软件是确定性系统,而像 Agent 这样的系统是非确定性的。工具是一种新型软件,它反映了确定性系统与非确定性 Agent 之间的契约。我们编写工具时,需要为 Agent 而不是为其他开发者或系统来设计。我们的目标是通过工具,让 Agent 能够采用多种成功策略,扩大其解决各类任务的有效范围。

如何编写工具

本文描述了一个与 Agent 协作编写和改进工具的迭代流程:首先构建一个快速原型并进行本地测试,然后通过全面的评估来衡量后续的改动,并与 Agent 一起重复评估和改进的过程。

1构建原型

快速构建工具原型,亲身体验。使用 Claude Code 编写工具时,提供相关软件库、API 的文档会有帮助。将工具包装在本地 MCP 服务器或 DXT 中,以便在 Claude Code 或 Claude 桌面应用中连接和测试。

2运行评估

通过运行评估来衡量 Claude 使用工具的效果。评估任务应基于真实世界用例,并具有足够的复杂性。强大的评估任务可能需要多次(甚至数十次)工具调用。在评估中,我们建议收集准确率、运行时间、工具调用次数、Token 消耗和错误等指标。

我们内部 Slack 工具在留出测试集上的性能表现                        

我们内部 Asana 工具在留出测试集上的性能表现                        

3与 Agent 协作

Agent 是你发现问题和提供反馈的得力伙伴。你可以让 Agent 分析评估结果并为你改进工具。将评估 Agent 的对话记录粘贴到 Claude Code 中,Claude 擅长分析这些记录并一次性重构大量工具。

编写高效工具的原则

原则一: 选择合适的工具

更多的工具并不总是带来更好的结果。Agent 的“上下文”有限,应避免返回大量无关信息。应构建少量、有思想、针对特定高影响力工作流的工具。例如,实现一个 search_contacts 而不是 list_contacts 工具。工具可以整合功能,将多步操作合并为一次调用。

原则二: 为工具命名空间

当工具功能重叠或目的模糊时,Agent 可能会混淆。使用命名空间(例如 asana_searchjira_search)可以帮助在大量工具之间划定界限,帮助 Agent 在正确的时间选择正确的工具。

原则三: 从工具返回有意义的上下文

工具应只返回高信号信息,优先考虑上下文相关性而非灵活性。避免使用 UUID 等底层技术标识符,多使用自然语言名称。可以通过 response_format 枚举参数让 Agent 控制返回“简洁”还是“详细”的响应。

详细响应示例 (206 tokens):

简洁响应示例 (72 tokens):

原则四: 优化工具响应的 Token 效率

优化上下文的数量和质量同样重要。为可能消耗大量上下文的工具响应实现分页、过滤和截断等机制。如果截断响应或出现错误,应提供清晰、可操作的改进建议来引导 Agent。

截断响应并提供指导:

无帮助的错误 vs 有帮助的错误:

原则五: 对工具描述进行提示工程

这是最有效的方法之一。编写工具描述时,要像向新同事解释一样,将隐含的背景信息明确化。避免模糊性,对预期输入和输出进行清晰描述和严格定义。例如,使用 user_id 而不是 user 作为参数名。对工具描述的微小改进都能带来显著的性能提升。

展望未来

为 Agent 构建有效的工具,需要我们将软件开发实践从确定性模式转向非确定性模式。有效的工具是有意图且清晰定义的,能明智地使用 Agent 上下文,并能直观地帮助 Agent 解决真实世界的任务。通过系统性、评估驱动的方法,我们可以确保随着 Agent 能力的增强,它们使用的工具也能同步发展。

阅读原文

跳转微信打开

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI Agent 工具构建 Anthropic Agent Tools Tool Building AI Optimization
相关文章