分布式agent
分布式MAS运行架构,高可用,高吞吐,高扩展
运行架构

上图mas运行架构图
低代码开发
- agent编辑器:开发人员编写Agent,拖拽预制agent,构建agent flow。
- 图编辑器:业务人员通过可视化界面,拖拽预制的节点,编写业务流程图
- 输出:开发者编写好的Agent和业务人员编写的”图”存入资源库(RR)进行统一管理。
注册中心
- agent注册与元数据管理中心,是动态扩缩容和故障转移,高扩展,高吞吐的机制
- agent发现,client定时扫描注册中心,获取agent列表,实现高可用和负载均衡
资源管理层(资源库 RR)
- 资源库 (RR) agent和图类型定义的持久化存储层,负责管理所有的agent node,Agent定义和业务图
- 分为两个独立的环境,支持持续集成和持续部署(CI/CD)的发布策略:
- 测试桶:存放开发和测试阶段的Agent与图
- 发布桶:存放上线的Agent与图
执行器目录和选择
- 包含执行器条目及执行器选择器,选择器负责接收来自网关的查询请求,根据负载策略决定具体的agent执行器实例
- 负责执行器心态管理,执行器注册,心跳处理(健康检测),业务metrics和性能metrics采集
执行层
- 执行器 (AE) 是Agent pipeline运行的节点
- 每个执行器内部包含执行容器,容器的职责是:
- 从资源库 (RR) 的发布桶中载入最新的Agent代码和流程图
- 执行Agent,本地或原创
- 管理Agent的运行生命周期
- 注入机制:执行器在启动或扩容时,向目录和索引(EDI)注册自身,发送心跳
接入与调用层(Client 与 ASG)
- Client(客户端):发起agent请求,图请求
- Agent服务网关 (ASG):系统面对外部的统一入口
- RPC 调用:Client 通过 RPC 协议请求 ASG 获取服务
- 路由分发:ASG 接收到请求后,不会直接执行,向 目录和索引 (EDI) 发起“选择执行器”的请求。EDI 的选择器根据当前集群状态和请求特性,按策略返回最优的 Agent执行器
- 转发执行:ASG 最终将 RPC 请求转发给选定的具体 Agent执行器完成处理。
容错
分布式执行架构agent/多agent执行是图驱动,图的检查点支持容错,重试,提告系统健壮性
- 故障检测与触发
当 agent执行器(AE) 节点因网络抖动、OOM(内存溢出)或硬件故障导致下线时,系统通过以下链路感知异常:
心跳丢失: 执行器目录和索引 (EDI) 监测到执行器实例的心跳超时,将其标记为不可用,推送到运维系统
调用超时/失败: ASG 在 RPC 调用过程中捕获到连接重置或响应超时异常,立即判定当前任务执行失败
- 重试与节点重选 (Rescheduling)
检测到执行失败,ASG 不会直接返回错误给 Client,而是启动内部的重试逻辑:
执行器获取检查点, 查询持久化存储,获取该最近一次成功保存的检查点,执行检查点系列-图分析
- 断点续传与状态恢复
执行器(AE)获取检查点后,从检查点中执行状态(例如:Pipeline 已经完成了 A->B 节点,正准备执行 C 节点),恢复全局状态,执行nextNode。
幂等性保障: 对于涉及外部副作用(如写数据库、发通知)的节点,系统会利用检查点中的事务 ID 进行幂等校验,防止重试导致的数据重复写入。
实现分析
本节分析架构实现
A2A
Agent2Agent (A2A) 协议是由 Google 开发,实现Agent之间的通信与协作和能力展示,Nacos提供了Agent注册的原生支持,管理(A2A Registry),实现 Agent 的注册、发现、命名空间隔离、版本管理等功能。
A2A+Nacos实现分布式架构的agent注册和发现,远程调用
a2a实现处在初级阶段,其功能成熟度完整度未达到要求,agentcard作为agent调用令牌,绑定agent实例,提供了事件订阅更新agentcard,但只针对版本变更,不是可用实例 ;nacos agent注册实例需设置首选项,但查所有资料未发现该选项说明,大概理解是权重设置;没有实现本地agent列表缓存,本地负载均衡;agent为注册服务单位粒度太小;a2a有自己的执行机制,与graph的执行机制兼容问题,如,saa graph的外部介入,中断和恢复
总的来说,a2a实现,在高可用,高吞吐,容错未达到要求
微服务(spring cloud)
java技术栈,微服务简单而高效实现分布式mas运行架构, agent服务负责按名称实例和运行agent/图,另外,可简化为整个pipeline在执行器运行(本地agent),无需agent服务注册和发现

上图是微服务实现的分布式mas运行架构
转载自 CSDN-专业IT技术社区




