跳到正文
2026 FRONTIER · AGENT PROTOCOLS

MCP 给 Agent 接上手脚,A2A 让 Agent 找到同事

协议解决的是互操作语法,不是智能、信任或权限。模型上下文协议(Model Context Protocol, MCP)标准化 AI 应用怎样发现和调用上下文能力;Agent2Agent(A2A,Agent-to-Agent)标准化独立 Agent 怎样发布技能、接收长期任务并交换结果。两者可以嵌套,但用户授权、最小权限、审批、隔离和审计仍由系统承担。

01 · 为什么需要协议

没有协议时,每接一个系统都像焊一根私有转接线

模型知道“我要查日历”,并不等于它知道某个日历软件开发工具包(Software Development Kit, SDK)怎样认证、参数叫什么、结果如何流式返回。统一协议把发现、schema(结构契约)、调用和生命周期变成共同语言,让 host、tool provider 与远程 Agent 能独立演进。

INTERFACE

把能力描述标准化

工具用 name、description 与 input schema 说明怎样调用;A2A v1.0 的 Agent Card 用 supportedInterfaces、skills、输入/输出 modes 与安全方案描述远程能力。模型和系统不再硬编码每家 SDK。

LIFECYCLE

把长任务状态标准化

一次天气查询可同步返回,但合同审查可能运行十分钟并等待人补资料。A2A Task 用状态与 Artifact 表达长期工作。MCP 2025-11-25 的 Tasks 是 experimental core;2026-07-28 RC 把重新设计、wire 不兼容的 Tasks 移到 extension,不能混用。

BOUNDARY

把“内部不透明”保留下来

A2A 的远程 Agent 只承诺能力与结果,不要求公开其 prompt、memory 或私有工具。互操作发生在边界,不等于共享内部 chain-of-thought。

白话类比

MCP 像统一插座,A2A 像项目外包合同

插座规定电器怎样接入电源,但不替你决定这台电器是否安全;合同规定任务目标、交付物与状态,但不要求外包团队公开每个内部步骤。两者都减少适配成本,却不会自动产生信任。

02 · MCP

Host 管模型和用户,一个 Client 对应一个 Server 连接

以下按核查日稳定的 2025-11-25 规范讲解。MCP 的核心架构是 host–client–server:Host 是完整 AI 应用,创建多个 client 分别连接 server;data layer 使用 JSON-RPC 2.0(以 JavaScript Object Notation, JSON 编码的 Remote Procedure Call, RPC,即远程过程调用)消息表达生命周期与 primitives,transport layer 负责标准输入输出(standard input/output, stdio)或超文本传输协议(Hypertext Transfer Protocol, HTTP)等通信与授权。

RESOURCE

应用选择的只读上下文

文件、数据库 schema、记录或文档内容。应用通常决定何时读取并放进上下文;资源可被恶意内容污染,因此“只读”只说明不能写系统,不说明内容可信。

TOOL

模型可能主动调用的动作

搜索、查询、写文件、发消息、下单或执行代码。输入按 JSON Schema 校验,但 schema 正确不代表业务允许;高风险动作仍要 host 做政策判断和用户确认。

PROMPT

用户显式选择的复用模板

Server 提供参数化交互模板和示例,帮助 host 组织某类任务。Prompt 不是不可覆盖的系统安全边界,也不应携带不可审计的秘密权限。

一个数据库 MCP Server

Resource 给 schema,Tool 执行参数化查询,Prompt 教用户做周报

Host 先用 resources/read 取得表结构,让模型理解字段;再从 tools/list 发现只读查询工具,按 input schema 构造参数;用户选择“生成周报” prompt 后,应用组合资源和工具。数据库账号、行级权限、查询超时与脱敏仍由 server 和 host 承担。

一对一不是“只能接一个”

一个 host 可以同时创建多个 MCP Client,分别连接文件、代码、监控和数据库 Server。隔离连接能避免一个 Server 直接看到另一个 Server 的内容;但 host 若把结果混在同一上下文,仍要防跨源提示注入。

03 · A2A

远程 Agent 暴露“会做什么”,不暴露“脑子里怎样做”

A2A 面向独立、可能由不同组织和框架实现的 Agent。Client Agent 代表用户发起请求,A2A Server 作为 Remote Agent 接收消息;它可直接返回无状态 Message,也可创建有状态 Task。v1.0 把共同语义与具体传输绑定分开,内部模型、memory 与工具仍可保持不透明。

DATA MODEL

先统一语义对象

AgentCard、Message、Task、Part、Artifact 与 Extension 是共同数据模型;规范的 a2a.proto 是这些对象与请求/响应消息的权威定义。

OPERATIONS

再统一抽象操作

SendMessage、GetTask、CancelTask、GetExtendedAgentCard 等操作先定义行为,再映射到具体网络消息格式(wire protocol);公开 Agent Card 则由发现机制获取。调用方不能把某个 SDK 方法名当跨版本合同。

BINDINGS

最后选择传输绑定

