LangGraph 介绍

LangGraph 介绍

LangGraph 是什么?

在正式学习 LangGraph 之前,我们先一起回顾一下 LangChain 所学的内容,梳理完 LangChain 的知识体系后,我们再从它存在的局限性入手,自然过渡到 LangGraph 的学习。

首先回顾我们之前的 LangChain 内容。LangChain 核心给我们建立了链式编程思维,也可以理解为链式的开发编程习惯。在 LangChain 中,我们学习了聊天模型、各类工具等核心内容;除此之外还掌握了大量基础组件,比如文档加载器、检索器等等。同时我们还学到很多进阶用法:聊天模型可以绑定工具、可以绑定结构化输出格式,既支持普通一次性文本返回,也支持流式返回等能力。

借助 LangChain 的链式编程思维,我们能够把工具、各类组件、检索器等模块串联起来,形成一条完整执行链路,从入口输入到末端输出自动运行,这就是 LangChain 教会我们的核心开发模式。

接下来我们用 RAG 案例,把 LangChain 的能力完整串一遍,同时引出它的局限性。首先我们回顾 RAG 的完整流程,主要分为两大核心阶段:

第一阶段是离线数据存储 :先对原始文档进行拆分切块,再通过 Embedding 向量化处理,最后把向量化后的文档存入向量数据库,完成知识库的离线构建。

第二阶段是在线检索生成 :用户输入问题后,先对问题做 Embedding 向量化,再拿着向量去向量数据库中做相似度匹配检索,拿到相关文档片段;最后把用户问题 + 检索到的文档上下文一起交给大语言模型,由大模型整合信息生成最终答案并输出。

在 LangChain 里,我们实现 RAG 检索流程,本质就是用链式思维,把检索器等组件串联成一条线性链路,从而搭建出最基础的 AI 应用 Demo。

这种基础 RAG Demo 有明显短板: 它只能处理和知识库文档相关的问题,如果用户提问和文档内容无关,系统就无法合理应对。

举个具体例子:假设我们的向量知识库中存放的是公司员工手册、员工行为规范 ,或是学校的学生手册、校园管理制度这类内容。这时用户询问上班时间、上课时间这类和知识库相关的问题,RAG 可以正常检索作答;但如果用户问「1+1 等于几」这类无关问题,这套基于 LangChain 链式开发的 RAG 系统就无法合理处理。因为线性链式流程是预先定义好的固定步骤,只能按顺序执行,遇到超出预设范围的问题,只会检索出无关内容,容易产生 AI 幻觉,给出不标准、不靠谱的答案。

这就暴露了 LangChain 链式编程的第一个局限性 :流程是线性、预先固化的步骤,很难处理分支、循环这类复杂业务场景

那该如何解决? 我们可以在原有流程中新增问题类型分类 步骤:先识别用户问题归属,若是和知识库相关的问题,就走正常的检索生成链路;若是无关的通用问题,就分流到全新的处理逻辑中。这种带分支判断 的流程,单纯靠 LangChain 线性链式思维根本实现不了,而这正是 LangGraph 的核心优势 ------ 它可以轻松处理分支、循环,以及流程中需要反复迭代的复杂业务场景。

接下来我们再讲 LangChain 链式编程的第二个局限性 ,换一个用户信息收集、AI 自动订票的场景来理解。

假设我们要开发一个 AI 订票系统,需要收集用户姓名、手机号、身份证号三类必填信息,常规链式流程分为三步:用户输入信息 → 解析用户信息 → 执行订票。

如果用户只输入了姓名和手机号,缺失身份证号,链式流程在解析阶段识别到信息不全后,无法自动回退、无法主动引导用户补充信息 ,只会直接判定订票任务失败。但实际业务中我们需要的逻辑是:识别到信息缺失后,循环引导用户补充缺失信息,补齐所有资料后再进入订票环节,而且整个过程支持人工介入交互、人工补全信息。

这种需要循环交互、人工介入干预 的灵活工作流,LangChain 线性链式模式完全无法支撑,遇到异常只能直接失败,适配不了真实复杂的 AI 业务场景;而 LangGraph 刚好可以完美解决这类问题,支持流程循环、人工介入、灵活调度工作流。

