Multi-Agent多智能体系统
概述:流程;框架:闭源:Manus、Magentic-One、Jenius、Vertex AI、Replit Agent;开源:LangGraph、OpenManus、CrewAI、AutoGen、Swarm、Phidata/Agno、Suna、Langflow、CodeFuse-muAgent。
概述
Multi-Agent System,多智能体系统,简称MAS,由多个交互的智能体组成,每个智能体都是能够感知、学习环境模型、做出决策并执行行动的自主实体。这些智能体可以是软件程序、机器人、无人机、传感器、人类。
MAS的三个核心:
- 角色分工:让每个AI专精一个领域,越专业效果越好
- 任务流转:设计清晰的信息传递流程,上一步的输出是下一步的输入
- 协调机制:有统一的项目经理负责:任务分配、进度控制和质量把关
系统架构图
这些Agents不是简单的程序,它们拥有:
- 角色设定:每个Agent都有自己的职责和目标;
- 感知能力:能感知周围环境的变化,并做出相应反应;
- 决策能力:能根据自身目标和环境状态,自主地做出行动决策;
- 复杂行为:能执行复杂的任务;
- 通信能力:可相互通信、共享信息,达成共识,共同解决问题;
应用领域:非常多。
改进重点方向:
- 增强Agent能力:提升对齐性、减少幻觉、增强长文本能力;
- 优化Agent交互:降低通信成本,提高协同效率,减少累积效应;
- 评估方法和基准:提出更客观的指标,建立通用的评估框架;
- 更大规模MAS:研究大规模MAS的涌现行为和新特性。
MAS全景图
注:图片来源。
流程
解读:
- 任务接收:用户提交任务请求,可以是简单的查询,也可以是复杂的项目需求。系统接收这一输入,并开始处理。
- 任务理解:分析用户输入,理解任务的本质和目标。在这一阶段,记忆模块提供用户偏好和历史交互信息,帮助更准确地理解用户意图。
- 运用先进的自然语言处理技术对用户输入进行意图识别和关键词提取
- 在需求不明确时,通过对话式引导帮助用户明晰目标
- 支持文本、图片、文档等多模态输入,提升交互体验
- 任务分解:规划模块将复杂任务自动分解为多个可执行的子任务,建立任务依赖关系和执行顺序。
// todo.md
- [ ] 调研日本热门旅游城市
- [ ] 收集交通信息
- [ ] 制定行程安排
- [ ] 预算规划
- 任务初始化与环境准备:为确保任务执行的隔离性和安全性,系统创建独立的执行环境:
# 创建任务目录结构
mkdir -p {task_id}/
docker run -d --name task_{task_id} task_image
- 执行计划制定:为每个子任务制定执行计划,包括所需的工具和资源。历史交互记录在这一阶段提供参考,帮助优化执行计划。
- 自主执行:工具使用模块在虚拟环境中自主执行各个子任务,包括搜索信息、检索数据、编写代码、生成文档和数据分析与可视化等。执行过程中的中间结果被记忆模块保存,用于后续步骤。系统采用多个专业化Agent协同工作,各司其职;每个Agent的执行结果都会保存到任务目录,确保可追溯性:
class SearchAgent:
def execute(self, task):
# 调用搜索 API
results = search_api.query(task.keywords)
# 模拟浏览器行为
browser = HeadlessBrowser()
for result in results:
content = browser.visit(result.url)
if self.validate_content(content):
self.save_result(content)
解读:
- Search Agent: 负责网络信息搜索,获取最新、最相关的数据,采用混合搜索策略(关键词+语义)
- Code Agent: 处理代码生成和执行,实现自动化操作,支持Python/JS/SQL等语言
- Data Analysis Agent: 进行数据分析,提取有价值的洞见,Pandas/Matplotlib集成
- 动态质量检测:
def quality_check(result):
if result.confidence < 0.7:
trigger_self_correction()
return generate_validation_report()
- 结果整合:将各个子任务的结果整合为最终输出,确保内容的连贯性和完整性。
- 智能整合所有Agent的执行结果,消除冗余和矛盾
- 生成用户友好的多模态输出,确保内容的可理解性和实用性
- 结果交付:向用户提供完整的任务结果,可能是报告、分析、代码、图表或其他形式的输出。
- 用户反馈与学习:用户对结果提供反馈,这些反馈被记忆模块记录,用于改进未来的任务执行。强化模型微调,不断提升系统性能。
框架
闭源:
- Manus
- Magentic-One
- Jenius
- Vertex AI
- Replit Agent
开源:
- LangGraph
- OpenManus
- CrewAI
- AutoGen
- Swarm
- Phidata/Agno
- Suna
- Langflow
- CodeFuse-muAgent
Manus
Manus是一个真正自主的AI代理,能够解决各种复杂且不断变化的任务。作为一个通用型AI代理,Manus能够自主执行任务,从简单查询到复杂项目,无需用户持续干预。用户只需输入简单的提示,无需AI知识或经验,即可获得高质量的输出。
与ChatGPT、Claude这类聊天机器人有本质区别:
- 强大的工具调用能力:不仅能理解你的需求,还能主动调用浏览器、代码编辑器、数据分析工具等完成复杂任务。它不只是告诉你"应该怎么做",而是直接为你把事情做好,将最终成果交付给你。
- 运行在云端的 Manus 有自己的计算环境:能够独立工作而不需要你的持续监督。只需提出需求,然后去处理其他事务,它会在后台自主完成任务。这种"委托-交付"模式真正解放你的时间和注意力。
- 与Manus的协作更像与人类同事合作,而非使用工具:你可以随时介入调整方向,中途更改需求,Manus会灵活适应。当某次任务完成得特别好,你可以直接告诉它"以后都这样做",它会记住你的偏好,不断调整工作方式,成为越来越懂你的伙伴。
特别擅长处理繁琐的文件批处理任务,如批量简历整理、文件格式转换、合同财报审核等:
得益于多层次的模型协作:
- 轻量级模型:负责意图识别,提供快速响应
- DeepSeek-R1:专注于任务规划,把控全局策略
- Claude-3.7-sonnet:处理复杂的多模态任务,提供深度理解能力
技术特点:
- 自主规划能力:Manus能够独立思考和规划,确保任务的执行,这是其与之前工具的主要区别。在GAIA基准测试(General AI Assistant Benchmark)中,取得最新的SOTA成绩,这一测试旨在评估通用AI助手在现实世界中解决问题的能力。在复杂任务中实现94%的自动完成率。
- 上下文理解:能够从模糊或抽象的描述中准确识别用户需求。例如,用户只需描述视频内容,Manus就能在平台上定位相应的视频链接。这种高效的匹配能力确保更流畅的用户体验。支持10轮以上的长对话维护。
- 多代理协作:采用多代理架构,类似于Anthropic的Computer Use功能,在独立的虚拟机中运行。这种架构使不同功能模块能够协同工作,处理复杂任务。
- 工具集成:自动调用各种工具,如搜索、数据分析和代码生成,显著提高效率。这种集成能力使其能够处理各种复杂任务,从信息收集到内容创建,再到数据分析。支持自定义工具插件开发。
- 安全隔离:基于gVisor的沙箱环境,确保任务执行的安全性和稳定性。
其他技术优势:
- 环境隔离的任务执行,确保安全性和稳定性
- 模块化的Agent设计,支持灵活扩展
- 智能化的任务调度机制,最大化资源利用
未来优化方向
- 任务依赖关系升级为DAG结构,支持更复杂的任务流
- 引入自动化测试和质量控制,提高执行结果的可靠性
- 发展人机混合交互模式,结合人类洞察和AI效率
与传统AI助手的差异对比
+ 端到端任务交付:不仅提供建议,还能直接执行任务并交付结果
+ 任务分解能力:能够将复杂任务分解为可管理的步骤
+ 工具使用能力:能够调用和使用各种工具完成任务
+ 动态环境适应能力:能够根据任务需求调整执行策略
+ 长期记忆保持:能够记住用户偏好和历史交互,提供个性化体验
+ 结果导向:注重交付完整的任务结果,而非仅提供信息
- 单次交互模式:传统AI主要停留在对话层面
- 静态响应机制:缺乏自主执行能力
- 无状态设计:每次对话独立,缺乏连续性
典型的Multi-Agent系统,由三大核心模块构成:
-
规划(Planning)
负责理解用户意图,将复杂任务分解为可执行的步骤,并制定执行计划。使Manus能够处理抽象的任务描述,并将其转化为具体的行动步骤。作为系统的决策中枢,实现:- 任务理解与分析
- 任务分解与优先级排序
- 执行计划制定
- 资源分配与工具选择
- 语义理解与意图识别(NLU)
- 复杂任务分解为DAG结构
- 异常处理与流程优化
-
记忆(Memory)
记忆模块使Manus能够存储和利用历史信息,提高任务执行的连贯性和个性化程度;管理三类关键信息:- 用户偏好:记录用户的习惯和喜好,使后续交互更加个性化
- 历史交互:保存过去的对话和任务执行记录,提供上下文连贯性
- 中间结果:存储任务执行过程中的临时数据,支持复杂任务的分步执行
构建记忆体系:
class MemorySystem:
def __init__(self):
self.user_profile = UserVector() # 用户偏好向量
self.history_db = ChromaDB() # 交互历史数据库
self.cache = LRUCache() # 短期记忆缓存
- 工具使用(Tool Use)
负责实际执行各种操作。该模块能够调用和使用多种工具来完成任务,包括:- 网络搜索与信息检索
- 数据分析与处理
- 代码编写与执行
- 文档生成
- 数据可视化
LangGraph
GitHub,基于LangChain,核心思想:有向循环图,Directed Cyclic Graph。致力于简化智能体创建过程,以及智能体之间的上下文切换操作(Handoffs)。高度灵活,可定制性强,几乎能够满足所有多智能体协作应用的需求。
OpenManus
MetaGPT推出的Manus开源复刻版,团队通过分层继承+双模式执行+工具生态
的架构设计,实现既简单又强大的MAS。
-
智能体层:Agent Layer,分层智能体设计
OpenManus通过分层继承架构实现智能体的专业化分工,从BaseAgent到专业智能体的渐进式设计,确保每个AI Agent都有明确的角色定位和工具调用能力,同时保持统一的接口标准便于系统集成。- 分层继承设计:采用分层架构设计,从基础智能体到专业智能体,确保高代码复用性、强扩展性和清晰的职责分离
- ReAct模式集成:ReActAgent实现think-act-observe循环模式,每个智能体都具备思考-行动-观察的能力
- 工具调用抽象:ToolCallAgent处理工具/函数调用的抽象,包括工具选择、参数解析、结果处理和错误处理机制。
- 统一接口标准:所有智能体都继承自BaseAgent,保证调用接口的一致性
-
流程控制层:Workflow Layer,双模式编排系统
OpenManus通过双模式执行架构和PlanningFlow实现智能化项目管理,从LLM生成结构化计划到状态机式执行跟踪,确保任务能够有序协调、容错执行并达成最终目标。- 双执行模式:提供直接智能体执行模式
main.py
和流程编排执行模式run_flow.py
,适应不同复杂度任务。 - 结构化计划管理:PlanningAgent负责基于用户输入创建结构化计划、记录每个步骤的执行状态、自动标记当前活动步骤并更新完成状态。
- 状态机式执行:通过清晰的状态转换管理执行流程,确保每个步骤都能正确完成或优雅失败。
- 智能体协调机制:
ManusAgent.py
负责管理整个协作流程,实现任务分配和结果汇聚。
- 双执行模式:提供直接智能体执行模式
-
数据传递层:Data Flow Layer,工具生态与数据标准化
OpenManus通过统一工具接口和丰富工具生态构建标准化数据流水线,实现智能体间以及与外部系统间的无缝数据传递和工具调用。
- 丰富的工具生态:内置Python执行、浏览器交互、搜索等工具,满足多样化任务需求。
- 统一工具接口:ToolCallAgent决定使用哪些工具完成任务、处理JSON格式的工具参数、格式化工具执行结果。
- 内存式计划存储:PlanningTool使用内存存储计划,适合简单用例但对更复杂场景可能不够可扩展。
CrewAI
GitHub,操作界面直观,主要依靠编写提示词,可集成LangChain。
特性:
- 可扩展性:与超过700个应用程序集成,包括Notion、Zoom、Stripe、Mailchimp、Airtable等;
- 工具:开发者可利用CrewAI的框架从头开始构建应用;设计师可使用其UI Studio和模板工具在无代码环境中创建功能齐全的智能体。
- 部署:可以将在开发环境构建的Agent快速转移到生产环境。
- 监控:提供直观的仪表板,用于监控Agent的进度和性能。
- 训练:使用内置的训练和测试工具来提高智能体的性能和效率,并确保其响应的质量。
AutoGen
微软推出的开源MAS。提供灵活的对话机制、自定义代理行为的能力,以及支持工具调用的接口等。
Magentic-One
Magentic-One是微软在AutoGen框架基础上构建的一套泛化MAS应用,通过定义一个管理Orchestrator代理,协调整个团队中的其他专业代理共同完成复杂的、多步骤任务,如网页操作、文件处理、代码编写、脚本运行等。
- Orchestrator负责任务分解、规划、执行监督与错误恢复;
- 各专业代理负责执行各自专长;
- 系统具备高度模块化特性,允许添加或删除代理,而无需重训;
- 其性能在多个Agentic基准(如GAIA、AssistantBench、WebArena)上,已接近或达到当时的SOTA水平;
- 提供AutoGenBench作为评估工具,用于多次重复测试与隔离执行环境,辅助系统安全性与可靠性的评估。
系统预设五个智能体,除Orchestrator外,其他四个专用智能体为:
- WebSurfer:负责在浏览器中浏览网页以及与网页进行互动;
- FileSurfer:负责本地文件的管理与导航;
- Coder:专注于代码的编写与分析;
- ComputerTerminal则提供控制台访问权限,运行程序和安装库文件。
局限:
- 对开源LLMs的支持较为复杂,不易实现;
- 灵活性有待提高,更像是一款应用,而非框架;
- 目前的文档资料和技术社区支持力度几乎为零,尚需加强。
https://www.microsoft.com/en-us/research/articles/magentic-one-a-generalist-multi-agent-system-for-solving-complex-tasks/
Swarm
GitHub,OpenAI推出,适合新手。
特性:
- 内置检索系统和内存处理;
- 隐私性:主要在客户端运行,在调用间不保留状态,有助于确保数据隐私;
局限:
- 只支持OpenAI API,不支持其他LLMs;
- 不适合用于生产环境;
- 灵活性有待提高。
Phidata或Agno
官网,之前叫Phidata,后更名为Agno,GitHub,旨在构建多模态智能代理系统。
特性
- 多模态:支持文本、图像、音频、视频等输入和输出;
- 代理:可构建具备记忆能力、知识检索、工具调用的智能代理;
- 工具:集成向量数据库与监控,支持Agentic RAG和实时调试;
- 性能:启动速度非常快,内存占用低,适合大规模Agent系统;
- 构建MAS:智能体编排、工作流构建。
Vertex AI
Google推出,体验地址。
Langflow
Jenius
三角引擎:数据×智能体×RPA
- 数据:聚合数据平台里的上千种接口随取随用:汇率、天气、酒店余量、热门活动……实时拉新,过期数据统统不要。
- 智能体:多智能体协作架构
- RPA:把点按钮、填表单这类机械操作自动化,真正做到方案生成后立刻执行。
CodeFuse-muAgent
蚂蚁CodeFuse团队开源的MAS,宗旨在于简化Agents的标准操作程序(SOP)编排流程。
多Agents的核心,即Agent的交互链路,也即实现SOP的关键。如何把上一个Agent的输出给到下一个Agent的输入,其中涉及到LLM输出、具体Action执行、信息解析处理。
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的接入;
官方文档。
Suna
Kortix AI开源的MAS,定位为Manus等商业平台的平替方案。官网可免费试用,每月60分钟的免费额度。
核心定位:
- 模块化的AI智能体开发框架
- 企业级自动化流程构建平台
- LLM应用的集成运行环境
与Manus的对比优势:
- 完全开源可自托管
- 无使用成本限制
- 扩展更灵活
Suna开源工具链:
- 网络爬取组件
- 多平台API连接器
- 自然语言处理模块
- 文档生成引擎
支持工具链:
- 浏览器自动化功能,用于网页导航和数据提取
- 网页爬取和扩展搜索功能
- 文件管理功能,用于文档创建和编辑
- 命令行执行系统任务
- 网站部署以及与各种API和服务的集成
本地部署条件:
- Supabase:用于数据库和身份验证
- Redis:用于缓存和会话管理
- Daytona:用于安全代理执行的沙盒
- Tavily API:用于增强搜索功能
- Firecrawl API:用于网页抓取功能
Replit Agent
官网,通过执行与开发者在IDE中相同的操作,为构建项目提供便捷方式。
对比
TODO
更多推荐
所有评论(0)