多智能体系统架构解析

本文系作者 [架构精进之路] 原创,著作权归作者所有,未经授权禁止任何形式的转载、抄袭或盗用,违者必究。

一、问题思考

在 AI 快速发展的今天,我们能明显感受到不同智能系统的差异:有的擅长自然对话,有的依托技能点精准响应。

**deepseek(自然对话) vs 豆包(技能点模式):

**

这种技术架构的差异,直接导致二者在使用方式、适配场景与用户体验上呈现显著不同。

而多智能体系统,正是通过独特的架构设计,让 AI 突破单智能体的能力边界,实现更复杂的任务协作。

二、多智能体系统介绍

2.1 概念简介

多智能体系统 (Multi-Agent Systems, MAS)是相对单智能体系统(Single-agent System)而言。

多智能体组成虚拟团队,模拟人类专业协作模式,以解决超越单智能体能力边界的复杂问题。

其实和人类很像,一个人的大脑装太多信息会影响效率,单智能体面对复杂任务时,稳定性和能力都会受限。而多智能体系统,就像组建了一个虚拟专业团队,通过模拟人类协作模式解决复杂问题。 正所谓"术业有专攻",一个人的力量,永远抵不过一个专业的团队。

这就是 MAS,即多智能体系统设计的初衷。

2.2 技术本质

MAS 技术本质是 分布式系统思想 的延续,构建分布式认知网络 ,通过智能体(Agent)间的目标驱动协作环境交互反馈,实现超越单智能体能力边界的复杂问题求解。

MAS 的技术独特性:

  • 功能节点从预定逻辑功能(eg. 数据库节点、计算节点)提升为具备意图推导能力

  • 通信内容从结构化数据升级为自然语言指令

  • 决策机制从中心控制变为协商自治

基于以上三点,让多智能体之间像专业团队一样 "各司其职、灵活协作"。

三、LangGraph 多智能体系统

从极具代表性的 AI 框架中汲取本质思想(MAS 架构的实践典范)

3.1 多智能体架构

在多智能体系统中,有几种连接智能体的方法:

  • 网络:每个智能体都可以与 其他所有智能体 进行通信

  • 监管智能体:每个智能体与单个监管智能体进行通信

  • 监督者(工具调用):这是监督者架构的一种特殊情况,单个智能体可以表示为工具

  • 分层式:你可以使用 超级监督智能体 定义一个多智能体系统

  • 自定义:每个智能体仅与一部分智能体进行通信

3.2 核心概念

Command

LangGraph 中构建多智能体架构的新工具/语法糖

Command = 更新状态(节点) + 控制流(边)(即 让Agent 知道 "下一步做什么、状态怎么更新")

csharp 复制代码
const myNode = (state: typeof StateAnnotation.State) => {
  return new Command({
    update: { foo: "bar" },
    goto: "other_subgraph", // where `other_subgraph` is a node in the parent graph
    graph: Command.PARENT,
  });
};

Handoffs

多智能体交互中的一种常见模式,即一个智能体将控制权交接给另一个智能体。

ini 复制代码
# With type hints, you can specify the possible nodes this can go to.
def agent(state: MessagesState) -> Command[Literal[..., END]]:
    ...
    return Command(
	    goto=...,  # The next node(s) to go to
	    update={"messages": [response]}  # The update to apply to the state
	  )

两者的关联

关联代码实现:

javascript 复制代码
// Define the nodes
const nodeASubgraph = async (_state: typeof StateAnnotation.State) => {
  console.log("Called A");
  // this is a replacement for a real conditional edge function
  const goto = Math.random() > .5 ? "nodeB" : "nodeC";
  // note how Command allows you to BOTH update the graph state AND route to the next node
  return new Command({
    update: {
      foo: "a",
    },
    goto,
    // this tells LangGraph to navigate to node_b or node_c in the parent graph
    // NOTE: this will navigate to the closest parent graph relative to the subgraph
    graph: Command.PARENT,
  });
};

const subgraph = new StateGraph(StateAnnotation)
  .addNode("nodeA", nodeASubgraph)
  .addEdge("__start__", "nodeA")
  .compile();

