67837df8d0
- 新增全套考试卷、评估卷、参考答案与考试培训包模板 - 修正slidev培训课件:调整模块标题、链路图缩放,替换工单示例为通用业务对象 - 修正课堂红线表述为证据红线,将小组作业调整为个人作业要求 - 新增权限、状态流转、审计日志、看板指标四类可复用业务规则块 - 整理AI工程技能交付包,迁移旧资产至客户专属交付包并统一术语 - 新增考试输出模板与TRAE使用记录文档
7.9 KiB
7.9 KiB
模块 12:MCP 也必须沉淀为能力资产
MCP 不是一条连接地址,也不是把所有外部系统工具都暴露给 Agent。
它是“可被 Agent 调用的外部能力”,因此同样需要清楚的输入输出、权限、审计、失败处理和验证边界。
能力说明
工具契约
权限范围
失败降级
验收夹具
MCP 资产包应包含什么?
mcp-assets/
├── README.md # 接入边界、适用场景与不适用场景
├── MCP能力契约.template.md # 服务、工具、输入、输出、错误与审计
├── MCP工具权限与验收清单.md # 最小授权、敏感数据与副作用验证
├── MCP故障降级清单.md # 超时、鉴权、限流、不可用时的处理
└── fixtures/ # 完整、拒绝、失败与脱敏结果样例
连接配置只说明“连得上”;资产包还要说明“什么时候可以调用、调用后能相信到什么程度”。
每个 MCP 工具都需要输入输出契约
| 契约字段 | 必须说明的问题 |
|---|---|
| 工具名称与用途 | 它解决哪一类外部事实或操作? |
| 输入 | 必填字段、格式、数据范围和敏感参数处理方式是什么? |
| 输出 | 返回哪些已确认字段,哪些字段可能为空或过期? |
| 副作用 | 只读、可逆写入,还是不可逆操作? |
| 错误 | 鉴权、限流、超时、无结果和服务错误如何区分? |
| 审计 | 调用主体、目标对象、时间和结果如何留痕并脱敏? |
工具名叫“查询”不代表一定只读;是否有副作用必须由契约明确,而不是让 Agent 猜测。
Agent 调用 MCP 时,权限要再收一层
| 外部能力类型 | Agent 默认策略 | 必须补充的保护 |
|---|---|---|
| 读取公开或脱敏信息 | 可按职责开放 | 结果范围、来源时间与引用记录 |
| 读取受限业务信息 | 仅在明确授权后调用 | 数据范围、脱敏与审计 |
| 创建草稿或临时资源 | 需要用户确认 | 幂等键、撤销方式和可见结果 |
| 修改业务状态或数据 | 不作为默认工具权限 | 二次确认、最小范围和回滚路径 |
| 删除、发布、外发 | 不交给通用 Agent | 专用流程与人工最终确认 |
自定义 Agent 的工具选择只是第一层;MCP 工具自身仍要定义调用级的权限与确认边界。
MCP 的验收不只检查“调用成功”
| 验收夹具 | 预期行为 |
|---|---|
| 合法完整请求 | 返回结构符合契约,来源和时间可追溯 |
| 缺少必填参数 | 拒绝并说明字段缺口,不自动补造参数 |
| 越权请求 | 拒绝或要求确认,不泄露超范围数据 |
| 限流、超时或服务不可用 | 区分故障类型,输出降级结论,不伪装成无结果 |
| 敏感字段返回 | 按契约脱敏,日志不写入密钥、Token 或完整隐私数据 |
| 有副作用的重复调用 | 符合幂等或明确阻止重复执行 |
MCP 失败时,Agent 应该报告“外部事实未取得”,而不是用已有代码或常识补出一个答案。
MCP 能力资产的交付标准
一份 MCP 资产的完成标准,不是 Agent 调用成功,而是能力、契约、权限、故障处置和验证边界均可被复核。
适用边界
工具契约
调用权限
故障降级
验收夹具