LangGraph智能体开发设计模式(三)——LangGraph多智能体设计模式:主管架构与分层架构

前言

元旦休整一过,"大模型真好玩"如期开启2026年的百篇AI文章计划。首先推出的,仍是承接去年脉络的 LangGraph智能体开发设计模式系列

上篇文章 LangGraph智能体开发设计模式(二)------协调器-工作者模式、评估器-优化器模式分享了单智能体场景下的两种重要模式------协调器-工作者模式与评估器-优化器模式。至此,基于LangGraph的单智能体五大设计模式已完整呈现,包括:

  • 提示链模式
  • 路由模式
  • 并行模式
  • 协调器-工作者模式
  • 评估器-优化器模式

随着构建智能体技术的不断进步,大家需要解决的任务复杂性已逐渐超越了单一的智能体设计,在面对多维度、跨领域的复杂问题时,即便是基于强大模型构建的单智能体也常显得笨重且不堪重负,过长的上下文、大规模工具(笔者实测单智能体单个模型挂超过20个工具就会不知道该调用哪个工具了)的糟糕决策都注定了要用更加先进的模式。 这些局限性催生了更先进的架构思路------多智能体系统 。我们不再依赖单一智能体处理所有任务,而是将AI应用拆解为一组更小、更专注的智能体,每个智能体具备特定的职责与专业能力。然而,这也引入了新的挑战:如何有效协调多个智能体之间的交互与协作,以达成系统整体目标?

这正是多智能体设计模式所要回答的核心问题。从本期开始笔者将系统介绍LangGraph中的多智能体设计模式,涵盖主管架构分层架构网络架构三种典型范式,帮助大家构建更灵活、更强大的多智能体应用。

本系列将涵盖常见的工作流模式与多智能体架构模式,预计通过五篇文章展开。相关内容均列于笔者的专栏《深入浅出LangChain&LangGraph AI Agent 智能体开发》,同时也要说明该专栏适合所有对 LangChain 感兴趣的学习者,无论之前是否接触过 LangChain。该专栏基于笔者在实际项目中的深度使用经验,系统讲解了使用LangChain/LangGraph如何开发智能体,目前已更新 35 讲,并持续补充实战与拓展内容。欢迎感兴趣的同学关注笔者的掘金账号与专栏,也可关注笔者的同名微信公众号大模型真好玩 ,每期分享涉及的代码均可在公众号私信: LangChain智能体开发免费获取。

2026年笔者的另一大重心还会放在大模型训练 专栏分享上,当然,谈论训练无法绕过算力这道现实的门槛。昂贵的GPU曾是许多人梦想的拦路石。正因如此笔者今年特意与一些可靠的算力平台展开了合作,希望能为大家解决算力瓶颈。大家可以通过www.lab4ai.cn/register?ag... 注册Lab4ai算力平台 ,提供了包括英伟达H系列在内的多种选择,更有 5小时的免费体验额度

一、LangGraph多智能体设计模式

1.1 多智能体设计模式概述

多智能体系统的核心在于通过模块化、专业化与受控的通信机制,来构建能够处理复杂业务逻辑的大模型应用。相较于单一的"全能型"智能体,多智能体架构将复杂任务分解为多个更小、更独立的专业智能体,从而显著提升系统的可管理性、灵活性与执行效率。

其核心优势主要体现在以下三个方面:

  1. 模块化:将复杂的单体智能体拆解为多个功能独立的子智能体,每个子智能体可以独立开发、测试、迭代与维护。这不仅降低了单个组件的复杂度,也使得整个系统的开发流程更为清晰和高效。
  2. 专业化 :每个智能体可以针对特定领域的任务进行深度优化,成为该领域的"专家",例如专精于信息检索的研究智能体 、擅长逻辑与计算的数学智能体 ,或负责任务拆解与规划的规划智能体。这种分工协作避免了让单个通用模型在所有领域"平均用力"而导致的性能平庸,从而从整体上构建出更强大、更精准的系统。
  3. 受控的通信与协作:与单纯依赖大模型自发进行对话交互不同,多智能体系统允许开发者显式地设计和编排智能体之间的交互协议、信息交换格式与协同流程。这种受控的协作机制确保了任务执行的可预测性、稳定性和可追溯性,是实现复杂、多步骤工作流的关键。

1.2 多智能体设计模式架构简介

LangGraph为构建和编排多智能体系统提供了强大的框架,其基于图的架构本身就非常适合表示和管理多个智能体间的交互。在 LangGraph 中,连接和编排多个智能体有多种成熟的架构模式,每种模式都针对不同的协作场景和系统目标,拥有其独特的优势与适用领域。

