LangGraph 构建于 LangChain 之上,能极大简化智能体(Agent)与智能体运行时(Agent Runtime)的开发工作。 那么智能体和智能体运行时究竟指什么? 在 LangChain 中,我们对智能体的定义是:由大语言模型驱动、能够自主决策执行何种动作的系统。 而智能体运行时,本质上负责循环驱动智能体:调用智能体,由它决定要执行的动作;执行该动作,采集返回的观测结果;再把观测结果回传给智能体,开启下一轮循环。整个过程持续迭代,直到智能体判定任务完成。 过去几个月里,我们已经借助 LangChain 表达式语言(LCEL)大幅降低了 LangChain 中智能体的自定义门槛,如果还不了解,推荐你去学习相关内容。 而 LangGraph 所要解决的问题,是让开发者能够灵活定制智能体运行时。 在此之前,LangChain 里唯一的运行时实现就是 AgentExecutor(智能体执行器)。它以固定逻辑循环执行、调用工具、统一处理异常。这套方案固然好用,但实现运行时的方式仅此一种。我们希望提供更多方案,支持以更灵活、更动态的方式搭建智能体运行时。 运行时最核心的能力之一,就是支持循环结构。智能体运行时的核心逻辑就是持续驱动大模型智能体循环思考执行,因此框架必须支持环路。 但 LangChain 表达式语言以及其他有向无环图(DAG)类框架不支持循环。这正是我们推出 LangGraph 的根本原因: LangGraph 专门用于构建带有循环能力的智能体运行时。 以上就是 LangGraph 的概要介绍,以及它诞生的背景。 本系列后续视频,我会重点讲解我们首批内置的两大智能体运行时。 第一种是智能体执行器(Agent Executor),功能和原版 LangChain 的智能体执行器高度一致 —— 我们基于 LangGraph 重新实现了它。 第二种是对话智能体执行器(Chat Agent Executor):它接收一组消息作为输入,直接用消息列表表达智能体状态,最终同样输出一组消息。 之所以单独实现对话智能体执行器,是因为当下绝大多数新一代模型都是对话式大模型。这类模型原生把工具调用封装为消息内的参数,工具返回结果也对应一种独立消息类型。用消息列表来表征智能体状态,和这类模型的工作范式天然契合,因此我们专门提供了这套独立的执行器。 之后我还会演示多种改造基础智能体执行器的方式,例如接入人在回路(Human-in-the-loop)、强制优先调用指定工具,以及其他实用拓展能力。
文本核心概念梳理 + 通俗解读
先把原文关键概念拆解,理清LangChain → AgentExecutor → LangGraph的演进脉络,同时区分容易混淆术语:
一、基础名词释义
1. Agent(智能体)
定义:由大模型驱动,可以自主决策要执行什么动作的系统。 简单理解: 智能体 = LLM + 决策逻辑。 它只负责思考、做选择:“我现在要不要调用工具?调用哪个工具?传入什么参数?还是任务已经做完,可以直接输出答案?” ⚠️Agent 本身不会自己循环、不会自动调用工具、不会自动收集结果再重新思考。它只是 “大脑”,缺少驱动它持续运转的机制。
2. Agent Runtime(智能体运行时)
定义:驱动智能体不断循环工作的执行引擎。 标准循环流程:
- 把当前上下文交给 Agent(大脑)
- Agent 做出决策:输出动作 / 工具调用指令
- Runtime 执行工具,拿到观测结果(tool 返回值)
- 将结果合并进上下文,再次喂给 Agent
- 重复 1~4,直到 Agent 判断任务结束,终止循环
一句话区分:
- Agent = 大脑(负责思考决策)
- Agent Runtime = 躯体 + 循环控制器(负责执行、循环、流转状态)
3. AgentExecutor(智能体执行器)
LangChain 原生提供的唯一一套内置 Agent Runtime 实现。 特点: 循环逻辑固定、流程黑盒、异常处理统一。 优点:开箱即用; 痛点:流程固定,很难自定义循环分支、暂停、人在回路、复杂多分支路由。
二、LCEL 的局限(LangChain Expression Language)
LCEL 是 LangChain 用来组装链路的语法,底层是DAG(有向无环图)。 DAG 硬性约束:不能存在环路。 链路只能单向往下走,无法实现:模型思考 → 调用工具 → 获取结果 → 再次交给模型思考的循环闭环。
这就是核心矛盾: 智能体天然需要循环,但是 LCEL/DAG 做不了循环。
三、LangGraph 的定位与诞生目的
LangGraph 构建在 LangChain 之上,专门用来自定义 Agent Runtime。
核心价值: 支持带环路的状态图,不再是 DAG,可以自由实现循环、条件分支、中途暂停、分支路由。 开发者不再只能使用 LangChain 提供的固定 AgentExecutor,可以从零搭建属于自己的智能体运行时。
四、LangGraph 内置两套原生 Runtime
1. Agent Executor(重构版)
对标 LangChain 原版 AgentExecutor,功能对齐。 只是底层不再是硬编码循环,而是用 LangGraph 状态图重新实现,方便你在图上修改流程。
2. Chat Agent Executor(对话智能体执行器)
适配当前主流对话式大模型(GPT、Claude、Qwen 等)
- 状态 = 消息列表
[SystemMessage, HumanMessage, AIMessage, ToolMessage...] - 输入:消息数组
- 输出:消息数组
为什么单独实现? 现代对话模型原生把工具调用嵌入对话消息流: AI 消息携带工具调用参数 → 工具执行结果封装为 ToolMessage 放回对话历史。 用消息列表表征状态,和模型原生范式完美匹配,无需额外格式转换。
五、后续拓展方向(原文预告)
基于 LangGraph 改造运行时的常见能力:
- Human-in-the-loop 人在回路:循环中途暂停,交由人工审核、输入指令之后继续执行
- 强制优先调用指定工具
- 自定义终止条件、异常捕获、分支路由、多智能体协作等
极简时间线总结
- 早期 LangChain:Agent(大脑)+ 唯一固定 Runtime:AgentExecutor
- LCEL 出现:简化链路组装,但受限于 DAG,无法实现循环智能体
- 痛点暴露:想要灵活定制智能体循环流程,没有方案
- 推出 LangGraph:支持带环状态图,允许开发者自由搭建各式各样的 Agent Runtime
- 内置两套开箱即用 Runtime:传统 AgentExecutor、面向对话模型的 Chat Agent Executor