基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南

作者:如漫、席翁

AI Agent 的构建模式正在从“单个智能体做所有事”走向“多个专精智能体协作”,以更好地拆解并解决复杂任务、更精准的选取和使用工具。A2A(Agent-to-Agent)协议作为统一的通信层,旨在为跨进程、跨语言的智能体互操作提供标准化语义与传输通道,从而解决智能体数量增加引起的运维、管理和部署成本过高等问题。

为了让开发者能够高效、便捷的构建分布式多智能体系统,同时更专注于 Agent 本身功能的构建和调试。Spring AI Alibaba 与 Nacos 在今年的云栖大会上协同发布了 1.0.0.4 与 3.1.0 版本。

其中,Nacos 3.1.0 引入 A2A 了注册中心功能,提供了轻量化的 Agent 服务注册与发现能力;Spring AI Alibaba 通过集成 Nacos,提供了开箱即用的 Agent 注册、Agent 发现与负载均衡能力,让开发者能够快速构建使用 A2A 标准协议通信的分布式多智能体系统。

本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。

为什么需要分布式多智能体?

从单智能体到多智能体

随着开发者期望智能体解决的问题复杂性和专业性提高,伴随着工具数量的增加、多轮会话导致的消息上下文膨胀,我们发现单智能体很难作为一个“全面的超级专家”,来解决多种复合类型的问题。

为了有效解决这个问题,工程上提出了多智能体模式,在这种模式下,系统由多个具备一定自治能力的 Agent 组成,每个 Agent 有自己的角色、能力或工具使用范围。它们之间可以通过消息或上下文进行交互,协同完成复杂目标。多智能体模式具有较强的灵活性和适应性,在研究型问答、复杂数据分析或跨领域问题求解等复杂任务场景下能够取得更好的效果,已经得到越来越多开发者的青睐。

image

多智能体的分布式演进趋势

在过去的一段时间里,AI 应用框架支持的多智能体构建模式,主要以单进程、多线程模式为主。从代码形态上来看,多个 Agent 被实现在同一个仓库;从部署形态上来看,多个智能体被整合到一个服务中,每个智能体以线程的方式存在于服务内并互相通信。这种实现方式在原型验证阶段,能够快速实现并调试功能,但在企业级落地和持续生产迭代过程中,逐渐暴露出以下问题:

  1. 组织协同困难。 企业内部的组织主要以职能或领域划分,在一个多智能体系统中,交易智能体和搜索智能体作为领域专精智能体,更适合由支付团队和搜索团队独立维护,但在上述模式下,两个团队需要共同维护同一份代码、同一个服务,这些无疑会给跨团队协同带来极大的困难,更不符合企业组织拆分的初衷和原则。
  2. 可用性难保证。 由于所有智能体共享同一进程资源,一个智能体出现问题引起的服务崩溃,可能会导致其他智能体均不可用,无法有效隔离故障;同时,也无法按智能体维度进行水平扩缩容,难以实现细粒度的资源配额和限流。
  3. 存在安全风险。 内存与上下文共享导致权限边界模糊,难以对不同智能体实施最小权限与数据隔离策略,存在一定的安全风险。

因此,将多智能体系统拆解成分布式架构,一方面适配于组织架构、便于各自领域的智能体独立开发和迭代,一方面便于提升系统的整体可用性和安全性,正在逐渐成为复杂多智能体系统企业级落地的必要选择。

基于 A2A 协议的分布式多智能体构建方案

Agent2Agent (A2A) [ 1] 协议是由 Google 开发并捐赠给 Linux 基金会的一项开放标准,旨在实现 AI Agent 之间的无缝通信与协作,从而解决智能体数量增加引起的运维、管理和部署成本过高等问题,实现像构建微服务架构一样构建 Multi Agent 系统。

