news 2026/4/23 23:14:17

LangChain和LangGraph到底在做什么,有哪些做Multi-Agent的组件?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain和LangGraph到底在做什么,有哪些做Multi-Agent的组件?

1. LangChain 在多 Agent 里主要干什么

LangChain 更像“通用积木层”:帮你统一模型接口、消息格式、Prompt、Tool、Retriever、结构化输出、Middleware 这些能力,并且提供现成的create_agent来快速起一个 Agent。官方现在也明确把它定位成“预置 Agent 架构 + 各类模型/工具集成”的框架。

LangGraph 更像“编排/状态机层”:当你做多 Agent、长流程、需要持久化状态、可恢复执行、人工介入时,LangGraph 更合适。官方也说明,LangChain 的内置 Agent 本身就是基于 LangGraph 原语实现的;如果你需要更深的定制,就应直接下沉到 LangGraph。

  • 简单 Agent:LangChain 就够了
  • 真正多 Agent / 多阶段工作流 / 状态持久:LangChain + LangGraph是主流搭配。

2. 搭多 Agent 时,LangChain 里最常用的模块

(1)Models:模型抽象层

这是最底层。LangChain 给不同厂商模型提供统一接口,方便你在 OpenAI、Anthropic、Google 等模型之间切换。官方也强调它的标准模型接口就是为了降低切换成本。

多 Agent 里怎么用:

  • 不同 Agent 可绑不同模型
  • 例如:Planner 用强推理模型,Executor 用便宜模型,Summarizer 用小模型

(2)Messages:消息对象

LangChain 把对话上下文统一成messages。官方写得很明确:messages 是模型上下文的基本单位,承载内容和元数据。

多 Agent 里怎么用:

  • 主 Agent 维护全局消息
  • 子 Agent 拿局部消息
  • 你可以控制“哪些历史要传给哪个 Agent”

这一步非常关键,因为多 Agent 的本质常常不是“模型更多”,而是上下文切分更合理


(3)Prompts:提示词模板

LangChain 有 Prompt 模板体系,像PromptTemplateChatPromptTemplate这种都属于这个层。PromptTemplate 本质上是带参数的模板;在 Agent 场景里,你也可以直接给create_agentsystem_prompt

多 Agent 里怎么用:

  • 给每个 Agent 单独设角色 Prompt
  • 例如:
  • planner:负责拆任务,不直接调用外部系统
  • researcher:负责检索
  • coder:负责生成代码
  • reviewer:负责检查结果

这个模块非常适合做“角色分工”。


(4)Tools:工具系统

官方定义很直接:Tools 扩展 Agent 的能力,可以拿实时数据、执行代码、查数据库、对外部世界做动作;本质上是有清晰输入输出的可调用函数

多 Agent 里怎么用:

  • 给不同 Agent 挂不同工具
  • 让 Agent 职责边界更清晰
  • 也能减少单个 Agent 面对太多工具时的选择混乱

例如:

  • research_agent:只给检索工具
  • sql_agent:只给数据库工具
  • calendar_agent:只给日程工具
  • compliance_agent:只给政策规则工具

这是多 Agent 最实用的一点。


(5)Agents:现成 Agent 框架

官方说明create_agent是一个production-ready的 Agent 实现,Agent 会在“模型—工具—模型—工具”的循环里运行,直到输出最终答案或达到停止条件。

多 Agent 里怎么用:

  • 你可以先把每个子能力都做成一个独立 Agent
  • 再把这些 Agent 包成 tool 或挂进 graph 里

也就是说,一个很常见的套路是:

research_agent=create_agent(...) sql_agent=create_agent(...) planner_agent=create_agent(...)

然后上面再放一个 supervisor 去调它们。


3. 多 Agent 时,LangChain 官方给出的几种模式

官方专门有 multi-agent 文档,并且明确说:并不是所有复杂任务都需要多 Agent;当单 Agent 拥有太多工具、上下文过大、或需要强顺序约束时,多 Agent 才特别有价值。

3.1 Subagents / Supervisor 模式