总结来说:LangChain 链式编程存在两大核心局限

  • 流程线性固化,难以实现分支、循环等复杂流程逻辑;

  • 遇到信息缺失、异常场景时无法循环交互、无法人工介入,只能直接任务失败,适配不了复杂 AI 服务的开发需求。

之前我们简单提过:LangChain 是链式线性思维,LangGraph 是图示化思维 。LangChain 是一条直线式执行,从头到尾按固定顺序运行;而 LangGraph 基于图结构设计,天然支持分支分流、循环迭代、人工介入,能承载各种复杂的业务流程编排。

大家也不用觉得学 LangChain 没有用处,恰恰相反,LangChain 为我们打下了坚实的基建基础:我们学过的各类组件、工具定义、聊天模型用法、工具绑定、结构化输出等能力,都可以直接复用在 LangGraph 开发中 。LangChain 更多是帮我们建立基础的 AI 编程思维,适合写简单 Demo;而现在我们要把思维升级,从链式线性思维进阶到图示化工作流思维,用来开发企业级、复杂化的 AI 应用系统。

以往学习 LangChain,我们更多是聚焦「怎么写代码、怎么把组件串成链路」,产出的大多是只能本地运行的简单 Demo,满足不了当下复杂 AI 项目的落地需求。而学习 LangGraph,核心目标是学会构建现代化、复杂化的企业级 AI 应用 :依托 LangChain 打下的组件和模型使用基础,搭配图示化编程思维、LangGraph 自带的核心能力,再加上AI 系统部署相关知识,把开发好的复杂 AI 应用封装成微服务,支持前端、其他业务服务远程调用,真正实现项目上线落地。

后续我们会结合大量实战案例,讲解 LangGraph 的核心能力、图示化开发思想以及系统部署落地,帮助大家真正具备独立搭建复杂 AI 应用系统的能力,不只是停留在写 Demo 的层面,而是拔高思维、站在工程化的角度去做 AI 项目开发。

认识智能服务(Agent Server)

现在我们已经明确,学习 LangGraph 的核心目标 ,就是如何搭建现代化、复杂化的企业级 AI 应用系统

在正式学习 LangGraph 的知识点和核心能力之前,我们先要搞清楚一个前提:一套现代化的复杂 AI 应用系统,到底需要具备哪些基础核心能力 。比如有的 AI 应用可以长时间连续对话、拥有持久记忆;有的支持人工中途介入,像我们之前举的 AI 订票场景,能引导用户一步步补全个人信息。以往我们都是用简单 Demo 给大家做演示,接下来我们就深入拆解成熟 AI 应用必备的底层能力。后续我们每学一个 LangGraph 核心知识点,都能对应落地实现 AI 应用里的某一项具体能力,做到学以致用、一一对应!

首先我们来看一下什么是智能服务 Agent Server 。大家要记住:Agent Server 就是我们所说的现代化复杂 AI 应用系统 。它底层依托大模型,通过流程编排能力搭建而成,在 LangGraph 体系中统一称作 Agent Server,也可以翻译成智能服务。不同行业对这类应用的叫法可能不一样,但本质都是基于大模型和编排能力开发的智能化 AI 应用系统。

我们日常其实已经接触过很多这类成熟 AI 产品,比如 ChatGPT 原生模型、DeepSeek 客户端,还有各类 AI 绘画、AI 创作工具。拿 DeepSeek 客户端举例,它并不是直接调用原生大模型,而是在底层封装了一层业务逻辑,再去调用模型能力,本身就是一套标准的现代化 AI 应用,在 LangGraph 范畴里完全可以看作是 Agent Server。

接下来我们以西安周末两日户外旅行规划为例,分析成熟 Agent Server 的核心能力。

当我们向 AI 提出需求后,能清晰看到它的思考逻辑:先提炼需求关键词,锁定目的地西安、两日行程、户外优先三大核心条件;再结合西安本地文旅特点做筛选,优先匹配户外类景点;最后按照天数拆分每日行程,规划游玩安排。

从这个思考过程能总结出 Agent Server 的第一个核心应用能力:任务分解 。它可以把一句简单的用户需求,自动拆解成多个子任务:筛选目的地特色、按户外要求过滤景点、根据天数排布行程。任务拆解得越细致,最终给出的方案就越精准、贴合需求

  1. 查询目的地天气,根据天气选择室内或户外游玩方案;
  2. 匹配对应景点资源;
  3. 依据景点位置就近预订酒店;
  4. 结合景点和酒店位置,规划每日出行路线,甚至细化地铁、骑行、打车等交通方式;
  5. 给出出行衣物、证件等必备建议。后续我们自己基于 LangGraph 开发应用时,就可以主动把这些子任务编排进流程图里,不用依赖提示词引导,系统就能自动完成全流程规划。

