news 2026/11/3 2:49:16

LangGraph多Agent系统从入门到精通:小白也能轻松掌握大模型协作的秘诀

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangGraph多Agent系统从入门到精通:小白也能轻松掌握大模型协作的秘诀

本文详细介绍了LangGraph中实现多Agent系统的关键基础,包括状态、节点、边等核心概念,以及子图与状态共享、动态路由、监督者模式等关键机制。文章还分析了单Agent和多Agent系统的优缺点,并指出了设计多Agent系统时需要考虑的关键信号。最后,本文详细阐述了多Agent之间的五种协作模式:顺序协作、并行协作、主控-专家、协商模式,帮助读者全面了解和掌握大模型协作的奥秘。

一、LangGraph中实现多Agent的关键基础


LangGraph 实现多 Agent 系统的基础,是将其核心的状态图(StateGraph)抽象,系统地应用于多Agent协作。它将复杂的协作流程建模为一张由共享状态(State)、节点(Nodes)和边(Edges)构成的图,从而实现对多个 Agent 的流程编排、状态管理和动态控制。通过子图(Subgraph)与状态共享、动态路由(Dynamic Routing)、监督者模式(Supervisor)等关键机制来实现多 Agent 系统模块化、状态传递、动态路由能力。

1、核心基础

状态(State):

一个贯穿整个图执行的共享数据结构(通常是 TypedDict),是系统所有 Agent 的“共享记忆”。每个节点都能读取和写入状态,确保不同 Agent 在协作时拥有统一的上下文,避免了信息孤岛。

节点(Nodes):

代表一个计算单元,在多 Agent 场景下,每个 Agent 通常被定义为一个独立的节点。节点可以是简单的 LLM 调用、工具执行,也可以是复杂的 ReAct 子流程。节点接收当前状态,执行其专属逻辑,并返回对状态的更新。

边(Edges):

定义了节点间的控制流,即 Agent 之间的调用顺序和路由规则。LangGraph 支持条件边(Conditional Edges)和循环(Cycles),这使得 Agent 之间可以根据实时结果进行动态跳转、重试或循环协作,这是传统线性链无法实现的。

2、关键机制

子图(Subgraph)与状态共享

子图是解决多 Agent 系统模块化和状态传递的关键机制。你可以将一个完整的多 Agent 图封装为一个子图,然后将其作为更大父图中的一个节点来使用。子图拥有自己独立的状态和节点,同时可以通过特定的输入/输出模式与父图共享状态,这完美支持了层次化(Hierarchical)的多 Agent 架构,实现了复杂系统的解耦与复用。

动态路由(Dynamic Routing)

路由决定了“接下来由哪个 Agent 执行”。LangGraph 通过 Command 和 Send 等 API 提供了灵活的路由能力:

  • Command:用于单目标路由。一个路由函数可以检查当前状态,并返回 Command(goto=“agent_name”),将控制权明确地转移给指定的单个 Agent 节点。
  • Send:用于并行扇出(Fan-out)。当你需要同时调用多个专家 Agent(例如,一个查询需要同时搜索数据库和调用 API)时,可以使用 Send 动态启动多个并行分支,每个分支拥有独立的子状态。这非常适合 Router(路由) 架构中的并行处理模式。

监督者模式(Supervisor)

这是一种核心的编排(Orchestration) 机制。系统引入一个中心的 Supervisor 节点,它不直接处理用户请求,而是充当协调者的角色。Supervisor 根据当前共享状态和任务目标,决定将任务委派(delegate) 给哪个或哪些 Worker Agent,并管理它们的调用顺序、重试和循环控制。这实现了清晰的中心化控制,与 Agent 之间直接点对点通信的“群体(Swarm)”模式形成对比。

LangGraph 实现多 Agent 的关键,在于将协作逻辑显式地“图化”。它通过共享状态统一上下文,将 Agent 定义为节点,并利用条件边、子图、路由和监督者等机制来编排它们之间的复杂交互。这种“有状态图”的范式,为构建可控、可观测且具备循环和分支能力的多 Agent 系统提供了坚实的基础。

二、单Agent和多Agent系统的优缺点


1、成本与延迟

单Agent通常成本更低、延迟更小。因为它只进行必要的LLM调用,没有代理间通信的往返开销。

