中间件XL头像
langgraph4j原理源码分析 agent III 分布式mas封面图

langgraph4j原理源码分析 agent III 分布式mas

分布式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技术社区

原文链接:https://blog.csdn.net/szlhj/article/details/168342938

文章来源转载

评论

评论列表

微信小程序
QQ小程序

关于作者

点赞数:0
关注数:0
粉丝:0
文章:0
关注标签:0
加入于:--