🔧 工具、MCP 与 Agent 协议
工具注册表与发现
工具、MCP 与 Agent 协议专题:用 3 个核心问题讲清原理、取舍与落地。
一句话定位
工具契约、注册发现、执行网关、MCP、A2A 与网络安全。 模型只负责提出调用;宿主负责发现、校验、授权、执行、重试、审计和返回结果。
核心原理与问题解析
如何设计统一工具注册表?
保存名称、版本、描述、Schema、执行器、权限标签、风险级别、超时和所有者;提供注册、发现、健康检查和弃用。运行时先按身份与任务筛选再暴露。
继续想: 动态卸载如何处理在途任务?;工具冲突如何命名?
如何实现动态工具发现?
先从注册表或 MCP 获取候选,再按用户权限、任务语义、风险与环境过滤,只把少量 Schema 加入上下文。工具发现本身也要评测召回与误选。
继续想: 百万工具怎样检索?;描述被污染怎么办?
工具版本升级如何兼容在途任务?
工具调用和 Checkpoint 记录版本;新版本保持兼容或提供适配器,在途任务继续旧版本,待完成后再下线。破坏性 Schema 变更不能静默替换。
继续想: 如何做双写验证?;MCP 能力列表变化怎么办?
工程落地检查
- Schema 清楚表达必填、枚举与互斥
- 读写工具分权并标记副作用
- call_id、幂等键和超时贯穿链路
- 第三方工具输出一律视为不可信
- 协议互通之外仍做认证、授权和审计
常见误区
- 把 Function Calling 误解成模型直接执行
- 把 MCP 当成安全边界
- 为方便把全部工具和高权限一次暴露
对应面试题
U05 如何设计统一工具注册表? · U18 如何实现动态工具发现? · U19 工具版本升级如何兼容在途任务?
延伸资料
Model Context Protocol · A2A Protocol · OpenAI Function Calling