第二个核心能力:会话记忆与会话隔离 。大家使用 DeepSeek 能明显感受到:在同一个对话窗口 里,关闭页面重新打开后,AI 能记住我们之前聊过的西安旅行需求;但新建一个对话窗口 ,AI 就没有任何历史记录,完全不知道之前的沟通内容。这就是成熟 AI 应用必备的单次会话记忆会话隔离 能力:单个会话内保留完整聊天记录,新建会话开启全新上下文,避免历史信息冗余干扰。而我们用 LangGraph 开发时,还可以进一步升级,实现跨会话记忆 ,即便新建对话窗口,也能调取过往所有聊天信息,功能比普通商用 AI 更灵活。

第三个核心能力:中途反馈与人工介入 。就像之前订票场景中信息缺失、引导用户补充资料一样;旅行规划也可以设置中途确认环节,AI 先反问确认目的地、出行天数,得到我们的明确回复后,再继续细化行程方案。这种流程中途等待人工反馈、人工干预调整 的能力,是复杂 AI 应用不可或缺的。

第四个核心能力:超长持久记忆 。哪怕我们关闭电脑、间隔十天半个月,再次打开对话,AI 依然能记住之前约定的西安旅行规划。后续如果需要调整行程、修改安排,无需重复描述需求,直接基于历史对话优化即可。这种长时间不丢失记忆的特性,是商用级 AI 服务的关键标配。

梳理完 Agent Server 的四大基础能力后,我们还要认清开发这类复杂 AI 应用面临的四大核心难题 :第一,状态丢失 。很难长久保存会话关键信息、聊天记录,容易出现长时间对话后遗忘历史需求的问题,就像写长文章突然关机,内容全部丢失。第二,难以调试 。AI 就像黑盒,给出错误结果时(比如规划西安旅行却推荐北京景点),无法直观定位是哪一个流程、哪一步逻辑出了问题,排查难度极大。第三,无法中途干预 。固定线性流程走到头,不支持人工中途指导、补充信息、调整方向,只能任务直接失败。第四,部署困难。企业级 AI 应用需要对外提供接口,还要适配流式输出、思考过程与最终结果分事件返回等复杂协议,接口封装、协议定制、线上落地部署的门槛很高。

如果想要开发能 24 小时稳定运行的智能客服、旅行规划助手这类应用,这四大难题必须全部解决,而LangGraph 就是为解决这些问题而生的解决方案

所以什么是 Agent Server?它是更聪明的 AI 助手想象一个虚拟的 "小助手",它不仅能回答问题,还能:

  • 记住和你聊过的所有事情
  • 执行一连串任务(比如:查天气 → 推荐穿搭 → 提醒带伞)
  • 中途可以等你给出反馈
  • 运行很长时间不会 "忘记"

Agent Server 例子:

  • 分镜 1:我说 "帮我规划周末旅行",Agent Server 界面显示回应。
  • 分镜 2:Agent Server 第一步 "查天气",屏幕显示天气预报界面。
  • 分镜 3:Agent Server 第二步 "找景点",屏幕展示景点列表和图片。
  • 分镜 4:Agent Server 第三步 "订酒店",屏幕显示酒店预订页面。
  • 分镜 5:Agent Server 第四步 "规划路线",屏幕呈现地图路线图。
  • 分镜 6:Agent Server 第五步 "打包建议",屏幕列出物品清单。

所以构建 Agent Server 时遇到的四大难题是什么?

难题 描述 就像...
状态丢失 AI 处理长任务时容易 "忘记" 前面步骤 写长文章时电脑突然关机
难以调试 不知道 AI 为什么做出某个决定 黑盒子,看不到内部
无法干预 不能中途给 AI 指导 自动驾驶不能接管
部署困难 复杂 Agent Server 难以上线运行 手工制作 vs 工厂生产

**回顾并思考一下:**如果你要造一个能连续工作 24 小时的 AI 客服,上述哪个问题最头疼?


解决方案:LangGraph -- Agent Server 的 "操作系统"