为了管理这些 Agent,Nacos 从 3.1.0 版本开始,提供了 Agent 注册中心(A2A Registry),实现 Agent 的注册、发现、命名空间隔离、版本管理等功能。Spring AI Alibaba 作为一款高代码 AI 应用开发框架,形态上天然适合构建分布式多智能体系统,从 1.0.0.4 版本开始,支持通过 Agentic API 便捷定义和构建 Agent,同时集成 Nacos 进行分布式 Agent 之间的 A2A 协议通信。

基于 Spring AI Alibaba + Nacos 的实现方案示意如下图所示。Server Agent 在启动时,会将 Agent 信息与端点信息注册到 Nacos 中;Client Agent 监听并获取 Agent 信息,同时发现对应 Agent 的端点列表;在需要访问 Server Agent 时,会通过负载均衡选取 Agent 端点,并采用 A2A 协议进行通信。

image

快速开发指南

Demo 介绍

为了方便开发者参考和使用,我们基于 Spring AI Alibaba + Nacos 构建并开源了“云边奶茶铺智能助手” 分布式多智能体 Demo,让消费者一站式咨询、点单与反馈,持续根据用户行为和喜好推荐并下单产品, 从而实现“越来越懂我”,“越用越好用”的用户体验。

构建 Demo 所使用到的 AI 技术包括 A2A、MCP、RAG、Memory、Prompt 管理、AI 观测等,支持集成 Nacos、Higress AI 网关、Spring AI Alibaba Admin、百炼知识库 、Mem0 等。本文将主要围绕 A2A 能力展开介绍。

Demo 工程地址请参见:spring-ai-alibaba-multi-agent-demo [ 2]

完整的 Demo 效果演示和介绍,可以观看视频了解↓

分布式多智能体 Demo 演示——基于 Spring AI Alibaba Agentic API 构建:https://www.bilibili.com/video/BV12Kniz2EE6/

Demo 的整体 Agent 依赖关系如下图所示。用户的会话首先会传递给 Supervisor Agent,Supervisor Agent 根据对话属性,委托 Consult Agent、Business Agent 和 Feedback Agent 子智能体处理不同类型的问题,这些子智能体通过多轮模型对话交互以及使用各自的工具完成任务后,将结果返回给 Supervisor Agent,并最终返回给用户。

四个 Agent 分别在不同的进程中独立部署,支持水平扩展。Supervisor Agent 与 Sub Agents 集成 Nacos 进行 Agent 注册与发现,并通过 A2A 协议进行分布式通信。

接下来,我们将以 Feedback Agent 与 Supervisor Agent 为例,分别介绍作为 AI 应用开发者,如何开发实现 A2A Server Agent 与 A2A Client Agent。

image

构建 A2A Server Agent

以 Feedback Agent 为例,介绍使用 Spring AI Alibaba 构建 A2A Server Agent 的关键步骤。

  • 引入 Pom 依赖
<!-- Spring AI Alibaba版本1.0.0.4及以上 -->
<properties>
    <spring.ai.alibaba.version>1.0.0.4</spring.ai.alibaba.version>
</properties>
<dependencies>
    <!-- 引入A2A Server starter -->
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>
        <artifactId>spring-ai-alibaba-starter-a2a-server</artifactId>
        <version>${spring-ai-alibaba.version}</version>
    </dependency>
    <!-- 引入A2A Nacos 注册中心 -->
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>
        <artifactId>spring-ai-alibaba-starter-a2a-registry</artifactId>
        <version>${spring-ai-alibaba.version}</version>
    </dependency>
    <!-- 引入A2A 百炼大模型客户端,可以用其他的spring ai大模型客户端代替,如openai -->
    <dependency>
        <groupId>com.alibaba.cloud.ai</groupId>
        <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
        <version>${spring-ai-alibaba.version}</version>
    </dependency>
</dependencies>
  • 构建 Agent

通过 Spring AI Alibaba 中定义的 Agentic API 快速定义及构建 Agent 运行逻辑,如下所示,使用几十行代码即可创建用于处理用户反馈的 ReAct Agent。