多Agent系统则面临显著的协调开销(Coordination Overhead)。每个子任务的分发、结果汇总、代理间的消息传递都涉及额外的LLM调用或处理步骤,导致Token消耗和成本成倍增加,延迟也更高且难以预测。一项控制变量研究发现,在多数情况下,多Agent带来的准确率提升(平均约2.1个百分点)相对于翻倍的成本来说并不划算。

2、可靠性与容错

单Agent存在单点故障(Single Point of Failure) 的风险。一旦这个唯一的Agent在长链条推理中出错或陷入循环,整个系统就会失败。

多Agent系统的优势在于故障隔离。一个专职Agent的失败(如搜索Agent超时)不会直接导致系统崩溃,可以由监督者Agent决定重试或跳过,系统的整体鲁棒性更高。

3、上下文与专业化管理

单Agent的上下文窗口是主要瓶颈。当任务需要同时处理多种工具、海量知识时,把所有信息塞进一个Prompt会导致“上下文腐化”,模型在冗余信息中注意力分散,决策质量下降。

多Agent系统通过上下文隔离解决此问题。每个专家Agent只拥有解决其特定子任务“刚好够用”的上下文和工具集,决策更精准、更专业。这是驱动多智能体架构的首要原因。

4、复杂度与可调试性

单Agent的流程相对线性,逻辑简单直观,易于构建和调试。

多Agent系统的调试复杂度急剧上升。系统中存在多个移动部件和动态路由,一个错误的决策可能源于某个Agent的Prompt、路由逻辑或状态传递,追踪根因的难度远高于单一Agent。同时,将协作流程显式地建模为状态机图,也需要显著的前期设计和工程投入。

5、可扩展性与并行化

单Agent是串行处理的,无论能力多强,一次只能执行一个步骤,吞吐量受限于单个Agent的处理能力。

多Agent系统天然支持并行化。对于可分解为独立子任务的问题(如同时进行多源信息检索),可以并行调用多个Agent,显著缩短总处理时间。同时,团队可以独立开发和迭代不同的专家Agent,只要接口契约不变,系统级扩展性更好。

三、多Agent系统设计的关键信号


选择单Agent还是多Agent系统,本质上是在系统简洁性与处理复杂任务的能力之间做权衡。业界一个很务实的共识是,从单Agent开始,只有在遇到具体且无法逾越的限制时,才考虑演进到多Agent系统。以下是需要进行多Agent系统设计的关键信号。

1、上下文过载:

任务所需的工具、知识或指令已多到让单一Agent的Prompt变得臃肿且性能下降。

2、需要深度专业化:

任务的各个环节(如代码生成、安全审查、文档撰写)需要截然不同的系统提示、工具集,甚至底层模型。

3、对鲁棒性有硬性要求:

无法接受单点故障,需要系统具备局部失败后自动恢复或降级的能力。

4、存在可并行的独立子任务:

任务可以被清晰地分解为多个可同时执行的部分,以缩短端到端时间。

5、需要组织级扩展:

希望由不同团队独立负责不同能力的迭代,而无需协调整个单体Prompt的变更。

四、多Agent之间的协作模式


1、顺序协作 (Sequential / Pipeline)

Agent 像流水线一样串行执行,前一个 Agent 写入共享状态的输出,直接成为后一个 Agent 的输入。在 LangGraph 中,这通过 add_edge 将节点按固定顺序连接来实现,是拓扑最简单的模式。

应用场景:任务具有明确的、不可跳过的阶段依赖。典型如“研究 → 起草 → 审阅 → 定稿”的内容生产流水线,或“需求分析 → 代码生成 → 测试”的软件开发流程。

from langgraph.graph import StateGraph, START, END from typing_extensions import TypedDict classState(TypedDict): input: str research: str draft: str final: str defresearch_agent(state: State) -> dict: result = llm.invoke(f"Research this topic: {state['input']}") return {"research": result.content} defwriter_agent(state: State) -> dict: result = llm.invoke(f"Write a draft based on: {state['research']}") return {"draft": result.content} defreview_agent(state: State) -> dict: result = llm.invoke(f"Polish this draft: {state['draft']}") return {"final": result.content} graph = StateGraph(State) graph.add_node("research", research_agent) graph.add_node("write", writer_agent) graph.add_node("review", review_agent) graph.add_edge(START, "research") graph.add_edge("research", "write") # research → write graph.add_edge("write", "review") # write → review graph.add_edge("review", END) chain = graph.compile() # chain.invoke({"input": "LangGraph 多智能体协作模式"})

2、并行协作 (Parallel / Fan-out & Fan-in)