v1.0 可在 Agent Card 的 supportedInterfaces 中声明精确字面值 JSONRPCGRPCHTTP+JSON(分别对应 JSON-RPC、gRPC、HTTP+JSON),以及各自统一资源定位符(Uniform Resource Locator, URL)与 protocolVersion;客户端选择双方都支持的接口。

Agent Card:先发现,再选择兼容接口

它是 JSON 元数据:name、supportedInterfaces、capabilities、默认输入/输出 modes 与 skills 是核心必填项,provider 与安全方案等字段可选。v1.0 支持签名卡片,但签名只在验证算法、签名者与信任锚后才有意义;客户端仍要结合可信域、传输层安全(Transport Layer Security, TLS)或受控 registry 验证来源。

Message:双方交换内容

用户、client agent 与 remote agent 通过 parts 传文本、文件引用或结构化数据。每个 part 都要按类型、大小和来源验证,不能因为来自“另一个 Agent”就直接进入工具调用。

Task:长期工作的状态容器

任务概念上可经历 submitted、working、input-required、auth-required、completed、failed、canceled 或 rejected。v1.0 wire format 使用 TASK_STATE_* 枚举,不应和 v0.3 的小写字符串混用;状态机让调用方知道该等待、补信息、取消还是读取 Artifact。

Artifact:任务产生的制品

报告、代码、表格或文件属于输出制品。Artifact 是可交付对象,不自动等于已验证事实;接收方要扫描、校验、标来源,再决定能否进入后续动作。

04 · 职责边界与组合

MCP 往下接能力,A2A 向外接同事

本地 Host 内的主 Agent 通过 MCP 读取资源、调用工具和获取提示,同时通过 A2A 把 Task 委派给远程专业 Agent;远程 Agent 内部还能使用 MCP 连接私有工具。
A2A 不要求远程 Agent 暴露内部 MCP Server;MCP 也不负责远程 Agent 的任务协商。职责清楚后,两种协议可以自然嵌套。 查看原图 ↗
组合例子 · 企业事故响应

主 Agent 用 MCP 看监控,再用 A2A 委派数据库专家

主 Agent 通过只读监控 MCP 获取告警与 trace,判断疑似数据库抖动后,向远程数据库管理员(Database Administrator, DBA)Agent 发起 A2A Task。DBA Agent 在自己的安全域内用 MCP 调指标、运行只读诊断,返回诊断 Artifact;任何写配置、扩容或 failover 都回到主 host 展示参数并等待人工审批。

DO NOT MIX

工具不是 Agent

一个 query_database tool 是被调用的能力,不负责长期目标、自主协作和任务状态;把每个应用程序接口(Application Programming Interface, API)包成 Agent 会增加身份、状态与调度复杂度。

DO NOT LEAK

Agent 不必暴露工具清单

Remote Agent 可以只发布“数据库性能诊断” skill,内部到底用了哪些 MCP Server 属于其安全域。A2A 交换交付物,不交换全部内部权限。

DO VERSION

两个协议都要协商版本

Client、Server、SDK 和 extension 更新速度不同。锁定协议版本、能力集与兼容测试;未知 capability 应拒绝或降级,而不是猜语义。

05 · 安全

能发现工具、能发 Task,只说明攻击面也接通了

Agent 协议从发现元数据、验证身份、最小授权、内容校验、高风险审批、隔离执行到审计撤销的七道安全门,并列出提示注入、混淆代理、服务端请求伪造与能力投毒攻击。
协议互操作不等于安全互信。每次跨域都要重新验证 identity、audience、scope、内容和副作用,不能把上游信任透传给下游。 查看原图 ↗

发现元数据按“不可信输入”处理

工具 description、resource 内容和 Agent Card 都可能含提示注入或欺骗性能力。固定可信 registry、限制动态来源、记录版本;不要让描述文本直接改变系统策略。

认证回答“是谁”,授权回答“能做什么”

HTTP over TLS(HTTPS)和 OAuth 授权/凭证不能替代 scope、resource 与业务权限。RFC 8707 的 resource indicator 思想是 token 只面向目标资源;常规请求的认证信息按 security scheme 与 binding 传递,例如 HTTP header、query/cookie、gRPC metadata 或 mutual TLS,而不是塞进 Message。任务内补授权默认走带外安全通道;只有通过带外方式或 extension 预先协商过带内机制,才可改走带内。服务端仍要按调用者过滤 Task。v1.0 的授权码流可声明 Proof Key for Code Exchange(PKCE,代码交换证明密钥),客户端也不应把用户给它的 token 原样转给任意下游。

高风险动作要做可理解审批

确认框应显示目标系统、具体参数、影响范围、费用和可撤销性。只弹“允许 Agent 使用工具吗?”无法让用户判断风险,也容易被提示注入诱导点击。

执行面隔离,结果面仍要验证

工具设超时、限流、sandbox、出网与文件系统边界;A2A webhook(网络回调)要防 Server-Side Request Forgery(SSRF,服务端请求伪造)并验证通知来源。返回文本、代码和文件仍要扫描,不能自动成为下一条 shell、Structured Query Language(SQL,结构化查询语言)或转账参数。

Local MCP 也不是天然安全