LangGraph 是一个强大且灵活的 "Agent Server 操作系统内核"。 它不关心我们具体用什么模型或提示词,而是**为我们解决构建复杂、可靠、可交互的 Agent Server 时所面临的状态管理、流程编排、持久化和人工监督等底层工程难题。**如果我们需要构建超越简单问答的、具备复杂逻辑和长期记忆的 AI 应用,LangGraph 就是为此设计的工具。

简单来说,LangGraph 是一个专门用于构建和管理 Agent Server 的底层框架。

市面上将 LangGraph 定义为「强大且灵活的 Agent Server 操作系统内核」,我们不用死记专业定义,只需理解它的核心定位: LangGraph 不绑定具体大模型、不限制提示词写法,专门解决构建复杂、可靠、可交互的 Agent Server 所遇到的状态管理、流程编排、数据持久化、人工监督 四大工程难题。

  • 状态管理:统一保存会话关键信息、聊天记录、流程节点数据;
  • 流程编排:把复杂业务拆分成多个子任务,用图示化方式固定执行流程;
  • 持久化存储:将用户信息、会话记录持久化存入数据库,实现超长记忆;
  • 人工监督:原生支持流程中途人工介入、人工反馈调整。

只要你想开发超越简单问答、具备复杂业务逻辑和长期记忆的 AI 应用,LangGraph 就是必备的底层框架。我们可以用一个通俗的类比理解:如果把 Agent Server 智能应用比作一家公司,大模型是干活的员工,各类工具组件是办公设备 ,而 LangGraph 就是统筹全局的项目经理和标准化流程系统,负责把所有资源合理组织、调度编排。简单来说,LangGraph 就是专门用来搭建和管理复杂 AI 智能应用的底层开发框架。

除此之外,LangGraph 还有三大核心超能力,也是我们后续的重点讲解内容:下面我们简单看看!

LangGraph 的三大超能力
记忆大师

突破传统 AI 单次对话无记忆的局限,无论时隔多久、新建多少会话,都能长久记住用户信息和历史对话;

python 复制代码
# 传统AI:每次对话都是新的开始
AI回答("你好") → "你好!"
AI回答("我叫小明") → "很高兴认识你!"
AI回答("我叫什么?") → "我不知道你的名字"

# LangGraph Agent Server:记住一切
Agent Server("你好") → "你好!"
Agent Server("我叫小明") → "记住你叫小明!"
Agent Server("我叫什么?") → "你叫小明!"

无论过了多久,会话了多少次,LangGraph 都可以记住!

流程指挥官

用图示化思维拆解复杂任务,把大流程拆成标准化小步骤,替代 LangChain 线性链式思维,支持分支、循环流转;

把复杂任务分解成小步骤:

容错卫士

支持故障自动恢复、流程断点续跑;原生集成人工介入能力;对接 LangSmith 实现可视化调试;提供生产级部署方案,适配有状态、长时间运行的 AI 工作流。

LangGraph 还提供了以下关键基础设施,保障 Agent Server 的执行过程:

  • 持久执行:构建能从故障中恢复、长时间运行的 Agent Server。
  • 人工介入:允许在流程中随时检查和修改 Agent Server 状态。
  • 强大的调试能力:与 LangSmith 集成,提供可视化追踪和深度洞察。
  • 生产就绪的部署:为有状态、长时工作流提供可扩展的部署方案。

LangGraph 在现实中的应用

LangGraph 并非理论层面的框架,目前已经在各大互联网公司生产级落地使用,LinkedIn、Uber、GitLab、Klarna 等企业都在用它搭建智能应用。

公司 相关产品 / 服务 主要功能 / 定位 核心技术 / 备注
LinkedIn LinkedIn AI 代理(如 LinkedIn Coach) 提供个性化工作推荐、人脉拓展、职业发展建议等。 目前主要在探索和测试阶段,旨在提升平台互动体验。
Uber Uber AI Solutions(智能体解决方案) 为企业提供构建自主、目标驱动的多智能体 AI 可协调处理复杂任务,并能根据数据服务的框架、工具和数据服务。 强调其智能体 AI 可协调处理复杂任务,是其主要技术方向。
Klarna 1. AI 支付与购物助手2. Agentic Product Protocol 1. 处理支付、退款等客服任务,已进行数百万次对话。2. 一个让 AI 智能体能发现和比较线上产品的开放数据协议。 其 AI 助手明确由 LangGraph 构建,是智能体技术在生产环境中的典型应用案例。
GitLab 1. GitLab Duo2. CodeRider 一套覆盖软件开发生命周期(需求、编码、测试、部署等)的 AI 助手套件。 其中 CodeRider 是一款深度集成 GitLab 的 AI 编程工具,基于 LangGraph 开发。
... ... ... ...