多个 Agent 在同一阶段并发执行,各自处理独立子任务,最后由一个聚合节点(Aggregator)将结果合并。LangGraph 通过 Send API 实现扇出(fan-out),并借助状态通道上的 Reducer(如 operator.add)安全地合并各分支的写入结果,再扇入到聚合节点。

应用场景:子任务彼此独立、无先后依赖,且并行能显著缩短端到端延迟。典型如多源并行研究(同时从不同角度分析同一主题),或对同一份代码进行多维度并行审查(安全、性能、风格)。

from langgraph.graph import StateGraph, START, END from langgraph.types import Send from typing import TypedDict, Annotated from operator import add classOverallState(TypedDict): topic: str angles: list[str] findings: Annotated[list[str], add] # 并行分支的累加器 classWorkerState(TypedDict): angle: str# 每个分支独立的状态 defplan(state: OverallState) -> dict: return {"angles": ["技术视角", "商业视角", "风险视角"]} deffan_out(state: OverallState) -> list[Send]: """为每个分析角度启动一个并行分支""" return [Send("analyze", {"angle": a}) for a in state["angles"]] defanalyze(state: WorkerState) -> dict: result = llm.invoke(f"从 {state['angle']} 分析主题") return {"findings": [f"[{state['angle']}] {result.content}"]} defsynthesize(state: OverallState) -> dict: combined = "/n".join(state["findings"]) return {"final_report": llm.invoke(f"综合以下分析:/n{combined}").content} builder = StateGraph(OverallState) builder.add_node("plan", plan) builder.add_node("analyze", analyze) builder.add_node("synthesize", synthesize) builder.add_edge(START, "plan") builder.add_conditional_edges("plan", fan_out) # 扇出:一个节点 → 多个并行实例 builder.add_edge("analyze", "synthesize") # 扇入:所有分支汇入聚合节点 builder.add_edge("synthesize", END) parallel_graph = builder.compile()

3、主控-专家 (Supervisor / Orchestrator-Worker)

一个中心化的 Supervisor Agent 掌握路由决策权,根据当前共享状态,动态决定下一步交给哪个专家 Agent,或是否结束。Worker Agent 之间互不感知,只与 Supervisor 通信。LangGraph 通过 add_conditional_edges 实现 Supervisor 的动态路由,所有 Worker 执行完毕后通过 add_edge(worker, “supervisor”) 将控制权交回。

应用场景:这是 LangGraph 多 Agent 的参考实现,适用于需要动态决策和质量控制的中等复杂度任务。Supervisor 可以判断专家输出是否合格,不合格则打回重做,形成回环控制;也可以在一轮任务中多次调用同一专家(如“写作 → 审阅反馈 → 再写作”)。

from langchain_openai import ChatOpenAI from langgraph_supervisor import create_supervisor from langgraph.prebuilt import create_react_agent model = ChatOpenAI(model="gpt-4o") defsearch_web(query: str) -> str: """搜索互联网获取信息""" return"..." defcalculate(expression: str) -> str: """执行数学计算""" return"..." research_agent = create_react_agent( model=model, tools=[search_web], name="researcher", prompt="你是研究专家,负责搜集信息。不要做数学计算。" ) math_agent = create_react_agent( model=model, tools=[calculate], name="calculator", prompt="你是数学专家,负责精确计算。不要进行网络搜索。" ) workflow = create_supervisor( agents=[research_agent, math_agent], model=model, prompt=( "你是团队主管,管理一个研究专家和一个数学专家。" "需要信息时调用 researcher,需要计算时调用 calculator。" "根据专家返回的结果,决定下一步或结束。" ) ) app = workflow.compile() result = app.invoke({ "messages": [{"role": "user", "content": "FAANG 公司 2024 年总员工数是多少?"}] })

4、协商模式 (Debate / Voting / Consensus)

多个 Agent 以对等地位参与,通过结构化的对抗或聚合来提升决策质量。这通常分为两种子形态:

  • 辩论 (Debate):持不同立场的 Agent(如“正方/反方”)交替发言、相互挑战,由 Judge/Arbiter 在达到轮次上限或条件满足时做出裁决。
  • 投票/共识 (Voting/Consensus):多个 Agent 独立给出判断,再通过多数投票或共识算法聚合结果。

在 LangGraph 中,这通过并行节点 + 条件回边实现:辩论轮次通过条件边循环,直至达到终止条件后路由到 Judge 节点。