在本系列文章中,笔者将深入探讨 LangGraph 中三种主流的多智能体架构模式

  • 主管架构 (Supervisor Architecture)
  • 分层架构 (Hierarchical Architecture)
  • 网络架构 (Networked Architecture)

笔者将通过具体的代码实例,逐一解析它们的设计思想、实现方式以及典型应用场景。

二、主管架构

2.1 主管架构概念

主管架构是多智能体系统的核心模式之一,适用于需要明确的中心控制点 来管理与指导协作流程的场景。在该架构中,一个指定的主管智能体(Supervisor) 扮演着中央协调员的角色,负责监督、决策并指挥多个专业智能体(Specialist Agents) 的活动。

主管架构模式与我们日常的工作组织方式高度相似:想象一位项目经理(主管智能体),他接收任务请求,将其拆解并委派给最合适的专业成员(专业智能体),最后汇总和管理所有成员的输出以形成最终成果。在主管架构中,专业智能体与外部环境(包括用户)的通信,大多数情况下都通过主管智能体进行路由。这种集中式的控制机制使得整个系统具备高度的可预测性可管理性,非常适合需要结构化、多步骤协调的复杂任务。

这时大家可能会问,在LangGraph智能体开发设计模式(二)------协调器-工作者模式、评估器-优化器模式分享的协调器-工作者工作流也是先规划编排,然后分发给不同大模型去执行呀,它和主管架构有什么区别呢?

确实,主管架构与协调器-工作者工作流在表面上看都涉及一个"中央协调实体",但它们在抽象层次设计目的上存在本质不同:

维度 主管架构 (Supervisor Architecture) 协调器-工作者工作流 (Coordinator-Worker Workflow)
抽象层级 高级系统架构 模式。它定义了如何组织多个智能体并构建它们之间的交互关系。 低级任务执行 模式。它描述了如何处理一个单一复杂任务的分解与执行流程。
核心关注点 智能体管理系统协调 。主管智能体决定在给定上下文下,应该调用哪个专业智能体来参与工作。 任务分解执行效率 。协调器负责将一个任务 拆分为子任务,并分发给工作者高效完成
组件性质 核心组件是具备决策能力和专门角色的自主智能体 核心组件通常是执行预定义操作的大模型调用或函数

为了更好地理解,笔者这里使用一个比喻:

  • 主管架构 就像一家公司的整体组织结构。CEO(主管智能体)管理着不同的部门(专业智能体),如市场部、工程部。他决定哪些部门参与某个项目,并协调部门间的合作。
  • 协调器-工作者工作流 则像是某个部门(如工程部)内部使用的项目管理方法。工程经理(协调器)使用敏捷开发等方法,将大型软件项目(任务)拆分为小任务,分发给各位开发者(工作者)完成。

简言之,协调器-工作者工作流 是某个部门(或智能体)内部用于完成工作的"工具"或"方法";而主管架构是整个多智能体"组织"赖以运行和管理的"顶层设计"。

2.2 主管架构代码实战

理论描述或许不够直观,接下来笔者将通过一个完整的代码实例,演示如何在 LangGraph 中实现主管架构。笔者将构建一个由主管智能体 管理两个专业智能体(数学智能体、研究智能体)的简易系统。

在 LangGraph 中,实现主管架构的核心在于:在图中设置特定节点作为专业智能体,并引入一个中央主管节点来决策下一个激活的智能体节点。控制该流程的关键机制是 LangGraph 的 Command 对象。然而,从零开始搭建涉及状态流转和控制逻辑,过程较为复杂。

