写 Agent 的人都会经历一个相似的阶段:demo 五分钟跑通,然后花三个月处理"跑久了会出问题"。

具体是什么问题?任务跑到一半进程挂了,状态全丢;需要人工确认一个关键决策,但 Agent 已经自顾自往下跑了;会话结束了,上次积累的上下文也就没了。

这些问题的共同点是——它们都发生在"长时间运行"这个维度上。单轮对话的 Agent 不会遇到,但真正的生产级 Agent 一定会。

LangGraph 就是专门解决这一层的基础设施。它的自我定位很明确:构建有状态 Agent 的低层编排框架。

它是什么

"低层"这个词是关键

README 里有一句提醒:如果你只是想快速搭 Agent,可以看看 Deep Agents——一个基于 LangGraph 构建的更上层包,能做规划、使用子 Agent、利用文件系统处理复杂任务。

这句话反过来说明了 LangGraph 的定位:它不做封装,它做地基。

它的自我描述是这样的:

为任何长时间运行、有状态的 workflow 或 Agent 提供低层支撑基础设施。

"任何"和"低层"这两个词都值得留意。它不假设你用哪个模型、做哪类任务,只提供编排这一层需要的东西。

五个能力,全部围绕"长时运行"

持久执行(Durable execution) ——构建能扛过故障、长时间运行的 Agent,从上次中断的精确位置自动恢复。这是"跑久了会挂"这个问题的直接答案。不是重试,是续跑。

人在回路(Human-in-the-loop) ——在执行过程中的任意时刻检查并修改 Agent 状态。注意是"任意时刻",不是只在开始时确认一次。这让"关键节点人工把关"变得可实现。

完整记忆(Comprehensive memory) ——两种记忆:短期工作记忆用于正在进行中的推理,长期持久记忆跨会话保存。做真正有状态的 Agent,而不是每次从空白开始。

用 LangSmith 调试 ——可视化工具追踪执行路径、捕捉状态转移、提供详细的运行时指标。复杂 Agent 的行为本来就难查,这一层可视化不是锦上添花。

生产级部署 ——为有状态、长时间运行的工作流设计的可扩展基础设施。

五个关键能力

生态里的位置

LangGraph 可以独立使用,但也和 LangChain 生态无缝集成:

配套 作用
Deep Agents 构建能规划、使用子 Agent、利用文件系统的复杂任务 Agent
LangChain 提供集成和可组合组件,简化 LLM 应用开发
LangSmith Agent 评估与可观测性——调试表现不好的运行、评估轨迹、获得生产可见性
LangSmith Deployment 用专门的部署平台扩展 Agent

值得一提的是使用范围:README 提到 Klarna、Replit、Elastic 等公司都在用。对于"低层框架"这类不太容易讲故事的项目来说,这份名单是它最实在的背书。

上手

pip install -U langgraph

需要 JS/TS 版本的话,有对应的 LangGraph.js。

文档资源:

  • 官方文档:docs.langchain.com(含概念总览与指南)
  • API 参考:reference.langchain.com/python/langgraph
  • 快速开始:LangGraph Quickstart
  • 免费课程:LangChain Academy 的 intro-to-langgraph
  • 案例研究:built-with-langgraph

谁适合用它

适合:

  • 做需要长时间运行的 Agent,要求故障后能续跑
  • 需要在流程中间做人工审核或干预
  • 需要跨会话的长期记忆,而不只是单次对话上下文
  • 想要对 Agent 的执行路径有完全的控制权
  • 已经在用 LangChain 生态

不太适合:

  • 想快速搭一个能用的 Agent,不想处理编排细节(先看 Deep Agents)
  • 只是做单轮问答或简单 RAG
  • 不想写代码、只想可视化拖拽(那是 Dify、n8n 这类平台的领域)

说点实在的

"低层框架"这个定位在开源圈里挺少见,因为不好卖。封装得越厚,用户上手越快,star 涨得越快。但封装厚了,一旦你的需求和框架的假设不匹配,就得跟框架打架。

LangGraph 反过来:它把并发控制、持久化、人工介入这些机制做成原语,让你自己组织。代价是你得先想清楚自己的 Agent 应该长什么样,收益是它不会在你走到一半的时候说"这里不支持"。

几个关键概念——状态图、检查点、中断、子图——前期理解成本是有的。但对于要上生产的有状态 Agent,这些概念早晚都得面对,早一点比晚一点好。

项目地址:https://github.com/langchain-ai/langgraph