这是最经典的模式。官方定义是:主 Agent(supervisor)把子 Agent 当作工具来调用,由主 Agent 决定调谁、传什么参数、怎么汇总结果。并且官方特别说明:subagents 默认是无状态的,历史记忆由主 Agent 统一维护。

适用场景:

  • 多领域分工很明显
  • 子 Agent 不需要直接和用户长期对话
  • 你希望统一调度

非常适合:

  • 企业助理
  • 商旅规划
  • RAG + SQL + 搜索 + 日程 的混合系统

3.2 Handoffs 模式

handoff 的核心是:行为由状态驱动变化。工具调用会更新状态变量,比如current_stepactive_agent,系统再根据这个状态切换 Agent 或切换配置。官方给出的实现方式包括:
1)单 Agent + middleware 动态改配置
2)多个 agent subgraph 之间切换。

适用场景:

  • 必须按步骤推进
  • 不同阶段跟用户交互方式不同
  • 例如售后流程、审批流、表单收集

这个模式很像“带状态机的对话流程”。


3.3 Skills 模式

官方的意思是:你不一定要拆成多个真正独立的 Agent,也可以做成单 Agent + 按需加载专门技能/上下文。当你只是 specialization 很多,但不想上太复杂的多 Agent 编排时,这种方式比较轻。

适用场景:

  • 一个 Agent,但领域多
  • 想做“渐进式暴露工具/知识”
  • 不想太早引入复杂 supervisor

3.4 Router / Custom Workflow 模式

官方教程里把 router 和 custom workflow 也放进多 Agent 相关实践里:可以先分类,再路由到不同 Agent;或者直接把某个 Agent 当成 graph 的一个节点,和确定性逻辑混编。

适用场景:

  • 先判断任务类型,再派单
  • 例如:
  • 技术问答 -> research_agent
  • 数据查询 -> sql_agent
  • 计划制定 -> planner_agent

4. 真正落地时,最该用的 LangChain / LangGraph 模块组合

下面这个组合最常见。

A.create_agent

快速做每个子 Agent。官方推荐的现成实现。

B.@tool

把普通函数变成可调用工具;也可以把一个子 Agent 再包装成 tool 给 supervisor 用。官方文档里的 subagent 例子就是这么做的。

C. State / Nodes / Edges

这是 LangGraph 的核心三件套:

  • State

    :共享状态

  • Nodes

    :节点逻辑

  • Edges

    :决定下一步去哪。

这三者基本就是你多 Agent 系统的“骨架”。

D. Subgraphs

官方明确说subgraph 可以作为另一个 graph 的 node,很适合多 Agent 系统,也适合不同团队分模块开发。

你可以理解为:

  • 每个复杂 Agent 自己是一张小图
  • 总系统再是一张大图

E. Memory / Checkpointer

LangGraph 官方区分了:

  • 短期记忆

    :作为 state 的一部分,支持多轮对话

  • 长期记忆

    :跨 session 存用户级或应用级数据。

多 Agent 里尤其重要,因为:

  • 不是每个 Agent 都该看到所有历史
  • 但系统又必须知道全局任务进展

F. Retrieval / Retriever / Vector Store

官方把 Retriever 定义为:输入非结构化 query,返回文档列表的接口;它比 vector store 更泛化,而 vector store 则提供统一的相似检索接口。

多 Agent 里通常会单独做一个:

  • retrieval_agent
  • policy_agent
  • knowledge_agent

G. Structured Output

官方支持让 Agent 直接返回 JSON、Pydantic model、dataclass 等结构化结果,而不是你自己去 parse 文本。create_agent可以自动处理结构化输出。

这个对多 Agent 非常重要,因为:

  • 子 Agent 返回给主 Agent 时,最好不是自然语言
  • 而是结构化字段,比如:
  • task_type
  • constraints
  • retrieved_docs
  • risk_flags
  • final_plan

H. Middleware

官方说明 middleware 可以控制 Agent 执行过程,比如日志、提示词改写、工具选择、输出变换、重试、fallback、限流、guardrails、PII 检测等;也支持在before_modelafter_model等阶段挂钩子。