为了简化开发,LangChain 团队推出了 langgraph-supervisor 类库。下面,我们将使用这个类库,通过一个具体案例来演示主管架构的实现。

  1. 环境配置: 首先需要安装 langgraph-supervisor 类库。在激活的anaconda langchain虚拟环境中执行以下命令:pip install langgraph-supervisor:

  2. 引入相关依赖: 在项目文件夹下新建 .env 文件,填入你的 DEEPSEEK_API_KEY。随后引入必要的依赖。

    python 复制代码
    from langchain_core.messages import HumanMessage, SystemMessage
    from langchain_core.tools import tool
    from langchain_deepseek import ChatDeepSeek
    from langchain.agents import create_agent
    from langgraph_supervisor import create_supervisor
    from dotenv import load_dotenv
    
    load_dotenv()
    
    llm = ChatDeepSeek(
        model="deepseek-chat",
    )
  3. 定义专业智能体: 利用 LangChain 的 create_agent API 定义两个专业智能体:数学智能体研究智能体,并分别为它们配备专用工具。

    python 复制代码
    @tool
    def add(a: float, b: float) -> float:
        """将两个数字相加"""
        return a + b
    
    
    @tool
    def multiply(a: float, b: float) -> float:
        """将两个数字相乘"""
        return a * b
    
    
    @tool
    def web_search(query: str) -> str:
        """
        模拟网络搜索功能,返回2025年谷歌和Facebook的员工数
        """
        if "谷歌" in query or "google" in query.lower():
            return "2025年谷歌的员工数是182545人"
        elif "facebook" in query.lower() or "meta" in query.lower():
            return "2025年Facebook(Meta)的员工数是67043人"
        else:
            return "未找到相关信息"
    
    math_agent = create_agent(
        model=llm,
        tools=[add, multiply],
        system_prompt="你是一个数学智能体,负责处理数字计算任务。",
        name='math_agent'
    )
    
    research_agent = create_agent(
        model=llm,
        tools=[web_search],
        system_prompt="你是一个研究智能体,负责处理信息搜索任务。",
        name='research_agent'
    )
  4. 创建主管工作流: 利用 create_supervisor 函数创建主管工作流,并通过 compile 方法将其编译为可执行的 LangGraph 应用程序。这里笔者为核心的主管智能体编写了详细的调度提示词。

    python 复制代码
    supervisor_prompt = """你是主管智能体,负责协调和管理两个专业智能体:
    - math_agent(数学智能体):负责数字计算,包括加法和乘法
    - research_agent(研究智能体):负责信息搜索,特别是网络搜索
    
    根据用户的问题,决定调用哪个智能体:
    - 如果需要搜索信息(如公司数据、统计数据等),调用research_agent
    - 如果需要进行数学计算(如数字相加、相乘等),调用math_agent
    - 如果任务完成,返回FINISH
    
    请确保按照合理的顺序调用智能体。例如,如果需要计算总数,先调用research_agent获取数据,再调用math_agent进行计算。"""
    
    workflow = create_supervisor(
        [math_agent, research_agent],
        model=llm,
        prompt=supervisor_prompt,
    )
    
    
    app = workflow.compile()
  5. 编译并运行工作流: 向编译好的应用程序输入一个问题,观察主管架构如何协调两个专业智能体完成任务。运行结果如下图所示,主管智能体成功协调了整个流程:首先调用研究智能体 获取两家公司的员工数据,随后调用数学智能体对这两个数字进行求和计算,最终返回了正确的结果。

    python 复制代码
    result = app.invoke({
        "messages": [HumanMessage(content="2025年谷歌和Facebook的员工数总数是多少?")]
    })
    
    print(result['messages'][-1].content)

三、分层架构

3.1 分层架构概念

主管架构虽然相比单智能体系统在管理复杂性上有显著提升,但在处理大量专业智能体超高复杂度任务 时,其设计瓶颈依然会显现。试想,随着主管智能体直接管理的下属智能体数量增长,其决策路径将变得异常复杂,需要维护的上下文信息也会过于庞大,最终可能导致决策效率降低、响应迟缓。为了解决单层主管架构的可扩展性问题 ,LangGraph引入了分层架构

分层架构的核心思想是将组织结构扁平化 。它不再让单个主管智能体直接管理所有专业智能体,而是先将专业智能体按功能或领域划分成不同的团队 。每个团队由一个团队级主管智能体 (或称为"中层主管")管理。随后,再引入一个顶层主管智能体来监督和协调这些团队主管的活动。

这种结构与企业的组织层级高度相似。例如,我们可以设置一个 "研究团队" 主管,负责管理研究智能体和数学智能体;同时设置一个 "写作团队" 主管,管理写作智能体和发布智能体。当用户提出一个综合性请求时(如"研究并发布一份报告"),顶层主管 会首先判断任务性质,决定是调用"研究团队"还是"写作团队",或者决定它们的执行顺序。随后,被选中的团队主管 再在其内部,将具体任务分派给对应的专业智能体执行。

3.2 分层架构代码实战

langgraph-supervisor 类库的优势在于其良好的可组合性,能够自然地扩展以支持分层系统。可以先为每个团队创建独立的团队级主管工作流 ,然后将这些团队工作流作为"子智能体",组合到一个顶层主管工作流之下。