@Configuration
public class FeedbackAgent {
    private static final Logger logger = LoggerFactory.getLogger(FeedbackAgent.class);
@Autowired
private FeedbackAgentPromptConfig promptConfig;
    @Bean
    public ReactAgent feedbackSubAgentBean(@Qualifier("dashscopeChatModel") ChatModel chatModel,  @Autowired(required = false)  @Qualifier("loadbalancedMcpSyncToolCallbacks")  ToolCallbackProvider toolsProvider) throws Exception {
KeyStrategyFactory stateFactory = () -> {HashMap<String, KeyStrategy> keyStrategyHashMap = new HashMap<>();keyStrategyHashMap.put("messages", new ReplaceStrategy());
return keyStrategyHashMap;};
return ReactAgent.builder().name("feedback_agent").model(chatModel).state(stateFactory).description("用户反馈相关业务处理,支持从反馈中提取和记录用户偏好").instruction(promptConfig.getFeedbackAgentInstruction()).inputKey("messages").outputKey("messages").tools(Arrays.asList(toolsProvider.getToolCallbacks())).build();}
}
  • 配置 Agent 注册参数
spring:
  ai:
    alibaba:
      a2a:
        # 配置Nacos的地址和用户名密码
        nacos:
          server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
          username: ${NACOS_USERNAME:nacos}
          password: ${NACOS_PASSWORD:nacos}
        # 配置A2A server的额外信息,如版本号,agentCard中的Skills等
        server:
          version: 1.0.0
          card:
            # 配置Agent(AgentCard)的URL,若当前版本无可用端点,会使用此 URL
            url: http://localhost:9999/a2a
            name: feedback_agent
            description: 云边奶茶铺反馈处理助手
            provider:
              organization: 云边奶茶铺
              url: xxxxx

启动 A2A Server 后,即可在 Nacos 控制台上看到注册的 Agent 信息。如下图所示。

image

image

Feedback Agent 的完整的代码实现请详见:feedback-sub-agent [ 3]

构建 A2A Client Agent

以 Supervisor Agent 为例,介绍使用 Spring AI Alibaba 构建 Client Agent 的关键步骤。

  • 引入 Pom 依赖
<properties>
  <spring.ai.alibaba.version>1.0.0.4</spring.ai.alibaba.version>
</properties>
<dependencies>
  <!-- 引入A2A Client starter -->
  <dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter-a2a-client</artifactId>
    <version>${spring-ai-alibaba.version}</version>
  </dependency>
  <!-- 引入A2A Nacos 注册中心 -->
  <dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter-a2a-registry</artifactId>
    <version>${spring-ai-alibaba.version}</version>
  </dependency>
  <!-- 引入A2A 百炼大模型客户端,可以用其他的spring ai大模型客户端代替,如openai -->
  <dependency>
    <groupId>com.alibaba.cloud.ai</groupId>
    <artifactId>spring-ai-alibaba-starter-dashscope</artifactId>
    <version>${spring-ai-alibaba.version}</version>
  </dependency>
</dependencies>
  • 构建 Agent

通过 Spring AI Alibaba 中定义的 Agentic API 快速构建 A2aRemoteAgent 作为 Supervisor Agent 的 Sub Agent,其中 Agent 的 Card 和端点信息是从 Nacos 中发现并监听;接下来构建 LlmRoutingAgent 作为 Supervisor Agent。

