2025 AI Agent (多智能体)平台设计和技术实现指南

B站影视 内地电影 2025-03-19 08:42 1

摘要:作为一名产品,很久之前就对多智能体系统(Multi-Agent System)产生了兴趣,苦于没有时间做一下研究。最近体验了一下 ChatGPT 的 deepresearch,感觉自己都快要失业了……再加上 Manus 的爆火,让我对这种多智能体系统的背后原理

作为一名产品,很久之前就对多智能体系统(Multi-Agent System)产生了兴趣,苦于没有时间做一下研究。最近体验了一下 ChatGPT 的 deepresearch,感觉自己都快要失业了……再加上 Manus 的爆火,让我对这种多智能体系统的背后原理更加好奇,用业余时间集中啃了一星期后,写出了下边这篇文案,争取把我理解的内容用大白话向各位小伙伴们讲明白。本文的内容很长,涉及的部分非常多,总体超过了 5000 字,大家可以在时间相对宽裕的时候阅读,或者先收藏起来以后再看。另外,欢迎大家对这篇内容批评指正。

ChatGPT 的 deepresearch 截图

摘要(看完再决定要不要往后看)

1 介绍了多智能体系统的整体流程,用户输入 →模型推理规划 → 多智能体执行 → 交付输出。

2 多智能体系统需要一些能力才能运转良好,分别是:推理能力,规划能力,工具调用能力,长文本处理能力,记忆能力,协同能力

3 多智能体系统在技术实现时,需要具备以下几个模块,分别做了介绍:任务规划模块,执行模块,验证模块,记忆模块,沙盒环境,工具,通信机制,智能体循环(Agent Loop)机制

引入

随着 LLM 推理能力的不断提升,多智能体系统已经可以落地了。Manus 就是一个很好的例子,表现出的能力让用户惊叹。相较于“传统”的聊天机器人,比如 kimi 和 ChatGPT,多智能体系统在复杂任务的处理上能力更加强大。

传统的对话式 AI(如ChatGPT、Claude等)通常只能给出建议或分步指导,真正的执行仍需要用户亲力亲为。而许多现实需求(如数据调研、代码编写、内容创作)涉及多步骤、多工具的操作,用户往往需要花大量时间整合信息、使用不同工具完成任务。多智能体平台正好可以解决这一痛点:它能够独立思考、规划并执行复杂任务,将最终成果直接交付给用户。

整体架构

一个简化的多 Agent 系统如下图所示。

具体流程:

1 用户输入要做的任务。

2 任务规划 Agent 将任务拆解成一系列的子任务,并建立一个相应的工作流。工作流和把大象关进冰箱分三步类似,就是每步都做什么,要提前编排好。

3 根据每步工作任务的不同,选择对应的 Agent 来完成相应的工作。比如有做网络搜索的 Agent,有写代码的 Agent。

4 一步步的完成任务,每一步的结果会储存起来,作为后续要发给用户回复的一部分。

5 每一步中都有 Agent来复核任务完成情况,如果完成就进行下一步。

概括一下,流程其实很好理解。

用户输入 → AI 规划 → 多智能体执行 → 交付输出。

为了实现这个流程,需要系统具备相应的能力。

1 推理能力

Agent 可以逐步推理问题,采用“思维链”(Chain of Thought)方法来确定所需的中间步骤或信息。比如用户问,找出 5000 元以内最适合拍照的手机,Agent 会在内部推理:为了回答这个问题,我需要比较该价格范围内手机的摄像头参数,或许还要搜索最新的评测。

2 规划能力

复杂任务需要精确的规划。Agent将高层次目标拆解为可管理的步骤,并按顺序完成目标。

当用户提出复杂任务请求(如 “对比分析不同旅游保险的政策”),Agent会先制定计划,例如:

1 创建分析所需的目录结构

2 从PDF文档中提取内容

3 确定对比的关键维度

4 按照关键维度分析每份保险政策

5 创建对比表并整理分析结果

6 格式化并最终定稿对比文档

7 验证对比结果的准确性

8 向用户交付最终的对比分析

3工具调用能力

为了应对各种不同的任务,多 Agent 系统需要有多样的工具调用能力。比如:

Web 浏览 & API 访问:如搜索引擎、数据库查询、开放 API 调用。

代码执行环境:Python、Shell、C++,支持动态编程与计算任务。

