workflow is all you need?探讨乐高式流程编排能否实现任意Multi-Agent模式

简介: 阿里集团安全部探索利用AI工作流(workflow)构建多智能体系统(MAS),以提升网络安全领域的创造性协作能力。文章围绕“Workflow is All You Need”这一核心观点,分析当前主流AI Workflow产品是否具备支持多种MAS协作模式的能力。通过Dify等工具演示了单Agent、路由、顺序执行、主从控制、反思、辩论、群聊等多种典型协作模式的实现方式,并指出现有平台在异步交互、动态扩展及并行化MOA模式上的局限性。最终强调,尽管目前尚存挑战,但AI Workflow仍是快速搭建多智能体系统的有效路径。

阿里集团安全部正在积极探索如何打造由多智能体组成的虚拟网络安全专家,以在工作中发挥创造性的积极作用。作为算法团队的一员,首先需要调研多种不同的MAS(多智能体系统)的协作方式,并验证其能否快速实现。在这个过程中发现,现有的AI workflow类型产品的功能比预想的更加广泛,因此希望通过这篇文章记录并分享一些思考的内容。“xxxx is all you need” 是我很喜欢的一个标题格式,它能够很旗帜鲜明地表达个人观点。这里的workflow不是指固定编排的系统设计模式,而是AI workflow产品(甚至特指有图形化画布编排的产品),例如百炼应用、Dify、扣子等等。


