Agent X-Ray
RuntimeNotesAbout
Notes/产品经理/Agent 基础知识/S05-实践

阶段 5 实践 — 15 个 MCP 工具的粒度重审

5 分钟 · 更新于 2026-09-01

阶段 5 实践 — 15 个 MCP 工具的粒度重审

本实践的产出最小产出:国际机票 Agent 15 个 MCP 工具的粒度与命名重审报告 完整产出:重审报告 + 只读/副作用工具契约各一份 + 三类错误返回设计 + 最小 Skill

预计投入:6~8 小时。这份报告是可以直接拿出去展示的作品——它体现的正是 Agent 产品经理区别于传统产品经理的核心能力。


实践 1 · 工具面重审报告(⭐ 必做)

第一步:把现状摊开

对国际机票 Agent 现有的每个 MCP 工具,填一行:

#工具名一句话职责粒度层级单次返回平均 token副作用等级有无幂等键
1原子/业务/任务只读/可撤销写/不可撤销写

数据来源:真实调用几次统计返回 token,不要估。

第二步:命名体检

对每个工具名逐条打分(0/1):

  • 动词+宾语结构
  • 从名字能推出它属于哪个业务域
  • 与其他工具没有语义重叠(不存在两个工具都能"查价格")
  • 名字里不含内部术语(内部系统代号、表名、接口编号)

命名重叠是选错工具的头号原因。任何两个工具的职责边界,都要能用一句话说清"什么时候用这个不用那个"。

第三步:描述体检

每个工具的描述必须包含四段,缺哪段标哪段:

段落内容有?
做什么一句话
何时用触发场景
何时不用指向正确的替代工具
关键参数说明格式、枚举、依赖关系

第四步:粒度判定与改造建议

对每个工具用讲义第二节的判据判定:

看这一步失败时,模型能不能自己修。

给出四类结论之一:保留 / 合并 / 拆分 / 下线,每条附一句理由。

第五步:返回值瘦身

对返回 token 排前 3 的工具,各做一次瘦身设计:

工具现在返回什么决策实际需要什么瘦身后预计降幅

验收标准

  • 15 个工具全部有粒度判定与结论
  • 至少识别出 2 处命名或职责重叠
  • 至少 1 个"合并"和 1 个"拆分"的建议,且理由是基于失败可修性而不是"看起来更整齐"
  • 返回值瘦身有 token 数字支撑

存放ai-output/temporary/drafts/ 起草,定稿后可进 产品文档/ 或本目录。


实践 2 · 两份完整工具契约

写两份可以直接交付研发的工具契约:一个只读、一个有副作用。

A · 只读工具(推荐 get_published_fare

必须写全:

text
name
description       做什么 / 何时用 / 何时不用
parameters        每个参数: 类型 / 必填 / 格式 / 枚举 / 示例 / 默认值
returns           字段清单 + 每个字段的业务含义 + 分页约定
errors            分类错误码表
side_effects      none
rate_limit        调用频率约束
data_freshness    数据时效(这条常被漏掉,但对运价类工具至关重要)

B · 有副作用工具(推荐 hold_seatcreate_order

在 A 的基础上追加:

text
side_effects      可撤销 / 不可撤销,具体改变了什么
idempotency_key   构成方式 + 有效期
confirmation      是否需要用户确认 / 确认时要展示哪些信息
timeout_semantics 超时后状态未知时的查询方式
rollback          能否撤销 / 怎么撤销 / 撤销的时间窗
audit             这次调用要记录哪些字段

confirmation 里要展示什么,是产品定义 占座确认框上应该出现:航班号、日期、乘客数、占座有效期、是否产生费用。少写一项,用户就会在事后说"我不知道会这样"。这一条在阶段 11、12 会继续展开,但它的源头在工具契约里。

验收:把两份契约给研发看,对方不需要追问就能实现。


实践 3 · 三类错误返回设计

为同一个工具设计三类错误,并在阶段 4 的最小 Loop 上实测模型的反应:

类别例子错误信息要包含模型应有的反应
参数错误日期格式不对哪个字段 / 期望格式 / 收到的值改参数重试
权限错误该渠道无此运价查询权限缺什么权限 / 有没有替代路径不重试,换工具或告知用户
业务失败该航线该日期无可售航班明确是"查到了但没有"而不是"查询失败"追问用户或给替代建议,不编造

记录:每类各跑 5 次,统计模型是否给出预期反应。

要看到的现象

  • 权限错误如果写得像普通失败,模型会反复重试——这是烧钱最快的模式
  • 业务失败如果不明确区分"无结果"与"查询失败",模型可能编造结果

产出:一张《错误码 → 模型应有反应》对照表,作为工具契约的附录。


实践 4 · 创建一个最小 Skill 并验证触发

任务:为一个真实的重复性工作做一个 Skill。候选(挑一个真的会用到的):

  • 国际机票退改规则的标准解读流程
  • 一份 PRD 的自查清单
  • 运价异常的排查步骤

要求

  • 遵循三级渐进式披露:frontmatter 只写触发信息,正文写流程,细节放附件
  • description 里写清触发词与场景
  • 正文 ≤ 200 行,超了就拆附件

触发验证(这一步是重点,很多人只做正向测试):

用例期望实测
正向 1:明确说出触发词触发
正向 2:只描述场景不说触发词触发
正向 3:口语化表达触发
反向 1:相邻但不同的任务不触发
反向 2:只提到关键词但意图不同不触发

验收

  • 3 个正向用例至少中 2 个
  • 2 个反向用例都不触发——误触发比不触发更有害,因为它会用错误的流程覆盖正确的判断
  • 如果反向用例误触发,修 description 而不是修正文

参考本仓 .claude/skills/ 下任意技能的写法,以及 .claude/references/skill-development-standards.md


实践 5(可选)· MCP 新规范的影响评估

如果国际机票 Agent 的工具面通过 MCP 暴露,做一次影响评估:

变化我们受影响吗改造成本收益
协议核心无状态化可水平扩容
server/discover 版本发现兼容策略简化
列表结果可缓存冷启动更快
Mcp-Method/Mcp-Name网关可做路由与鉴权
MRTR 取代常开双向流部署简化
授权收紧企业合规路径

评估前先看规范原文MCP 官方博客 与规范页。二手报道对部分特性弃用状态的说法不一致,涉及改造排期的结论必须以官方文本为准。


自测

维度阶段 5 的问法
解释讲清"为什么工具描述是产品定义而不是接口文档"
画图画出工具面的分域图,标出重叠与缺口
比较同一能力做成原子级 vs 业务动作级,各自的失败模式
实践重审报告 + 两份契约 + 三类错误 + 一个 Skill
评测Skill 的正/反向触发用例都跑过
产品化重审报告能直接进需求评审
迁移把这套方法用到支付收银台的工具面上,结论会怎么变?

通过标志 能对着工具清单说出"哪一个工具的存在,让这个 Agent 能做别人做不了的事"。如果答不上来,说明工具面还只是内部 API 的镜像,产品价值没有沉淀在这一层。


  • 阶段 5 讲义
  • 阶段 4 实践:最小 Agent Loop
  • 阶段 11 实践:授权矩阵
  • 学习路线

本章目录
实践 1 · 工具面重审报告(⭐ 必做)实践 2 · 两份完整工具契约实践 3 · 三类错误返回设计实践 4 · 创建一个最小 Skill 并验证触发实践 5(可选)· MCP 新规范的影响评估自测Related Documents
苏ICP备2025204887号-2