这在多 Agent 里非常好用:

  • 动态切换 system prompt
  • 限制某阶段可见工具
  • 给不同 Agent 加安全检查
  • 做 step-based handoff

5.搭一个多 Agent

场景一:只是功能分工,不复杂

用:

  • create_agent
  • @tool
  • 一个 supervisor agent

也就是Subagents 模式。这是最省事的。官方也说当你有多个明显不同领域时,这种模式很适合。


场景二:任务有明确阶段,必须按流程推进

用:

  • LangChain agent
  • LangGraph state
  • middleware / handoff

也就是Handoffs / state machine 模式。官方给 customer support 的例子就是这么做的。


场景三:你要做真正“可控”的企业级多 Agent

用:

  • LangChain:模型、tool、retriever、structured output
  • LangGraph:state、node、edge、subgraph、checkpoint、interrupt

这是现在最稳的组合。官方也在文档里反复把多 Agent 教程描述为“LangChain agents + LangGraph workflows”的结合。


6. 给你一个适合入门的多 Agent 结构

如果你现在要做一个项目,我建议先从这个 4-Agent 版本开始:

User ->supervisor_agent ->planner_agent ->retrieval_agent ->executor_agent ->reviewer_agent

每个 Agent 干什么

1)supervisor_agent

  • 接收用户请求
  • 判断该调谁
  • 汇总最终答案

2)planner_agent

  • 拆任务
  • 生成步骤
  • 提取约束

3)retrieval_agent

  • 查知识库 / 向量库 / SQL / API
  • 返回结构化证据

4)executor_agent

  • 真正执行动作
  • 调工具、生成草稿、算结果

5)reviewer_agent

  • 做校验
  • 看是否缺字段、是否违规、是否需要补查

7. 一个很小的代码骨架思路

下面我写一个“supervisor + 两个子 agent”的简化思路:

from langchain.agentsimportcreate_agent from langchain.toolsimporttool planner=create_agent( model="openai:gpt-4.1", tools=[], system_prompt="你是任务规划Agent,只负责拆解任务,不直接执行。" ) researcher=create_agent( model="openai:gpt-4.1-mini", tools=[], system_prompt="你是检索Agent,只负责查资料并返回证据。" ) @tool("plan_task") defplan_task(user_query: str) -> str: result=planner.invoke({ "messages": [{"role": "user", "content": user_query}] }) returnresult["messages"][-1].content @tool("research") defresearch(query: str) -> str: result=researcher.invoke({ "messages": [{"role": "user", "content": query}] }) returnresult["messages"][-1].content supervisor=create_agent( model="openai:gpt-4.1", tools=[plan_task, research], system_prompt="你是总控Agent,负责选择合适的子Agent并整合结果。" )

这就是官方 subagents 思路的一个缩小版:把子 Agent 包成 tool,交给主 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%免费

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

AI大模型趋势洞察与未来展望

一、 从爆发到成熟:AI大模型进入体系化发展新阶段 以大模型为核心的生成式AI技术,在经历了2023年的爆发式增长和2024年的技术沉淀与应用探索后,于2025年展现出更加成熟和体系化的发展态势。技术迭代的步伐从未放缓,模型能力的天花…

作者头像 李华
网站建设 2026/4/23 23:08:27

kill-doc文档下载工具完整指南:轻松解锁30+平台文档下载权限

kill-doc文档下载工具完整指南:轻松解锁30平台文档下载权限 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是…

作者头像 李华
网站建设 2026/4/23 23:07:25

C++ 版Dijkstra 算法详解

C‑Dijkstra算法全解析(含堆优化)目标让你彻底理解Dijkstra的核心思想学会在 C 中用邻接链表实现基本版本( O(V) )掌握如何用 priority_queue(二叉堆)把复杂度降到 O((VE) log V)练习几组典型样例,感受运算步骤知晓常…

作者头像 李华
网站建设 2026/4/23 23:03:16

Java学习13

上午(2.5h)多态核心 向上 / 向下转型1. 多态的 3 个前提条件(0.5h)必须同时满足,缺一不可必须有继承关系(extends)子类必须重写父类方法(override)父类引用指向子类对象…

作者头像 李华