番外 2:LangGraph 深挖——框架到底帮你做了什么
番外 2LangGraph 深挖——框架到底帮你做了什么这是「Agent 工程化」系列的番外篇。番外 1 横评了四条框架路线这篇把生态最庞大、生产用得最多的 LangGraph 拆开它到底帮你做了什么和我手写的 50 行 ReAct 循环是什么关系答案会让你安心——框架没有魔法它只是把你已经学过的原理用更工程化的方式实现了一遍。先回到那个 50 行循环正片第二篇我们手写了一个最小 ReAct Agent核心骨架长这样while任务未完成:llm 输出{思考,要调用的工具,参数}执行工具调用 把结果放回对话历史 判断任务是否完成这个循环能跑通 Demo但作为生产系统它有三个欠账欠账具体问题状态裸奔对话历史是裸内存进程一重启就全没了对应第 9 篇断点恢复流程靠 prompt 撑“下一步做什么全靠 LLM 自觉无法强制必须经过审批节点”无从观测循环里发生了什么没有标准化的记录接口对应第 10 篇可观测这三笔账正好是 LangGraph 帮你还的部分。它不做新的事它把这三件事做成了框架内置能力。LangGraph 的四个核心概念全部对应你学过的原理LangGraph 的抽象只有四个词理解了它们你就读懂了 LangGraphLangGraph 概念是什么对应正片原理State状态一个结构化的会话档案记录 messages、工具结果、任务进度第 4 篇对话历史 上下文Node节点一个执行步骤可以是 LLM 调用、工具调用、或一段代码第 2 篇循环里的行动Edge边节点之间的流转条件谁执行完走到谁第 8 篇Plan-Execute / 状态机StateGraph状态图把所有节点和边组织成一张图编译后运行第 2 篇那个 while 循环一句话LangGraph 把while 循环换成了图。节点是循环里的步骤边是步骤间的转移State 是循环里不断更新的对话历史。仅此而已。同一个例子手写版 vs LangGraph 版拿第二篇的经典例子——“查北京明天天气下雨提醒带伞”——分别实现你就能直观看到差异。手写版第二篇约 50 行forstepinrange(max_steps):responsellm(messages)ifresponse.actionfinish:returnresponse.answer resulttools[response.action](**response.args)messages.append(result)# 结果手动拼回历史LangGraph 版fromlanggraph.graphimportStateGraph,ENDfromtypingimportTypedDictclassState(TypedDict):city:str# 用户输入weather:str# 工具结果answer:str# 最终回答defcheck_weather(state):# 节点1查天气return{weather:get_weather(state[city])}defdecide(state):# 节点2判断并收尾return{answer:下雨记得带伞if雨instate[weather]else晴天不用带伞}graphStateGraph(State)graph.add_node(check_weather,check_weather)graph.add_node(decide,decide)graph.add_edge(check_weather,decide)# 查完天气 → 判断graph.add_edge(decide,END)# 判断完 → 结束graph.set_entry_point(check_weather)# 入口appgraph.compile()print(app.invoke({city:北京}))两者解决问题的方式完全一样差异只在工程能力能力手写版LangGraph 版控制流程靠 if/else 手写图结构声明式表达断点恢复自己实现第 9 篇内置 checkpoint人工审批自己实现内置 interrupt/resume可视化没有图结构天然可视记录 trace自己实现第 10 篇配套 LangSmith依赖零框架 学习成本四个还账能力逐个看1. Checkpoint断点恢复是内置的正片第 9 篇讲断点恢复时我们手动把 messages 落库。LangGraph 把它做成了框架默认能力——每个节点执行完自动保存 State 快照进程崩溃后从最近的 checkpoint 恢复几乎零成本获得。2. Interrupt人工审批是原生节点正片第 9 篇讲写操作二次确认。LangGraph 里这是原生语法——在需要审批的边之前插入 interrupt执行流会暂停等人确认后继续graph.add_node(confirm_order,human_confirm)# 暂停等人点头graph.add_edge(book_ticket,confirm_order)graph.add_edge(confirm_order,END)不需要自己写暂停-恢复逻辑框架处理好了。3. 确定性控制流程可以写死手写循环里下一步全靠 LLM 自觉LangGraph 里边是代码写死的——“检查完必须走审批审批通过才下单”。LLM 只负责节点内部的事走哪条路由代码决定。这就是番外 1 说的状态图驱动的可控流程。4. 可观测LangSmith 开箱即用正片第 10 篇自己搭 trace 表LangGraph 配套的 LangSmith 直接给到——每一步的输入输出、token 消耗、耗时自动记录还能在线对比不同版本的运行轨迹。代价框架不是免费的上面全是好处但代价必须讲清楚这才叫理性对比代价说明学习曲线State / Node / Edge / 条件路由先过概念关才写得出像样的图抽象排障出了 bug得先分清是图的逻辑错了还是框架内部错了升级风险框架版本迭代快API 变化可能静默改变行为番外 1 的 AutoGen 教训简单任务过重查个天气这种两节点任务用图的仪式感远超收益所以理性结论是LangGraph 不是更好的手写循环而是更工程化的手写循环。场景复杂、需要可控和可观测它省下的工程成本很可观场景简单、要极致轻量手写 50 行反而更合适。小结LangGraph 没魔法Node循环里的步骤Edge转移条件State对话历史——都是你学过的原理它帮你还了三笔账断点恢复checkpoint、人工审批interrupt、可观测LangSmith外加流程可控代价也要看学习曲线、抽象排障、升级风险、简单任务过重理性结论它是更工程化的手写循环不是更好的手写循环——用不用取决于你的场景而不是它的名气下一篇番外我们把这套理性对比推到选型层面——真实生产团队的 Agent 框架到底怎么选结合一线团队的实际案例给出一套不偏激的决策框架什么时候自研、什么时候复用、怎么评估、怎么留迁移路径。本系列路线从 0 到 1Agent 是什么 → 手写最小 ReAct → Function Calling 与工具设计 → 上下文管理 → Memory 记忆系统 → RAG 知识库 → Skill 自学习 → 编排模式与多 Agent → 给 Agent 装护栏 → 生产部署与可观测 → 评测与回归 →番外框架横评 → LangGraph 深挖 → 框架选型决策

