惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Vulnerabilities – Threatpost
P
Proofpoint News Feed
The Hacker News
The Hacker News
Know Your Adversary
Know Your Adversary
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
T
Tenable Blog
AWS News Blog
AWS News Blog
S
Securelist
T
Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
IT之家
IT之家
腾讯CDC
WordPress大学
WordPress大学
Spread Privacy
Spread Privacy
C
Check Point Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Engineering at Meta
Engineering at Meta
Latest news
Latest news
A
About on SuperTechFans
The Register - Security
The Register - Security
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
C
Cisco Blogs
T
Tailwind CSS Blog
Simon Willison's Weblog
Simon Willison's Weblog
阮一峰的网络日志
阮一峰的网络日志
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
T
Tor Project blog
L
Lohrmann on Cybersecurity
G
GRAHAM CLULEY
B
Blog RSS Feed
Scott Helme
Scott Helme
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
NISL@THU
NISL@THU
P
Privacy International News Feed
Security Latest
Security Latest
Recorded Future
Recorded Future
L
LangChain Blog
Cyberwarzone
Cyberwarzone
C
Cyber Attacks, Cyber Crime and Cyber Security
C
CXSECURITY Database RSS Feed - CXSecurity.com
博客园 - 聂微东
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
Apple Machine Learning Research
Apple Machine Learning Research
F
Fortinet All Blogs
O
OpenAI News
T
Threat Research - Cisco Blogs
Blog — PlanetScale
Blog — PlanetScale

中文博客 on 范叶亮 | Leo Van