@Configuration
public class SupervisorAgent {
    @Autowired
    private SupervisorAgentPromptConfig promptConfig;
    @Bean
    public LlmRoutingAgent supervisorAgentBean(ChatModel chatModel,
                                               @Autowired AgentCardProvider agentCardProvider) throws Exception {
        KeyStrategyFactory stateFactory = () -> {
            HashMap<String, KeyStrategy> keyStrategyHashMap = new HashMap<>();
            keyStrategyHashMap.put("input", new ReplaceStrategy());
            keyStrategyHashMap.put("chat_id", new ReplaceStrategy());
            keyStrategyHashMap.put("user_id", new ReplaceStrategy());
            keyStrategyHashMap.put("messages", new ReplaceStrategy());
            return keyStrategyHashMap;
        };
        // 构建A2aRemoteAgent, AgentCard与端点信息实际是从Nacos发现并监听
        A2aRemoteAgent consultAgent = A2aRemoteAgent.builder()
                .name("consult_agent")
                .agentCardProvider(agentCardProvider)
                .build();
        A2aRemoteAgent feedbackAgent = A2aRemoteAgent.builder()
                .name("feedback_agent")
                .agentCardProvider(agentCardProvider)
                .build();
        A2aRemoteAgent orderAgent = A2aRemoteAgent.builder()
                .name("order_agent")
                .agentCardProvider(agentCardProvider)
                .build();
        // 构建Supervisor Agent, 将上述创建的A2aRemoteAgent作为Sub Agent注册
        return LlmRoutingAgent.builder()
                .name("supervisor_agent")
                .model(chatModel)
                .state(stateFactory)
                .description(promptConfig.getSupervisorAgentInstruction())
                .inputKey("input")
                .outputKey("messages")
                .subAgents(List.of(consultAgent, feedbackAgent, orderAgent))
                .build();
    }
}
  • 配置 Agent 发现参数
spring:
  ai:
    alibaba:
      a2a:
        nacos:
          server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
          username: ${NACOS_USERNAME:nacos}
          password: ${NACOS_PASSWORD:nacos}
          discovery:
            enabled: true  # 开启从Nacos中自动发现Agent

完成 Agent 定义和构建后,可以将 Supervisor Agent 暴露到 API 中以支持对话调用,Supervisor Agent 将会根据会话内容,将任务按需分派给通过 Nacos 发现的子智能体,并通过 A2A 协议通信。

Supervisor Agent 完整的代码实现请详见:supervisor-agent [ 4]

运行效果演示

将上文所述 Demo 的全部组件完整运行起来之后,即可在浏览器中打开页面并和云边奶茶铺智能助手进行对话。

image

让智能助手推荐奶茶产品时,Supervisor Agent 会基于 Nacos 的监听和发现,通过 A2A 协议调用 Consult Agent 服务的一个实例进行处理,Consult Agent 在模型驱动下,通过使用百炼知识库检索、数据库搜索、记忆检索等工具,获取用户画像和产品信息,并根据用户喜好生成推荐内容并返回结果。

image

同样,让智能助手下订单或者查询订单时,Supervisor Agent 会基于 Nacos 的监听和发现,通过 A2A 协议调用 Order Agent 服务的一个实例进行处理,Order Agent 在模型驱动下,通过访问 Order Mcp Server 的一个实例调用创建订单、查询订单等工具,完成订单创建或查询,并返回结果。

image

更完整的 Demo 效果演示和介绍,可以进一步观看:

分布式多智能体 Demo 演示——基于 Spring AI Alibaba Agentic API 构建(https://www.bilibili.com/video/BV12Kniz2EE6/)详细了解。

讲在最后

无论从业务角度,还是技术角度来看,智能体的分布式架构都是必然选择。本文介绍了基于 Spring AI Alibaba + Nacos 的实现方案,帮助开发者快速构建分布式多智能体系统,实现智能体弹性伸缩与跨团队解耦。同时以“云边奶茶铺 Demo”为例介绍了具体开发方式。

目前,阿里云 MSE 商业版 Nacos 也已经支持了 A2A Registry 的能力,同时还具备 MCP Registry、Prompt 动态配置管理等能力,和开源 Nacos 相比,具有更高的可用性,更适用于企业级 AI 应用的构建。

此外,AgentScope Java 将于近期发布 1.0 版本,Spring AI Alibaba 后续会把内核升级为 AgentScope ,继续为 Java 开发者打造一个自动装配、开箱即用的 Agent 开发框架。

欢迎您一起参与探索并构建 Multi Agent 系统,让分布式多智能体加速走向更高规模的生产。

相关链接:

[1] Agent2Agent (A2A)

https://a2a-protocol.org/latest/

[2] spring-ai-alibaba-multi-agent-demo

https://github.com/spring-ai-alibaba/spring-ai-alibaba-multi-agent-demo

[3] feedback-sub-agent

https://github.com/spring-ai-alibaba/spring-ai-alibaba-multi-agent-demo/tree/main/feedback-sub-agent

[4] supervisor-agent

https://github.com/spring-ai-alibaba/spring-ai-alibaba-multi-agent-demo/tree/main/supervisor-ag

点击此处,关注并了解 agentscope-java。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/944534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年度撕碎机厂家最新推荐权威榜单:涵盖金属 / 塑料 / 木材 / 固废等多物料处理,精选实力企业破解选型难题

当前,再生资源回收利用行业规模持续扩大,撕碎机作为物料处理的核心设备,定制化需求愈发旺盛。然而,市场上厂家水平参差不齐,多数缺乏细分领域技术储备,无法针对不同物料特性提供适配方案,导致设备效率低下;部分…

基于WPF实现打印机连接与打印功能

一、项目配置创建WPF项目 dotnet new wpf -n WpfPrinterDemo cd WpfPrinterDemo添加必要引用System.Printing(用于打印机管理) System.Windows.Controls(界面控件)二、界面设计 (MainWindow.xaml) <Window x:Cl…

Windows 命令行查看COM口

习惯了在Linux中直接通过命令查看串口,但是Windows一般都是去 “设备管理器 --> 端口” 查询,那么有没有一种可以通过命令行的方式查询呢? 有的,我问了一下DeepSeek,它给出了详细的命令,就是有点长。 PS D:\9…

【IEEE出版】第六届计算机通信与网络安全国际学术会议(CCNS 2025)

由江苏第二师范学院主办的第六届计算机通信与网络安全国际学术会议(CCNS 2025)(线上会议)将于10月31日至11月2日在中国南京召开。【本会议已签约IEEE,授权征稿,发文靠谱!】 【本会议被江苏第二师范学院认可、推…

2025 年最新推荐编织袋源头厂家排行榜:聚焦全自动智能节能设备,助力企业选对优质厂商工业 / 数控 / 重型 / 多功能 / 自动编织袋设备推荐

引言 当前编织袋生产行业飞速发展,企业对设备的需求日益多元化,然而市场上设备厂家良莠不齐,给企业选型带来极大困扰。部分厂家设备性能不稳定,导致生产效率低下、成本攀升;有些厂家缺乏完善售后,设备故障时企业…

C程序设计语言_1.1_开篇入门

C程序设计语言_1.1_开篇入门绝大多数C/C++初学者的第一个程序是打印以下字符串:Hello world!对于入门者而言,个人认为下列部分可能成为障碍:(1) 程序文本编写,了解基本程序结构,亦或者说那些不可或缺的要素;(2) …

playwright自动化测试应用-Day1

# 1. 安装# pip install playwright ## Playwright要求Python 3.7及以上。python --version 或 python3 --version查看# playwright install# python -m pip install --upgrade pip -i https://pypi.…

2025 年货架源头厂家最新推荐排行榜:仓储 / 重型 / 阁楼 / 穿梭式等各类货架优质企业甄选

引言 当前物流仓储行业高速发展,企业对货架的需求持续攀升,但市场上货架源头厂家数量繁杂,产品质量、技术实力与服务水平差异显著。部分厂家存在原材料不达标、生产工艺落后等问题,导致货架承载力不足,埋下安全隐…

2025年10月广州办公室设备搬运公司全景解析报告,基于专业测评的技术、性能及市场优势深度分析

在现代商业环境中,办公室设备搬运是一项高度专业化的服务,涉及精密仪器、档案文档和大型办公家具的安全转移。广州作为华南经济中心,企业对设备搬运的需求日益增长,要求服务商具备强大的运营能力、专业技术和可靠保…

2025年专业的上海Micro-LED显示屏推荐TOP生产厂家

2025年专业的上海Micro-LED显示屏推荐TOP生产厂家 引言 随着显示技术的飞速发展,Micro-LED显示屏凭借其高亮度、高对比度、长寿命和低功耗等优势,正逐渐成为高端商业显示、会议室、舞台演出、广告传媒等领域的首选…

2025年质量好的工业不锈钢链轮最新TOP厂家推荐

2025年质量好的工业不锈钢链轮最新TOP厂家推荐工业不锈钢链轮市场概述工业不锈钢链轮作为机械传动系统中的核心部件,广泛应用于食品加工、制药、化工、海洋工程等对耐腐蚀性要求高的领域。随着工业4.0和智能制造的发展…

2025年正规的广州智能洗碗机,广州洗碗机设备厂家最新推荐榜

2025年正规的广州智能洗碗机,广州洗碗机设备厂家最新推荐榜开篇介绍随着餐饮行业的蓬勃发展和家庭生活品质的提升,智能洗碗机设备已成为现代厨房不可或缺的一部分。广州作为中国南方的经济中心和制造业重镇,汇聚了众…

改进的(μ+λ)约束差分进化算法设计与实现

一、算法框架与核心改进点 改进的(μ+λ)-约束差分进化算法((μ+λ)-CDE)通过多策略变异机制、自适应约束处理模型和动态种群管理提升约束优化性能。其核心改进包括:混合变异策略:结合rand/1、current-to-best/1和…

2025年10月旋转接头厂家全景解析报告,基于专业测评的技术、性能及市场优势深度分析

随着工业自动化水平的持续提升,旋转接头作为流体传输系统的关键部件,其市场需求呈现稳定增长态势。据行业统计数据显示,2024年中国旋转接头市场规模达到42亿元,同比增长12.3%,其中高端产品在冶金、数控机床等领域…

实用指南:Java 高效实现 PowerPoint 转 PDF:不依赖Office

实用指南:Java 高效实现 PowerPoint 转 PDF:不依赖Officepre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consol…

2025年可靠的立式明装风机盘管直销制造

2025年可靠的立式明装风机盘管直销制造推荐指南立式明装风机盘管行业概述立式明装风机盘管作为中央空调系统的末端设备,在商业和民用建筑中扮演着重要角色。2025年,随着建筑节能标准的提高和智能化需求的增长,市场对…

2025年靠谱的FCC催化剂拟薄水铝石厂家推荐及采购指南

2025年靠谱的FCC催化剂拟薄水铝石厂家推荐及采购指南 引言 FCC(流化催化裂化)催化剂是石油炼制过程中的关键材料,而拟薄水铝石(Pseudoboehmite)作为FCC催化剂的重要载体,其质量直接影响催化剂的活性和稳定性。…

2025年10月江苏机械设备EAC认证公司全景解析报告,基于专业测评的技术、性能及市场优势深度分析

随着"一带一路"合作的深入推进,我国机械设备出口欧亚经济联盟地区规模持续扩大。据海关总署最新数据显示,2025年上半年江苏省对俄语区国家机械设备出口额同比增长23.8%,EAC认证作为产品准入的强制性要求,…

2025年热门的镁制硅晶防火风管,漂珠硅晶防火风管实力源头

2025年热门的镁制硅晶防火风管,漂珠硅晶防火风管实力源头行业概述随着建筑安全标准的不断提高和绿色建筑理念的深入推广,防火风管作为建筑通风系统的关键部件,其市场需求持续增长。2025年,镁制硅晶防火风管和漂珠硅…

2025连接器厂家推荐皓富电子,专注USB/电池/TYPE-C/防水接口专业制造

2025连接器厂家推荐皓富电子,专注USB/电池/TYPE-C/防水接口专业制造 在电子设备日益普及的今天,连接器作为各类电子产品中不可或缺的组成部分,其性能与可靠性直接影响用户体验和设备寿命。随着技术的不断演进,USB、…