一、什么是 A2A 协议?

        A2A(Agent-to-Agent)协议,是由 Google 于 2025 年 4 月发起、现由 Linux 基金会管理的开放标准。它的核心目标是让不同厂商、不同技术栈开发的 AI 智能体能够顺畅通信、交换信息并协同行动

        简单来说,A2A 要解决的是 AI 智能体之间的“横向协作”问题。如果说 MCP(Model Context Protocol)解决的是 Agent 如何调用工具和数据(纵向连接),那么 A2A 解决的就是 Agent 之间如何分工配合——前者是“手”,后者是“大脑之间的对话”。

        A2A 协议基于 HTTP、JSON-RPC 2.0 和 SSE(Server-Sent Events)等标准 Web 技术构建。每个符合 A2A 规范的智能体会在 /.well-known/agent-card.json 端点公开自己的 AgentCard(智能体卡片),描述自身的能力、技能和调用方式。其他智能体或客户端可以动态发现这些能力并与之交互,实现“即插即用”式的协作。

        目前,A2A 已获得包括 IBM、微软、CrewAI、LangChain 等 50 多家技术伙伴的支持,正在成为智能体互联网时代的“通用语言”。

二、Eino 框架简介

        Eino(谐音“I know”)是字节跳动开源的、基于 Go 语言的大模型应用开发框架。它已经成为字节跳动内部大模型应用的首选全代码开发框架,豆包、抖音、扣子等多条业务线、数百个服务已接入使用。

Eino 的核心设计理念可以概括为两点:

  • 组件化:Eino 定义了一系列标准组件——ChatModel(与大模型交互)、Tool(执行动作)、Retriever(检索上下文)等。开发者可以像搭积木一样组合这些组件。

  • 流程编排:Eino 提供了强大的 Graph/Workflow 编排引擎,支持顺序、并行、分支、循环等多种执行模式。一个 ReAct Agent 在 Eino 中只需要几十行图的编排代码即可实现。

        此外,Eino 原生支持流式处理、类型安全、可观测性等企业级特性,特别适合构建生产级的 AI 应用。

三、A2A 在 Eino 框架中的应用

        Eino 对 A2A 的支持并非简单的外挂适配,而是深度集成到框架内核中。具体来说,Eino 提供了两种 A2A 实现方案,覆盖从小型单应用到大型分布式系统的全场景。

3.1 本地 A2A:AgentAsTool

适用场景:同一个进程或服务内的多 Agent 协作。

实现原理:将独立的子 Agent 封装成 Eino 标准的 Tool(工具),父 Agent 通过 LLM 的自主 ToolCall 机制动态调用子 Agent。这种方式本质上是一种“隐式 A2A”——开发者无需关心协议细节,Agent 之间的通信由框架自动完成。

代码示例非常简洁:

// 1. 构建子 Agent(如订单查询 Agent)
orderAgent := adk.NewChatModelAgent(model.NewOpenAIChatModel(...))

// 2. 将子 Agent 封装为标准 Tool —— 这就是本地 A2A 的核心
orderTool := adk.AgentAsTool(orderAgent, adk.WithToolName("订单查询智能体"))

// 3. 主调度 Agent 加载该 Tool,自动获得调用子 Agent 的能力
mainAgent := adk.NewChatModelAgent(llm).WithTools(orderTool)

// 4. 执行对话,主 Agent 会自主判断何时调用子 Agent
runner := adk.NewRunner(mainAgent)
runner.Run(ctx, "我的订单物流状态")

典型业务场景:电商客服系统中,主客服 Agent 通过 A2A 并行调用订单查询、商品知识库、售后工单等多个子 Agent,合并结果后统一回复用户。

3.2 远程 A2A:标准 A2A 协议

适用场景:跨服务、跨团队、跨框架的多 Agent 协作。

实现原理:Eino Agent 对外暴露符合 A2A 标准的 HTTP/gRPC 服务端点,通过 AgentCard 暴露自身能力。不同服务、不同语言实现的 Agent(只要支持 A2A 协议)都可以通过网络互相调用。

        Eino ADK(Agent Development Kit)提供了完整的 A2A 封装——既支持将 ADK Agent 快速部署为 A2A Server,也支持将远程 A2A Server 封装为本地 ADK Agent。

3.3 三种核心编排模式

Eino 通过 Graph/Workflow 编排引擎,将 A2A 多 Agent 协作归纳为三种主流模式:

模式说明典型场景
顺序串行Agent A → Agent B → Agent C 固定流水线文档处理:分块提取 → 摘要 → 润色
并行多 Agent 同时执行,汇总所有结果综合问答:知识库检索 + 实时数据查询 并行调用
动态路由LLM 智能分析意图,动态选择调用哪些子 Agent真正的多智能体团队协作,最贴近真实场景

四、工程落地优势

A2A 在 Eino 中的落地不只是“能用”,更是“好用”。Eino 为 A2A 提供了完整的工程化配套能力:

  • 上下文与会话管理:统一的 schema.Message 跨 Agent 传递消息,Checkpoint 持久化支持多轮 A2A 交互的中断、恢复和回溯。

  • 流式传输:原生支持 SSE 流式事件,A2A 调用无需等待子 Agent 完整输出,可实时分片回传增量内容,大幅降低首字延迟。

  • 中间件治理:全局中间件统一处理重试、超时熔断、限流、调用日志、链路追踪、权限校验。

  • 可观测性:全链路记录 A2A 调用耗时、输入输出、成功失败率,配合调试面板可视化多 Agent 协作链路。

五、典型应用场景

A2A + Eino 的组合已经在字节跳动内部及多个行业落地:

  1. 企业智能客服中台:主调度 Agent 通过 A2A 调用订单、物流、商品、退款等垂直子 Agent,单服务 QPS 提升 50%。

  2. RAG 复杂问答:分块检索、向量召回、文档精读、答案校验等多 Agent 并行协同,交叉校验减少模型幻觉。

  3. 自动化办公:日程、邮件解析、文档生成、审批等 Agent 通过远程 A2A 互通,实现会议纪要到排期的全自动流程。

  4. 垂直行业分布式智能体网络:金融、招聘、供应链等多系统独立 Agent 服务通过 A2A 协议打通,无需改造原有系统即可轻量化集成。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