除了表格中的概述,各公司的智能体产品在设计和应用上各有侧重:

  • Klarna 是瑞典的一家金融公司,它的 AI 助手是将 LangGraph 应用于生产业务的典范。它已经处理了超过 250 万次对话,自动化了约 70% 的重复性客服任务,将平均问题解决时间缩短了 80%。该助手是一个多智能体系统,能自主路由请求、处理不同任务(如支付、退款等),并显著提升了服务效率。

  • GitLab 的 AI 产品线非常丰富,其 CodeRider 产品特别值得关注。它基于 LangGraph 构建,不仅提供代码补全、解释等基础功能,更能胜任复杂任务的全流程智能开发,例如自动分解任务、漏洞解释、合并请求摘要等数十种功能,旨在扮演虚拟开发团队的角色。

学习 LangGraph 之后,我们可以自主搭建各类个性化 AI 应用:带记忆的个人学习助手、能处理复杂咨询的智能客服、多步骤自动化数据分析工具、拥有独立记忆的游戏 NPC 等等,发挥想象力就能落地对应的产品。

最后简单介绍 LangGraph 生态: 它属于 LangChain 产品家族,可与 LangSmith、LangGraph 部署平台无缝联动,形成开发、调试、线上部署的完整闭环;既可以和 LangChain 搭配使用,也能脱离 LangChain 独立部署开发,灵活性极强。

LangGraph 生态系统

LangGraph 是 LangChain 产品家族的一部分。可以与 LangSmith(用于追踪、评估、监控)、LangGraph 部署平台(用于轻松部署和扩展 Agent Server)以及 LangChain(提供大量集成和组件)结合使用,形成完整的开发、调试、部署工作流。

LangGraph 与 LangChain 顺利集成,但也可以在没有 LangChain 的情况下使用。


LangGraph 的核心概念

接下来我们开始讲解 LangGraph 中的核心基础概念

正式讲概念之前,我们先把 AI 生态里容易混淆的几个名词做清晰区分:很多同志听过 AgentAgent Server ,还有工作流(Workflow) ,首先要搞懂 Agent 和工作流的本质区别 。先给大家一个定论:LangGraph 本质上属于工作流框架 ,不属于原生 Agent;先把这个结论记下来,再逐层拆解概念,最后再讲工作流里的节点、边、状态这些核心要素。

常见概念区分

Agent

Agent 也常被译作智能体、代理 。它的定义是:能够感知外部输入环境、自主做决策 、自己规划行动路径、还能主动调用工具,最终达成用户目标。Agent 最核心的特征由大模型动态控制整个流程的走向 ,没有固定预设步骤。

我们用 DeepSeek 举例理解:DeepSeek 不是只做旅游规划的专用助手,它能处理生活、工作、专业各类问题,通用性极强,它本身就是典型的 Agent【DeepSeek 更像一个"Agent Server",但对外呈现时被简化成"一个Agent"。】 。当我们给它需求:帮我规划西安周末两日户外游,它没有固定写死的流程,而是自己感知需求、自主拆解任务 :先锁定目的地西安、再匹配户外场景、再按两天时间拆分每日行程,整个思考和执行路径,都是大模型实时动态决定的,不是我们提前规定好的。

再举个例子:让智能助理安排下周上海出差,它可能先查天气、再查航班、预订酒店、提醒带证件;也可能省略查天气,直接订酒店和行程。步骤不固定、顺序不固定、可多可少 ,完全由大模型根据场景自主判断,这就是标准的 Agent 行为。

补充区分:Agent ≠ Agent Server

Agent 是智能决策的能力本身;Agent Server 是最终落地的智能化应用系统、服务端产品,在 LangGraph 体系里,我们做的复杂 AI 应用,都可以叫 Agent Server。看懂这些名词定义,后续看文档、看教程就不会混淆。