const parentGraph= new StateGraph(StateAnnotation)
  .addNode("subgraph", subgraph, { ends: ["nodeB", "nodeC"] })
  .addNode("nodeB", nodeB)
  .addNode("nodeC", nodeC)
  .addEdge("__start__", "subgraph")
  .compile();

await parentGraph.invoke({ foo: "" });

Command 驱动 Handoffs 的发生,而 Handoffs 是 Command 在智能体间传递的载体和实现方式。

四、 其他多智能体系统探究

除LangGraph 框架之外,其他优秀的多智能体框架介绍:

4.1 AutoGen(Microsoft)

AutoGen 的核心价值:让 AI 协作 "像聊天一样自然"

1、基类与角色分工

  • 核心基类:ConversableAgent 对话引擎

  • 角色分工:AssistantAgent、UserProxyAgent、GroupChatManager

2、定义Agent + 定制交互逻辑

  • 定义Agent:人类代理A、助手B

  • 注册自定义回复函数:让Agent 具备智能响应能力

3、程序运行:对话驱动的任务执行

4.2 CrewAI(OpenAI)

CrewAI 既支持 "智能体自主协作" (Crew),也支持 "流程化精细编排"(Flows),覆盖从灵活创新到严格流程的多样化协作需求

  • Crew 模式

  • Agent 拥有独立能力(LLM + Tools)和共享记忆,自主分工执行任务

  • Flows 模式

  • 通过 Code 编排协作单元的交互,结合状态管理实现流程级精细控制

核心对比:

维度

Crew 模式

Flows 模式

控制粒度

智能体自主决策

代码定义的流程级控制

核心优势

灵活分工、自主协作

步骤精确、依赖清晰

典型场景

创意生成、多角色模拟

数据流水线、复杂工作流

4.3 MetaGPT(国产)

MetaGPT 多智能体协作开发软件的标准流程(SOP)

  • 左侧:软件开发标准流程

  • 中间:智能体分工

  • 右侧:人机交互阶段

MetaGPT提出了一个通信协议,以提高角色通信效率,还实现了结构化的通信接口和有效的发布-订阅机制

  • 共享消息池:协作的"神经中枢"

  • 发布(publish)

    :将信息写入消息池(eg. PM 发布任务)

  • 订阅(subscription)

    :监听感兴趣的消息(eg. Engineer 订阅开发任务)

4.4 小结

AutoGen、CrewAI、MetaGPT 三款 MAS 框架对比:

五、结语

多智能体系统(MAS)不仅是对人类社会协作关系的映射,其真正价值在于探索和创造具备超协同增益的AI群体智能。

然而,不同框架之间依然存在较高的学习和开发门槛。随着 LLM 能力的持续提升,未来的 Agent 框架必将朝着更简洁、高效、易用的方向演进。

后续 AI 内容学习,持续更新,欢迎关注~

·END·

希望今天的讲解对大家有所帮助,谢谢!

Thanks for reading!

作者:架构精进之路,十年研发风雨路,大厂架构师,CSDN 博客专家,专注架构技术沉淀学习及分享,职业与认知升级,坚持分享接地气儿的干货文章,期待与你一起成长。

关注并私信我回复"01",送你一份程序员成长进阶大礼包,欢迎勾搭。

相关推荐
程序猿阿伟2 分钟前
《支付回调状态异常的溯源与架构级修复》
后端·架构
bug菌21 分钟前
还在为Java API文档熬夜加班?字节Trae让你躺着就能生成专业文档!
aigc·ai编程·trae
dreams_dream32 分钟前
django错误记录
后端·python·django
SmalBox34 分钟前
【渲染流水线】[逐片元阶段]-[深度写入]以UnityURP为例
架构
Tony Bai1 小时前
泛型重塑 Go 错误检查:errors.As 的下一站 AsA?
开发语言·后端·golang
AI大模型1 小时前
30天快速入门AI大模型:从理论到实践的详细学习方案
程序员·llm·ai编程
猿java1 小时前
Elasticsearch有哪几种分页方式?该如何选择?
后端·elasticsearch·架构
绝无仅有1 小时前
服务器Docker 安装和常用命令总结
后端·面试·github
Chiy2 小时前
架构设计避坑指南:读写分离后,分表分库到底该何时用?
后端