接下来笔者将在前文主管架构例子的基础上进行扩展,构建一个包含 "研究团队""写作团队" 的两层系统,并由一个 "顶层主管" 进行统一协调。

  1. 引入相关依赖: 此部分与主管架构示例相同,用于配置环境和基础模型。

    python 复制代码
    from langchain_core.messages import HumanMessage, SystemMessage
    from langchain_core.tools import tool
    from langchain_deepseek import ChatDeepSeek
    from langchain.agents import create_agent
    from langgraph_supervisor import create_supervisor
    from dotenv import load_dotenv
    
    load_dotenv()
    
    llm = ChatDeepSeek(
        model="deepseek-chat",
    )
  2. 定义工具函数: 新增了用于写作和发布的工具函数,并为所有工具添加了 print 语句,以便在运行时清晰地观察调用链。

    python 复制代码
    @tool
    def add(a: float, b: float) -> float:
        """将两个数字相加"""
        print('调用相加函数')
        return a + b
    
    
    @tool
    def multiply(a: float, b: float) -> float:
        """将两个数字相乘"""
        print('调用相乘函数')
        return a * b
    
    
    @tool
    def web_search(query: str) -> str:
        """
        模拟网络搜索功能,返回2025年谷歌和Facebook的员工数
        """
        print('调用搜索函数')
        if "谷歌" in query or "google" in query.lower():
            return "2025年谷歌的员工数是182545人"
        elif "facebook" in query.lower() or "meta" in query.lower():
            return "2025年Facebook(Meta)的员工数是67043人"
        else:
            return "未找到相关信息"
    
    
    @tool
    def write_report(content: str) -> str:
        """
        模拟写作功能,将内容整理成报告格式
        """
        print('调用写报告函数')
        return f"报告内容:\n{content}\n\n报告生成完毕。"
    
    
    @tool
    def publish_report(report: str) -> str:
        """
        模拟发布功能,将报告发布到平台
        """
        print('调用发布函数')
        return f"报告已成功发布:\n{report}"
  3. 定义智能体: 创建四个专业智能体,分别隶属于后续的研究团队和写作团队。

    python 复制代码
    math_agent = create_agent(
        model=llm,
        tools=[add, multiply],
        system_prompt="你是一个数学智能体,负责处理数字计算任务。",
        name='math_agent'
    )
    
    research_agent = create_agent(
        model=llm,
        tools=[web_search],
        system_prompt="你是一个研究智能体,负责处理信息搜索任务。",
        name='research_agent'
    )
    
    writing_agent = create_agent(
        model=llm,
        tools=[write_report],
        system_prompt="你是一个写作智能体,负责调用wirte_report函数撰写报告。",
        name='writing_agent'
    )
    
    publishing_agent = create_agent(
        model=llm,
        tools=[publish_report],
        system_prompt="你是一个发布智能体,负责调用publish_report函数发布报告。",
        name='publishing_agent'
    )
  4. 定义并编译团队级主管工作流: 将数学和研究智能体打包成 "研究团队" ,将写作和发布智能体打包成 "写作团队" ,并分别为它们创建团队主管,该步骤是实现分层的关键。

    python 复制代码
    research_team_prompt = """你是研究团队的主管,负责协调以下智能体:
    - math_agent(数学智能体):负责数字计算,包括加法和乘法,涉及数学计算必须使用该智能体
    - research_agent(研究智能体):负责信息搜索,信息搜索必须使用该智能体
    
    根据任务需求,决定调用哪个智能体:
    - 如果需要搜索信息(如公司数据、统计数据等),调用research_agent
    - 如果需要进行数学计算(如数字相加、相乘等),调用math_agent
    - 如果研究任务完成,返回FINISH
    
    请确保按照合理的顺序调用智能体。例如,如果需要计算总数,先调用research_agent获取数据,再调用math_agent进行计算。"""
    
    research_team_supervisor = create_supervisor(
        [math_agent, research_agent],
        model=llm,
        prompt=research_team_prompt,
    )
    
    research_team = research_team_supervisor.compile(name='research_team')
    
    
    writing_team_prompt = """你是写作团队的主管,负责协调以下智能体:
    - writing_agent(写作智能体):负责将研究结果整理成报告
    - publishing_agent(发布智能体):负责将报告发布到平台
    
    根据任务需求,决定调用哪个智能体:
    - 如果需要将内容整理成报告,调用writing_agent
    - 如果需要将报告发布到平台,调用publishing_agent
    - 如果写作和发布任务完成,返回FINISH
    
    请确保按照合理的顺序调用智能体:先调用writing_agent生成报告,再调用publishing_agent发布报告。"""
    
    writing_team_supervisor = create_supervisor(
        [writing_agent, publishing_agent],
        model=llm,
        prompt=writing_team_prompt
    )
    
    writing_team = writing_team_supervisor.compile(name='writing_team')
  5. 定义并编译顶层主管工作流: 将已编译好的 research_teamwriting_team 工作流(它们本身也是可调用的智能体单元)作为成员,交给 顶层主管 进行协调。

    python 复制代码
    supervisor_prompt = """你是最高主管智能体,负责协调和管理两个专业团队:
    - research_team(研究团队):负责研究和数据分析,包括数学计算和信息搜索
    - writing_team(写作团队):负责报告撰写和发布
    
    根据用户的问题,决定调用哪个团队:
    - 如果需要研究数据、搜索信息或进行数学计算,调用research_team
    - 如果需要撰写报告或发布内容,调用writing_team
    - 如果任务完成,返回FINISH
    
    请确保按照合理的顺序调用团队。例如,如果需要生成并发布一份报告,先调用research_team获取数据,再调用writing_team撰写和发布报告。"""
    
    workflow = create_supervisor(
        [research_team, writing_team],
        model=llm,
        prompt=supervisor_prompt,
    )
    
    
    app = workflow.compile()
  6. 运行测试: 向这个分层系统提出一个综合性请求。从运行结果和控制台输出可以清晰看到整个分层协作流程

    python 复制代码
    result = app.invoke({
        "messages": [HumanMessage(content="请帮我研究2025年谷歌和Facebook的员工数总数,然后生成一份报告并发布。")]
    })
    
    print(result['messages'][-1].content)