bash 复制代码
┌─────────────────────────────────────────────┐
│           Agent Server(服务系统)            │
│  ┌──────────────────────────────────────┐   │
│  │  网络层(API / HTTP / WebSocket)      │   │
│  ├──────────────────────────────────────┤   │
│  │  服务治理(限流/鉴权/负载均衡/日志)     │   │
│  ├──────────────────────────────────────┤   │
│  │  状态管理(会话/缓存/持久化)           │   │
│  ├──────────────────────────────────────┤   │
│  │  ┌────────────────────────────────┐  │   │
│  │  │      Agent(决策核心)           │  │   │
│  │  │  - 推理 / 规划                  │  │   │
│  │  │  - 记忆 / 工具调用              │  │   │
│  │  │  - LangGraph 节点与边           │  │   │
│  │  └────────────────────────────────┘  │   │
│  └──────────────────────────────────────┘   │
└─────────────────────────────────────────────┘


第1步:构建 Agent
   ↓
写 LangGraph 图定义
定义节点、边、工具、记忆逻辑
本地测试决策能力
   ↓
第2步:封装成 Agent Server
   ↓
加 FastAPI/Flask 接口
加会话管理、数据库
加部署配置(Docker/K8s)
加监控和日志
   ↓
第3步:对外服务

所以说:Agent(智能体)是一个能够感知环境输入、自主决策、规划行动路径,并可调用工具或执行操作以达成目标的自主性软件实体。

其核心在于:由大语言模型(LLM)动态控制流程走向

维度 普通 LLM 应用 Agent
LLM 的角色 "一次回答者" "循环决策者"
流程控制者 开发者(代码写死流程) LLM(动态决定流程)
典型模式 用户提问 → LLM 回答 → 结束 设定目标 → LLM 思考 → 执行动作 → 观察结果 → LLM 再思考 → 再执行 → 循环直到完成
有没有"闭环" ❌ 没有 ✅ 有(思考-行动-观察循环)

想象你有一个超级聪明的程序员助手,你只需要说一句:"把这个项目的单元测试覆盖率提升到 80%."然后他就自己去看代码、写测试、运行构建、检查结果...... 直到达标为止 ------ 中间不需要你插手.这个 "能独立完成任务" 的程序,就是我们说的 Agent(智能体).

想象一个私人助理机器人:

  • 你说:"帮我安排下周去上海的差旅."
  • 它不会傻傻地只回复 "好的",而是会:a. 查天气 → 决定带什么衣服b. 查航班 / 高铁时间 → 比较价格c. 预订酒店 → 发送日程到你的手机d. 提醒你带身份证

整个过程没有固定的流程图,它自己 "想" 出来的步骤 ------ 这就是典型的 Agent 行为

工作流

Workflow(工作流)是一个将复杂过程分解为定义明确、顺序执行的任务流程,并在其中自动化传递数据与任务的状态,用户完成特定目标。如果说 Agent 是聪明的执行者,那工作流就是它的行动蓝图 ------ 它定义了 "先做什么、后做什么、在什么条件下跳转或终止"。

其核心在于:预设的、可重复的流程路径.

比如公司的报销流程

  • 提交发票 → 领导审批 → 财务审核 → 财务结算 → 归档完成

或者一个自动化客服工单系统

  • 用户提交问题 → 系统自动分类 → 分配给对应客服 → 客服处理 → 用户评价 → 工单关闭

这个固定路径,整个过程沿着预设的流程运行,就是典型的工作流行为.

LangGraph 是实现的就是工作流!

可以一句话对比:

  • Agent:聪明的自主决策者,流程随机、灵活开放,大模型自己说了算;
  • 工作流:固定的行动蓝图,流程提前预设、步骤死板、按规定顺序执行。
工作流和 Agent 区别

从概念上来讲,工作流的流程固定,步骤预设,适合明确流程的任务. Agent 是由大模型 (LLM) 动态控制流程走向,灵活度高.

类型 英文名 特点 适用场景
工作流 Workflow 流程固定,代码驱动,步骤预设 明确流程的任务,如客服工单处理
智能体 Agent 动态决策,LLM 控制流程走向 开放问题求解,如科研推理

Workflow 像是 "炒菜机器人"------ 按步骤进行炒菜。比如放油 → 炒蛋 → 加盐 → 出锅,即使鸡蛋坏了,也不会停下来.