stdio 省去了网络监听,但本地 Server 仍可能读文件、执行进程或窃取环境变量。安装来源、可执行文件签名、工作目录、环境白名单和操作系统(Operating System, OS)sandbox 与远程 OAuth 同样重要。

06 · 截至 2026-07-16 的版本边界

稳定规范、当前文档和 Release Candidate 必须分开写

MCP STABLE

2025-11-25

本页把它作为核查日的稳定规范基线。实现时绑定具体 protocol version 与 SDK,不把 docs 中可能提前出现的下一版概念默认视为稳定。

MCP RC

2026-07-28 Release Candidate

MCP 项目已在 2026-05-21 发布候选,披露 stateless core、Extensions、授权强化与 breaking changes;但 2026-07-16 尚未到计划最终日期,只适合隔离迁移测试。

A2A 1.0 LINE

wire 1.0 · repo tag v1.0.1

v1.0.0 于 2026-03-12 建立稳定线;规范页头截至核查日仍列它为 Latest Released Version,但官方仓库 latest tag 已是 v1.0.1。patch 不进入 A2A-Version 协商,生产仍要同时锁 wire、SDK 与实现 tag。

A2A v0.3 → v1.0

v1.0 的 interaction wire format 有 breaking changes:Agent Card 把顶层 urlprotocolVersion 移入 supportedInterfaces,而顶层 version 仍表示 Agent 自身版本;Part 改为 member-based discrimination,状态枚举改名,客户端通过 A2A-Version 协商。卡片可同时广告 0.3 与 1.0 接口,所以正确迁移是双读/按版本发,不是把旧 payload 直接改一个版本号。

Tenant 不是权限

v1.0 的 tenant 是从选中 AgentInterface 回传的 opaque routing key,用来把请求路由到正确 Agent 或租户;它不能替代认证、对象级授权或“当前调用者能否读取该 Task”的服务端检查。

升级策略

先双栈适配器,再小流量兼容测试,最后迁移生产

把协议解析与业务策略分层;2025-11-25 稳定版回归 initialize/initialized,RC 适配器则改测 MCP-Protocol-Versionserver/discoverMcp-Method/Mcp-Name,再分别覆盖能力、错误、取消、流式、授权与安全路径。不要为了尝鲜让 RC 的 breaking changes 直接改动生产权限模型。

RESEARCH LEDGER

一手来源与证据边界

优先使用论文、官方文档、官方模型卡和代码仓库。页面中的数字只代表来源所述设置,不自动外推到其他模型与数据。

R01
Model Context Protocol Specification · 2025-11-25MCP Project · latest stable at 2026-07-16

截至核查日的 MCP 稳定规范入口、生命周期、JSON Schema 与 HTTP 授权框架。

R02
Architecture overviewModel Context Protocol · accessed 2026-07-16

MCP host–client–server、data / transport 两层、tools/resources/prompts 与双向能力。

R03
Understanding MCP serversModel Context Protocol · accessed 2026-07-16

Tools、Resources、Prompts 的控制方、发现与调用方式,以及多 Server 组合例。

R04
Security Best PracticesModel Context Protocol · accessed 2026-07-16

MCP 具体攻击面、token passthrough、confused deputy、SSRF 与缓解建议。

R05
The 2026-07-28 MCP Specification Release CandidateMCP Project · 2026-05-21

候选版的 stateless core、Extensions、授权强化和 breaking changes;核查日尚非最终稳定版。

R06
Agent2Agent Protocol Specification · protocol 1.0A2A Project · specification header still lists v1.0.0 · accessed 2026-07-16

1.0 wire 规范的数据模型、抽象操作、JSON-RPC/gRPC/HTTP+JSON bindings、版本协商与安全要求。

R07
A2A Protocol v1.0.0 releaseA2A Project · 2026-03-12

1.0 稳定线的初始正式发布与 breaking changes 清单。

R08
A2A Protocol v1.0.1 releaseA2A Project · notes 2026-05-26 · GitHub published 2026-05-28

截至核查日官方仓库的 latest tag;修复 HTTP binding、转码错误与 TaskStatus 文档,不改变协商用的 1.0 wire version。

R09
What’s New in A2A Protocol v1.0A2A Project · accessed 2026-07-16

v0.3→v1.0 的 Agent Card、Part、状态枚举、OAuth、签名和多租户迁移边界。

R10
Agent Discovery in A2AA2A Project · accessed 2026-07-16

well-known、受控 registry、私有配置三种发现方式,以及 Agent Card 缓存与保护。

R11
Agent2Agent Protocol Specification · v0.3.0A2A Project · previous release

只用于解释旧 wire format 与 v1.0 双栈迁移,不再当 latest。

R12
OAuth 2.0 Security Best Current Practice · RFC 9700IETF · 2025

OAuth 客户端、授权服务器与资源服务器的安全最佳实践。

R13
OAuth 2.0 Resource Indicators · RFC 8707IETF · 2020

把 access token 绑定到目标资源,避免同一 token 被跨服务滥用。

R14
JSON-RPC 2.0 SpecificationJSON-RPC Working Group · 2010

MCP 稳定版 data layer 的请求、响应、错误与 notification 基础消息语义。