LangGraph 到底是不是 Agent Runtime?
这个问题最近很容易吵起来。
有人说 LangGraph 就是 Agent Runtime。
有人说它只是 workflow graph。
也有人说 Runtime 这个词被框架营销用烂了。
我自己的判断是:
LangGraph 是一种 Agent Orchestration Runtime。
但它不是你系统里的全部 Runtime 责任。
这句话听着绕,拆开就清楚了。
先看 LangGraph 自己怎么说
LangGraph 官方文档把它描述为一个 low-level orchestration framework and runtime,用来构建、管理和部署 long-running、stateful agents。它强调的核心能力包括 durable execution、streaming、human-in-the-loop、persistence,以及把确定性步骤和 LLM 驱动步骤放在同一个 graph 里。
这不是普通'链式调用库'的定位。
它确实在处理 Runtime 问题:
状态如何流转
节点如何调度
长任务如何恢复
人类如何介入
图执行如何持久化
agent 和 workflow 如何混合
所以如果有人问'LangGraph 是不是 Runtime',答案不能简单说不是。
但如果问题换成'用了 LangGraph,是不是就拥有了生产级 Agent Runtime',答案也不能简单说是。
Runtime 有两层含义
技术讨论里,Runtime 至少有两层意思。
第一层是执行编排 Runtime。
它关心:
下一步跑哪个节点?
state 怎么传?
失败后能不能从 checkpoint 恢复?
人类能不能暂停、修改、继续?
图执行路径能不能被追踪?
LangGraph 很强地落在这一层。
第二层是产品级 Agent Runtime。
它还要关心:
用户能不能调用这个工具?
工具参数是否越过业务边界?
MCP Server 是不是可信?
shell / browser / file write 是否进 sandbox?
一次 run 的成本谁负责?
不可重放副作用怎么记录?
用户中途改了文件,resume 会不会覆盖?
trace 能不能定位到错误归因?
线上失败能不能沉淀成 eval?
这层不是某个 graph 引擎自动替你解决的。
它需要产品权限、组织策略、基础设施、工具治理和事故流程一起配合。
一个更准确的比喻
把 LangGraph 当成数据库,不太准确。
更像一个可持久化的状态机执行引擎,里面可以有普通节点,也可以有模型节点和工具节点。
它帮你解决'流程怎么跑、状态怎么存、怎么暂停恢复'。
但你还是要决定:
表结构怎么设计
哪些字段是敏感数据
谁有读写权限
事务边界在哪里
错误怎么补偿
日志保留多久
线上怎么审计
换到 Agent 语境,就是:
LangGraph 可以承载执行图。
但工具权限、沙箱边界、业务风控、成本预算、审计策略,仍然要由你的应用和 Runtime 层来定义。
它解决了 Loop 的哪些问题
如果你从 100 行 Agent Loop 开始写,LangGraph 最先帮你解决的是状态和编排。
最小 Loop 通常是这样的:
while (step < maxSteps) {
const response = await model.complete(messages, tools);
const results = await executeToolCalls(response.);
messages.(...results);
}