Agent 像是 "米其林主厨"------ 他会思考:"今天食材新鲜吗?客人忌口吗?要不要换做法?"

  • 自主决定菜单
  • 调整火候和配料
  • 品尝后返工改进

但无论是 Workflow 还是 Agent,对于他们做出来的 AI 应用,在 LangChain 中,可以统称为 Agent Server!

工作流

工作流介绍

工作流具有预先确定的代码路径,并设计为按特定顺序运行。当需要设计更高复杂性的 AI 应用时,工作流为定义明确的任务提供可预测性和一致性。

例如,现在需要研发一款主打城市通勤的智能电动自行车,具有导航、社交、防盗等功能。在开始研发前,需要进行多维度分析,如:

  • 市场分析:用户关注续航里程、车身重量、防盗能力,并对 "骑行社交"(组队、分享路线)有新兴兴趣。
  • 竞品分析:传统品牌车型智能化不足;互联网品牌车型续航和线下售后服务是其短板。
  • 技术分析:评估更轻量化的电池材料与车身设计以提升续航和便携性,并开发基于 GPS 和移动网络的智能防盗系统与社交功能 App 的集成。
  • 最终汇总分析结果。

则我们可以将多维度分析设定为具体的流程(工作流),从而达到先分析再汇总的特定运行顺序。如下图所示:

在 LangGraph 中,工作流基于 LLM,以及添加到其中的各种增强功能(如工具调用、结构化输出和短期记忆)而实现:

(图示:In → [LLM 大脑] → Out;LLM 连接 Retrieval(书籍图标)、Memory(大脑图标)、Tool(扳手图标))

再次强调:LangGraph 是一个强大且灵活的 "Agent Server 操作系统内核"。它不关心我们具体用什么模型或提示词,而是为我们解决构建复杂、可靠、可交互的 Agent Server 时所面临的状态管理、流程编排、持久化和人工监督等底层工程难题。

LangGraph 与工作流的关系

重点结论:

LangGraph 是一个用于构建图式工作流和 Agent 的框架。

我们之前学的 LangChain 链式调用,属于线性工作流------从头到尾按顺序执行,无法分支、无法循环、无法中途干预。

LangGraph 在此基础上做了三个核心升级:

  1. 图式结构:由节点和边组成,像数据结构里的图,天然支持分支、循环、并行

  2. 持久化状态:可以随时保存和恢复执行状态

  3. 动态路由:可以让 LLM 在运行时决定走哪条边(这是实现 Agent 的关键)

简单理解:LangChain 链 = 一条直路走到黑;LangGraph = 允许你画地图、设红绿灯、甚至让司机自己选路。后者既能做确定性工作流,也能做真正的 Agent。


理解图计算

如何实现工作流逻辑?图计算是一种用节点和边来表示复杂系统的方法。在 AI 领域,它特别适合构建多步骤、有状态的智能工作流。

工作流分为链式工作流图式工作流 ,LangGraph 核心就是图式工作流 。其中图计算就是节点来描述复杂系统结构,特别适合搭建多步骤、有状态流转的 AI 智能工作流。

我们用全国快递配送系统 类比,最容易理解:整个快递配送网就是一张 ;各地揽收站、分拣中心、配送站,都是节点 ;站点之间的陆运、空运运输路线,就是

想象一个快递配送系统,下图展示了包裹从输入(揽收站)到输出(配送站)的过程:

  • 配送站、揽收站、分拣中心 = 节点(Node)
  • 运输路线 = 边(Edge)
  • 包裹信息 = 状态(State)
  • 完整配送网 = 图(Graph)

快递包裹先到家门口揽收站 → 2. 转运到城市分拣中心 → 3. 跨城运输到目的地分拣中心 → 4. 下发到本地配送站 → 5. 配送员送货上门。整个网络由节点(站点)边(运输路径)构成,和 LangGraph 里的图结构完全对应。

换到我们的 AI 旅游推荐助手 场景:

输入:用户的旅游需求问题

输出:完整旅游方案我们把整个任务拆成多个子任务,每一个子任务就是一个节点

  • 节点 1:识别出行目的地
  • 节点 2:解析用户游玩要求(如户外优先)
  • 节点 3:筛选匹配景点
  • 节点 4:整合生成最终行程方案

