LangChain与LangGraph开发ai智能体有啥不同区别?
网友回复
这是一个非常经典的问题。简单来说,LangChain 是“地基和组件”,而 LangGraph 是基于这些组件构建的“高级架构图”。
如果你只需要一条直线走到底的任务,用 LangChain;如果你需要循环、纠错、复杂的判断跳转(即智能体 Agent),用 LangGraph。
以下是详细的对比和使用指南:
一、 核心区别:直线 vs. 循环
| 核心逻辑 | DAG (有向无环图) | Cyclic Graph (有环图/循环图) |
| 形态 | 像一条流水线。步骤 A -> 步骤 B -> 步骤 C。 | 像一个流程图或状态机。可以 A -> B -> A -> C。 |
| 状态管理 | 状态通常在步骤间传递,比较隐式,难以在复杂步骤间保留全局记忆。 | 显式状态 (Shared State)。所有节点共享并修改同一个 State,就像一个全局黑板。 |
| 主要用途 | 简单的 RAG(检索增强生成)、聊天机器人、数据提取。 | AI Agent (智能体)、多步推理、人机交互(Human-in-the-loop)、自我修正。 |
| 控制流 | 主要是线性的(虽然有 RunnableBranch,但写循环很痛苦)。 | 原生支持循环 (Loops) 和条件跳转。 |
一句话总结:
LangChain 适合:先把大象放进冰箱(打开门 -> 放进去 -> 关门)。
LangGraph 适合:先把大象放进冰箱,如果冰箱满了,就拿出来整理一下再试,或者换个冰箱(观察 -> 思考 -> 行动 -> 观察...)。
二、 为什么 LangChain 官方要推 LangGraph?
在 LangChain 早期,有一个叫 AgentExecutor 的东西用来做智能体。但它是一个“黑盒”,很难定制。比如:你想让 AI 在重试 3 次失败后人工介入,用 AgentExecutor 很难写。
LangGraph 就是为了解决“定制化 Agent”而生的。 它把控制权交还给开发者,让你明确定义:
有哪些节点(Nodes)?
节点之间怎么流转(Edges)?
什么时候循环?什么时候结束?
三、 怎么用?(代码实战对比)
假设我们要实现一个简单的功能:模型生成内容,如果太短,就要求它重写。
1. 使用 LangChain (LCEL)用 LangChain 实现“循环重写”非常别扭,通常只能硬写几层,或者写递归函数。这里展示最擅长的线性链:
# LangChain: 线性流水线
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
model = ChatOpenAI(model="gpt-4o")
prompt = ChatPromptTemplate.from_template("讲一个关于{topic}的笑话")
# 就像插积木一样串...点击查看剩余70%
如何写ai提示词让大模型根据主题生成视频脚本json,然后让Hyperframe渲染出mp4视频?
有哪些字体使用等宽编程代码展示?
如果让演唱会歌迷的上万手机屏幕和闪光灯一起被现场中控控制闪烁?
Midjourney为啥进军医疗领域了?
python如何跟踪足球比赛指定球员全场运动标注打聚光灯合成
如何将linux服务器的文件目录映射到windows电脑磁盘?
Docling 与 MarkItDown 两个库有啥不同?
豆包收费后国产其他ai软件也会跟进收费吗?
JPEG 与 HEIF图片格式区别?
centos7版本太旧无法安装python3.11,如何在docker中运行python3.11?