本文想借助“workflow is all you need”这个标题,探讨现有的AI workflow产品的能力范围,能否支持任意的MAS(多智能体系统)设计模式,不涉及具体业务相关的实现细节。将以Dify(https://github.com/langgenius/dify)作为workflow的示例平台,仅使用下列组件,探讨如何完成不同的多智能体协作模式,而这些组件在目前市面上的绝大部分AI workflow产品上,都是必备的:

  • LLM:大模型组件,一切的基础,无须多言。
  • 循环:实现多智能体协作最重要的组件,有了它就能够实现多智能体之间无固定顺序无固定次数的交互。并且循环组件里的循环变量能够作为记忆管理的载体,循环内的组件通过更新循环变量、读取循环变量实现对momery的管理和使用。
  • 代码执行:重要的胶水组件,一切LLM无法精确实现的都可以交给它。
  • 条件分支:实现AGENT自主决策的必备组件,不论是决定使用哪个工具,还是指定下一个由谁发言。
  • 工具:AGENT的手和脚,泛指一切的行动方式,包括外部的MCP工具、自定义代码、其他的workflow(这个是实现乐高积木式组合的必备条件)。


文章主要以个人主观观点描述,下列的所有示例中,因为精力有限的原因,不会将prompt,代码等具体描述出来,更多地是以框架图例加文字描述的形式。


one Agent

大家可能看出来了,在使用workflow实现MAS时,上面列出的核心组件中没有单独的AGENT组件。如果workflow连单个agent都实现不了的话,all you need这个标题也就根本无从谈起了。我们可以用如下图所示的框架实现出一个ReACT AGENT:

我们在一开始的全局变量初始化组件里,初始化两个变量,分别是AGENT的行动列表(所有的行动都被工具化),以及历史行动结果(初始化为空)。那么在进入循环后,核心LLM组件根据任务输入,行动列表和历史行动的结果,思考并选择下一步行动。在行动结束后,向循环变量的历史行动结果增加最新的行动结果。通过这样不断的循环,直到达到循环次数上限或者LLM选择了退出循环这个action,整个工作流结束。


这是一个标准的ReACT AGENT的工作模式,咋一看可能会觉得做这样的编排有种脱裤子放屁的嫌疑,明明一个AGENT组件就可以搞定的事情需要弄这么多的组件。但展示这样编排的目的有两个:一方面这种编排形态稍加修改就演变成绝大部分的多智能体协作模式,它是一个模板,我们在后续的MAS搭建过程中单个AGENT不一定要采用这种方式而是直接使用AGENT组件;另一方面它也有现实意义,能够解决我们目前在业务上遇到的当前AGENT组件无法解决的两个需求:


1.工具输出结果的后处理。对于一些标准化工具来说,它的不同使用方,可能会有不同的后处理需求,例如不同的格式化/过滤方式、对不同字段的关注程度不同。因此这个后处理过程不适合放在工具侧,最好是放在调用方。


2.定制化输出中间过程。现在的AGENT的智能化水平被用户能有深切感受的方式,就是需要在交互过程中将AGENT中间过程暴露出来,不同的场景可能需要暴露不同的(工具输出、思考内容)。现有的AI workflow产品实现AGENT时,基本没有能够定制化输出中间过程的设计。


路由模式

非常简单的一种协作形式,甚至不需要用到循环组件。

在接受到用户输入后,由一个LLM负责识别意图,并且决定将原输入分配给哪个执行单元来解决,执行单元可以是任意有处理能力的组件,包括LLM、AGENT、代码、工具。这里LLM还可以做一些额外的工作,例如对用户输入进行改写以便更符合执行单元的能力需求。

这里之所以没有放置循环组件,是认为循环多次任务派发其实就跟下面的主从模式没有区别了。这一点在后面的主从模式章节可以看到。


简单顺序模式以及升级版狼人杀模式

一个团队内部多个Agent会被分配确定的子任务(Task),按照固定的顺序调度执行,并把子任务结果传递给下一个Agent,直到流程结束。这在我们的很多简单的或者有固定SOP的任务中,是最直接有效的方式。

这种顺序执行的复杂度可以进一步提升,例如我们模拟玩狼人杀游戏,这是一个不固定轮次但固定AGENT发言顺序的游戏模式,流程编排可以如下图搭建:

循环变量中需要设置保存历史发言的循环变量,在每个玩家发言后,将发言内容添加到循环变量中。以此做到每个LLM组件在发言前得到前面全部的发言记录(这里不讨论上下文是否过长的问题,可以添加缩短上下文的组件或者靠基模解决,也不是本文的重点)。


主从层次模式(类manus模式)

manus模式是主从模式的一种应用表现形式,总结来说就是用户输入任务后,由PLANNER先制定完整的任务解决计划,然后按照计划一步步调用对应的子AGENT完成。并且过程中可以根据任务进行情况,调整计划书,包括更新计划书中的子任务完成情况,增删改还未进行的后续子任务等。

PLANNER的prompt中使用循环变量如图:

需要的重要组件依然是循环,我们需要将计划书和行动结果放置在循环变量中,随着循环进行不断更新任务的进展。整个流程编排示例如下:

PLANNER和选择下一步行动两个组件也可以合并。大家可以发现去掉循环组件的话,这也和前面的路由模式区别不大了。


反思模式(二人转)

这是一种双Agent协作的典型模式:

  • 执行AGENT接受输入任务,进行输出;
  • 反思AGENT对执行AGENT的输出进行反思或审核并反馈给执行AGENT;
  • 重复,直到达到最大迭代次数或反思AGENT审核通过;

角色只有两个,是比较简单的一种协作模式,编排示例如下:

这种模式也不一定是一人执行,依然反思,它可以泛化为两人对话的协作模式。


辩论模式/stacking模式

在这种模式中,AGENT分类为多个有不同特长的解决问题的AGENT,以及一个负责聚合其他AGENT结果,做投票汇总的AGENT,工作模式为:

  • 用户输入问题,发给所有的求解AGENT;
  • 求解AGENT处理任务,并将结果发送给其他的求解AGENT;
  • 每个求解AGENT利用他人的信息,优化调整自己的结果;
  • 重复多轮,直到所有的求解AGENT都任务自己的结果不需要再更新;
  • 聚合AGENT使用决策机制(投票、加权投票等),绝对最后输出给用户的结果;

这种模式有些类似集成学习中的stacking模式,每个求解器可以设计为关注问题不同侧面(弱分类器),最后有聚合AGENT决策出结果。

利用dify实现的编排示例如下:

通过循环变量更新,使得每个求解AGENT能够获取到上一轮他人的分析结果。


群聊模式(非顺序多人转)

多个AGENT作为一个小组成员,通过群聊的方式解决用户输入。工作模式为:

  • 用户输入问题到群组,约定或者随机挑选一个AGENT开始发言;
  • 每个AGENT在发完言后,负责决定下一个发言的AGENT是谁;
  • 如此循环发言多轮;
  • 可以由任意AGENT负责决定是否结束群聊,或者由单独的角色来判断;

流程编排示意:

采用了循环入口一个单独的角色控制是否结束群聊,它指定下一个发言AGENT的依据仅来自上一个发言者的决定。

这里还加入了一个实现细节,就是每个AGENT可以有消息订阅机制,它可以选择性接受包含某些关键字,或者某些AGENT说的话作为自己的context,从而避免过长的上下文。


嵌套模式

这种模式也就是上述多种模式的任意组合,核心需要平台允许将工作流发布为工具,那么在上述任意的流程编排中,都可以将一种模式嵌入其中,实现多种模式的嵌套。相信大家看到这里也自然能想到如何嵌套,这也就是标题所说的”乐高“式的意思。

如果在模式嵌套之前都加上一个由大模型选择模式的过程,那么这也一定程度上实现了由AI自主决定协作模式。


无法支持的MAS模式

前面描述了多种多智能体协作模式,基本涵盖了目前主流的各种方式。现在回到标题,这里的问号是需要回答。目前看来我认为这个问题还不能得到肯定的回答,依然有多智能体协作模式是目前的主流AI workflow产品无法支持。

完全异步的多智能体群聊

这是前面提到的群聊模式的更加复杂化的设计,它的目的是完全模拟人类在群聊过程中的发言状态。我们人类聊天时,是完全异步的,我们说话与否,合适开始输出内容并不严格受限于他人的发言结果。不会因为没有人@你说话你就不说了。而这就需要底层框架支持完全异步的AGENT调用机制,每个AGENT可以在任意时间发起输出,AGENT的发言结果实时地添加到每一个AGENT的memory中。

动态智能体添加

上面列举的所有编排方式,都是提前将全部AGENT添加到了画布中。但如果需要动态添加一个新的AGENT是无法实现的。

这里多提一句,如果要实现已有AGENT的动态修改是可以的,因为它的prompt可以被作为变量修改。

并行化的MOA仿神经网络模式

MOA是形似神经网络计算的模式,在将任务分层后,每一层由多个数量不等的AGENT并行执行完成。如果每一层每次执行的AGENT都不相同,那么现有的AI workflow产品是很难做到的。它需要一个“多选”的组件(目前的条件分支组件每次只能选择一个分支),而“多选”组件需要支持每次选择不同的数量大于一的选项,用于单层的任务派发和并行执行。

(图片来自网络)


总结

本文的目的是为了讨论现在AI workflow产品在对多智能体支持的能力范围,上述的编排方式不代表就是实现该MAS模式的最佳实践,仅表示当我们需要快速实现demo时利用现有的资源可以做到什么程度。其实可以很容易看出来,当一个MAS涉及到的工具、AGENT数量非常庞大时,这种编排方式光是在画布上手动添加节点都是一件让人崩溃的事情,整个画布的可读性也会很差。目前业界对AGENT的实践和探索很广泛,每天都有新的项目/框架/产品诞生。希望未来能够非常优雅、高效、全能的多智能体研发产品出现。


来源  |  阿里云开发者公众号

作者  |  译淇

相关文章
|
9天前
|
人工智能 自然语言处理 关系型数据库
如何构建和调优高可用性的Agent?浅谈阿里云服务领域Agent构建的方法论
本文深入探讨了Agent智能体的概念、技术挑战及实际落地方法,涵盖了从狭义到广义的Agent定义、构建过程中的四大挑战(效果不稳定、规划权衡、领域知识集成、响应速度),并提出了相应的解决方案。文章结合阿里云服务领域的实践经验,总结了Agent构建与调优的完整路径,为推动Agent在To B领域的应用提供了有价值的参考。
如何构建和调优高可用性的Agent?浅谈阿里云服务领域Agent构建的方法论
|
5天前
|
人工智能 Kubernetes 调度
基于 AI 网关和 llmaz,提升 vLLM 推理服务可用性和部署易用性的实践
本文介绍了如何使用 llmaz 快速部署基于 vLLM 的大语言模型推理服务,并结合 Higress AI 网关实现流量控制、可观测性、故障转移等能力,构建稳定、高可用的大模型服务平台。
|
16天前
|
人工智能 安全 Java
AI Agent 的工程化被低估了
本文探讨了AI应用工程化的关键作用与实现路径,将其分为产品工程和技术工程两大部分。产品工程关注用户体验与交互设计,包括需求建模、UI/UX设计、系统提示词优化及反馈闭环构建,确保AI“能用、好用”。技术工程则聚焦系统稳定性与扩展性,涵盖架构模块化、工具调用机制、流量控制、数据管理及可观测性建设,保障AI应用“快、稳、强”。两者协同决定了AI Agent的实用性与规模化潜力,为行业提供了落地参考。
351 29
AI Agent 的工程化被低估了
|
29天前
|
人工智能 安全 API
Agent 工程师绕不开的必修课:API 网关 vs API 管理
本文探讨了“API管理”与“API网关”的起源、发展及差异,二者分别服务于API生命周期的不同阶段。API网关从流量网关演进至AI网关,承担运行时请求控制;API管理则从接口文档化发展到商业化平台,关注全生命周期治理。两者在实际应用中协同工作,通过分层架构和策略联动实现高效运营。未来,随着大模型应用的兴起,AI网关和MCP Server管理将成为新趋势,推动API技术迈入智能化和服务化的新阶段。
Agent 工程师绕不开的必修课:API 网关 vs API 管理
|
2天前
|
人工智能 大数据 开发者
让AI时代的卓越架构触手可及,阿里云技术解决方案开放免费试用
阿里云推出基于场景的解决方案免费试用活动,新老用户均可领取100点试用点,完成部署还可再领最高100点,相当于一年可获得最高200元云资源。覆盖AI、大数据、互联网应用开发等多个领域,支持热门场景如DeepSeek部署、模型微调等,助力企业和开发者快速验证方案并上云。
让AI时代的卓越架构触手可及,阿里云技术解决方案开放免费试用
|
4天前
|
数据采集 JSON API
Excel数据治理新思路:引入智能体实现自动纠错【Python+Agent】
本文介绍如何利用智能体与Python代码批量处理Excel中的脏数据,解决人工录入导致的格式混乱、逻辑错误等问题。通过构建具备数据校验、异常标记及自动修正功能的系统,将数小时的人工核查任务缩短至分钟级,大幅提升数据一致性和办公效率。
|
7天前
|
开发者 Python
支持自主创建MCP啦!一文带你玩转魔搭MCP广场,从idea到部署自己的MCP到魔搭
本文介绍了如何使用 FastMCP 框架快速构建 MCP 服务器,并将其部署至魔搭 MCP 广场。内容涵盖环境搭建、服务开发与调试、打包发布到 PyPI,以及在魔搭平台创建和托管 MCP 服务的完整流程。通过实际案例演示,帮助开发者轻松实现工具共享与云端部署,提升开发效率。
198 37
|
人工智能 运维 API
Dify 开发者必看:如何破解 MCP 集成与 Prompt 迭代难题?
Dify 是面向 AI 时代的开源大语言模型应用开发平台,GitHub Star 数超 10 万,为 LLMOps 领域增长最快项目之一。然而其在 MCP 协议集成、Prompt 敏捷调整及运维配置管理上存在短板。Nacos 3.0 作为阿里巴巴开源的注册配置中心,升级支持 MCP 动态管理、Prompt 实时变更与 Dify 环境变量托管,显著提升 Dify 应用的灵活性与运维效率。通过 Nacos,Dify 可动态发现 MCP 服务、按需路由调用,实现 Prompt 无感更新和配置白屏化运维,大幅降低 AI 应用开发门槛与复杂度。