主题
高频面试题
A2A 协议有哪五大设计原则?
五大原则不是口号,面试官真正想听的是这些原则如何映射到 Agent Card、Task、Streaming、安全和封装边界。
面试官角度分析,想考什么
A2A 五大设计原则是什么?
考拥抱 Agent 能力、现有标准、默认安全、长任务、模态无关。这些原则如何落到协议对象上?
考 Agent Card、Task、Part/Artifact、Streaming/Push。为什么 Agent 不能降级成工具,还要异步优先?
考自主性、任务状态和人工参与,不是一次函数调用。
可直接抄走的 30 秒参考答案
text
A2A 的五大设计原则可以概括为:第一,拥抱 Agent 能力,不把 Agent 降级成工具函数;第二,基于 HTTP、JSON-RPC、SSE 等现有标准,方便企业接入;第三,默认安全,支持企业级认证授权;第四,支持长任务,用 Task、Streaming 和 Push 跟踪状态;第五,模态无关,用 Part 和 Artifact 承载文本、文件、图片、结构化数据等内容。最新规范也把这些原则表达成 Simple、Enterprise Ready、Async First、Modality Agnostic 和 Opaque Execution。面试回答详解,知其所以然
这道题最好不要只背五个英文短语。成熟回答要解释每个原则对应的协议设计,以及它解决了真实系统里的什么问题。
1. 拥抱 Agent 能力
Google 发布 A2A 时强调,A2A 要支持 Agent 用自然、非结构化的方式协作,即使它们不共享内存、工具和上下文。这里的关键是:远端 Agent 不是工具函数。
- Agent 可能自己规划、检索、调用工具、请求澄清、等待人工确认。
- 调用方只委托任务,不直接控制远端每一步工具调用。
- 协作粒度是 task,而不是 tool schema。
这对应到协议上,就是 Agent Card 描述高层技能,Task 表达长期任务,Message 支持多轮上下文,Artifact 表达交付结果。
2. 基于现有标准
A2A 不试图重造所有底层协议,而是复用企业系统熟悉的标准。早期发布文提到 HTTP、SSE、JSON-RPC;最新规范也定义了 JSON-RPC、gRPC、HTTP+JSON/REST 等协议绑定。
这样设计的好处是:
- 更容易穿过企业网络、代理、网关和审计系统。
- 更容易复用现有认证、日志、负载均衡和 SDK 生态。
- 更容易让不同语言和框架实现互操作。
面试中可以说:A2A 的创新点不在传输层,而在 Agent 协作语义层。
3. 默认安全
A2A 面向企业跨系统协作,所以安全不是事后补丁。它需要支持企业级认证授权,并且要把安全要求体现在 Agent Card 和请求处理里。
- Agent Card 声明 security schemes 和访问入口。
- 客户端调用前要确认认证方式和权限范围。
- 服务端要做身份认证、任务级授权、租户隔离和审计。
- Agent Card 自身也要考虑签名、可信来源和缓存失效。
这里要特别强调:协议互通不等于互相信任。Remote Agent 的输出和其他外部内容一样,仍然需要校验和隔离。
4. 支持长任务
A2A 的任务可能几秒完成,也可能持续数小时甚至涉及人工参与。它不能只设计成同步 HTTP 请求。
协议上对应的是:
- Task 有生命周期和状态。
- Client 可以查询、取消或订阅任务。
- Streaming 用于实时状态和 artifact 增量。
- Push Notification 用于离线或异步更新。
- 多轮 Message 支持澄清和补充输入。
这也是 A2A 和普通 function call 的关键差异。Agent 协作常常不是“一问一答”,而是“委托、执行、反馈、补充、交付”。
5. 模态无关
Agent 世界不只处理文本。A2A 用 Part 和 Artifact 支持多种内容类型,让协作可以承载文件、图片、音视频、结构化数据和 UI 能力协商。
这带来的价值是:
- 远端 Agent 可以返回报告文件、表格、图像、代码包,而不是只返回一段话。
- Client 可以告诉 Remote Agent 自己支持什么展示能力。
- 多模态任务可以保持统一生命周期,而不是每种媒体单独设计 API。
6. 和最新规范口径的对应
A2A 1.0 规范里的 guiding principles 更像工程化后的表述:Simple、Enterprise Ready、Async First、Modality Agnostic、Opaque Execution。它们和发布文的五大原则可以这样对应:
- Embrace agentic capabilities:对应 Opaque Execution,不暴露远端内部实现。
- Build on existing standards:对应 Simple 和协议绑定的互操作要求。
- Secure by default:对应 Enterprise Ready。
- Support long-running tasks:对应 Async First。
- Modality agnostic:名称基本一致,强调多模态内容。
面试里可以用发布文的五大原则作主答案,再补一句“最新规范把它进一步收敛成 Simple、Enterprise Ready、Async First、Modality Agnostic、Opaque Execution”,会显得你读过新资料。
面试官追问3个问题
追问一:为什么说 A2A 不应该把 Agent 当工具?
- 考察点:Agent 和 Tool 的抽象差异。
- 回答方向:工具通常按 schema 被动执行一次调用;Agent 有任务目标、内部策略、状态、工具链和多轮协作能力。A2A 表达的是任务委托,不是工具调用。
追问二:长任务支持靠什么实现?
- 考察点:协议对象和生命周期。
- 回答方向:靠 Task 状态、tasks/get、tasks/cancel、message/stream、task update event 和 push notification 等机制,而不是单个同步返回。
追问三:默认安全是不是协议自动保证安全?
- 考察点:安全边界。
- 回答方向:不是。协议提供安全字段和机制,但生产安全还要靠身份认证、授权策略、来源校验、审计、人审和运行时隔离。
扩展知识
为什么设计原则能反推出协议组件
text
Agentic capabilities -> Agent Card / Skill / Opaque Execution
Existing standards -> HTTP / JSON-RPC / gRPC / REST bindings
Secure by default -> Security Schemes / Auth / Agent Card Signing
Long-running tasks -> Task / Status / Streaming / Push
Modality agnostic -> Part / Artifact / Content Type不同版本口径不要混淆
2025 年 Google 发布文更像产品和生态视角,讲“五个 key principles”。A2A 1.0 规范更像标准化视角,讲 guiding principles 和可互操作要求。面试中两者都能讲清,比只背一版更稳。