AgentScope、A2A、Nacos 这三个词放在一起,我做智能体开发的朋友里已经有越来越多人在问了。我的感受是,过去一年大家做多智能体,早就不缺模型能力,也不缺框架,最头疼的是"我这个 agent 怎么跟别人写的 agent 协作"以及"我连对方跑在哪台机器上都不知道"这两个特别基础的问题。AgentScope 2.0 正式纳入 A2A 模式之后,再配合 Nacos 做服务注册与发现,这套组合确实把多智能体协作从"各自造轮子"往"开放生态"这个方向推进了一大步。这篇文章会完整拆一下这套方案:A2A 协议到底解决什么、Nacos 在中间扮演什么角色、AgentScope 2.0 怎么接入、以及在真正落地时我踩过的坑和排查思路。内容偏工程实践,适合正在做智能体开发、想把销售智能体、客服智能体这类业务 agent 真正做成协作网络的同学参考。
1. 智能体协作的真实困境:为什么需要 A2A
1.1 单机智能体与多智能体协作的差异
今年很多团队其实已经过了"做个会调用工具的 agent"的阶段。第一阶段的智能体基本都在单进程里跑:LLM 接收指令,调工具函数,返回结果。这种模式用哪个框架都能搞定,AgentScope、LangChain、LlamaIndex 都可以,根本不需要考虑网络通信。AgentScope 在这个阶段给的是智能体生命周期管理、消息传递、多角色流程编排这些能力,开发者主要把精力放在提示词和工具设计上。
但一旦进入真实业务,事情就变了。销售智能体要跟 CRM 系统里的数据智能体配合,客服智能体要调用订单查询智能体,供应链智能体需要跟库存优化智能体协商补货计划。这些 agent 可能由不同团队开发,用不同框架,部署在不同服务器上,甚至跑在完全不同技术栈的运行时里。它们之间的协作调用,不能再靠"同一个进程里 import 一下"来解决,而是要面对分布式系统里最经典的一堆问题:网络寻址、服务发现、协议约定、容错重试、任务状态管理。
大多数团队的现状是:每个智能体都暴露一堆 HTTP 接口,但接口风格千奇百怪。有的返回 JSON,有的直接返回 Markdown 文本,有的用 WebSocket,有的用 SSE 流式输出。调用方必须为每一个上游智能体写一套专属客户端,接口文档更新后还得跟着改代码,耦合程度高到没法维护。所以我经常说,多智能体协作的"壁垒",本质上不是模型能力问题,而是工程协议问题。
1.2 A2A 协议想解决什么
A2A(Agent-to-Agent)协议就是在这种背景下出现的。它是一个面向智能体互操作性的开放协议,核心思路非常朴素:定义一套统一的"智能体对外通信语言",让不同框架、不同厂商的 agent 都按这套语言暴露能力。你不需要关心对面是 AgentScope 写的还是别的框架写的,只要它实现了 A2A 标准,你就能调用它。
A2A 里有两个很重要的概念。第一个是 AgentCard,可以理解成智能体的"名片"。它用 JSON 描述这个智能体的名字、擅长什么、能力边界、支持流式输出还是多轮任务。其他智能体先拿到这张名片,确认对方能力之后,再决定要不要协作。第二个是 Task,也就是任务对象,代表一次完整交互的上下文,包含任务状态流转和消息记录。Task 是 A2A 的核心抽象,所有请求都围绕任务来推进,而不是简单的"发一个请求收一个响应"。
所以 A2A 解决的问题,是把智能体之间的交互从"私有接口调用"提升为"标准协议通信"。这个地位跟 HTTP 协议很像:大家的业务语言可以千差万别,但网络通信说同一种语言。热词里有人搜"AgentScope 2.0 有 A2A 模式的智能体协作吗",答案是肯定的。从官方文档和社区信息来看,2.0 版本支持将本地 agent 包装成 A2A 服务端对外提供能力,也提供了 A2A 客户端用来调用远端智能体。你不需要再手动拼 HTTP 请求、处理流式输出、维护任务状态机,框架帮你把协议层的活封装掉了,开发者只写业务逻辑。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 整体方案:AgentScope + A2A + Nacos 的三角架构
2.1 三个组件各管哪一段
做系统设计,得先把角色分清楚,不然很容易把三个东西混为一谈。AgentScope 负责智能体的生命周期和业务编排,A2A 负责智能体之间的通信协议,Nacos 负责"找到对方在哪"。三者各司其职,组合起来才是完整的多智能体协作基础设施。
- AgentScope 2.0:智能体框架层。用它定义智能体、绑定大模型、写工具函数、编排多智能体流程。
- A2A:通信协议层。规定智能体之间用什么格式交换信息、任务如何流转、能力如何描述。它只定义"说什么话",不负责"去哪找人"。
- Nacos:基础设施层。提供服务注册、服务发现、健康检查、配置管理。A2A 只知道协议,不知道目标智能体跑在哪台机器上,Nacos 来补齐这个信息。
这个分工是整套方案最妙的地方。之前很多人做多智能体协作,总是把协议和寻址混在一起。要么自己发明一套私有通信协议,然后把地址硬编码在配置文件里;要么用了注册中心,但智能体之间的消息格式还是各写各的。AgentScope 2.0 加 A2A 加 Nacos 的组合,把这两件事彻底解耦了:协议层归协议层,寻址归寻址,各自可以独立演进。
