如何让你的 Agent 更准确:MCP 工具设计技巧
一句话概括
TRAE 团队从 LLM Tool Calling 完整链路(6 步多轮协议)切入,强调 MCP 工具是 Agent 的 UI 而非 REST API 封装,揭示工具定义占 system prompt 影响 Prompt Caching,单工具约 250-300 tokens,OpenAI 建议 ≤20 个。
实践内容
Tool Calling 完整链路(6 步)
- 用户发送消息
- LLM 分析并决定调用工具
- 生成工具调用参数
- 执行工具
- 返回工具结果
- LLM 继续推理
MCP 工具设计原则
工具是 Agent 的 UI,不是 REST API 封装:
- 工具的名称、参数、返回值都要为 Agent 优化
- 错误信息要包含修正建议
- 返回值要与下一步决策直接相关
JSON 格式注意事项
- JSON 仅是中间格式
- 模型内部多用类 XML token
- 自定义格式不如原生 function calling
Token 开销
- 单工具约 250-300 tokens
- OpenAI 建议 ≤20 个工具
- 工具定义影响 Prompt Caching
摘录
TRAE 团队从 LLM Tool Calling 完整链路(6 步多轮协议)切入,强调 MCP 工具是 Agent 的 UI 而非 REST API 封装。
揭示 JSON 仅是中间格式、模型内部多用类 XML token、自定义格式不如原生 function calling;工具定义占 system prompt 影响 Prompt Caching,单工具约 250-300 tokens,OpenAI 建议 ≤20 个以避免注意力稀释与选择困难。
涉及实体
- Claude-Code —— Claude Code 的工具设计遵循这些原则
涉及主题
我的评注
“工具是 Agent 的 UI”这个比喻很精准。单工具 250-300 tokens 的开销数据很有用——如果接 20 个工具,光工具定义就占 5000-6000 tokens。这解释了为什么 MCP server 数量需要控制。