AI Protocol Reference — 领域地图与原理综述
30 秒导读: 这一货架装的不是某个框架、不是某个 agent 产品,而是 agent 时代的**“接口标准”本身**——22 份规范、约定与官方 SDK。它们看起来五花八门(有的讲怎么调工具、有的讲怎么付钱、有的讲怎么画界面),但都在解决同一个根本问题:让 AI agent 与外部世界打交道时,双方先约好一份机器能读、能协商的契约,而不是各写各的临时胶水。这份总纲先讲清这条共性,再把货架拆成 5 条分支,每条分支链到自己的章节。
本货架是 AI 参考三货架之一,只收规范层(normative):协议、标准、约定,以及与协议强绑定的官方 SDK。框架/运行时/研究库在姊妹货架 ai-frontier-reference;可直接上线的 agent 产品在 ai-agent-reference。
1. 共性(主干):agent 时代的“机器对机器契约”
先问:这 22 个库到底共同在干什么
把它们摆在一起,剥掉表面差异 ——A2A 在传 Agent Card、x402 在传 402 支付挑战、MCP Apps 在传一段 ui:// 界面、AGENTS.md 在传一段给 agent 看的说明——会发现它们做的是同一类事:
在 agent 与某个对端(工具、数据源、另一个 agent、商家、浏览器页面、前端 UI、观测系统)之间,定义一份双方都能机器读懂、能协商版本与能力的契约,从而任意一方换实现都不必让另一方改代码。
这就是树干。过去软件集成靠人:人读 API 文档、人写专属适配、人点网页结账。agent 时代这条路不通——agent 要在运行时自己发现“有什么能接”、自己读懂“契约长什么样”、自己完成交互。于是每一个交互面都被重新标准化成机器契约:
| 过去(人为中心) | 现在(本货架的契约) |
|---|---|
| 人读 API 文档、手写适配 | agent 读 schema/agent card,运行时对接(MCP、A2A) |
| 人在网页点“结账” | agent 凭授权令牌完成支付(x402、AP2、ACP-commerce) |
| 人在浏览器里点按钮 | 页面把能力暴露成工具给 agent(WebMCP、NLWeb) |
| 人读 README 才会用一个库 | agent 读 AGENTS.md / SKILL.md 自动会用 |
| 人看仪表盘排查 | 标准化 span/属性让系统自动观测(OTel GenAI) |
共性的三个共同动作
几乎每份规范都在做下面三件事中的一件或几件——这是判断“它属于这货架”的试金石:
- 发现(discover):对端怎么宣告自己存在、有什么能力。A2A 的 Agent Card、MCP 的
server/discover、MCP Registry 的server.json、AGNTCY Directory 的 OASF 记录、llms.txt 的站点清单,全是“宣告能力”的不同写法。 - 协商(negotiate):双方怎么对齐协议版本与可选能力,谁能调用谁。MCP 的 capability negotiation、ACP 的 v1/v2 schema、ACP-commerce 的 capability_negotiation RFC,都是这一步。
- 交互(interact):约定消息形态后真正来回传东西——调工具、传事件、渲染 UI、发支付挑战。
衡量你读懂了没:任意挑货架里两个库,你能说出它们各自标准化了“哪个交互面”、各自怎么做发现/协商/交互。 这正是下面 5 条分支要回答的。
2. 分支地图(主枝):共性分化出的 5 个交互面
树干是“机器对机器契约”。它自然按**“agent 在跟谁打交道”分化成 5 条主枝——每条主枝是一个交互面**:
agent 时代的机器对机器契约(主干)
“agent 与外部世界的每次交互,都改写成机器可协商的显式契约”
│
┌──────────┬──────────┬────┴─────┬───────────┬─────────────────┐
▼ ▼ ▼ ▼ ▼
① 接能力 ② 代理互联 ③ 画界面 ④ 付钱结算 ⑤ 喂指令与可观测
agent→工具 agent→agent agent→前端 agent→钱 人/站点→agent;系统→观测
/数据/发现
│ │ │ │ │
MCP* A2A MCP Apps UCP AGENTS.md
MCP-SDK ACP(Zed) MCP-UI ACP-commerce Agent Skills
Registry AGNTCY† OpenAI Apps AP2 Model Spec
NLWeb AG-UI x402 llms.txt
WebMCP A2UI OTel GenAI
AGNTCY†
*MCP 是整个货架的“地基协议”:它被 ③④⑤ 多条分支当作底层传输/绑定复用(见 §4 交叉点)。†AGNTCY 横跨①②:它的 Directory 既是“发现工具/服务”的目录,也索引 A2A Agent Card,所以两处都点名。
① 接能力 — agent 怎么够到外部工具/数据,怎么发现有什么可接
这条分支解决“agent 的手往外伸”:把工具、文件、数据库、API、整个网站,变成 agent 运行时能调用的能力,并解决“有哪些能力可发现”。MCP 是这条分支(也是全货架)的基石协议——一套基于 JSON-RPC 的 host↔server 接口;NLWeb 让一个网站变成可对话的 /ask//mcp 端点;WebMCP 让浏览器页面把按钮暴露成 agent 工具;MCP Registry 与 AGNTCY Directory 解决“去哪里发现 server/agent”。代表库:mcp-spec(已写子库 doc)。
→ guide/connect-capabilities.md
② 代理互联 — agent/编辑器怎么跟另一个 agent 对话
①是 agent 够工具,这条分支是 agent 够另一个 agent。当对端本身是个有自主性的 agent(而非无状态工具),就需要任务生命周期、流式、推送通知这些更重的语义。A2A 是这条分支的主协议(Agent Card + Task/Message/Artifact 生命周期);ACP(Zed) 是其中一个专门子集——编辑器↔编码 agent 的会话协议;AGNTCY 提供跨组织的分布式发现与可验证身份。代表库:a2a-protocol。 → guide/agent-to-agent.md
③ 画界面 — agent 怎么把交互式 UI 渲染到宿主/前端
光有文字不够,agent 常要回一个可交互的界面(表单、卡片、购物车)。这条分支标准化“界面怎么过线、宿主怎么沙箱渲染”。两种思路:事件流(后端流式发 UI 事件——AG-UI)对 声明式 UI 树(发一棵描述“画什么”的树——A2UI、MCP Apps 的 ui:// 资源)。MCP Apps 是 UI-over-MCP 的官方方向,MCP-UI 是其社区实现料,OpenAI Apps SDK 是 ChatGPT 侧的对应样例。代表库:mcp-apps-ext。
→ guide/render-ui.md
④ 付钱结算 — agent 怎么发现商品、授权支付、完成结算
当交互涉及钱,信任与授权变成头等大事。这条分支把“商务”拆成可组合的层:发现+下单(UCP、ACP-commerce)、支付授权(AP2 的 mandate——把用户的支付权限可验证地委托给 agent)、线上结算(x402——HTTP 原生的 402 挑战/应答)。它们不是互斥而是叠层:AP2 管授权、x402 管结算、UCP/ACP 管交易流程。代表库:x402-protocol。 → guide/commerce-payments.md
⑤ 喂指令与可观测 — 人/站点怎么给 agent 下指令,系统怎么观测它
前 4 条都是 agent 运行时对外的线协议;这条分支是带内的约定:人/仓库/站点怎么把意图喂给 agent,以及系统怎么观测 agent 的行为。AGENTS.md 是仓库级 agent 说明约定;Agent Skills(SKILL.md)把能 力打包成渐进披露的文件夹;OpenAI Model Spec 定义指令优先级(platform>developer>user>tool);llms.txt 让站点给 LLM 一份可读清单;OTel GenAI 把 LLM/agent/tool 调用标准化成可观测的 span/属性。代表库:agents-md、agent-skills-spec。 → guide/instruction-observability.md
3. 学习路径
- 先读 ① 接能力,从 MCP 开始。 MCP 是全货架地基,③④⑤ 多条分支都把它当底层。读完 mcp-spec 子库 doc 再回看 guide/connect-capabilities.md,后面会顺很多。
- 再按你的场景挑一条分支下钻:
- 做多 agent 系统 → ② agent-to-agent(A2A)。
- 做 agent 里的交互 UI / ChatGPT App → ③ render-ui(MCP Apps)。
- 做 agent 结账/支付 → ④ commerce-payments(先 AP2 授权概念,再 x402 结算)。
- 写 agent 指令 / 接观测 → ⑤ instruction-observability。
- 最后看交叉点(§4),理解这些协议怎么互相组合成一条端到端链路(例如 A2A 任务里嵌 x402 支付、MCP 之上叠 MCP Apps UI)。
4. 交叉点:这些协议怎么组合
货架的精髓是组合——不是 22 个孤岛,而是可叠的层。最重要的几条组合线(均有上游证据):
| 组合 | 关系 | 代码锚点 |
|---|---|---|
| x402 ↔ A2A / MCP | x402 把支付挑战绑定到 A2A、MCP 与 HTTP 三种传输上 | x402-protocol/specs/transports-v2/a2a.md、mcp.md、http.md |
| A2A ↔ x402 | A2A 提供通用扩展机制(extensions.md),x402 据此以 a2a-x402 扩展接入(扩展本体在独立仓,不在所引文件内) | a2a-protocol/docs/topics/extensions.md(仅承重“通用扩展机制”) |
| UCP ↔ AP2 | UCP 复用 AP2 的 mandate 做支付授权 | ucp-protocol/docs/specification/ap2-mandates.md |
| MCP Apps ↔ MCP | MCP Apps 作为 MCP 扩展,随 MCP 修订演进,UI 走 ui:// 资源 | mcp-apps-ext/docs/overview.md:105 |
| AGNTCY ↔ A2A/MCP | Directory 索引 A2A Agent Card 与 MCP server 描述,而非取代它们 | agntcy/api/core/v1/record.pb.go:221(type Record);proto agntcy/proto/agntcy/dir/core/v1/record.proto:58 |
| OTel GenAI ↔ MCP | GenAI semconv 把 LLM/tool 调用标准化成 span/metric;MCP 专页已迁至独立仓 semantic-conventions-genai,本仓 mcp.md 现为重定向桩 | otel-genai-semconv/docs/gen-ai/gen-ai-spans.md、gen-ai-metrics.md(本仓仍在);model/gen-ai/(YAML) |
5. 路由表(任务 → 看哪条分支 / 哪个库)
| 你的任务 | 去哪 | area 标签 |
|---|---|---|
| 给 agent 接工具/数据/文件 | guide/connect-capabilities → mcp-spec, mcp-typescript-sdk | protocols |
| 把一个网站变成 agent 可问的端点 | connect-capabilities → nlweb, llms-txt | web-interop |
| 让浏览器页面给 agent 暴露工具 | connect-capabilities → webmcp | browser-agents |
| 发布/发现一个 MCP server | connect-capabilities → mcp-registry, agntcy | protocols |
| 让两个 agent / 编辑器与 agent 协作 | guide/agent-to-agent → a2a-protocol, acp-agent-client-protocol | protocols, coding-agents |
| 跨组织发现 agent + 可验证身份 | agent-to-agent → agntcy | protocols |
| 在 agent 回复里渲染交互 UI | guide/render-ui → mcp-apps-ext, mcp-ui-sdk | web-interop |
| 做 ChatGPT App / 后端→前端事件流 | render-ui → openai-apps-sdk, ag-ui, a2ui | web-interop |
| 让 agent 完成结账/下单 | guide/commerce-payments → ucp-protocol, acp-agentic-commerce | payments-commerce |
| 让 agent 被授权支付 / 线上结算 | commerce-payments → ap2-protocol, x402-protocol | payments-commerce |
| 写仓库级 agent 指令 | guide/instruction-observability → agents-md | coding-agents, prompt-authority |
| 把能力打包成 SKILL.md | instruction-observability → agent-skills-spec | prompt-authority |
| 设计指令优先级/权限契约 | instruction-observability → openai-model-spec | prompt-authority |
| 给 LLM/agent 调用接观测 | instruction-observability → otel-genai-semconv | evals-observability |
全量目录(22 源,编目 area 见上)
| Id | 一句话 | 分支 |
|---|---|---|
| mcp-spec | MCP 权威规范(JSON-RPC 的 host↔server 接口) | ① |
| mcp-typescript-sdk | MCP 官方 TS SDK,事实标准实现样式 | ① |
| mcp-registry | 官方 MCP server 发现注册中心(server.json) | ① |
| nlweb | 把站点变成 NL /ask//mcp 端点(Schema.org) | ① |
| webmcp | 浏览器页面向 agent 暴露 MCP 工具(W3C 孵化) | ① |
| agntcy | Internet-of-Agents 分布式目录 + 身份(横跨①②) | ①② |
| a2a-protocol | agent 间互操作:Agent Card + 任务生命周期 | ② |
| acp-agent-client-protocol | 编辑器↔编码 agent 会话协议(Zed) | ② |
| mcp-apps-ext | UI-over-MCP 官方扩展(ui://) | ③ |
| mcp-ui-sdk | UI 资源社区 SDK(TS/Python/Ruby) | ③ |
| openai-apps-sdk | ChatGPT 侧 UI-over-MCP 样例 | ③ |
| ag-ui | 后端→前端的 agent UI 事件流协议 | ③ |
| a2ui | 声明式 agent UI 组合协议(Google) | ③ |
| ucp-protocol | 通用商务协议:发现到结账 | ④ |
| acp-agentic-commerce | OpenAI/Stripe 代理结账标准 | ④ |
| ap2-protocol | mandate 支付授权协议(FIDO) | ④ |
| x402-protocol | HTTP 402 机器支付挑战/应答 | ④ |
| agents-md | 仓库级 agent 指令约定(AAIF) | ⑤ |
| agent-skills-spec | SKILL.md 能力打包格式 + 校验器 | ⑤ |
| openai-model-spec | 指令优先级 / 模型行为契约 | ⑤ |
| llms-txt | /llms.txt 站点给 LLM 的可读清单 | ⑤ |
| otel-genai-semconv | GenAI 遥测属性/span/metric 标准 | ⑤ |
新鲜度提示(agent 读): 本货架里多份规范处于 pre-1.0 / 孵化 / draft 阶段(WebMCP、A2UI、ACP-commerce 部分 RFC、MCP draft、AGNTCY)。引用线行为时锚定 lock commit / dated revision,不要照搬博客或
latest;治理归属近期多有变动(MCP/AGENTS.md 入 LF AAIF、AP2 入 FIDO、x402 从 Coinbase 迁出);部分子规范已迁仓(如 GenAI semconv 的 MCP 专页迁至semantic-conventions-genai)。分支章每格对比都接地到子库 doc 或克隆引用,详见各guide/*.md的代码锚点列。