文章目录一、为什么 Chain 不够需要 Graph二、最小 StateGraph三、条件路由让 Agent 形成工具调用环四、消息状态与归并语义五、中断恢复状态机天然支持审批六、调试与可视化七、技术演进与最新差异2025—20267.1 LangGraph 1.0 已 GA2025-10-22且是 LTS 版本7.2 持久化执行成为核心卖点7.3 create_agent 成为更高层标准7.4 生态信号八、小结P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看 传送门https://blog.csdn.net/qq_34419312一、为什么 Chain 不够需要 Graph链式调用prompt → model → parser能表达的东西说难听点就是一条直线。单行道是什么感觉就是你开车去上班导航说前方直行不许转弯。你明明顺路想买个早餐系统跟你说对不起本路线不支持绕路。但 Agent 的真实运行路径是环形且带分支的模型可能直接回答也可能要求调工具调完工具还要回到模型是否结束取决于模型上一轮的输出。下一步走哪条边是运行时根据状态决定的——这正是图编排框架解决的问题。一句话Chain 是单口相声Graph 是即兴群口。谁更接近现实不用我多说了吧。LangGraph 的三个核心抽象State贯穿全图的共享状态通常是一个带类型的字典Node接收 state、返回 state 更新片段的普通函数Edge固定边或根据 state 动态决定下一个节点的条件边翻译成人话State 是公共背包Node 是各干各活的工人Edge 是路标。背包大家共用工人只改自己那格路标告诉你下一站去哪。二、最小 StateGraph先来一个最小可跑的图代码量少到你可以闭着眼睛敲fromtypingimportTypedDictfromlanggraph.graphimportStateGraph,START,ENDclassState(TypedDict):question:stranswer:strdefgenerate(state:State):return{answer:llm.invoke(state[question])}graph_builderStateGraph(State)graph_builder.add_node(generate,generate)graph_builder.add_edge(START,generate)graph_builder.add_edge(generate,END)graphgraph_builder.compile()resultgraph.invoke({question:解释一下什么是向量检索})注意节点函数的返回值是状态更新片段框架负责把它合并进全局 state——节点不直接改写整个状态这保证了多节点协作时的状态一致性。这个设计很像公司里的报销你不直接动公司的账本你只交一张报销单财务框架来合并。你要是直接改账本那叫挪用公款轻则重构重则开除。三、条件路由让 Agent 形成工具调用环Agent 的标准结构是模型节点 ↔ 工具节点的循环由条件边判断出口fromlanggraph.graphimportMessagesStatefromlanggraph.prebuiltimportToolNode tools[search_tool,calculator_tool]llm_with_toolsllm.bind_tools(tools)defllm_call(state:MessagesState):return{messages:[llm_with_tools.invoke(state[messages])]}defshould_continue(state:MessagesState):last_messagestate[messages][-1]# 模型这一轮请求了工具 → 去工具节点否则 → 结束 if last_message.tool_calls: return tools return END builder StateGraph(MessagesState) builder.add_node(llm_call, llm_call) builder.add_node(tools, ToolNode(tools)) builder.add_edge(START, llm_call) builder.add_conditional_edges(llm_call, should_continue, [tools, END]) builder.add_edge(tools, llm_call) # 工具执行完回到模型形成环 agent builder.compile()这张图就是 Agent 运行时最本质的样子START → llm_call ──(有 tool_calls)──► tools ──► llm_call 循环 └────(无 tool_calls)──────────────────► ENDbind_tools把工具的 JSON Schema 绑定给模型模型据此输出结构化的工具调用请求工具节点执行后结果以工具消息追加回消息列表。条件路由函数是唯一的交通指挥员它只读取状态、不产生副作用。听起来很正经其实就是个看门大爷有 tool_calls 就让进没有就关门送客。大爷不加班、不私自改路规矩得很。很多人第一次看这个环会觉得头晕模型调工具工具出结果结果又回模型模型又调工具……这哪是 Agent这是套娃现场。但你想啊人类查资料不也是这样吗先搜看到结果不满意换个关键词再搜直到搜出满意答案。代码只是把你平时的摸鱼式调研给自动化了。四、消息状态与归并语义直接用 TypedDict 时一个字段会被新值覆盖而消息列表需要的是追加语义。区别在哪覆盖就像换头像来一个新照片旧的就没了谁也看不见你当年的杀马特造型。追加就像写日记每天写一行十年后翻出来全是黑历史但一条都不丢。框架提供的消息状态内置了归并器reducer每次节点返回新消息框架自动 append 而不是覆盖。自定义状态也可以声明归并函数例如用Annotated[list, add]表达这个字段做累加。理解 reducer是理解状态如何在节点间流转的关键。你可以暂时把它理解为一个自带只加不减属性的保险柜。五、中断恢复状态机天然支持审批在图里插入人工审批节点不需要新机制就是一个条件边 checkpointbuilder.add_node(wait_approval,lambdas:interrupt(s[task]))builder.add_conditional_edges(process_task,lambdas:wait_approvalifs.get(need_approval)elseEND,)builder.add_edge(wait_approval,after_approval)graphbuilder.compile(checkpointerPostgresSaver(...))编译时挂上 checkpointer每个超步执行完自动存快照恢复时用Command(resume...)从断点继续。这就像你走流程走到一半突然需要领导盖章。以前的做法是重新走一遍全流程祈祷这次领导在座位上。现在的做法是走到盖章那步停住存个档领导盖完章从断点继续。状态机 checkpoint 的组合让暂停—审批—恢复成为框架能力而不是业务代码。对了这功能还有个隐藏福利再也不用担心进程崩了重来。以前 Agent 跑到第 99 步崩了你哭现在崩了你淡定点一下续跑它淡定从断点继续。你俩都很淡定因为 checkpoint 帮你们扛下了所有。六、调试与可视化编译后的图可以直接输出结构图graph.get_graph().draw_mermaid()对教学和 Code Review 极其友好——流程对不对、环在哪里一眼可见。以前的调试靠什么靠玄学。加一行 print跑一次看输出猜问题再改再跑。现在直接看图这个箭头怎么连到那儿去了哦条件函数写错了。配合 checkpointer可以按 thread_id 逐步回放历史状态排查Agent 为什么走了这条路。这就好比行车记录仪平时没人看一旦出事每一帧都给你调出来铁证如山。七、技术演进与最新差异2025—20267.1 LangGraph 1.0 已 GA2025-10-22且是 LTS 版本API 在 1.x 全系列保持稳定小版本升级无破坏性变更。项目教学脚本若基于 0.x 编写升级时主要注意导入路径和部分预构建组件的位置调整。换句话说以前升级库像搬家锅碗瓢盆全得重新买现在升级库像住酒店拎包入住顶多换个房间号。7.2 持久化执行成为核心卖点早期 LangGraph 主要被当作图编排库1.0 之后定位升级为持久化 Agent 运行时——每步 checkpoint、任务级 pending write 持久化崩溃与部署中断后精确续跑。新项目设计时应从一开始就接入 checkpointer而不是事后补。这就跟体检一个道理早查早安心等项目上线了再补那是给生产环境上坟。7.3 create_agent 成为更高层标准LangChain 1.02025-10 GA提供的create_agent底层就是本文这张图但把模型—工具循环封装为开箱即用并支持中间件。需要标准 Agent 时直接用create_agent需要自定义拓扑子图、多 Agent、专门审批流时才手搭 StateGraph——两者是上下层关系不是替代关系。理解方式create_agent 是速食面StateGraph 是亲手和面。赶时间吃速食面追求口感自己擀。谁也别看不起谁都是填饱肚子。7.4 生态信号选型时注意部分 2024 年流行的多 Agent 框架已进入维护模式官方 2025 年 10 月公告新用户被引导迁移图式工作流模型已成为业界事实标准。翻译你去年学的那个框架今年可能已经退休返聘了。技术圈就是这么残酷去年还是顶流今年就成怀旧款。八、小结LangGraph 的心智模型就一句话状态在节点间流动边决定下一站条件边让分支运行时生效。必练的三张图最小直线图、“模型—工具循环图、带中断的审批图。把这三张图手写一遍再去用高层create_agent你对 Agent 的理解会从调库升级为看得懂运行时”。别急着抄代码。代码抄十遍不如自己画一遍图。画完你会发现原来 Agent 没那么神秘就是个会拐弯的流程外加一个会看路标的大爷。P.S. 无意间发现了一个巨牛的人工智能教程非常通俗易懂对AI感兴趣的朋友强烈推荐去看看传送门https://blog.csdn.net/qq_34419312