🛠️ 工具

"Agent 的手脚与感官"设计指南:从五类工具分类、通用设计原则(ACI)、能力分发生态(MCP 与 Skill Hub)到工具规模化后的发现机制。工具设计决定 Agent 的能力上限。

📷 4 张原书配图 + 原创架构图 🧪 5 个配套实验 ⭐ 难度:进阶 📚 第一部分 · 如何构建 Agent
MCP 架构
🎯 核心论点
1

五类工具,两个特征定位——"调用方向(谁发起)+ 作用对象(作用于什么)":感知/执行/协作由 Agent 主动调用;事件触发与用户沟通依赖异步运行时。

2

ACI 原则——工具应对应 Agent 的目标而非底层 API 操作;默认通用优于专用,仅在安全权限、参数复杂、使用频率极高、平台差异四种情况退回专用工具。

3

工具描述的核心是"什么时候用"——边界条件(做不到什么)往往比能力描述更重要;附 1–5 个真实调用示例可把准确率从约 72% 提升到 90%。

4

参数传递必须保真——模型感知到的世界与工具操作的世界之间不能存在系统性偏差(静默转换、静默注入都是反模式)。

5

两条分发渠道——MCP 协议统一专用工具接入;Skill Hub 用注册表分发 SKILL.md;第三方能力带来投毒、劫持、遮蔽三类风险。

6

工具规模化三台阶——层次化组织与按需加载 → 主动工具发现 → Skills 渐进式披露("把选哪个工具变成查哪条资料")。

🗂️ 关键概念卡片

五类工具分类

Agent 能力的五种形态感知/执行/协作/事件触发/用户沟通;前三类主动调用,后两类靠异步运行时

ACI

面向 Agent 的人机交互界面Agent-Computer Interface;工具对应目标而非 API 操作

专用工具 vs Skill

能力表达的两种形态专用:结构化 schema、确定性高、占数百 token;Skill:自然语言文档、目录仅几十 token

工具描述艺术

让模型知道"何时用"写清边界条件与反例,参数给具体示例,附真实调用示例

参数传递保真性

模型所见与工具所做必须一致禁止静默输入转换/静默参数注入,规范化须在描述中显式说明

MCP

模型与工具的统一通信协议Anthropic 2024 发布;客户端-服务器架构,JSON Schema 定义工具,stdio 或 Streamable HTTP 传输

Skill Hub

Skill 的分发注册表一条 npx skills add 命令安装,常驻上下文仅 name+description

主动工具发现

Agent 声明缺口、系统动态注入MCP-Zero 两层语义路由,约 2800 工具比全量注入省约 98% token

多模态感知三路径

让 Agent "看懂"非文本数据原生多模态(ViT 编码)最强;提取为文本最省;工具化多模态分析折中

提议者-审核者

独立第二视角审查操作事前审批(异源模型)或事后验证(模态切换),拒绝理由入轨迹

Sidecar 机制

与主思考并行的安全校验轻量 LLM 只看结构化调用字段,门控单次工具调用,数百毫秒完成
🖼️ 原书配图详解
图 4-1

MCP 协议交互时序

MCP 协议交互时序
时序图:能力发现(server/discover)→ 工具清单(tools/list)→ 工具调用(tools/call)三步往返——演示 MCP 客户端-服务器完整交互流程
层次化工具匹配
图 4-2 层次化工具匹配——"查询 GitHub 贡献者"→ 第一层服务器匹配(相似度 0.92)→ 第二层服务器内工具匹配(list_contributors 0.89)
工具动态加载的 KV Cache 优化
图 4-3 工具动态加载的 KV Cache 优化——朴素方案每次加载新工具整段缓存失效 vs 优化方案固定前缀 + 工具 schema 追加末尾
图 4-4

动态发现后的上下文结构

动态发现后的上下文结构
静态前缀(系统提示 + 核心工具 + 搜索元工具)+ 轨迹中散落、固定在首现位置的工具 schema——"工具定义不必在最前面"的最终上下文形态
📊 关键案例与数据
案例 / 数据要点
Cursor 弯引号事故参数层把中文弯引号转成直引号,old_string 匹配失败——参数保真性反例
工具定义膨胀仅 5 个 MCP 服务器即可引入数万 token 工具定义,200K 窗口未开对话已占近三成
Anthropic 检索式预筛选Opus 4 工具使用基准准确率 49% → 74%;MCP-Zero 在约 2800 个工具上节省约 98% token
工具描述附示例准确率约 72% → 90%
Sidecar 审查轻量审查通常在数百毫秒内完成,与主模型流式输出并行
💬 金句摘录
工具设计决定 Agent 的能力上限。
模型感知到的世界与工具操作的世界之间,不能存在系统性的偏差。
大多数工具调用失败的根因不是模型不知道工具能做什么,而是不知道工具不能做什么。
形态决定的是每条能力常驻多少 token、参数怎么传、谁能改;披露策略决定的是有多少条同时摆在模型面前。
把"选哪个工具"变成"查哪条资料"。
🧪 配套实验亮点
实验 4-1 active-tool-discovery(★★★)120+ 工具全量注入 vs 主动发现
实验 4-2 perception-tools(★)感知工具 MCP 服务器五类场景
实验 4-3 multimodal-agent(★★)多模态感知三范式对比
实验 4-4/4-5 execution / collaboration(★★)执行安全 + 子 Agent 与 HITL
← 上一章
📚 第 3 章 用户记忆和知识库