确定性和掌控欲 - 你的 AI 不是你的 AI LLM Token 消耗节省计划 (How to Save Token for LLM) 智能体的角色定位和身份演化 (Agent Role Orientation and Identity Evolution) 本地部署 OpenClaw,QwenPaw 和 Hermes Agent (Local Deployment of OpenClaw, QwenPaw and Hermes Agent) 本地部署智能体 - OpenClaw,QwenPaw,Hermes Agent ... 部署 Matrix 服务器 Synapse (Deployment of Matrix Server Synapse) 部署 frp 内网穿透服务 (Deployment of frp NAT Traversal Service) 本地部署大模型服务 (Local Deployment of LLM Services) AI 时代的生产力和生产关系 (Forces and Relations of Production in AI Era) 业余无线电入门 - CQ, CQ, CQ, this is BD1CZP. Calling CQ and standing by. 重构 - 之于代码、之于工作、之于生活 大语言模型微调 (Fine-tuning Large Language Models) 提升图片分辨率和质量 - Invoke AI 101 教程 使用画布创建和组合生成新的图片 - Invoke AI 101 教程 探索 AI 模型和概念适配器 - Invoke AI 101 教程 理解图像到图像和降噪过程 - Invoke AI 101 教程 使用控制层和指示控制图片的生成 - Invoke AI 101 教程 使用 Invoke 创作你的第一张图片 - Invoke AI 101 教程 在 OpenWrt 和群晖中自动申请和部署证书 凡人歌 - 凡人,但不要烦心 Shell 调用方式 fork,exec 和 source (Run Shell with fork, exec and source) 重定向和管道 (Redirect and Pipe) 模型压缩和推理加速 (Model Compression and Inference Acceleration) 我们需要多少种编程语言 (How Many Programming Languages do We Need) 数据可视化小贴士 - 面向动态文档生成,秉承规范、统一和实用的理念 从 rm -rf * 说起 - 喜新、怀旧、再出发 当我谈摄影时,我谈些什么 - 色彩篇 Part 1 CSS 布局和定位 (CSS Layout and Position) 当我谈修图时,我谈些什么 - 色彩篇 Part 1 在 Windows 下利用 WSL2 和 Ubuntu 配置 GPU 机器学习环境 文学编程和可重复性研究 (Literate Programming and Reproducible Research) 在 OpenWrt 中安装 Jellyfin 搭建家庭影音中心 自私和贪婪 (Selfish and Greedy) 评分和排名算法 (Rating & Ranking Algorithms) 小记这一波裁员浪潮 基于内容的图像检索 (Content-based Image Retrieval, CBIR) 你所应该知道的 A/B 测试 (A/B Test You Should Know) 一个人的摩旅 (Travel with My Motorcycle Alone) 设计语言初探 (A Glimpse of Design Language) Spark 集群搭建 (Spark Cluster Setup) Hive 安装和配置 (Hive Setup) Hadoop 集群搭建 (Hadoop Cluster Setup) 虚拟环境准备 (Virtual Environment Preparation) 大数据 SQL 性能调优 (Big Data SQL Performance Tuning) SQL 样式指南 (SQL Style Guide) 进程,线程和协程 (Process, Thread and Coroutine) - 实现篇 进程,线程和协程 (Process, Thread and Coroutine) - 理论篇 胶囊网络 (Capsule Network) 投票公平合理吗? 图存储与计算 (Network Storage and Computing) - 复杂网络系列 网络算法 (Network Algorithms) - 复杂网络系列 真实世界网络结构 (Structure of Real-World Network) - 复杂网络系列 网络表示,测度和度量 (Network Representation, Measures and Metrics) - 复杂网络系列 文本相似度 (Text Similarity) 而立之前 (Life before 30) 最近邻搜索 (Nearest Neighbor Search) 无模型策略预测和控制 - 时序差分学习 (Model-Free Policy Prediction and Control - Temporal Difference Learning) - 强化学习系列 无模型策略预测和控制 - 蒙特卡洛方法 (Model-Free Policy Prediction and Control - Monte-Carlo Learning) - 强化学习系列 利用动态规划求解马尔可夫决策过程 (Planning by Dynamic Programming) - 强化学习系列 贝叶斯优化 (Bayesian Optimization) 马尔可夫决策过程 (Markov Decision Process) - 强化学习系列 多臂赌博机 (Multi-armed Bandit) - 强化学习系列 强化学习简介 (Introduction of Reinforcement Learning) - 强化学习系列 在群晖 NAS 上编译安装 tmux 隐马尔可夫,条件随机场和序列标注 (Hidden Markov Model, Conditional Random Fields and Sequence Labeling) 图嵌入和图神经网络 (Graph Embedding and Graph Neural Network) 预训练自然语言模型 (Pre-trained Models for NLP) toB 产品用户权限 (User Privileges of toB Products) 京东数科 HIPO 学习之旅 (JDD HIPO Learning Journey) 杭州和东京之旅 (Tour of Hangzhou and Tokyo) 国际智慧温室种植挑战赛 (International Autonomous Greenhouse Challenge) 记忆中的儿时 (My Childhood in Memory) 启发式算法 (Heuristic Algorithms) 关不掉的浏览器标签页 (Browser Tabs You do not Close) 贝塞尔曲线 (Bézier Curve) 如何阅读一本书 (How to Read a Book) 相似性和距离度量 (Similarity and Distance Measurement) 集成学习算法 (Ensemble Learning) 计算复杂性与动态规划 (Computational Complexity and Dynamic Programming) 利用 Flask 和 Google App Engine 部署模型服务 序列到序列和注意力机制 (Seq2Seq and Attention Machanism) 词向量 (Word Embeddings) 循环神经网络 (Recurrent Neural Network, RNN) 泰国之行 (Tour of Thailand) 媒介之战 (War of Medias) 卷积神经网络 (Convolutional Neural Network, CNN) 买书,囤书,看书 (Buy Books, Hoard Books and Read Books) Play Safe, Smart Choice & Yuppie 基于 PyQt5/PySide2 和 QML 的跨平台 GUI 程序开发 流形学习 (Manifold Learning) 深度学习优化算法 (Optimization Methods for Deep Learning) 深度学习优化算法 (Optimization Methods for Deeplearning) 生成对抗网络简介 (GAN Introduction) Ising 模型,Hopfield 网络和受限的玻尔兹曼机 (Ising, Hopfield and RBM) 马尔科夫链蒙特卡洛方法和吉布斯采样 (MCMC and Gibbs Sampling) 特征值分解,奇异值分解和主成分分析 (EVD, SVD and PCA) 墨尔本之行 (Trip to Melbourne)
多智能体系统 (Multi-Agent System)
范叶亮 · 2026-06-20 · via 中文博客 on 范叶亮 | Leo Van