相关新闻

【RT-DETR涨点改进】CVPR 2025 | 独家创新、损失函数改进篇| 引入MALoss目标检测涨点损失函数,提升密集型一对一匹配的效果,适合实时目标检测、小目标检测和密集目标检测任务,有效涨点

【RT-DETR涨点改进】CVPR 2025 | 独家创新、损失函数改进篇| 引入MALoss目标检测涨点损失函数,提升密集型一对一匹配的效果,适合实时目标检测、小目标检测和密集目标检测任务,有效涨点

一、本文介绍 🔥本文给大家介绍 目标检测 MALoss损失函数 优化RT-DETR模型!将预测框与真实框的匹配质量直接融入类别置信度监督,重点增强对低重叠、低质量但仍具有学习价值的正匹配的惩罚,解决原有VFL更加偏向高质量匹配、低质量预测框监督不足的问题,从而减少“定位较差…

2026/10/11 19:42:31 阅读更多 →
六自由度导弹弹道仿真系统设计与实现

六自由度导弹弹道仿真系统设计与实现

1. 项目概述:空地导弹弹道仿真系统设计 这个六自由度弹道仿真项目,本质上是在构建一个高保真的导弹动力学数字孪生环境。我花了三个月时间完整实现了这套代码,核心目标是模拟空地导弹攻击低空飞行器的全过程行为特征。不同于简单的质点运动模…

2026/10/13 21:45:16 阅读更多 →
苏州本土产业与GEO的深度适配:好客搜的本地化运营实践

苏州本土产业与GEO的深度适配:好客搜的本地化运营实践

GEO(生成式引擎优化)虽是通用技术框架,但不同行业的企业在AI搜索中的“最佳呈现方式”截然不同。好客搜总部位于苏州,在服务本地企业过程中,逐步形成了针对制造业、生物医药、跨境电商三大主导产业的差异化GEO方案。 制…

2026/10/11 19:42:38 阅读更多 →

最新新闻

文华软件期货指标公式大全富途牛牛

文华软件期货指标公式大全富途牛牛

HH1:(EMA(CLOSE,12) - EMA(CLOSE,26))*100; LL1:EMA(HH1,9); DRAWTEXT(CROSS(HH1,LL1),90,众),COLORWHITE; DRAWTEXT(CROSS(LL1,HH1),90,4),COLORYELLOW; DRAWTEXT(CROSS(HH1,LL1),60,龙),COLORWHITE; DRAWTEXT(CROSS(LL1,HH1),60,8),COLORYELLOW; DRAWTEXT(CROSS(HH1,LL1),70,…

2026/10/14 11:06:16 阅读更多 →
一台一只手就能托起的四足机器人,凭什么拿到 4.6k 星?

一台一只手就能托起的四足机器人,凭什么拿到 4.6k 星?

Sesame 开源项目深度拆解:从硬件、固件到动画工具、仿真与强化学习生态以及边界 项目作者:Dorian Todd(doriantodd.com/sesame) 仓库数据获取时间:2026-10-12 00:36(北京时间) 开篇:…

2026/10/14 11:06:16 阅读更多 →
通达信期权指标文华软件指标公式

通达信期权指标文华软件指标公式

HH1:(EMA(CLOSE,12) - EMA(CLOSE,26))*100; LL1:EMA(HH1,9); DRAWTEXT(CROSS(HH1,LL1),90,众),COLORWHITE; DRAWTEXT(CROSS(LL1,HH1),90,4),COLORCYAN; DRAWTEXT(CROSS(HH1,LL1),60,龙),COLORWHITE; DRAWTEXT(CROSS(LL1,HH1),60,8),COLORCYAN; DRAWTEXT(CROSS(HH1,LL1),70,育),…

2026/10/14 11:06:16 阅读更多 →
Django实战:用GitHub API构建用户展示网站

Django实战:用GitHub API构建用户展示网站

1. 项目概述:为什么一个 GitHub 用户展示网站值得从 Django 开始练手“Django 实战 | 搭一个 GitHub 用户展示网站 01”——这个标题乍看像教程合集里的普通一节,但背后藏着一条非常扎实的 Web 开发入门路径。我带过不少刚转行的开发者,也帮某…

2026/10/14 11:06:16 阅读更多 →
AI做PPT实战:对话改稿生成18页傅里叶课件

AI做PPT实战:对话改稿生成18页傅里叶课件

1. 从一份18页傅里叶课件说起:AI做PPT到底进化到了什么程度前阵子帮一位在高校做助教的朋友处理课件,他需要把一份关于傅里叶变换的讲义整理成18页左右的PPT,用于本科信号与系统课程的复习课。他原本的做法是:先在文档里写好内容&…

2026/10/14 11:06:16 阅读更多 →
第2章:Linux 基础,pwd 命令

第2章:Linux 基础,pwd 命令

专栏导航 上一篇:第2章:Linux 基础,date 命令 回到目录 下一篇:第2章:Linux 基础,whoami 命令 本节前言 对于本节所讲解的知识,有可能,你会需要时不时地参考本专栏的其它文章。真…

2026/10/14 11:05:15 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →