
Agent 工具体系从 MCP 协议到层次化工具发现工具是连接 Agent 语言大脑与真实数字世界的手脚和感官。本章从五类工具的分类出发系统讨论了工具设计的通用原则、能力分发渠道MCP 协议与 Skill Hub以及当工具数量爆炸时的层次化组织与主动发现机制最后逐类深入分析了感知、执行、协作三类工具的设计要点。五类工具的分类框架书中从两个维度来审视工具调用方向交互由谁发起和作用对象交互作用于什么将 Agent 工具分为五类工具类型调用方向作用对象感知工具Agent 主动调用获取信息执行工具Agent 主动调用改变世界协作工具Agent 主动调用驱动其他 Agent 或人类用户沟通工具Agent 主动调用向用户传递信息事件触发工具Agent 注册、外部触发驱动 Agent 开始执行前三类由 Agent 主动调用是本章讨论的核心。事件触发工具和用户沟通工具涉及异步运行时属于另一层面的设计。工具设计的通用原则ACI 与三个维度能力的表达形式专用工具 vs Skill同一项能力可以做成不同形态构成从专用到通用的谱系专用工具结构化函数调用确定性高、可测试、参数受 schema 约束代价是每个工具定义占用数百 token。Skill用自然语言编写的操作文档Agent 通过终端或代码解释器执行只需少量通用工具即可覆盖大量场景。书中提出的默认取向是通用工具优于专用工具除非存在安全、权限或性能理由。提供通用执行器如 code_interpreter相当于给 Agent 一个元能力一个 Python 解释器可以替代数十个特定功能工具。退回专用工具有四种情况安全与权限审计需要、屏蔽平台差异、使用频率极高、参数结构复杂。工具描述的艺术工具描述的核心是让 LLM 知道什么时候用而不只是能做什么。书中强调清晰列出工具的边界条件——做不到什么、不接受什么输入——往往比描述能力本身更重要。参数描述应使用具体例子代替抽象规范并为每个工具附带 1-5 个真实调用示例加入示例后工具调用准确率可从约 72% 提升到 90%。参数传递的保真性一个容易被忽视的反模式是静默输入转换——工具在执行前悄悄修正模型的输入参数。书中以 Cursor 的弯引号转直引号问题为例读取工具原样返回弯引号替换工具却将其静默转换为直引号导致匹配失败而模型无法自行诊断。核心原则是模型感知到的世界与工具操作的世界之间不能存在系统性偏差。MCP 协议与 Skill Hub能力分发的两条渠道MCP统一工具接入的开放标准Model Context ProtocolMCP是 Anthropic 于 2024 年底发布的开放标准旨在统一 AI 模型与外部工具、数据源之间的通信协议。其核心设计包括标准化工具描述格式通过 JSON Schema 定义参数类型和约束传输层灵活性本地采用 stdio远程采用 Streamable HTTP三类原语工具可执行操作、资源只读数据、提示模板可复用提示词MCP 的生态价值在于一次开发处处可用。一个 MCP 服务器可以同时被 Cursor、Claude Desktop、OpenClaw 等兼容客户端使用。Skill Hub更轻量的分发机制Skill 不需要协议一个 skill 就是一个装着SKILL.md的文件夹分发机制是注册表。Vercel 的 skills.sh 和 OpenClaw 的 ClawHub 是两个代表性平台。Skill 的常驻上下文成本比 MCP 工具定义便宜一到两个数量级——安装一个 skill 只是往磁盘拷一个文件夹常驻上下文的只有目录中的 name 和 description。第三方能力的安全风险无论走 MCP 还是 Skill Hub引入第三方能力都意味着把不受控制的文本注入 Agent 上下文。主要风险包括工具描述投毒提示注入的变种、恶意或被劫持的服务器、以及同名工具遮蔽。Skill 比 MCP 风险更大因为它不仅包括工具描述还包括可能运行在用户电脑上的代码。工具规模问题从层次化组织到主动发现当可用工具从十几个增长到成百上千时选哪个工具本身就成为一个需要设计的问题。书中给出了三层递进的解决方案。层次化组织与按需加载最朴素的方案是只暴露索引需要时再查询具体定义。Cursor 的实践显示这种方式使 MCP 工具相关任务的总 token 消耗减少了 46.9%。Pi Coding Agent 走得更远核心模块刻意不内置 MCP默认只看到一个约 200 token 的代理工具通过搜索→查看定义→调用按需发现后端工具。模型原生的主动工具发现更进一步的思路是让 Agent 从被动接受者变为主动发现者在执行过程中意识到能力缺口时主动用自然语言声明需求系统再动态匹配并注入。MCP-Zero 是代表性工作论文报告在约 2800 个工具上比全量注入节省约 98% 的 token。动态加载工具会破坏 KV Cache但 OpenAI 的tool_search与defer_loading、Anthropic 的tool_reference等原生支持已经解决了这个问题——把新工具的完整 schema 追加到上下文末尾静态前缀保持稳定。Skills把工具发现变成按需查阅Skills 机制采用渐进式披露策略不再需要嵌入索引和语义匹配基础设施。Agent 启动时只看到一份薄薄的目录当前上下文真正需要某种能力时模型才去读取对应的 sub-skill。这更接近人类使用参考资料的方式——顺着索引和目录根据当下需要逐个查阅。三类工具的设计要点感知工具控制信息量感知工具的核心挑战是返回信息量可能远超 Agent 处理能力。设计要点包括搜索类工具返回结构化候选列表而非全文提供分页或游标读取类工具支持 offset/limit 参数截断时明确标示只读性带来工程红利结果可缓存、调用可并行多模态感知有三种路径原生多模态处理、提取为文本、工具化分析执行工具安全是核心执行工具的错误代价可能极高安全机制应构建多层防护体系输入验证路径遍历检查、命令注入检测、快速失败权限控制文件操作限制工作目录、命令黑名单、API 配额提议者-审核者机制事前审批用不同模型家族的独立审查者事后验证采用模态切换Sidecar 机制与主模型流式输出并行的轻量级安全校验只读结构化工具调用数据不被提示注入操纵协作工具子 Agent 与人工介入协作工具的核心是子 Agent 的生命周期原语启动与取消spawn_subagent、cancel_subagent、消息传递send_message_to_subagent、发现list_agents。人工介入HITL需要设置超时阈值和默认行为并形成学习循环——人类的批准、拒绝及其理由构成带证据的反馈数据。小结工具设计决定 Agent 的能力上限。本章的核心脉络可以概括为三个层次第一能力用什么形式表达——默认往通用端靠只在安全、参数复杂度等四种情况下退回专用工具第二能力靠两条渠道分发——MCP 统一专用工具接入Skill Hub 用包管理器分发 Skill 文档第三当工具增长到成百上千时层次化组织、按需加载、主动发现与 Skills 依次接管把选哪个工具变成查哪条资料。感知工具的关键在粒度与输出控制执行工具的关键在层次化安全防护协作工具的关键在子 Agent 生命周期与人工介入闭环。本文内容整理自开源技术书《深入理解 AI Agent》(bojieli/ai-agent-book)采用 Apache 2.0 许可证