多智能体系统

Multi-Agent System

分类: AI / 字数: 5299 / 标签: 人工智能, AI, 单智能体, Single Agent, ReAct, 多智能体, Multi Agent, 分布式智能体, Distributed Agent


单智能体

在单智能体中,ReAct 框架 1 作为当前智能体的一个核心设计模式,其通过 Reasoning(推理)和 Acting(行动)两个模块实现了大语言模型推理能力与外部环境交互能力的深度协同。ReAct 框架的整体执行过程如下图所示:

在之前的博客中有介绍 ReAct 框架的主要特点,在上图中可以将流程划分为三个阶段:

初始化

该步骤会创建一个上下文,其中除了包含用户的输入以外还会包含系统提示词、可用的工具列表等其他信息。

循环迭代

循环迭代是 ReAct 框架的核心步骤,该步骤实现了在真实世界中人类解决问题的行为模式。

  1. 推理:用于分析任务目标,根据历史反馈和当前状态确定下一步动作。
  2. 行动:将模型推理的结果转化为可执行的工具指令(Tool Calling 或 Function Calling)。
  3. 观测:将工具执行结果返回给 LLM 用于确定下一步动作。

终止输出

当模型判断已获得最终答案后,会停止循环迭代并将结果输出给用户。除此之外也会存在异常输出的情况,例如:循环迭代达到最大限制次数,工具调用超时或返回错误等等。

我们以 Hotpot QA 数据集中的一个问题为例,对比其他方法展示 ReAct 框架是如何解决问题的。

多智能体

当单智能体配置的工具过多导致难以正确决策,或任务需要庞大的专业领域知识,抑或需要施加特定的顺序约束时,单智能体往往力不从心,此时多智能体架构成为更优的选择 2。归纳来看,引入多智能体主要是为了获得以下三方面能力:

  1. 上下文管理(Context Management):单一提示词难以容纳所有能力所需的专业知识,需要按需将相关信息呈现给模型,避免上下文窗口被无关内容占满。
  2. 分布式开发(Distributed Development):不同团队可以在清晰的边界内独立开发和维护各自的能力,再将其组合成更大的系统,而非维护一个庞大且难以协作的单体提示词。
  3. 并行化(Parallelization):为不同子任务派发专门的智能体并发执行,从而获得更快的响应。

多智能体并非银弹。Anthropic 的研究 3 表明,以 Claude Opus 4 作为主智能体、Claude Sonnet 4 作为子智能体的多智能体系统,在其内部研究类评测中比单体 Claude Opus 4 高出 90.2%,关键在于多个子智能体各自拥有独立的上下文窗口,从而实现了单智能体难以企及的并行推理。但同时也应注意,单智能体更易于构建、推理和调试,应当优先从单智能体加良好的提示词与工具设计开始,只有在确实触及瓶颈时再引入多智能体。

LangGraph 定义

根据 LangGraph v0.x 版本文档(已过时)4,其将多智能体模型划分为:网络模式(Network)监督模式(Supervisor)工具化监督模式(Supervisor as Tools)层级模式(Hierarchical)自定义模式(Custom Workflow)

不同类型的多智能体模型的特点和差异如下:

类型 架构 优点 缺点 适用场景
单智能体 基础形态,一个 LLM 配置多个工具。 1. 结构简单,逻辑集中。
2. 易于开发,调试方便。
1. 难以应对复杂任务。
2. 可维护性和可拓展性差。
1. MVP 开发。
2. 小型智能体开发。
网络模式 多个智能体之间相互连接,无明显的上下级关系,组成点对点的网络。 1. 去中心化,任意智能体之间均可通信。
2. 灵活性高,容易激发群体涌现能力。
1. 任务流程可控性低。
2. 容易出现循环调用。
1. 开放式问题求解。
2. 探索性对话系统。
监督模式 由主智能体负责调度指挥下面的子智能体,指令由主智能体分发,子智能体之间不直接通信。 1. 中心化决策,易于发现问题。
2. 流程清晰,易于控制。
1. 主智能体容易产生瓶颈。 1. 结构化流程系统。
监督模式
(工具化)
同单智能体类似,区别在于调用的不一定是工具,也可能是其他智能体。 1. 复杂性封装。
2. 标准化调用。
1. 主智能体难以干预子智能体。 1. 标准化子任务执行。
层级模式 监督模式的演化,子智能体之下还有子智能体,整体形成树状结构。 1. 模块化高,扩展性强。
2. 层级管理,多级协调。
1. 系统复杂度高,响应速度慢。
2. 信息在多层传递中可能失真。
1. 多领域任务调度。
2. 企业级 AI 应用。
自定义模式 智能体之间的连接方式是根据业务逻辑自定义的。 1. 特定场景效率高。
2. 路由可配置。
1. 灵活性差,开发成本高。 1. 结构化流程系统。

整体而言,没有最好的模式只有最适合的模式。在搭建多智能体系统时,需要根据实际的业务场景选择最合适的多智能体模式。

LangChain 定义

根据 LangChain v1.x 版本文档 5,其将多智能体模型划分为:子智能体模式(Subagents)传递模式(Handoffs)技能模式(Skills)路由模式(Router)自定义模式(Custom Workflow)

子智能体模式

类似上文中的监督模式。主智能体以工具方式调用子智能体对其进行协调,主智能体决定调用哪个子智能体、提供什么输入以及如何组合结果。子智能体是无状态的,所有记忆由主智能体维护。该模式的主要特点如下:

  1. 中心化控制:所有路由都经由主智能体。
  2. 无用户直接交互:子智能体将结果返回给主智能体而非用户。
  3. 工具调用:子智能体作为工具被调用。
  4. 并行执行:主智能体可以在单轮对话中调用多个子智能体。

当存在多个独立的场景(例如:日程、电子邮件、数据库等)时,子智能体无须同用户直接交互或者你希望通过统一流程进行控制,适合使用该模式。

技能模式

该模式下专业能力被打包成可调用的“技能”(Skill),用于增强智能体的行为能力。技能由专业化的提示词构成,智能体可以按需调用。该模式的主要特点如下:

  1. 提示词驱动:技能由特定的专业化提示词定义。
  2. 渐进式呈现:技能根据上下文或用户需求变为可用。
  3. 团队分布式:不同团队可以独立开发和维护技能。
  4. 轻量级组合:技能相比完整的子智能体更简单。
  5. 引用感知:技能可以引用脚本、模板和其他资源。

当你希望单个智能体具有多种专业化,无须在技能之间施加强制约束,或者不同团队需要独立开发能力时,适合使用该模式。

注意

技能模式在技术上仍然只使用单个智能体,LangChain 官方将其称为“准多智能体架构”。它通过让单个智能体动态切换专业化人格,获得了与多智能体类似的分布式开发与细粒度上下文控制能力,但采用的是更轻量的、提示词驱动的方式,而非真正管理多个智能体实例。

路由模式

该模式下,路由会对输入进行分类,并将其重定向至专门的智能体。该模式的主要特点如下:

  1. 路由会对输入进行拆解。
  2. 并行调用多个智能体。
  3. 将结果整合成一个统一的响应。

