Agent会互相调用了,但A2A 1.0真正解决的是协作边界

一个客服Agent把账单问题交给财务Agent,难点不是再发一次提示词,而是确认对方是谁、能做什么、代表谁访问数据,以及失败后谁负责。Microsoft Foundry在9月18日正式支持A2A 1.0端点与调用工具。它的价值不是让Agent"更聪明",而是给跨系统协作增加一份可发现、可鉴权、可版本化的契约。

发生了什么

Microsoft公布两类能力:A2A Endpoint把Foundry中的Agent暴露给外部调用;A2A Tool让Foundry Agent调用另一个兼容端点。A2A即Agent2Agent,是Linux Foundation旗下的开放协议。其1.0规范定义了能力发现、消息与任务、交互模态、协议绑定和版本协商,而调用方不需要看到对方的内部记忆、工具或实现。

在Foundry里,新集成推荐A2A 1.0,旧的0.3仍处于预览兼容期。入站1.0目前只支持JSON-RPC,不支持流式响应,且只支持文本模态。Agent Card也不是公开名片:端点与卡片URL都要求Microsoft Entra ID身份,调用方至少要有Foundry Agent Consumer角色。

一手来源:Microsoft发布说明Foundry接入文档A2A 1.0规范

协议不是"Agent之间的HTTP"

普通API描述函数和字段;A2A还要描述一个自治服务的能力、任务状态与交互方式。Agent Card类似服务目录,列出名称、版本、技能、接口、安全方案和支持模态。调用方先发现卡片,再选择双方都支持的协议版本和绑定,之后发送任务或消息。

这也解释了它与MCP的差别。MCP(Model Context Protocol,模型上下文协议)主要把工具与数据交给一个Agent;A2A主要让一个Agent把子任务委托给另一个Agent。两者可以叠加:被调用的远端Agent内部仍可通过MCP查数据库或运行工具。

flowchart LR U[用户请求] --> A[主Agent] A --> C[读取远端Agent Card] C --> V{协商A2A版本与接口} V --> I[携带用户或服务身份] I --> B[专业Agent] B --> T[内部模型/工具/MCP] T --> R[返回任务结果与状态] R --> A A --> O[合并证据并回复用户]

真正需要设计的是身份

Foundry提供两种入站身份模式。On-behalf-of代表终端用户,适合"财务Agent只能看当前员工有权看的发票";服务身份则代表调用Agent或后端服务,适合夜间批处理。二者不能凭便利混用:如果把所有请求都变成高权限服务账号,A2A只是把越权包装成标准协议。

具体场景中,客服Agent要查询退款状态。它的卡片发现财务Agent具备invoice-lookup技能,然后携带用户身份发起任务。财务Agent仍需在自身边界校验租户、数据范围和允许动作;主Agent不能因为对方"宣称有这个技能"就默认结果可信。Agent Card描述能力,不等于安全证明。

还要关注留存。Foundry文档写明A2A任务与上下文从最近一次写入起保留60天,每次新写入会重置期限。对含个人信息或商业机密的任务,这不是小配置:团队必须明确什么能进入上下文、谁能读取、何时主动删除,以及日志是否保存了正文。

成本也需要进入协议外的控制层。一个主Agent可能把同一问题扇出给多个专业Agent,再触发各自的模型和工具。若只给单次请求设预算,嵌套委托仍可能放大Token、外部API与人工复核成本。调用链应传递剩余预算,并在每一跳记录消耗。

取消同样不是小事。用户停止任务后,主Agent要把取消信号传到下游,否则远端仍可能继续检索、付费调用甚至执行动作。测试时应把"是否真的停止"作为单独用例,而不只是关闭前端进度条。

我的判断

A2A把多Agent系统最难的部分从"能否互调"推进到"如何证明这次委托合规"。 标准化能降低适配成本,却不会自动解决授权传播、成本失控、循环调用和错误归责。协议成功只说明消息送达;业务成功还需要结果校验与明确责任人。

对企业而言,最小治理单元不应只是一个Agent,而应是"调用方身份---目标技能---数据范围---最大步骤---预算---证据"的六元组。任何一个字段缺失,都可能出现技术上成功、治理上失败的调用。

边界与风险

Foundry当前的1.0入站限制意味着需要HTTP+JSON、gRPC、图像或流式响应的系统还不能直接照搬。协议也允许多种绑定,跨供应商联调必须显式发送A2A-Version,不能依赖默认值。远端Agent可能超时、返回不完整证据或改变能力,调用方要有熔断、幂等键和人工接管。

发布页与文档只能证明功能定义,不能证明不同厂商实现已实现无缝互操作。正式采购前应使用同一测试集验证任务状态、错误码、取消、重试和身份传播,而不是只跑一次"你好,你能做什么"。

立即可做的接入检查

先画出所有Agent与数据源,逐条标注调用身份;给每张Agent Card只暴露必要技能;对高风险动作采用用户身份或逐步授权;明确版本头、超时、最大跳数和预算;记录任务ID、目标版本、权限决策与证据摘要;模拟远端拒绝、重复回调和卡片变更;最后用最小权限账号做端到端回归。

如果一个Agent要替你调用另一个Agent,你最希望先看到权限、成本还是证据链?

关注「蜗牛聊AI」,一起看懂技术变化背后的真正机会。


本文首发于 java4u.cn,转载请注明出处。

相关推荐
HIT_Weston1 小时前
227、【AI】【模型部署】基座模型研究:RoPE 旋转位置编码
人工智能·模型部署
Omics Pro1 小时前
1个月2轮融资!长寿虚拟细胞
数据库·人工智能·算法·机器学习·自然语言处理
residual_fan1 小时前
航空发动机故障诊断专用智能体(六):实际机队健康管理中的应用考量与展望
人工智能·算法·数据挖掘·数据分析
知几蜗牛1 小时前
AI越懂你越好吗?五天实验给出一个不舒服的答案
人工智能
能源革命1 小时前
AI 日报 2026-09-19
人工智能
天远Date Lab1 小时前
零信任架构实战:基于天远二手车VIN估值构建自动化资产定价网关
人工智能·ai·工具分享
掘金泥石流1 小时前
上下文即服务:AI 应用的竞争,为什么会从入口转向 Context?
人工智能·架构·agent
知几蜗牛1 小时前
平均延迟很快用户还在卡?用AIPerf看懂P99尾延迟
人工智能
打工仔折腾 AI2 小时前
用 Shell 脚本自动部署 mysqld_exporter 并接入 Prometheus 远程抓取
人工智能·后端·python·性能优化·ai agent 实战