数据处理工具:如 Pandas 进行数据分析、Matplotlib 生成可视化图表。

4 长文本处理能力

每一步任务都会产生一定的文本,有可能是由 Agent 内置的模型生成的,也可能是通过搜索获取的。每一步积累下来,文本的长度会越来越长,此外,部分任务就可能会产生很长的文本,比如搜索。所以要求整个系统要有足够强的长文本处理能力,才能保证任务一步步的顺利执行。

5 记忆能力

为了保证复杂任务的正确完成,系统还需要有记忆能力。这样做有两个好处,确保 Agent 在多轮对话和复杂任务中保持长期一致性,还可以记住用户偏好、历史任务,甚至优化自身策略。

6 协同能力

多 Agent 系统是由多个智能体(Agent)构成,这些智能体可以相互交互、协作或竞争,以共同完成复杂任务。协同能力是指这些智能体能够通过信息共享、任务分工、决策一致性等方式高效合作,从而提高整体系统的效率和鲁棒性。

技术实现

多智能体系统(Multi-Agent System, MAS)通常由以下几个模块构成。

任务规划模块:负责理解用户复杂需求,拆解成可管理的子任务,并将其分配给合适的智能体执行任务规划Agent。

执行模块:包含多种专用的 Agent,每个 Agent 复杂一种专门的任务。比如负责在线数据搜索的信息收集 Agent,负责编写代码的代码生成 Agent 等。

验证模块:负责结果校对与反馈循环。它在执行Agent完成每个关键步骤后,对结果进行检查验证,判断是否符合预期或任务要求

记忆模块:可以理解为信息存储的模块。要存储的信息可以分为短期记忆和长期记忆。短期记忆是指用来存储当前任务上下文的,保证任务执行的一致性。长期记忆是指对工具获取信息的存储,比如网上搜索到的信息或者通过 API 获取的数据,还会包括用户的偏好、历史任务等信息。

沙盒环境:本质上是一个虚拟机或容器,具备互联网访问权限。所有Agent的操作均在隔离的 Linux 沙盒环境中执行,这样做有两个好处,一是Agent无法影响宿主系统,避免潜在风险;二是所有任务都在受控环境中运行,保证结果一致性。

工具:可以理解为 Agent 的能力。比如Agent 的能力进行网络搜索,其实就是调用了封装搜索 API 的工具。

通信机制:通信机制能够保证 Agent 之间的消息传递和相互协作。各 Agent 通过定义好的协议通信,采用API 调用或消息队列来交换信息和指令 。

智能体循环(Agent Loop)机制:智能体循环(Agent Loop)是多智能体系统运行的核心机制。Agent 不断评估下一步行动,执行操作,并将结果纳入考量,直至任务完成。

一个完整的多智能体系统就是由这几部分构成的,接下来我们来看一下各部分的详细内容。

任务规划模块

任务规划 Agent:这是整个系统的“大脑”和协调者,负责理解用户复杂需求,拆解成可管理的子任务,并将其分配给合适的智能体执行任务规划Agent。首先对用户请求进行语义解析和推理,确定需要哪些步骤和知识领域,然后制定任务规划图或列表 。在规划过程中应遵循可解性、完整性和非冗余三大原则 :确保每个子任务都有可用的Agent解决(可解性)、所有需求都被覆盖(完整性),且不同Agent的职责不重复冲突(非冗余)。例如,面对“撰写跨城市旅游行程并估算预算”的请求,规划Agent会拆分为航班预定、酒店预定、景点行程、费用汇总等子任务,并指派给相应的信息或内容Agent处理。它还需确定执行顺序与依赖关系(如先出航班再定酒店),并在过程中监督各Agent的进展与质量。总体而言,任务规划Agent是多智能体系统成功的关键支柱,保证团队运作井然有序。

执行模块

这里要多说一句,有一些企业用的多 Agent 系统会根据业务场景来设置 Agent,比如一个 Agent 是查询价格的,那这个 Agent就只干这一件事。我们今天在这里说得执行 Agent,实际上是通过对各种任务的抽象,提炼出的。比如很多任务可能都要做信息查询、数据分析,那我们就设置对应的 Agent。

信息收集 Agent:负责在线数据检索、筛选和整理。在用户提出需求后,该智能体首先通过网络搜索、数据库查询等途径获取相关资料,并过滤无关或低质量信息,然后将有价值的信息摘要提供给其它智能体参考。例如,在撰写研究报告场景中,信息收集Agent会检索论文文献和最新数据。借助网络搜索API、问答数据库等工具,该Agent扩展了LLM的知识范围,确保决策基于最新可信的数据。

代码生成 Agent:负责编写代码、调试和性能优化。对于需要编程的任务(如游戏开发、数据分析中的脚本编写),该智能体充当“软件工程师”。它利用大模型生成初始代码,然后通过测试用例和调试工具进行验证和改进,从而提高代码正确性和效率。最佳实践是让代码Agent多次迭代:生成代码→执行测试→根据错误反馈修正。这种循环避免了一次性生成错误代码的风险,确保最终代码可以正确运行并满足需求。在多智能体协作中,代码Agent还应与数据分析Agent配合,例如根据分析需求编写数据处理脚本,或与内容创作Agent协商输出格式等。

数据分析 Agent:承担数据清洗、分析和可视化任务,相当于“数据科学家”。当任务涉及数据处理(如股票行情分析或实验结果解读)时,该智能体使用统计工具或编程环境对数据进行整理,并提取有意义的结论。例如,它可调用Python分析库执行清洗和统计计算,生成图表或指标。在多Agent平台中,数据分析Agent可以从信息收集Agent获取原始数据集或从代码Agent获取数据抓取脚本,然后独立完成分析管道。分析结果(如趋势图、关键发现)将提供给内容创作Agent,用于撰写报告结论,或直接通过用户交互Agent展示给用户。由于数据分析往往涉及繁重计算,该Agent也可以并行处理多个数据子集,提高效率。

内容创作 Agent:扮演“文案作者”角色,负责撰写和润色报告、生成文档内容、制作演示稿等。它接收其他Agent提供的素材(信息、数据、代码结果),根据任务需求组织成为连贯的文字或多媒体内容。例如,在研究报告场景中,内容Agent参考信息Agent搜集的资料和数据Agent的分析结果,起草报告各章节。内容创作Agent利用LLM强大的自然语言生成能力完成初稿,然后可通过多轮自主完善或与其他Agent协商来优化文案质量。一种最佳实践是引入逐步细化机制:初稿生成后,内容Agent根据项目最新信息再次修改完善,以确保各部分内容前后一致、全面准确。

验证模块

验证 Agent:负责结果校对与反馈循环。它在执行Agent完成每个关键步骤后,对结果进行检查验证,判断是否符合预期或任务要求 。如果发现结果不准确或不充分,验证Agent会将信息反馈,让系统进行调整(例如重新规划某一步骤或改用其他方法)。这一机制保证了任务的正确性,提高最终成果质量。例如在体验 Manus的过程中, 会看到它“不断回顾矫正”自己的过程,就是验证Agent在发挥作用。

记忆模块

记忆模块存储的信息包括:为了在复杂任务中高效运行,系统包含一个记忆存储和知识库。这可以作为短期内存(用于存储当前任务的上下文)与持久数据库(用于跨会话存储长期记忆)的组合实现。对话或任务历史、完成的子任务结果,以及智能体收集的任何相关事实。对于长期知识存储,可能会使用向量数据库或索引存储库,以保存有用信息或过去的解决方案。例如,如果用户之前运行过市场分析,平台可能会存储关键发现,以便将来进行相关查询时可以检索这些数据,而不必重新搜索。

沙盒环境

在沙盒环境中,Agent可访问标准 Linux OS,拥有文件系统以读取/写入数据。Agent 还可以运行独立进程,执行脚本或命令行操作。沙盒环境支持HTTP 请求, Agent可进行网页浏览、数据抓取、API 访问。 此外,沙盒内置常用工具(Python、Node.js、Shell、Git 等),可立即执行数据分析、自动化脚本等任务。Agent可根据任务需求安装额外软件(如 pip install、apt-get),动态扩展能力。

工具

Agent 可以通过调用各种工具来拓展自身的能力。常见的一些工具如下:

Shell 工具:执行命令行指令(如文件管理、软件安装、系统操作)。文本编辑器工具:打开、编辑、保存文件(用于编写代码或文档)。浏览器工具:进行网页搜索、爬取数据、获取实时信息。图形设计工具:用于生成数据可视化、编辑图像或创建演示文稿。API 适配工具:如翻译 API、天气 API、金融数据 API,使Agent能访问实时信息。

