
别再让一个 Agent 干所有事了。这篇文章先讲清楚多 Agent背后的概念与三大编排模式,再手把手带你把一个智能研报生成系统用 LangGraph 完整实现出来——包括主管调度、并行研究、质量门禁和打回重写的循环。一、为什么我们需要多个Agent?过去一年,几乎所有团队都会遇到同一个问题:单 Agent 开始失灵了。不是模型变笨了,而是你让它干的事太多了。一个挂着十种工具的 Agent 执行一个十步的任务,会反复踩到三类坑:上下文窗口污染。每个工具的 schema、每条 API 响应、每个中间结果都在抢占上下文空间。执行到第七步时,第二步里的关键信息早就被挤出去了。角色混乱。被指示调研、分析、写代码、起草摘要的 Agent,调研没做完就开始写代码,代码没编译就去写摘要,系统提示词慢慢变成一堆互相抵触的指令。故障扩散。单个 Agent 在第三步出错,第四步到第十步全部受污染——没有隔离、没有检查点、没有独立验证。解法其实很朴素:不要打造一个万能通才,组建一支各司其职的团队。给每个 Agent 单一职责、少量工具、清晰的接口。这就是多 Agent 系统(Multi-Agent System)的出发点。二、一图看懂三大编排模式多 Agent 系统经过大量实践沉淀,基本可以收敛为三种标准模式(或它们的组合):① Supervisor 主管模式(中心化)一个中心主管Agent 接收任务,分解成子任务分配给各个专家Agent,收集结果后综合输出。只有主管能看到全局,流程可预测、可审计。这是目前企业级最常见的模式,也是新项目的推荐起点。② Handoff 移交模式(去中心化)没有固定中央主管,当前正在执行任务的 Agent 根据情况把控制权移交给更合适的下一个 Agent(连同对话上下文)。模拟人类团队里的自然协作,适合对话走向难以预测的客服、开放式研究等场景。③ Swarm 群体模式(网状)Agent 之间点对点动态通信,根据实时上下文主动发起调用或移交,没有明显的层级。适合大规模并行分析、创意生成,但可预测性较弱,目前更适合研究和实验。怎么选? 从 Supervisor 模式起步。可预测性和可调试性最好。只有当场景明确需要(对话流不可预测、强去中心化)时,再考虑 Handoff 或 Swarm。三、LangGraph:用图来编排 Agent 团队市面上的多 Agent 框架不少:CrewAI、AutoGen、MetaGPT、OpenAI Swarm……而LangGraph能在 2026 年成为多 Agent 编排的事实标准之一,靠的是它最本质的设计:把 Agent 协作建模成一张有向图(StateGraph)。它的核心概念只有四个:概念作用State(状态)所有 Agent 共享的一张白板,定义数据结构,决定 Agent 之间传什么Node(节点)图中的一个个员工,可以是 Agent、工具调用、任意函数Edge(边)节点之间的连接,决定执行顺序Conditional Edge(条件边)边上的分岔路口,根据状态决定下一步走向——这是实现智能路由、循环、门禁的关键加上Checkpointer(检查点),LangGraph 还能支持持久化、断点续跑、人工介入(human-in-the-loop)等生产级能力。四、实战:用 LangGraph 实现智能研报生成系统概念讲完,直接上代码。我们做一个Supervisor-Worker 模式的智能研报生成系统,包含 4 个角色:主管 Agent(Supervisor):接收需求,拆解任务,决定下一步派给谁研究员 A / 研究员 B(Workers):并行收集资料与数据写作 Agent(Writer):整合研究成果,生成初稿审查 Agent(Reviewer):质量门禁,不通过就把稿子打回重写图 3:智能研报生成系统的 LangGraph 状态流(含”不通过 → 打回修改”的条件分支) (配图:对话中生成的《智能研报生成系统LangGraph状态流》)4.1 环境准备pip install langgraph langchain-openai4.2 定义共享状态(State)所有 Agent 共写一张白板,字段清晰可见:from typing import TypedDict, Annotated, Literal class AgentState(TypedDict): task: str # 原始需求 plan: str # 主管拆解出的任务清单 research_a: str # 研究员 A 的成果 research_b: str # 研究员 B 的成果 draft: str # 写作初稿 review: str # 审查意见 passed: bool # 审查是否通过 retry_count: int # 打回次数(防止死循环) next: str # 主管的调度决策4.3 定义四个 Agent 节点每个节点就是一个普通 Python 函数,入参是 State,出参是要更新的字段:from langchain_openai import ChatOpenAI # 统一使用一个 LLM 工厂,方便替换任意模型 def get_llm(model: str ”gpt-4o”): return ChatOpenAI(modelmodel, temperature0.3) # —— 主管:拆解任务,并决定下一步 —— def supervisor(state: AgentState): llm get_llm() decision llm.invoke( f”你是研报项目主管。任务:{state[task]}\n” f”当前进展:研究A{state[research_a]!r[:50]} 研究B{state[research_b]!r[:50]} ” f”初稿{state[draft]!r[:50]} 审查{state[review]!r[:50]}\n” f”请决定下一步,只能输出:RESEARCH 或 WRITE 或 REVIEW 或 FINISH” ).content.strip() next_step {”RESEARCH”: ”research”, ”WRITE”: ”writer”, ”REVIEW”: ”reviewer”, ”FINISH”: ”finish”}[decision] return {”next”: next_step, ”plan”: f”任务分解完成,下一步:{next_step}”}研究员节点(两个,可以并行):def researcher_a(state: AgentState): # 实际项目里这里调用搜索 API / 向量库 result get_llm().invoke( f”针对需求「{state[task]}」,检索行业趋势与竞品资料,输出要点列表。” ).content return {”research_a”: result} def researcher_b(state: AgentState): result get_llm().invoke( f”针对需求「{state[task]}」,整理市场规模与财务数据,输出结构化数据。” ).content return {”research_b”: result}写作节点:def writer(state: AgentState): draft get_llm().invoke( f”基于以下材料撰写研报初稿:\n” f”【趋势与竞品】{state[research_a]}\n【数据】{state[research_b]}\n” f”要求:结构完整(摘要/正文/结论),语言专业。” ).content return {”draft”: draft}审查节点(质量门禁):def reviewer(state: AgentState): verdict get_llm().invoke( f”请审查以下研报初稿,给出结论:如果质量合格只输出 PASS;” f”如果不合格输出 FAIL 具体修改意见。\n初稿:{state[draft]}” ).content passed verdict.strip().startswith(”PASS”) return {”review”: verdict, ”passed”: passed}4.4 条件边:让图活起来上面这些节点只是零件,真正把团队组织起来的是条件边——路由函数根据状态决定下一步走到哪个节点:def route_supervisor(state: AgentState) - str: # 主管说下一步去哪,就去哪 return state.get(”next”, ”research”) def route_reviewer(state: AgentState) - str: # 审查不过就打回重写;通过则结束 if not state[”passed”]: return ”writer” # 打回修改 return ”__end__” # 通过,输出交付物注意,end 是 LangGraph 的内置结束节点,可以用 END 常量替代。4.5 组装 StateGraphfrom langgraph.graph import StateGraph, START, END g StateGraph(AgentState) # 注册节点 g.add_node(”supervisor”, supervisor) g.add_node(”researcher_a”, researcher_a) g.add_node(”researcher_b”, researcher_b) g.add_node(”writer”, writer) g.add_node(”reviewer”, reviewer) # 入口 → 主管 g.add_edge(START, ”supervisor”) # 主管的分岔路口:根据状态路由到不同 Agent g.add_conditional_edges( ”supervisor”, route_supervisor, {”research”: ”researcher_a”, ”writer”: ”writer”, ”reviewer”: ”reviewer”, ”finish”: END}, ) # 研究员并行完成后,都汇合回主管 g.add_edge(”researcher_a”, ”supervisor”) g.add_edge(”researcher_b”, ”supervisor”) # 写作完成后回主管(主管决定要不要审查) g.add_edge(”writer”, ”supervisor”) # 审查的分岔路口:通过→结束,不通过→打回写作 g.add_conditional_edges(”reviewer”, route_reviewer, {”writer”: ”writer”}) # 编译成可执行的图 app g.compile()4.6 运行result app.invoke({ ”task”: ”写一份 2026 年 AI 编程助手行业研报”, ”research_a”: ””, ”research_b”: ””, ”draft”: ””, ”review”: ””, ”passed”: False, ”retry_count”: 0, }) print(result[”draft”]) # 最终研报主管每轮只做一个决策,研究并行推进,审查不过自动打回——整个过程可以被画成一张图,也可以被打印出来:from IPython.display import Image, display display(Image(app.get_graph().draw_mermaid_png()))五、再进一步:生产级的三个增强上面的骨架能跑通,但要上生产,还差三件事:1. 并行加速研究员 A / B 互不依赖,用 LangGraph 的Send API可以把顺序遍历改成并行扇出,吞吐提升近一倍:from langgraph.types import Send def fan_out(state): return [ Send(”researcher_a”, state), Send(”researcher_b”, state), ] g.add_conditional_edges(”supervisor”, fan_out, [”researcher_a”, ”researcher_b”])2. 人工介入(Human-in-the-Loop)关键节点(比如最终发布前)插入 interrupt() 暂停执行,等人工确认后再继续:from langgraph.types import interrupt def reviewer(state): human_decision interrupt({”draft”: state[”draft”]}) # 暂停,等人工 return {”passed”: human_decision ”PASS”, ”review”: str(human_decision)}配合 Checkpointer(MemorySaver),程序可以断电续跑,这也是 LangGraph 能托管为服务的关键。3. 可观测性多 Agent 系统最怕黑盒。好在 LangGraph 原生支持LangSmith / Langfuse 等 tracing,每次节点调用、每次工具调用、每次消息传递都有 trace,带上关联 ID,故障定位从在 prompt 海洋里捞针变成节点级定位。六、多 Agent 落地避坑清单(实践总结)最后,把这几条从真实项目里磨出来的经验送给你:按能力拆分,不要按步骤数拆分。 拆成研究 Agent / 写作 Agent / 审查 Agent,不要拆成第 1-3 步 Agent / 第 4-6 步 Agent。给每个子任务明确的退出条件。 “调研 XX API,返回端点、认证方式、限流、错误码,缺一项就报 INCOMPLETE”,而不是笼统的去查一下。结构化通信不可妥协。 Agent 之间尽量传结构化字段,而不是自由文本;审查环节既验正确性也要验完整性(比如 5 个数据点只拿到 4 个,一样要拦下)。错误处理分三层。 Agent 级重试(指数退避)→ 主管级重新路由/拆解 → 人工升级(如 3 种分解策略都失败就开升级工单)。成本预算按单 Agent 的 3~5 倍算。 主管用强推理模型,专家用便宜快模型——仅这一项就能降 40% 成本。全程留 trace。 看不见的东西无法调试,跨 Agent 的分布式追踪是最值得投入的运营基础设施。七、总结多 Agent 系统不是银弹,它带来了额外的复杂性、更高的成本、新的故障模式。但当任务确实需要多种能力、独立验证、动态路由时,一个编排良好的Agent 团队是目前最可靠的解法。而 LangGraph 的价值在于:它把团队协作从难以预测的自由对话,变成了一张看得见、可调试、可断点续跑的图。主管是中枢,Agent 是器官,整个系统是一个有机体——这就是 2026 年 Agent 工程的样子。代码已在文中给出完整可运行版本,建议你 clone 下来,把task换成你自己的业务需求跑一遍。第一次看到审查不过自动打回重写的那一刻,你会真正理解为什么大家都说:多 Agent 是下一个爆火的架构,而图,是它的第一公民。学AI大模型的正确顺序千万不要搞错了2026年AI风口已来各行各业的AI渗透肉眼可见超多公司要么转型做AI相关产品要么高薪挖AI技术人才机遇直接摆在眼前有往AI方向发展或者本身有后端编程基础的朋友直接冲AI大模型应用开发转岗超合适就算暂时不打算转岗了解大模型、RAG、Prompt、Agent这些热门概念能上手做简单项目也绝对是求职加分王给大家整理了超全最新的AI大模型应用开发学习清单和资料手把手帮你快速入门学习路线:✅大模型基础认知—大模型核心原理、发展历程、主流模型GPT、文心一言等特点解析✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑✅开发基础能力—Python进阶、API接口调用、大模型开发框架LangChain等实操✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经以上6大模块看似清晰好上手实则每个部分都有扎实的核心内容需要吃透我把大模型的学习全流程已经整理好了抓住AI时代风口轻松解锁职业新可能希望大家都能把握机遇实现薪资/职业跃迁这份完整版的大模型 AI 学习资料已经上传CSDN朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】