应用场景:适用于高风险、高模糊性的决策,或需要减少单一 Agent 偏见/幻觉的场合。例如方案评审、事实核查、多视角风险评估,以及任何“正确答案不唯

一、需要权衡”的复杂判断。

from langgraph.graph import StateGraph, START, END from typing import TypedDict, Annotated import operator classDebateState(TypedDict): topic: str round_num: int max_rounds: int transcript: Annotated[list[str], operator.add] # 追加辩论记录 verdict: str defpro_agent(state: DebateState) -> dict: argument = llm_pro.invoke( f"辩题:{state['topic']}。你是正方。当前是第 {state['round_num']} 轮。" f"历史记录:{state['transcript']}。请发表你的论点。" ) return {"transcript": [f"正方:{argument.content}"], "round_num": state["round_num"] + 1} defcon_agent(state: DebateState) -> dict: argument = llm_con.invoke( f"辩题:{state['topic']}。你是反方。当前是第 {state['round_num']} 轮。" f"历史记录:{state['transcript']}。请反驳并发表你的论点。" ) return {"transcript": [f"反方:{argument.content}"]} defjudge(state: DebateState) -> dict: verdict = judge_llm.invoke( f"辩题:{state['topic']}。以下是完整辩论记录:/n" f"{chr(10).join(state['transcript'])}/n" f"请裁定哪一方更有说服力,并给出理由。" ) return {"verdict": verdict.content} defshould_continue(state: DebateState) -> str: if state["round_num"] >= state["max_rounds"]: return"judge" return"pro" # 回到正方,继续下一轮 builder = StateGraph(DebateState) builder.add_node("pro", pro_agent) builder.add_node("con", con_agent) builder.add_node("judge", judge) builder.add_edge(START, "pro") builder.add_edge("pro", "con") # 正方 → 反方 builder.add_conditional_edges("con", should_continue) # 反方之后:继续或裁决 builder.add_edge("judge", END) debate_graph = builder.compile() # debate_graph.invoke({"topic": "AI 是否应该拥有法律人格", "round_num": 0, "max_rounds": 3})

5、如何选择不同的协作模式

这四种模式并非互斥。在生产系统中,它们常以嵌套组合的方式出现——例如,一个 Supervisor 将任务分发给一个并行的研究团队(并行模式),其中每条研究流水线内部是顺序执行,而最终的敏感判断再交给一个小型辩论组进行裁决。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:

  • ✅ 从零到一的 AI 学习路径图
  • ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
  • ✅ 百度/阿里专家闭门录播课
  • ✅ 大模型当下最新行业报告
  • ✅ 真实大厂面试真题
  • ✅ 2026 最新岗位需求图谱

所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~

① 全套AI大模型应用开发视频教程

(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)

② 大模型系统化学习路线

作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!

③ 大模型学习书籍&文档

学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。

④ AI大模型最新行业报告

2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

⑤ 大模型项目实战&配套源码

学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。

⑥ 大模型大厂面试真题

面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

以上资料如何领取?

为什么大家都在学大模型?

最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!

不出1年,“有AI项目经验”将成为投递简历的门槛。

风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!

这些资料真的有用吗?

这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。

资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。

以上全套大模型资料如何领取?

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/3 2:48:04

终极工具包!一个自托管全能 Web 工具箱!

大家好,我是 Java陈序员。 日常办公和开发的时候,我们总会频繁用到各类在线小工具:图片压缩、PDF 合并、音视频处理、JSON 格式化、Base64 编解码。 为了解决日常需求,往往是收藏了一大堆在线工具网站。但很多公共在线工具网站不仅…

作者头像 李华
网站建设 2026/11/3 2:44:15

人形机器人的主要构成和测试解决方案详解

一、人形机器人的主要构成?人形机器人的主要构成包括执行器、感知系统、控制与交互、动力、结构件、热管理系统等运动执行系统。二、人形机器人的测试解决方案有哪些?1)执行器相关测试:机器人执行器是将能量转化为机器人的机械运动…

作者头像 李华
网站建设 2026/11/3 2:42:39

GEO 峰会四类人:方法论开始过剩,执行还没跟上

那天会场里坐的都是些什么人作者身份说明:我是龙孚信息技术(上海)股份有限公司的售前助理,这届峰会我也在现场。下面是我站在签到台边的观察;涉及我方产品与获奖的表述标注"厂商口径",嘉宾发言与…

作者头像 李华