当你拥有多个垂直领域(每个领域需要独立的智能体),需要并行查询多个数据源,同时希望将结果汇总成一个统一的响应时,适合使用该模式。

路由模式 v.s. 子智能体模式

子智能体模式中的主智能体是一个完整的智能体,用来维护对话的上下文,并动态地决定在多轮中调用哪些子智能体。路由模式中的路由只是一个分类步骤,它将任务分派给各个智能体,其并不维护持续的对话状态。不过路由也可以被包装成一个工具,嵌入到一个有状态的会话智能体中,从而在保留分类与并行分发能力的同时,弥补其不维护对话历史的不足。

传递模式

类似上文中的网络模式。该模式下,行为会根据状态动态变化。其核心机制是工具更新一个可跨多轮的状态变量,系统通过该状态变量来调整行为(例如:应用不同的提示词和工具,或将用户路由到不同的智能体)。该模式的主要特点如下:

  1. 状态驱动行为:行为基于状态变量发生变化。
  2. 基于工具的转换:工具更新状态变量以在不同状态之间切换。
  3. 用户直接交互:每个状态配置均可以直接处理用户消息。
  4. 状态持久化:状态可以贯穿多轮对话。

当你希望依据强制约束进行执行,智能体需要跨不同状态同用户直接沟通,或者构建多阶段对话流程时,适合使用该模式。该模式在客户支持场景中尤其适用,因为在该场景下需要根据特定顺序收集信息,例如在发起退款之前收集订单 ID。

注意

传递模式只能顺序执行,无法并行处理。在需要同时咨询多个领域的场景下,它无法利用并行工具调用,往往需要更多的模型调用次数,效率较低。

自定义模式

类似上文中的自定义模式。该模式下,你可以自定义执行流程,包括顺序执行、条件分支、循环和并行执行等。该模式的主要特点如下:

  1. 完全的流程控制。
  2. 将确定性逻辑和智能体行为相结合。
  3. 支持顺序执行、条件分支、循环和并行执行。
  4. 将其他模式作为节点融入到工作流中。

当上述模式无法满足需求,需要将确定性逻辑与智能体行为相结合,或者场景需要复杂的路由或多阶段处理时,适合使用该模式。

模式能力对比

从分布式开发、并行化、多跳调用(Multi-hop,即串行调用多个子智能体)以及用户直接交互四个维度来看,不同模式各有侧重:

模式 分布式开发 并行化 多跳调用 用户直接交互
子智能体模式
传递模式 - -
技能模式
路由模式 -

模式性能对比

不同模式在模型调用次数和 token 消耗上存在明显差异。以下以三个典型场景为例:

模式 单次请求 重复请求 多领域查询
子智能体模式 4 次 8 次(4+4) 5 次 / 9K tokens
传递模式 3 次 5 次(3+2) 7+ 次 / 14K+ tokens
技能模式 3 次 5 次(3+2) 3 次 / 15K tokens
路由模式 3 次 6 次(3+3) 5 次 / 9K tokens

从中可以总结出几点规律:

  1. 子智能体模式因子任务结果需经主智能体回流,每次子任务返回时会多出一次模型调用,但换来了最强的上下文隔离。
  2. 有状态的模式(传递模式、技能模式)在重复请求时可复用已有状态或已加载的技能,相比无状态模式节省约 40%~50% 的调用。
  3. 多领域并行场景下,支持并行执行的子智能体模式与路由模式最省 token;技能模式虽然调用次数少,但由于上下文不断累积,token 消耗反而最高;传递模式因只能顺序执行而效率最低。

最后需要强调的是,上述模式并非互斥,而是可以相互组合的。例如子智能体模式内部可以调用路由模式或自定义模式,子智能体本身也可以借助技能模式按需加载上下文。更多智能体架构的对比讨论和选择请参考 LangChain 官方博客

系统实现

OpenClaw