就是节点之间的流转关系:规定好只能从节点 1 传到节点 2、节点 2 传到节点 3,不能随意跳转,就像快递不能从配送站再退回揽收站一样,路径提前定好。

实现工作流的核心概念

**LangGraph 三大核心概念:**状态、节点、边

State(状态)- 快递的 "包裹信息"

State 就像快递包裹上的标签,记录着包裹的当前位置、目的地、配送状态等信息。在整个配送过程中,所有站点都能查看和更新这个信息。

状态特性:

  • 共享性:所有节点(快递站点)都能读取和修改
  • 持久性:在整个工作流(快递运输)执行期间持续存在
  • 结构化:有明确的字段定义

代码示例:

python 复制代码
from typing import TypedDict

class PackageState(TypedDict):
    # 包裹基本信息
    package_id: str        # 包裹id
    origin: str            # 始发站
    destination: str       # 目的地

    # 配送状态
    status: str            # "待揽收", "运输中", "派送中", "已签收"
    history: list[str]     # 流转历史
    total_distance: int    # 总里程

    # 配送详情
    priority: str          # "普通", "加急"

所有配送站点共享的包裹信息卡就是 LangGraph 中的 State!


Nodes(节点)- 快递站点

节点就像快递配送网络中的各个站点,每个站点负责特定的处理步骤。例如:

  • 揽收站:接收包裹,初始化信息
  • 分拣中心:根据目的地分类包裹
  • 派送站:最终配送至收件人

节点特征:

  • 单一职责:每个节点只做一件事
  • 输入输出:接收状态,返回状态更新
  • 独立性:节点间不直接通信,通过 State 交互

代码示例(节点只不过是函数):

python 复制代码
def receive_package(state: PackageState):
    """揽收站"""
    return {
        "status": "已揽收",
        "history": [f"在{state['origin']}揽收"]
    }

def sort_package(state: PackageState):
    """分拣中心:根据目的地分拣"""
    destination = state["destination"]
    if "北京" in destination:
        next_station = "北京分拣中心"
    elif "上海" in destination:
        next_station = "上海分拣中心"
    else:
        next_station = "其他地区分拣中心"

    return {
        "status": "已分拣",
        "history": [f"分拣至{next_station}"]
    }

def final_delivery(state: PackageState):
    """派送站"""
    return {
        "status": "已签收",
        "history": [f"已送达{state['destination']}"]
    }

Edges(边)- 快递运输路线

边定义了包裹在站点之间的流动路径,就像快递公司的运输路线图。对于路线,一般类型有:

开始 / 结束路线:流程的开始和结束点(包裹的开始站,与结束站)

固定路线:包裹可以从揽收站→分拣中心(所有包裹都走这条路),而不能从配送站→揽收站,而是配送站→家。

条件路线:根据目的地选择不同的分拣中心

实际上在 LangGraph 中,边就定义了节点之间的连接关系,决定了工作流的执行顺序。边的类型有:

  • 固定边:总是从 A 到 B
  • 条件边:根据状态决定下一步
  • 以及图的开始和结束点,标志了工作流的入口和出口。

因此,LangGraph 通过节点(每个处理步骤)、边(步骤之间的连接)和状态(保存执行过程),就可以构建出一个任务工作流(图)。

相关推荐
倒霉蛋小马1 小时前
【Redis】利用Redis构造全局唯一ID
数据库
夕除1 小时前
springboot--06
数据库·spring boot·mybatis
mfxcyh1 小时前
如何把对象数据转化为数组
java·服务器·前端
柠檬威士忌9851 小时前
2026-05-09 AI 前沿日报:算力战争、训练网络与前沿模型监管进入新阶段
网络·人工智能
2301_780789662 小时前
云服务器数据会泄露吗?怎么保护云服务器的数据
运维·服务器·tcp/ip·网络安全
念越2 小时前
从网络基础到Socket编程:TCP/UDP原理 + Java实战详解
java·网络·tcp/ip·udp
2401_833033622 小时前
golang如何实现MQTT主题通配符路由_golang MQTT主题通配符路由实现策略
jvm·数据库·python
2301_780789662 小时前
云服务器被黑能恢复吗?云服务器被黑的解决办法
运维·服务器·网络·安全·web安全
AI精钢2 小时前
修复 AI Gateway 图片 MIME 类型错误:用魔数检测替代扩展名猜测
网络·人工智能·python·gateway·aigc