name: 构建AI智能体工具 description: 为AI智能体创建有效工具的指南。适用于构建MCP工具、智能体API或任何智能体将使用的工具接口。重点关注令牌效率、有意义的上下文和适当的命名空间。
为AI智能体构建工具
工作流程
-
定义目的
- 确定智能体需要使用此工具完成什么任务
- 判断现有工具是否可以整合
- 为智能体使用规划工具接口
-
设计接口
- 选择描述性强、有命名空间的工具名称
- 用清晰的类型和描述定义参数
- 设计输出格式以实现最大信号、最小令牌
-
实现
- 构建时考虑令牌效率
- 添加分页、过滤、合理的默认值
- 返回语义标识符,而非原始ID
-
验证
- 使用真实智能体工作流测试
- 检查令牌消耗模式
- 验证错误消息能指导智能体找到解决方案
设计原则
工具整合
- 更多工具不会带来更好的结果
- 将相关操作整合到单个工具中
- 示例:
schedule_event同时检查可用性并创建事件 - 避免需要多次调用的简单CRUD式工具
命名空间
- 使用服务名称前缀相关工具:
asana_projects_search、asana_users_search - 按领域分组以帮助智能体区分功能
- 在工具家族中使用一致的命名模式
有意义的上下文
- 返回高信号信息,而非原始数据转储
- 将晦涩的UUID解析为人类可读的标识符
- 包含
response_format参数(简洁/详细)以提供灵活性 - 展示智能体下一步所需的相关元数据
令牌效率
- 使用合理的默认值实现分页
- 添加过滤参数以减少不必要的数据
- 智能截断大型响应
- 优先使用结构化输出而非冗长的叙述
工具描述
- 大力投入清晰、明确的描述
- 描述工具的功能、使用时机和返回内容
- 包含参数约束和有效值
- 小的描述改进能带来大的性能提升
反模式
- 创建许多细粒度工具而非整合操作
- 返回智能体无法解释的原始ID
- 在可能产生大型结果集时省略分页
- 模糊的工具描述让智能体猜测
- 错误消息无法帮助智能体恢复
- 要求智能体为常见工作流进行多次调用
MCP特定模式
工具注册
- 在工具模式中使用描述性的
name和description - 使用JSON Schema定义参数的
inputSchema - 明确标记必需与可选参数
响应格式
- 返回结构化JSON以实现可预测的解析
- 包含成功/错误指示器
- 提供可操作的错误消息