OpenClaw 采用的是子智能体模式 6 7,在 OpenClaw 中“一个智能体”拥有自己的:

  1. 工作区(文件,AGENTS.mdSOUL.mdUSER.md、本地笔记、人格规则)。
  2. 状态目录(agentDir),用于凭证配置、模型注册和按智能体划分的配置。
  3. 会话存储(聊天历史 + 路由状态),位于 ~/.openclaw/agents/<agentId>/sessions 下。

凭证配置是按智能体划分的,每个智能体都会从自己的位置读取。子智能体是由一个现有的智能体派生出来的,其在独立的会话(agent:<agentId>:subagent:<uuid>)中运行。

Hermes Agent

Hermes Agent 采用的是路由模式 8 9,在 Hermes Agent 中“一个智能体”定义为一个档案(Profile)。每个 Profile 拥有自己的目录,其中包含各自的 config.yaml.envSOUL.md、记忆、会话、技能、Cron 任务和状态数据库。

QwenPaw

QwenPaw 通过一个内置的 多智能体协作(Multi-Agent Collaboration) 技能实现智能体之间的通信和协作 10,个人理解类似路由模式。每个智能体拥有自己的工作区,包括 AGENTS.mdSOUL.md、工具、技能、对话历史、定时任务等。

除了与不同工作区的其他智能体协作外,QwenPaw 还支持在当前项目内派发临时子任务。

模式 工作区 历史上下文 适用场景
chat_with_agent 目标智能体独立工作区 无(只传消息) 调用专长智能体(例如:QA、代码等)
spawn_subagent(fork=False) 与当前智能体相同 无(空白会话) 干净独立子任务
spawn_subagent(fork=True) 取决于环境 继承完整对话历史 需要背景的侧任务,且可能修改文件

通过 spawn_subagent 派发的子智能体不可恢复,子智能体使用相同的配置(例如:人格、工具等),只是在独立的会话中运行。

分布式智能体

以上讨论的都是在相同服务下的单智能体和多智能体实现,当我们需要让不同来源和实现的智能体之间进行协同时则需要构建一个分布式智能体系统。在分布式智能体中,每个智能体具备局部感知、自主规划与执行能力,并能跨节点交互,突破了单一系统在算力、扩展性和功能上的限制。分布式智能体具有如下特点:

  1. 模块化与专业化:将复杂任务拆解,交由不同专长的智能体处理(如:研究员、分析师、创作者等)。
  2. 高鲁棒性与扩展性:去中心化设计避免了单点故障。系统可根据需求跨多台机器、甚至跨多云环境进行水平扩展。
  3. 异构协同:允许运行在不同平台、不同框架的智能体通过标准化协议无缝互联。

在分布式智能体之间进行通信和协作需要统一的标准,A2A 协议 11 是由 Google 贡献,当前已加入 Linux 基金会的一个开放标准,它实现了智能体之间的无缝通信和协作。它为使用不同框架和由不同供应商构建的智能体提供了一种通用语言,从而促进了互操作性并打破了信息孤岛。不同于 MCP 协议解决的是智能体与工具、资源之间的协同问题,A2A 协议解决的是智能体与智能体之间的协同问题,两者之间的区别如下图所示:

虽然分布式智能体可以在横向扩展(更多实例,解决吞吐和并发问题)和纵向扩展(更多类型,解决合作和协同问题)上具有优势,但当前其仍面临诸多挑战 12,例如:

  1. 任务状态一致性:需要借助会话粘连(保证同一会话总是由同一实例处理)或状态持久化等手段,来实现状态同步,保证智能体任务状态和上下文在多个实例间的一致性。
  2. 任务调度与容错:需要有效的负载均衡和任务调度策略来优化资源利用,是简单的轮询还是根据实例响应时间或资源使用的动态分配等。此外,还需要考虑实例故障的容错,通常需要借助成熟的负载均衡与容器编排策略。
  3. 消息传递效率上下文共享能力复用等问题也会随着智能体复杂度提升而涌现。