news 2026/7/28 18:31:04

LangChain → AgentExecutor → LangGraph 的演进脉络

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain → AgentExecutor → LangGraph 的演进脉络

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(智能体运行时)

定义:驱动智能体不断循环工作的执行引擎。 标准循环流程:

  1. 把当前上下文交给 Agent(大脑)
  2. Agent 做出决策:输出动作 / 工具调用指令
  3. Runtime 执行工具,拿到观测结果(tool 返回值)
  4. 将结果合并进上下文,再次喂给 Agent
  5. 重复 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 改造运行时的常见能力:

  1. Human-in-the-loop 人在回路:循环中途暂停,交由人工审核、输入指令之后继续执行
  2. 强制优先调用指定工具
  3. 自定义终止条件、异常捕获、分支路由、多智能体协作等

极简时间线总结

  1. 早期 LangChain:Agent(大脑)+ 唯一固定 Runtime:AgentExecutor
  2. LCEL 出现:简化链路组装,但受限于 DAG,无法实现循环智能体
  3. 痛点暴露:想要灵活定制智能体循环流程,没有方案
  4. 推出 LangGraph:支持带环状态图,允许开发者自由搭建各式各样的 Agent Runtime
  5. 内置两套开箱即用 Runtime:传统 AgentExecutor、面向对话模型的 Chat Agent Executor
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/28 18:30:20

Collection集合,Map集合

Collection体系结构图collection是这些类的父接口,这里主要说ArrayList,linkedlist,hashset,treeset,linkedhashset,对于集合的操作无非就是几种情况,添加,修改,删除&…

作者头像 李华
网站建设 2026/7/28 18:29:52

挑选自己想要的显示器

文章目录尺寸,屏幕比例,分辨率面板类型,显示技术色域,色深,色准刷新率,响应时间选购总结引用文章以及图片网站尺寸,屏幕比例,分辨率 尺寸是指屏幕的尺寸(单位&#xff1a…

作者头像 李华
网站建设 2026/7/28 18:26:58

深度解析SUSFS4KSU:Android内核级Root隐藏的高效实战方案

深度解析SUSFS4KSU:Android内核级Root隐藏的高效实战方案 【免费下载链接】susfs4ksu-module An addon root hiding service for KernelSU 项目地址: https://gitcode.com/gh_mirrors/su/susfs4ksu-module 在Android生态中,Root权限管理与应用兼容…

作者头像 李华
网站建设 2026/7/28 18:23:52

Java虚拟机入门知识以及面试常见题

一、什么是JVM虚拟机 JVM是Java Virtual Machine(Java虚拟机)的缩写,是一种用于计算机设备的规范,它是一个虚构出来的计算机,通过在实际计算机上仿真模拟各种计算机功能来实现的。只要计算机设备上安装了JVM&#xff…

作者头像 李华
网站建设 2026/7/28 18:23:26

[codeforces23C]Oranges and Apples

time limit per test : 1.5 seconds memory limit per test : 256 megabytes 分数:2500(补的有趣的老题) In 2N − 12N - 12N − 1 boxes there are apples and oranges. Your task is to choose NNN boxes so, that they will contain…

作者头像 李华
网站建设 2026/7/28 18:23:03

JSP总结

JSP总结 文章目录JSP总结一.jsp工作原理和生命周期二.jsp内置对象三.incude指令和include行为四.jsp作用域五.cookie和session一.jsp工作原理和生命周期 工作原理: 执行过程以hello.jsp为例: 把 hello.jsp转译为hello_jsp.javahello_jsp.java 位于 d:…

作者头像 李华