蚂蚁集团推出,兼容现有市面各类Agent框架,同时可实现复杂推理、在线协同、人工交互、知识即用四大核心差异技术功能。
这套框架目前在蚂蚁集团内多个复杂DevOps场景落地验证,同时可通过快速搭建的创新AI文本游戏“谁是卧底”游戏快速感受一下。
站在当前视角,LLM大模型能很好的解决通用单步任务(如SQL生成)、单步工具使用(如天气查询),但实际现实中的场景却是复杂多步骤的,尤其面向严谨专业私有领域,LLM只能给出泛泛而谈的答案(包括ChatGPT),面向C端体验用户可能问题不大,面向B/P端实际生产时却往往用处不大。
蚂蚁团队认为大模型就像才毕业的名校博士,具备优秀的基础素养,但却无法面向特定领域进一步学习,能够面向特定领域给出完善的任务规划决策。LLM能逐步协助人来解决问题或者Agent能实际解决问题,核心在于PLANNER推理能力。
人面向专业复杂事务处理具备丰富的经验,人的经验从哪里来?两部分:
muAgent基于LLM+EKG(Eventic Knowledge Graph行业知识承载)驱动,协同MultiAgent、FunctionCall、CodeInterpreter等技术,通过画布式拖拽、轻文字编写,让 大模型在人的经验指导下帮助你完成各类复杂多步任务。
muAgent整体架构
为了实现复杂多步流程SOP(Standard Operating Procedure)自动化,先来看SOP的构成。拆开抽象,任何任务流SOP的推进本质由三部分组成“经验”+“工具”+“人物”,衔接LLM推理,实现整体三者的有机结合。
经验: 面向特定专业领域,复杂任务是如何操作处理?流程步骤是什么? 工具: 在流程推进中,周边工具的使用,使用什么工具?如何使用工具? 人物: 在流程推进中,周边人物的咨询,找谁(人、智能体)?问什么?
为此,muAgent整体的架构大图如下,和业界Agent框架定义对标,包含Planner、Memory和ActionSpace三大核心模块,以及Diagnose的调试监控和Interface的产品界面。
为方便理解,接下来通过“谁是卧底”这一AI文本游戏串联整个流程的介绍。通过简易画布拖拽加上轻文字编写,即可实现这一游戏的快速体验。中间的流程即刚才提及的“经验”,下方深紫框即“工具”,上方浅篮框即“人物”。
muAgent中的经验模块
存储结构
面向不同行业、不同类型的工作流/SOP,该如何抽象统一,能够比较好地设计schema来存储经验知识?古语有云“授人以鱼不如授人以渔”,即应该设计存储“过程经验”,而非“结果经验”。相比存储状态结果,更应该告诉大模型如何来做一件事获得结果。例如相比于僵化的告知大模型今天天气如何,更合适的做法是教会大模型如何去查询天气。muAgent设计了“场景意图+事件流程+组织人物+统一工具”四大类节点,可满足不同场景所需的SOP经验承载。如下图所示。
由于任务流通常天然呈现为图或者树结构,因此muAgent采取图数据库来承载经验的存储。相比传统的RAG,或者微软的GraphRAG—-更多的是把知识图谱KG作为一个数据的来源—-muAgent直接把KG升级作为编排引擎。通过“拖拉式”“轻文字”编写实现特定领域复杂SOP的沉淀以及SOP的自动化。
经验获取
有了经验的存储设计,就像有了人脑,接下来要解决知识的获取构建问题。muAgent提供两种经验构建能力。第一种是刚才提及的通过产品侧画布式轻文字编写;第二种是面向海量的存量文档,muAgent具备自动化抽取的能力,能将普通文本和流程图自动抽取转换为图谱结构。对于抽取的部分信息错误或者信息缺失,通过简易的调试即可获取完善的SOP经验。
由于图谱的引擎设计自然继承了图谱的能力实现,在承载经验的同时,muAgent提供“经验拆分”和“经验合并”的能力。
经验拆分:
我们期望模型具备一定的泛化能力,而不是告诉什么回答什么(类似DiFY固定僵化的任务流,同时不同于AutoGPT纯随机发散的推理),举个例子,当沉淀了“杭州旅游行程规划”后,那么应该抽象出“旅游行程规划”,在面对“北京旅游行程规划”的Query问题时,也应该能很好的作答。再发散一点,抽象原子经验“酒店订购、车票订购、餐饮选择”,那么在面对“北京差旅行程规划”时也能利用好原子经验进行回答!类似于告诉人一个特定问题的解决思路的时候,他会举一反三,我们期望拥有原子经验的模型也具备这一能力。为此muAgent提供“经验拆分”,通过“现象-任务-判断-结论”这一四段论的形式,结合下一小节的推理能力,实现在人的经验指导下的发散推理。
经验合并:
一千个人读哈姆雷特有一千个看法,如同盲人摸象,录入承载的经验更像是一个抽象类的具象化,更好的做法是将不同共建的经验合并来提供事物本质的模样。以旅游车票订购为例,距离较远的人会沉淀经验“车票订购-飞机”,距离较近的会沉淀“车票订购-高铁”,本地游的会沉淀“车票订购-地铁”,将这几个经验对齐合并,才能完整的形成原子经验“车票订购”。
经验推理
有了经验的知识存储,接下要解决知识的利用推理问题。推理方面muAgent整体包含两大模块:
意图识别:
面向多层意图,支持“顺序+直接”意图定位;面向不同问题,支持意图分类(执行OR咨询);面对模糊意图,支持反问用户以得到信息补充。
图谱推理:
基于用户沉淀经验,协同FuncCall,面向不同类型用户问题,多路推理(执行OR问答)。
muAgent中的人物模块
人物构成
在任务流/经验推进的过程中,避免不了和“人物”的交互。muAgent中对人物的构成整体上可以分为三类:“智能体”、“用户人”、“企业人”。在谁是卧底的场景中,我们已经感受到了“用户人”和“智能体”,在这统一做下介绍和说明。
4.2.人物交流
什么是多Agent/MultiAgent框架?核心在于多Agent信息交互的实现。多Agent信息交互即多Agent讨论模式。
基于人类交流讨论的模式,muAgent抽象归纳出8种讨论模式,可同时满足不同场景信息隔离诉求(全部/部分/单独可见)。
这里又可以归结为两大类问题,信息通信(我能、应该看到什么信息?)和信息加工(我如何能更好的看到信息?),muAgent可通过属性的简单配置和边的链接来实现不同的场景需求。接下来,我们将通过谁是卧底的案例带大家整体认知下不同的信息通信模式。
信息通信
公开通知:座位分配环节每个人都知道对方的座位在哪,由主持人统一分配,同时不需要针对分配结果给出回复。muAgent通过任务节点-信息隔离属性的“公开”设置实现。
私下通知:单词分配环节每个人只知道自己分配到的单词,主持人统一分配且知道每个人的单词,针对分配单词不需要给出回复。muAgent通过任务节点-信息隔离属性的“私有”设置实现。
顺序发言:分享讨论环节,主持人根据分配座位号,以及现场存活的人员,制定接下来发言的顺序,然后实际发起每个人的分享(需回复),每个人知道其他人的回复。这里新增一个工具使用模式的设置,将在工具章节详细介绍。
信息加工
有了良好的信息通信的实现保障不同场景所需,接下来的问题就是怎么让人更好的看到信息。举个大家都会遇到的场景,突然被拉入一个群聊被艾特一个问题,需要从很长的历史长下文中梳理出我到底要干什么?那么有没有更好的方式,直接把上下文总结提炼好了从而一眼就能知道我要干什么?这就是信息加工模块存在的必要性。这里提供3种信息加工的模式(通过属性设置来实现),分别如下:
muAgent中的工具模块
使用方式
介绍完经验和人物,还剩流程推进中的最后一环-工具。先从工具使用方式出发来介绍。目前业界整体的工作可以归纳为3种思考使用方式:
以票选凶手环节为例,同步咨询不同的智能体,同时给出回复,避免不同智能体根据别人的信息输出来伪装自己的描述。
工具管理
使用效果
随着以ChatGPT为首的闭源模型和Qwen等开源模型的迅速发展,去年研究火热的垂类模型或者定制微调(LoRA)在不断的弱化,很可能训练了很久都不如外部新版本迭代来的效果好。但面向工具场景,muAgent主打预置插件/工具,相同的模型见过的工具(微调)肯定比没见过的模型效果好,尤其是企业内部复杂的API工具。为此,团队搭建了多Agent自动化数据构建链路,实现给定插件,自动化数据构建(Q+A),模型微调服务。保障在专业场景工具使用效果的准确性和稳定性。
muAgent四大核心差异
基于上述的架构设计介绍,回看最开头提及的muAgent框架,相比现有市面各类Agent框架,四大核心差异体现在如下几个方面:
同时muAgent还提供调试运行功能。图谱完成后,通过可视调试,能快速发现流程错误、进行修改优化。同时面向调试成功路径,可关联配置自动沉淀,从而减少模型交互/开销、加速推理流程;此外,在线运行中,muAgent提供全链路可视化监控,让排查和维护更加方便。
GitHub项目地址:
https://github.com/codefuse-ai/CodeFuse-muAgent