四、总结

本篇分享了LangGraph多智能体系统的两种核心架构。主管架构通过主管智能体管理多个专业智能体,适合结构化任务。为解决其扩展性问题,分层架构引入了团队与层级概念,由顶层主管协调团队主管,从而分担决策压力,提升系统处理复杂任务的能力。除了主管价格和分层价格,另一种更平等的智能体网络价格也是LangGraph多智能体开发的重要设计模式之一,下篇内容笔者将分享LangGraph多智能体的网络架构,大家敬请期待~

《深入浅出LangChain&LangGraph AI Agent 智能体开发》专栏内容源自笔者在实际学习和工作中对 LangChain 与 LangGraph 的深度使用经验,旨在帮助大家系统性地、高效地掌握 AI Agent 的开发方法,在各大技术平台获得了不少关注与支持。目前已更新35讲,正在更新LangGraph1.0速通指南,并随时补充笔者在实际工作中总结的拓展知识点。如果大家感兴趣,欢迎关注笔者的掘金账号与专栏,也可关注笔者的同名微信公众号 大模型真好玩,每期分享涉及的代码均可在公众号私信: LangChain智能体开发免费获取。

2026年笔者的另一大重心还会放在大模型训练 专栏分享上,当然,谈论训练无法绕过算力这道现实的门槛。昂贵的GPU曾是许多人梦想的拦路石。正因如此笔者今年特意与一些可靠的算力平台展开了合作,希望能为大家解决算力瓶颈。大家可以通过www.lab4ai.cn/register?ag... 注册Lab4ai算力平台 ,提供了包括英伟达H系列在内的多种选择,更有 5小时的免费体验额度

相关推荐
wenzhangli712 小时前
Ooder A2UI 框架中的矢量图形全面指南
人工智能
躺柒12 小时前
读共生:4.0时代的人机关系07工作者
人工智能·ai·自动化·人机交互·人机对话·人机关系
码丽莲梦露12 小时前
ICLR2025年与运筹优化相关文章
人工智能·运筹优化
ai_top_trends12 小时前
2026 年度工作计划 PPT 模板与 AI 生成方法详解
人工智能·python·powerpoint
小真zzz12 小时前
2025年度AIPPT行业年度总结报告
人工智能·ai·powerpoint·ppt·aippt
村口曹大爷13 小时前
2026年人工智能深度技术报告:架构范式转移、代理化开发生态与算力经济的重构
人工智能·重构·架构
ISACA中国13 小时前
免费公益培训:人工智能审计和 AI 审计实务
人工智能·免费资源·aaia·人工智能审计专家认证·公益培训·ai 审计
aloha_78913 小时前
agent智能体学习(尚硅谷,小智医疗)
人工智能·spring boot·python·学习·java-ee
zhongerzixunshi14 小时前
把握申报机遇 赋能高质量发展
大数据·人工智能
昨夜见军贴061614 小时前
IACheck AI审核如何实现自动化来料证书报告审核,全面提升生产效率与合规水平
运维·人工智能·自动化