Agent“知道”有哪些工具可用,并通过预定义 API 或函数进行调用。当出现一些新的需求时,新功能可直接作为新工具集成,例如: 现在有了一个新的高级统计分析需求,我们可以添加 R 语言计算模块,使Agent可直接调用。

在多Agent系统中必须要建立统一的通信框架,可以采用集中式消息池或总线,让Agent通过发布订阅共享信息。这样一来,不同Agent的输出可以被需要的Agent直接读取,无需冗长的请求应答,减少延迟。例如,规划Agent将计划发送给各执行Agent时,可以是一条结构化的指令;执行Agent完成一步后将结果发送给验证Agent审核。

智能体循环(Agent Loop)机制

这种基于循环的方法类似于 ReAct(Reason+Act,即推理+行动)范式,其中Agent在“思考”(用自然语言推理问题)和“行动”(执行工具或提供最终答案)之间交替进行。Agent Loop机制确保智能体能够通过将复杂任务拆解为增量步骤,并对新观察结果作出反应,从而有效处理复杂任务。其循环为分析 ➜ 决策 ➜ 行动 ➜ 观察,类似于人类处理复杂项目的方式:评估情况、采取行动、查看结果,并逐步收敛到解决方案。流程如下:

1 分析事件:Agent首先分析最新的事件流,其中包括用户的query以及之前工具执行过程中产生的任何新信息。简而言之,它会读取对话内容以及上一步操作的结果,以更新对当前状态的理解。例如,如果用户刚刚提供了一个数据集文件,或者上一步执行返回了错误,这些都是Agent需要考虑的“事件”。 Agent会在内部生成一个“思考”过程,例如:“用户请求了 X,我在上一步得到了数据 Y,接下来需要做什么?” 这一阶段的核心是理解——确保Agent明白用户的需求,并清楚当前的任务进展。

2 选择工具:基于更新后的理解,Agent决定下一步行动,并选择合适的工具。这一决策是Agent推理的核心部分:它会权衡目标和当前上下文,以确定最佳的执行方式。例如,Agent可能会思考:“我需要更多关于主题 Z 的信息,我应该使用浏览器工具进行搜索” 或 “我有一个假设,让我运行 Python 脚本来验证它。”系统需要限制Agent每次迭代只能选择一个工具(防止Agent一次性执行过多操作),这与 ReAct 策略中“每次执行一个动作”的方法一致(Plan-and-Execute Agents)。Agent不仅决定使用哪个工具,还会生成具体的参数或输入。

3 等待执行:一旦Agent决定执行某个操作,平台将在沙盒环境中执行该操作。在执行期间,Agent进入等待状态。所选择的工具将执行任务:如果是 shell 命令,它将运行至完成;如果是网页搜索,则会发送查询并获取结果。该执行过程由平台的后端处理,与操作系统或外部 API 进行交互。重要的是,任何工具的输出或执行结果都会被捕获。例如,浏览器工具会返回网页的文本内容,或者在网站无法访问时返回错误信息。Agent在获取结果之前“看不到”执行过程,这避免了其在执行过程中受到干扰或过早采取进一步行动。

4 迭代:工具执行的结果会作为新的事件(观察)反馈到Agent的事件流中。Agent会将这一观察结果与先前的上下文一起分析。如果任务尚未完成,则循环继续:Agent利用新的信息决定下一步行动。例如,如果搜索查询返回了多篇文章,Agent会阅读(总结)这些文章,并可能决定进行另一次搜索以获得更清晰的信息。这个迭代的“感知—思考—行动”循环持续进行,Agent逐步构建解决方案。这种设计确保Agent会不断重复这些步骤,并在过程中动态更新计划,直到它认为已实现用户目标或没有合理的操作可执行。

5 提交结果:当Agent完成所有必要步骤(无论是因为得出了答案/解决方案,还是用户指示其停止)后,它会准备最终结果。Agent会汇总其工作的输出——这可能是一份报告文档、一组文件(如代码或图片),或者是一个正在运行的应用程序,并通过消息界面将其发送给用户。除了主要的交付内容外,Agent还可以提供相关文件作为附件(例如,它编写的源代码,或一份包含报告的 PDF)。最终的答案会以清晰的格式呈现,例如使用项目符号或表格来展示数据,并在进行研究类回答时提供参考文献。本质上,在这一阶段,Agent“展示其工作成果”,从而完成整个执行循环。

来源:正正杂说

相关推荐