agent-interop
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseAgent interop — the protocols an agent speaks outside its own process
Agent 互操作性——Agent 在自身进程之外通信所用的协议
agent-orchestratoragent-evalsagent-orchestratoragent-evalsTriggers
触发词
"MCP client", "agent interoperability", "server.json", "agentgateway", "tool federation", "интероперабельность агентов", "реестр MCP", "delegation token", "токен делегирования".
"MCP client"、"agent interoperability"、"server.json"、"agentgateway"、"tool federation"、"интероперабельность агентов"、"реестр MCP"、"delegation token"、"токен делегирования"。
Rule zero — a protocol claim without a date is a guess
规则零——不带日期的协议声明只是猜测
Every one of these specifications moved in the twelve months before 2026-08-13 — the
date every reference below was read — and each moved in a way that silently breaks code
written against the previous revision. Concretely, and each one measured on that date
against the live specification rather than recalled:
- MCP replaced the handshake with
initializeand made the protocol stateless; a client that opens withserver/discoveris speaking a revision that is on its way out.initialize - MCP deprecated ,
samplingandroots— three things an older model will reach for first, because for a year they were the interesting part of the client side.logging - A2A renamed its wire surface between v0.x and v1.0, and SDKs and blog posts still documented v0.3 as of 2026-08-13.
- agentgateway deprecated in favour of
binds— while its own overview page still introducedgatewaysas a core concept as of 2026-08-13.binds
So: every reference in this skill opens with a line, and
This pack's repository validator fails the build without one. That is a mechanical check, not an
aspiration — the class of error it prevents is the one where prose reads as current
because nothing on the page says otherwise.
**Spec pinned:**Before you write wire-level code, fetch the spec. These references tell you what to look
for and what changed; they are not a substitute for the document. Read the pinned revision,
then check whether a newer one exists. Every entry in the link map below is fetchable.
在 2026-08-13 之前的十二个月里,以下每项规范都发生了变动——这个日期是下文所有参考资料被读取时的日期——而且每项变动都会悄无声息地破坏针对上一版本编写的代码。具体而言,以下每项结论都在该日期依据在线规范而非记忆进行核验:
- MCP 用 取代了
server/discover握手,并使协议变为无状态;以initialize开头的客户端所用的是正在被淘汰的版本。initialize - MCP 弃用了 、
sampling和roots——旧模型最先伸手拿到的正是这三项,因为过去一年它们一直是客户端侧最值得关注的部分。logging - A2A 在 v0.x 与 v1.0 之间更改了线路层接口,而截至 2026-08-13,SDK 和博客文章仍在记录 v0.3。
- agentgateway 弃用了 ,改用
binds——但截至 2026-08-13,它自己的概览页仍将gateways介绍为核心概念。binds
因此:本 skill 中的每份参考资料都会以一行 开头,缺少这一行时,本 pack 的 repository validator 会让构建失败。这是机械检查,不是愿景——它所防止的正是那种错误:页面未作说明,于是文字读起来像是当前状态。
**Spec pinned:**在编写线路层代码前,先获取规范。 这些参考资料告诉你该查什么、变了什么;它们不能替代文档。读取锁定的版本,然后检查是否存在更新版本。下面链接映射中的每个条目都可获取。
Which protocol answers which question
哪种协议回答哪个问题
| The question you actually have | The answer | Where |
|---|---|---|
| I want to give a model a capability against a live system | MCP server | |
| My server is written and the client cannot connect to it | mounting and transports | |
| I want my application to consume other people's tool servers | MCP client | |
| I have more servers than fit in a context window | client scaling patterns | |
| I want another team's autonomous agent to accomplish an outcome for me | A2A | |
| I want my agent discoverable and callable by other agents | A2A agent card | |
| I want people to find and install my MCP server | MCP Registry | |
| I have many servers, many clients, and a security team | a gateway | |
The one-line rule between the two big ones. MCP connects a model to a capability you
control the shape of; A2A connects you to a peer whose insides you deliberately cannot
see. The official framing is exact and worth keeping: "A2A is about agents partnering on
tasks, while MCP is more about agents using capabilities." Real systems run both — an A2A
server whose internals speak MCP — and that is the recommended architecture, not a
compromise.
The dispatch criterion is WHAT the other side is, not how long it runs. MCP =
a CAPABILITY / tool you control the shape of; A2A = an AUTONOMOUS PEER whose
outcome you delegate and whose insides you cannot see. Duration is a SECOND
question, and it is about a Tasks CAPABILITY, not a protocol. A long-running
FIXED job you own — a ten-minute export, a batch transform — is MCP with the
Tasks extension (a durable handle: poll, supply input mid-flight, retrieve
later; see ), NOT A2A. So decide by the routing set, and
never by the word long-running:
references/mcp.md- long-running FIXED export → MCP Tasks, when the client/SDK negotiates that extension;
- autonomous outsourced negotiation → A2A (you delegate the outcome, not the steps);
- Tasks unsupported by the reached client/SDK → an explicit fallback
(chunk the job, a job id the caller polls with a plain , or a webhook) — reaching for A2A because Tasks is absent is picking a protocol to dodge a missing extension.
tools/call
Check the client's ACTUALLY-negotiated extensions before building on Tasks;
inventing a task lifecycle on top of when Tasks IS available is
re-implementing the extension, and reaching for A2A when Tasks is merely
unsupported is the mis-route this audit closes. Publishing an agent card for
something that is one HTTP call with a JSON schema is still the MCP direction.
tools/call| 你真正要解决的问题 | 答案 | 位置 |
|---|---|---|
| 我想让模型调用实时系统中的某项能力 | MCP server | |
| 我的 server 已写好,但 client 无法连接它 | 挂载与传输机制 | |
| 我想让应用消费其他人提供的 tool server | MCP client | |
| 我的 server 数量超过 context window 可以容纳的数量 | client 扩展模式 | |
| 我想让另一个团队的自主 Agent替我完成某项结果 | A2A | |
| 我想让我的 Agent 可被其他 Agent 发现和调用 | A2A agent card | |
| 我想让人们找到并安装我的 MCP server | MCP Registry | |
| 我有许多 server、许多 client,还有一个安全团队 | gateway | |
两大核心协议之间的一行规则。 MCP 将模型连接到你控制其形态的能力;A2A 将你连接到一个你刻意无法看见内部实现的对等方。官方表述非常准确,值得保留:“A2A 关注的是 Agent 在任务上协作,而 MCP 更多关注的是 Agent 使用能力。” 真实系统通常同时使用两者——一个内部使用 MCP 的 A2A server——这也是推荐架构,而非折中方案。
分派依据是对方是什么,而不是它运行多久。 MCP = 你控制其形态的 CAPABILITY / tool;A2A = 你委托结果、且无法看见其内部实现的 AUTONOMOUS PEER。时长是第二个问题,而且它关乎 Tasks CAPABILITY,而不是协议。 你拥有的长时间 FIXED 任务——例如十分钟导出、批量转换——应使用带 Tasks 扩展的 MCP(持久句柄:轮询、运行中提供输入、稍后检索;参见 ),而不是 A2A。因此应根据路由集合来决定,绝不能只看“长时间运行”这个词:
references/mcp.md- 长时间运行的 FIXED 导出 → 当 client/SDK 支持协商该扩展时,使用 MCP Tasks;
- 自主的外包协商 → A2A(你委托的是结果,而不是步骤);
- 到达的 client/SDK 不支持 Tasks → 采取明确的 fallback(将任务分块、使用调用方通过普通 轮询的 job id,或使用 webhook)——仅仅因为缺少 Tasks 就转向 A2A,是为了让协议来掩盖缺失的扩展。
tools/call
在基于 Tasks 构建前,检查 client 实际协商出的扩展;当 Tasks 可用时,却基于 自行发明 task 生命周期,就是重新实现该扩展;而当 Tasks 只是不受支持时转向 A2A,则是本次审查要纠正的错误路由。对于本质上只是一次带 JSON schema 的 HTTP 调用的事物,发布 agent card 仍然属于 MCP 方向。
tools/callReferences
参考资料
Each file opens with its own Load this when line and its revision stamp. This table is
an index; the trigger lives in the file, so the two cannot drift apart.
| File | Read it when |
|---|---|
| you are building or calling an MCP server — the layers, per-request |
| the server is written and cannot be reached — mounting inside an existing web app, transport-level auth, client config, and the 404 that is really a double path |
| the host has more servers and tools than context — progressive discovery, programmatic tool calling, cache interaction, and the security surface each one opens |
| the other side is another agent, not a tool — agent cards and discovery, the task lifecycle and its terminal states, three protocol bindings, streaming versus push |
| you are publishing a server or building something that consumes the registry — |
| agent traffic needs one controlled seam — what a gateway must do that an API gateway does not, federation and name collisions, where authorization actually belongs, and delegation — a token that says which agent acts for which person, and whether a call needs one at all (trust by machine: T0/T1/T2) |
每个文件都以自己的 Load this when 行和 revision stamp 开头。该表只是一个索引;触发条件位于对应文件中,因此二者不会发生偏移。
| 文件 | 何时阅读 |
|---|---|
| 你正在构建或调用 MCP server——各层、逐请求 |
| server 已编写完成但无法访问——挂载到现有 web app、传输层 auth、client config,以及实际上由双路径引起的 404 |
| 宿主的 server 和 tool 数量超过 context——渐进式发现、程序化 tool calling、cache 交互,以及每个 server 引入的安全面 |
| 对方是另一个 Agent,而不是 tool——agent card 与发现、task 生命周期及其终态、三种 protocol binding、streaming 与 push |
| 你正在发布 server 或构建 registry 消费方—— |
| Agent 流量需要一个受控切面——gateway 必须完成哪些 API gateway 不必完成的事、federation 与名称冲突、authorization 实际应位于何处,以及 delegation——一种说明哪个 Agent 代表哪个人行动的 token,以及某次调用是否需要它(按机器信任划分:T0/T1/T2) |
Boundaries — what this skill is not
边界——本 skill 不是什么
Against . owns the skill author's view: whether a job wants a
skill or a server at all, declaring a server dependency in , and the fact that
tool names differ per host ( in Claude Code,
for a plugin's own server). This skill owns the wire. If the question is "what does the
protocol say", it is here; if it is "how does my skill declare that it needs one", it is
there. The protocol is described in exactly one of the two places, and this is it.
make-skillmake-skillcompatibilitymcp__<server>__<tool>mcp__plugin_<plugin>_<server>__<tool>Against the Fabric adapter and Observatory skills. Where an agent or service must join
a Fabric estate, the HOW is theirs: ,
and
(the descriptor, the hub,
); credentials an agent uses go through
(named vault slots, never a value). This skill keeps the
protocol they speak — MCP, A2A, the gateway, delegation — and points to them rather than
restating them.
fabric-agent-adapter:creating-fabric-agentsfabric-agent-adapter:adapting-projects-to-fabricfabric-agent-adapter:building-fabric-servicesfabric-service/0.1observatory-log:handling-secretsAgainst . That skill routes between model providers and manages the
loop's own context. This one routes between processes. They meet at exactly one point: an
orchestrator that federates many MCP servers is subject to , and one
that fronts them with a proxy is subject to .
agent-orchestratorreferences/mcp-scale.mdreferences/gateway.mdAgainst . That file decides whether a
boundary may be crossed and what an audit row must carry to prove a control was applied. This
skill describes how the crossing is spoken. Permission there, protocol here.
agent-orchestrator/references/governance.mdNot covered at all: designing the tool set of one server (what tools, what schemas, what
descriptions — that is a design problem, and Anthropic's plugin is built for
it); prompt wording; a single LLM call in a script.
mcp-server-dev相对于 。 负责 skill 作者视角:某项工作究竟需要 skill 还是 server、如何在 中声明 server 依赖,以及不同 host 的 tool 名称不同(Claude Code 中为 ,plugin 自有 server 中为 )。本 skill 负责线路层。 如果问题是“协议怎么说”,答案在这里;如果问题是“我的 skill 如何声明需要它”,答案在那里。协议只在这两个地方之一描述,而这里就是协议本身。
make-skillmake-skillcompatibilitymcp__<server>__<tool>mcp__plugin_<plugin>_<server>__<tool>相对于 Fabric adapter 和 Observatory skill。 当 Agent 或 service 必须加入 Fabric estate 时,具体做法归它们负责:、 和 (descriptor、hub、);Agent 使用的凭据应通过 处理(使用命名的 vault slot,绝不存放值)。本 skill 保留它们所使用的协议——MCP、A2A、gateway、delegation——并指向相应 skill,而不重复描述。
fabric-agent-adapter:creating-fabric-agentsfabric-agent-adapter:adapting-projects-to-fabricfabric-agent-adapter:building-fabric-servicesfabric-service/0.1observatory-log:handling-secrets相对于 。 该 skill 在模型提供商之间进行路由并管理循环自身的 context。本 skill 则在进程之间路由。两者仅在一个点交汇:federate 多个 MCP server 的 orchestrator 适用 ,而以 proxy 作为这些 server 前端的 orchestrator 适用 。
agent-orchestratorreferences/mcp-scale.mdreferences/gateway.md相对于 。 该文件决定是否可以跨越边界,以及 audit row 必须包含哪些信息来证明控制措施已执行。本 skill 描述如何完成这种跨越。权限归那里,协议归这里。
agent-orchestrator/references/governance.md完全不涉及: 设计单个 server 的 tool 集合(有哪些 tool、schema 和 description——这是设计问题,Anthropic 的 plugin 正是为此而建);prompt 措辞;脚本中的一次 LLM 调用。
mcp-server-devThe neighbourhood — one verdict each
周边生态——每项一个结论
Named so an agent stops guessing, with the verdict stated rather than implied.
Verdicts as of 2026-08-13, the day this skill's references were pinned — this ground
moves, so re-verify anything marked watch before building on it.
| Thing | What it actually is | Verdict |
|---|---|---|
Agent Skills ( | the open | Adopt, but not here. The family owns it in |
| ACP (IBM's Agent Communication Protocol) | a former A2A competitor | Dead as a choice. Merged into A2A under LF AI & Data on 2025-08-29; its team stopped developing it. If you meet ACP in a doc, the answer today is A2A |
| AGNTCY (Cisco/Outshift → Linux Foundation, July 2025) | not an A2A rival — an infrastructure stack around multi-agent systems: OASF discovery, agent identity, SLIM messaging, observability. It archived its own competing protocol | Orthogonal. Evaluate it for identity and observability if you run many agents; it does not replace A2A or MCP |
| AP2 (Agent Payments Protocol) | Google's payments extension for A2A, standardising through FIDO Alliance working groups. Signs intent as Verifiable Digital Credentials — Checkout Mandates and Payment Mandates, each with an Open and a Closed stage | Watch, do not build on it yet. Explicitly in progress rather than production-ready. It is the right shape for the problem — proving this user authorized this purchase — so track it if an agent will ever spend money |
| "ChatGPT apps" / OpenAI's plugin surface | checked, and it is not a separate protocol: an MCP server, plus Agent Skills for the workflows, plus optional UI | Nothing new to learn. Build the MCP server; the host packaging is the host's |
| MCP extensions — Tasks, MCP Apps, Skills over MCP | opt-in additions to the core protocol, negotiated per connection | Read before inventing. Long-running work has a durable-handle answer already; see |
给出名称是为了让 Agent 不再猜测,并明确陈述结论而非任其隐含。截至 2026-08-13 的结论,即本 skill 参考资料锁定之日——这一领域变化很快,因此基于任何标记为 watch 的内容构建之前都要重新核验。
| 对象 | 实际是什么 | 结论 |
|---|---|---|
Agent Skills( | 本文件所采用的开放 | 采用,但不放在这里。 该家族由 |
| ACP(IBM 的 Agent Communication Protocol) | 曾经的 A2A 竞争者 | 不再是一个选择。 2025-08-29 在 LF AI & Data 下并入 A2A;其团队已停止开发。如果在文档中遇到 ACP,如今答案是 A2A |
| AGNTCY(Cisco/Outshift → Linux Foundation,2025 年 7 月) | 并非 A2A 的竞争者,而是围绕多 Agent 系统的基础设施栈:OASF discovery、Agent 身份、SLIM messaging、可观测性。它已归档自己的竞争协议 | 正交。 如果运行大量 Agent,可评估它用于身份与可观测性;它不能替代 A2A 或 MCP |
| AP2(Agent Payments Protocol) | Google 面向 A2A 的支付扩展,通过 FIDO Alliance 工作组推进标准化。以 Verifiable Digital Credentials 签署意图——分为 Checkout Mandates 和 Payment Mandates,二者都有 Open 和 Closed 阶段 | 关注,但暂不要基于它构建。 它明确仍在推进中,尚未达到生产就绪状态。对于相应问题,它的形态是正确的——证明此用户授权此次购买——因此,如果 Agent 将来可能花钱,就持续跟踪它 |
| "ChatGPT apps" / OpenAI 的 plugin 界面 | 经核查,它不是一种独立协议:一个 MCP server,加上用于工作流的 Agent Skills,以及可选的 UI | 没有新东西需要学习。 构建 MCP server;host 的打包方式归 host |
| MCP extensions——Tasks、MCP Apps、Skills over MCP | 核心协议的可选扩展,按连接进行协商 | 先阅读,不要自行发明。 长时间工作已有持久句柄方案;参见 |
The link map — where to go and read
链接映射——去哪里阅读
Nothing here is summarised well enough to build against. These are the documents.
| Read | For | URL |
|---|---|---|
| MCP specification (current) | the normative requirements; always check the revision it serves | |
| MCP architecture | the two layers, statelessness, the discovery exchange with real JSON | |
| MCP server concepts | tools, resources, resource templates, prompts — who controls each | |
| MCP client concepts | elicitation's two modes and the MRTR pattern; the deprecated client features | |
| MCP deprecation register | the authoritative list of what is on the way out and its earliest removal | |
| MCP client best practices | progressive discovery and code mode, with the numbers | |
| Build a server / build a client | the SDK-level walkthroughs | |
| MCP + Agent Skills | how skills and servers compose, and the | |
| MCP registry — about, quickstart | what it is, and the exact publish flow | |
| MCP docs index for machines | fetch this first if you are an agent exploring | |
| A2A home and specification | v1.0, the three bindings, the normative surface | |
| A2A key concepts / life of a task / discovery | the object model, the lifecycle, the well-known URI | |
| A2A and MCP | the official statement of how they divide | |
| agentgateway — standalone, Kubernetes | the config model, and the Gateway API story | |
| Source repositories | when the docs are behind the code | |
Fetch the first when you are an agent. Both and
publish one, and both are versioned per docs release — which is how you
find the page that exists rather than the page you remember.
llms.txtmodelcontextprotocol.ioagentgateway.dev这里的内容没有任何一项被充分总结到可以直接据此构建。以下才是原始文档。
| 阅读内容 | 用途 | URL |
|---|---|---|
| MCP specification(当前版本) | 规范性要求;始终检查它所对应的 revision | |
| MCP architecture | 两个层、无状态性,以及带真实 JSON 的 discovery exchange | |
| MCP server concepts | tools、resources、resource templates、prompts——分别由谁控制 | |
| MCP client concepts | elicitation 的两种模式和 MRTR 模式;已弃用的 client 特性 | |
| MCP deprecation register | 正在淘汰的项目的权威清单及其最早移除时间 | |
| MCP client best practices | 渐进式发现与 code mode,以及相关数字 | |
| Build a server / build a client | SDK 级操作指南 | |
| MCP + Agent Skills | skill 与 server 如何组合,以及 | |
| MCP registry——about、quickstart | registry 是什么,以及确切的发布流程 | |
| 面向机器的 MCP docs index | 如果你是正在探索文档的 Agent,应先获取此文件 | |
| A2A 首页与 specification | v1.0、三种 bindings、规范接口 | |
| A2A key concepts / life of a task / discovery | 对象模型、生命周期、well-known URI | |
| A2A 与 MCP | 两者如何分工的官方说明 | |
| agentgateway——standalone、Kubernetes | 配置模型及 Gateway API 相关内容 | |
| 源代码仓库 | 当文档落后于代码时查阅 | |
当你就是 Agent 时,先获取 。 和 都发布了该文件,并且二者都按 docs release 进行版本管理——这正是找到实际存在的页面而非凭记忆查找页面的方法。
llms.txtmodelcontextprotocol.ioagentgateway.devChecklist — shipping anything that speaks these protocols
检查清单——交付任何使用这些协议通信的内容
- The revision you build against is written down — in , a constant, or a README line
compatibility - You read the deprecation register before using a client feature
- Version mismatch has a handled path, not a crash
- Tool output is treated as untrusted input, including output from your own servers
- Nothing secret is requested through an elicitation form — that is URL mode's job
- Long-running work uses a durable handle rather than a held connection
- If you federate: name collisions are resolved deliberately, not by load order
- If you publish: the namespace is one you can prove you own
- Authorization is enforced per hop, not only at the entrance
- 已明确写出所基于的 revision——记录在 、常量或 README 中的一行
compatibility - 使用 client 特性前已阅读 deprecation register
- Version mismatch 有可处理的应对路径,而不是直接崩溃
- Tool output 被视为不可信输入,包括自身 server 的输出
- 不会通过 elicitation form 请求任何 secret——这是 URL mode 的职责
- 长时间工作使用持久句柄,而不是维持连接
- 如果进行 federate:名称冲突经过有意解决,而不是由加载顺序决定
- 如果进行发布:namespace 是你能够证明自己拥有所有权的 namespace
- Authorization 在每一跳执行,而不仅仅在入口执行