先说几个核心判断。Agent-to-Agent(A2A)协议正在成为多智能体协作的基础设施,而各大开发平台对它的支持程度,将直接决定未来企业级智能体生态的走向。下面我们系统梳理一下A2A协议的要点、主流Agent开发平台的特性,以及如何基于A2A协议把Agent“发布”出去。
A2A 协议详解
先来看看A2A协议的五个核心设计原则,它们奠定了整套协议的基调。

第一,拥抱 Agent 能力。 A2A不只是把远端的Agent当成一个工具来调用,它允许Agent之间以自由、非结构化的方式交换消息,支持跨内存、跨上下文的真实协作。同时,Agent之间是“黑盒”——不需要暴露内部思考、计划或工具,隐私保护也够到位。
第二,基于现有标准。 在HTTP、Server-Sent Events、JSON-RPC这些成熟技术之上构建,意味着能和现有IT架构无缝集成,企业不用推倒重来。
第三,企业级安全。 内置了与OpenAPI同级别的认证与授权机制,满足企业级的安全与合规需求。这一点对生产环境至关重要。
第四,长任务支持。 除了即时调用,还能管理需要人机环节介入、耗时数小时甚至数天的深度研究任务,并实时反馈状态与结果。
第五,多模态无差别。 不限于文本,原生支持音频、视频、富表单、嵌入式iframe等多种交互形式。
讲完五大原则,接下来看协议中定义的三个关键角色——它们各司其职、协同配合,共同支撑起多Agent生态的运行。

- 用户(User):最终用户(人类或服务),使用Agent系统完成任务。
- 客户端(Client):代表用户向远程Agent请求行动的实体。在A2A框架中,Client通常也是一个具有一定决策能力的Agent。
- 远程Agent(Remote Agent):作为A2A服务器的“黑盒”Agent。
客户端负责选择合适的远程Agent来完成任务,并管理与远程Agent的通信、认证和任务状态。
A2A协议还设计了一套完整的对象体系,用于实现高效协作:
- Agent Card(Agent名片):每个支持A2A的远程Agent需发布一个JSON格式的“Agent Card”,描述自身能力和认证机制。Client据此选择最合适的Agent。

- Task(任务):Client和Remote Agent之间协作的核心概念,包含状态、历史记录和结果。
- Artifact(成果):Remote Agent生成的任务结果,可以有多个部分(parts),比如文本、图像等。
- Message(消息):用于Client和Remote Agent之间的通信,包含指令、状态更新等内容,一个Message可包含多个parts来传递不同类型内容。
Agent 开发平台分类及介绍
Agent开发平台大致可分为两类:高代码平台和低代码平台。低代码平台如Coze、Dify,通过可视化界面和拖拽操作降低门槛;高代码平台则更适合有技术背景的开发者,强调灵活性和深度定制,也更容易实现协议的标准化需求。本章主要聚焦高代码平台。
AG2 / AutoGen:微软AutoGen更偏向企业级,依托Semantic Kernel和Azure生态,注重生产支持和商业化。AutoGen Studio的低代码特性吸引非开发者用户,但0.4版本不再兼容0.2,社区需要迁移代码。AG2则坚持开源和社区驱动,保持0.2的架构连续性,适合研究者和开发者实验。AG2的灵活性和创新功能(如Reasoner袋里)在开源社区中更具吸引力,但缺乏微软的资金和企业背书。
CrewAI:以其直观的“团队协作”理念和易用的API在开源社区中有一席之地。相比AutoGen的企业化定位和AG2的研究导向,CrewAI更适合中小型项目与快速开发,受初学者与中小企业青睐。与LangChain等工具的兼容性和社区驱动的生态使其具有长期发展潜力,但在复杂推理与大规模生产环境支持方面仍需完善。

