Day 8工具分类 工具设计通用原则 MCP 协议目标弄懂三件事Agent 的工具有哪五类、设计一个好工具要遵循什么原则、MCP 协议为什么是工具生态的插座标准。核心知识点一、五类工具全景Day 1 你学过 Agent LLM 上下文 工具工具是 Agent 的手脚。今天从两个维度看这五类工具工具类型调用方向作用对象例子感知工具Agent 主动调用获取信息web_search, read_file, grep_file执行工具Agent 主动调用改变世界shell_exec, write_file, send_email协作工具Agent 主动调用驱动其他 Agent/人类spawn_subagent, request_human_approval用户沟通工具Agent 主动调用向用户传递信息reply_to_user, send_card_to_user事件触发工具Agent 注册、外部触发驱动 Agent 开始执行set_timer, connect_channel关键区分前四类都是 Agent 主动调用只有第五类是外部触发——Agent 先注册我关心什么事件之后外部事件来时被唤醒。这是 Agent 从被动响应到主动服务的关键。感知 vs 执行的本质区别感知工具是只读的 → 可以安全缓存、可以并行执行执行工具改变世界 → 错误代价可能极高安全约束是核心二、工具设计的通用原则1. 能力表达形式专用工具 vs Skill 通用执行器这是最根本的设计选择专用代码工具Skill 通用执行器形式结构化函数调用自然语言文档 bash/代码解释器优点确定性高、可测试少量工具覆盖大量场景不破坏 KV Cache缺点每个占数百 token数量膨胀依赖模型能力三维决策框架维度选专用工具选 Skill 通用执行器参数复杂度嵌套对象、多字段联合校验参数简单变更频率稳定的底层操作频繁变化的能力模型能力较弱模型需要结构化引导SOTA 模型可以用 Skill2. 工具粒度整合与分离核心标准功能相似性 使用场景重叠度该整合extract_pdf_textextract_docx_contentextract_pptx_content→ 统一成read_document(file_type...)该分离图片 OCR 和视频关键帧提取虽然都是内容提取但参数形态差异大经验法则工具超过 100 个时即使是最先进的模型也容易选错。3. 通用性设计通用工具优于专用工具除非存在明确的安全、权限或性能理由。code_interpreter比十几个专用计算器更省 token、更灵活给 Agent 一个元能力——一个 Python 解释器代替数十个工具例外涉及生产数据库写操作等高风险场景专用工具能提供更精细的权限控制4. 工具描述的艺术最实用的部分工具描述的核心是让 LLM 知道**“什么时候用”**而不只是能做什么。四条要点要点好的做法坏的做法说清什么时候用“当需要获取实时信息或查找未知事实时使用”“搜索相关内容”说清做不到什么“只能基于文件名匹配不能搜索文件内容”什么都不说参数给具体例子phone: 8613888888888中国phone: E.164 格式附带 1-5 个真实调用示例准确率从 72% → 90%只有 JSON Schema调试黄金法则当 Agent 频繁选错工具时优先检查工具描述而不是怀疑模型能力。5. 参数传递的保真性隐蔽但致命两种反模式静默输入转换Cursor 的弯引号 bug模型读到文件里有中文弯引号模型把弯引号原样传入替换工具工具的参数传递层静默把弯引号转成直引号与文件实际内容不匹配 → “未找到匹配”模型反复尝试、反复失败无法自行诊断静默参数注入某 IDE 的 git commit bug工具在执行所有git commit时自动追加一个标记参数旧版 Git 不支持该参数 → 报错模型怎么改提交信息都没用核心原则模型感知到的世界与工具操作的世界之间不能存在系统性偏差。6. 工具设计的三代演进代特征代表第一代直接 API 封装粒度过细每个 API 端点一个工具第二代ACI 原则工具对应 Agent 目标粒度权衡、通用性、描述规范第三代优化调用/发现/串联示例驱动调用、动态发现、代码编排代码编排执行让 LLM 一次性生成一段脚本串联多个工具调用中间变量留在执行环境中只有最终结果返回上下文——token 消耗可降低约两个数量级。第 5 章会详细展开三、MCP 协议工具生态的插座标准问题每个框架定义工具的方式都不同OpenAI 的 function calling、Anthropic 的 tool use、LangChain 的 Tool 抽象——工具开发者要为不同框架重复适配。就像每个国家的电源插座标准不同旅行者要带一堆转换插头。MCP 的解法Model Context ProtocolMCP Anthropic 2024 年底发布的开放标准相当于给 AI 工具生态制定一个通用的插座标准。客户端-服务器架构MCP 服务器暴露一组工具MCP 客户端Agent 框架/IDE通过标准协议与服务器通信三个关键设计设计说明标准化工具描述JSON Schema 定义参数类型、约束、描述传输层灵活本地用 stdio远程用 Streamable HTTP资源与工具分离工具可执行操作资源只读数据还有提示模板生态价值一次开发处处可用。一个 MCP 服务器可以同时被 Cursor、Claude Desktop 等使用。MCP 面临的三个递进挑战挑战 1同步调用的限制MCP 本质是请求-响应式。虽然有通知、进度、采样、征询等扩展但都作用于保持连接的单个会话之内。跨会话、多事件源、离线唤醒需要协议之上另行构建事件驱动架构。挑战 2上下文开销仅仅 5 个 MCP 服务器就可能引入约 55,000 token 的工具定义开销在 200K 窗口里用掉近三成。Cursor 的解法工具描述同步到文件夹Agent 默认只看工具名索引需要时再查 → MCP 工具相关 token 消耗减少 46.9%。Pi Coding Agent 更激进核心不内置 MCP优先用 CLI 工具 Skills 按需加载。即使需要 MCP也通过代理工具~200 token实现搜索→查看→调用的渐进式发现。关键洞察是否采用 MCP 做互操作 与 是否在会话开始时暴露所有工具定义 是两个独立决策。后端可以保留 MCP 兼容性前端仍应以 CLI Skills 实现渐进式披露。挑战 3工具能力沉淀为知识→ 第 8 章讨论MCP 的安全风险四类风险说明类比工具描述投毒description 里夹带恶意指令提示注入的变种恶意/被劫持服务器供应链攻击NPM 包被劫持同名工具遮蔽恶意服务器遮蔽正规工具DNS 劫持凭证管理风险Agent 持有的 OAuth token 被滥用钥匙被偷缓解思路供应链安全接入前审查工具描述当作不可信输入锁定服务器版本拒绝静默更新最小权限凭证设置有效期今天的阅读任务打开本地文件第 4 章前半部分ai-agent-book/book/chapter4.md从开头读到MCP 与工具选择的挑战一节结束重点是五类工具分类、通用设计原则六条、MCP 协议和三个挑战实验说明选读ai-agent-book/chapter4/perception-tools/README.md— 感知工具 MCPai-agent-book/chapter4/execution-tools/README.md— 执行工具 MCP阅读策略五类工具分类表精读记住调用方向和作用对象能力表达形式的三维决策精读粒度/通用性/描述/保真性四条原则精读特别是描述艺术和保真性工具设计三代演进浏览理解方向即可MCP 协议精读理解插座标准的价值和三个挑战MCP 安全风险浏览记住四类风险自测题五类工具分别是什么各自的调用方向和作用对象是什么哪一类和其他四类不同专用工具和 Skill 通用执行器的三维决策框架是什么工具粒度整合与分离的核心标准是什么举一个该整合和一个该分离的例子。工具描述的四条要点是什么为什么说清做不到什么比说清能做什么更重要参数传递保真性的两种反模式是什么为什么模型感知的世界与工具操作的世界不能有系统性偏差工具设计的三代演进分别是什么第三代优化的三个方向是什么MCP 协议解决什么问题三个关键设计决策是什么MCP 面临的三个递进挑战分别是什么Cursor 是怎么解决上下文开销的“是否采用 MCP” 和 “是否在会话开始时暴露所有工具定义” 是什么关系MCP 的四类安全风险是什么缓解思路有哪些