聊聊蚂蚁开源多Agent框架——muAgent

智能科技扫地僧 2024-08-29 02:47:34
概述

CodeFuse-muAgent [1]是蚂蚁CodeFuse团队开发的Mulit Agent框架,其核心宗旨在于简化agents的标准操作程序(SOP)编排流程。

多Agents的核心关键即Agent的交互链路,也即实现SOP的关键。其核心在于如何把上一个Agent的输出给到下一个Agent的输入,其中需要涉及到llm的输出、具体action的执行以及信息的解析处理。

架构

muagent整合了一系列丰富的工具库、代码库、知识库以及沙盒环境,可支撑用户在任何领域场景都能依托muagent迅速搭建起复杂的多Agent交互应用。通过这一框架,用户能够高效地执行和处理多层次、多维度的复杂任务。

其架构图如下:

每个技术点的描述如下:

Agent Base:构建了四种基本的Agent类型BaseAgent、ReactAgent、ExecutorAgent、SelectorAgent,支撑各种场景的基础活动。Communication:通过Message和Parse Message 实体完成Agent间的信息传递,并与Memory Manager交互再Memory Pool完成记忆管理。Prompt Manager:通过Role Handler、Doc/Tool Handler、Session Handler、Customized Handler,来自动化组装Customized 的Agent Prompt。Memory Manager: 用于支撑 chat history 的存储管理、信息压缩、记忆检索等管理,最后通过Memory Pool在数据库、本地、向量数据库中完成存储。Component:用于构建Agent的辅助生态组件,包括Retrieval、Tool、Action、Sandbox等。Customized Model:支持私有化的LLM和Embedding的接入。

一个完整的多Agent生态,个人觉得,其所需的能力也就是如上的几点。

Agent Base

在Agent层面,提供四种基本的Agent类型,对这些Agent进行Role的基础设定,可满足多种通用场景的交互和使用。所有的Action都由Agent执行。

BaseAgent:基础功打得溜,问答、工具使用、代码执行样样行。ReactAgent:标准React流,遇事不慌,标准反应流程轻松应对。ExecutorAgent:对任务清单进行顺序执行,根据 User 或 上一个Agent编排的计划,完成相关任务,排个队,挨个干!SelectorAgent:挑三拣四,根据User 或 上一个 Agent的问题选择合适的Agent,总能找到最合适的Agent回答用户需求。

相比较于AutoGen,其实也差不多,但划分粒度更清晰;尤其是Agent的编排,由专门的agent负责处理;而ReAct的功能,这里也是单独抽出来的Agent,初步来看,比AutoGen对React的支持更强。

Component

辅助生态组件更详尽,区别于AutoGen,Sandbox支持隔离的特性让辅助生态的支持更丰富强大。

Communication

多Agent的关键在Agent间的信息交互,因此communication的实现是必不可少的。AutoGen通过结转逻辑,支持信息流转;CodeFuse通过Communication组件独立实现该功能。从实现方式来看,CodeFuse应该支持的更强大。AutoGen是一个summary_method方法来定义的。

总结

之前没有了解过国内多Agent框架,因为本身也不多;从AutoGen入手对多Agent的了解,再结合CodeFuse的实现来看,多Agent的SOP更具体更模块化,不过其思想也是一致的,关键的组成部件还是那些。

总的来说,如何协调好LLM并来引导它们产生期望的输出,其本质就是将业务问题抽象并拆解到可执行的Prompt,让他们像处理业务问题一样精准执行;而业务的编排执行则由Agent实现,最终是落到了LLM上。

参考资料

[1]

CodeFuse-muAgent : https://github.com/codefuse-ai/CodeFuse-muAgent/blob/main/README_zh.md

2 阅读:197

智能科技扫地僧

简介:感谢大家的关注