Google ADK (Agent Development Kit):发布较晚,不为很多人所知,但充分利用Google Cloud生态,用Gemini模型和Vertex AI实现可扩展性和监控。它还支持MCP和A2A协议,实现跨供应商的Agent协作安全性和互操作性,并通过Agent Garden提供预构建样本和工具加速开发。
LangGraph:由LangChain团队开发,专注于构建基于语言模型的多Agent系统和图状工作流。深深嵌入LangChain生态,与LangChain的Agent、内存和检索模块高度兼容,也支持其他框架的部分功能。通过LangSmith可以进行工作流的监控和评估。其图状工作流和动态路由能力使其成为处理复杂多Agent任务的理想选择,尤其适合需要可视化和状态管理的场景。
LlamaIndex Agent:深深嵌入LlamaIndex生态,与数据连接器(支持PDF、CSV、SQL等)、索引器和查询引擎紧密协作。与LangChain和CrewAI等框架兼容。通过LlamaIndex的可视化工具(如Playground)进行调试和优化。其强大的数据索引和检索能力使其成为处理知识密集型任务的理想选择,模块化设计和多模态支持使其在教育、研究和企业应用中广受欢迎。
Semantic Kernel:微软开发的轻量级开源SDK,帮助开发者将LLM轻松集成到C#、Python或Ja va代码中。作为高效的中介层,加速企业级解决方案交付,受大型企业青睐。将提示与现有API结合,通过描述代码给AI模型,模型调用函数,SK作为中间件翻译请求并返回结果。开发者可将现有代码作为插件,最大化投资回报。
还有一些小众框架,如Azure AI Foundry Agent Service、MindsDB Agent和Marvin等。
A2A 协议搭建智能体平台
这一章基于教学版代码介绍A2A智能体平台的搭建过程。代码路径如下:
git clone https://github.com/huangjia2019/a2a-in-action.git

在这个基于A2A协议的智能体平台中,用户在浏览器端发出指令后,前端将请求传给Host Agent,由它负责解析意图、拆解子任务,并行触发多个Remote Agent;每个Remote Agent通过A2A Client将子任务封装为标准JSON-RPC请求,发送给远端对应的A2A Server,由后者调用各自擅长的智能体模块执行并返回结果;最后Host Agent汇总并格式化各路反馈呈现给用户。
Host Agent
进入demo/ui目录,启动Demo:
cd demo/ui
uv run main.py
启动后日志如下:

Host Agent的管理页面地址:https://localhost:12000/

页面支持对话功能:

注册Remote Agent功能:

页面还支持事件列表查询、任务列表查询、设置等功能。
启动Remote Agent并注册到Host Agent
启动基于LangGraph开发的Agent:进入agents/langgraph目录,通过uv run .命令启动服务。

将LangGraph开发的Agent注册到Host Agent:

输入Agent发布的地址和端口:

会自动弹出Agent Card:

可以看到Remote Agent已经添加成功。

正常情况下,可以通过页面中的对话,通过Host Agent的Client与这个Remote Agent进行交互调用。不过实际调试中,可能由于网络环境问题出现一些请求超时情况,这里先初步体验这个Demo案例。
Remote Agent A2A协议实现细节
在教学项目中,LangGraph框架开发的Agent通过A2AServer(A2A协议服务端实现)将CurrencyAgent以HTTP服务形式暴露出来,并注册了自己的AgentCard。
Agent Card是A2A协议的关键核心对象,定义Agent的元数据(名称、描述、URL、版本等),声明支持的输入/输出模态,列出技能清单。它的目的是让Agent能够被发现,并让其他系统知道如何与之交互——这是实现Agent-to-Agent通信的基础。
A2AServer则是A2A协议的服务端实现,其中的Task Manager负责任务生命周期管理、状态追踪和更新(WORKING、COMPLETED、ERROR等)、同步/异步请求处理、生成响应格式以及错误处理和恢复。
server = A2AServer(
agent_card=agent_card,
task_manager=AgentTaskManager(
agent=CurrencyAgent(),
notification_sender_auth=notification_sender_auth,
),
host=host,
port=port,
)
这样一来,LangGraph目录下的Agent就成为一个标准的A2A协议远程Agent,具备独立服务能力和能力自描述。
Agent 智能体的授权
在智能体时代,授权的内涵发生了根本性变化。


总结
Google Cloud已联手50多家技术与服务伙伴(包括Atlassian、Salesforce、MongoDB、Accenture、Deloitte等)共建A2A生态。未来预计将在开源社区中逐步完善规范,并推出生产级实现,推动异构Agent在企业级场景中的深度互操作,助力跨系统、跨组织的智能协作大规模落地。
目前多数企业可能还未涉及跨平台的Agent交互问题,所以持观望态度,等待市场上出现更稳定、更成熟的企业级A2A智能体平台。
本文如有不准确的引用或观点,欢迎大家批评指正。
