跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Agent RuntimeLangGraphProduction AgentDurable ExecutionAgent Framework

《Agent Runtime 工程化》LangGraph 到底是不是 Agent Runtime?

LangGraph 到底是不是 Agent Runtime? 这个问题最近很容易吵起来。 有人说 LangGraph 就是 Agent Runtime。 有人说它只是 workflow graph。 也有人说 Runtime 这个词被框架营

陈堂会发布于 —2 浏览
《Agent Runtime 工程化》LangGraph 到底是不是 Agent Runtime?

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.toolCalls);
  messages.push(...results);
}

这个写法越长越痛苦。

LangGraph 把执行过程变成 graph:

node: build_context
node: call_model
node: route_response
node: execute_tool
node: human_review
node: final_answer
edge: 根据 state 决定下一步

好处很明显:

状态显式
分支显式
暂停点显式
人类介入点显式
恢复点显式

这对 long-running agent 很重要。

因为长任务不是一口气跑完的。它会暂停、失败、等待用户、换节点、恢复、重放一部分确定性逻辑。

靠一个手写 while 也能做,但你很快会重新发明一套简陋 LangGraph。

它没有自动解决 Tool Runtime

接下来是容易误判的地方。

你把工具节点放进 LangGraph,不代表 Tool Runtime 已经完成。

生产级 Tool Runtime 至少要回答:

工具 schema 谁校验?
路径是否限制在 workspace 内?
命令是否允许执行?
网络访问是否需要审批?
工具输出过大如何进入上下文?
工具失败如何变成结构化 observation?
工具是否幂等?
工具 started 但没有 completed 时如何 resume?

这些责任可以写在 LangGraph 节点里,也可以写成你自己的工具层,再由 LangGraph 调度。

但它们不会因为'节点在图里'就自动存在。

很多线上事故恰好发生在这里:graph 很优雅,节点也能恢复,但节点里面的工具调用仍然是裸奔的。

比如:

execute_shell_node(command)
write_file_node(path, content)
call_mcp_tool_node(server, tool, input)

如果这几个节点内部没有 permission、risk、timeout、output policy、idempotency、ledger,你只是把危险函数从 while loop 搬到了 graph node 里。

危险没消失,只是换了房间。

Persistence 也不等于完整 Checkpoint

LangGraph 文档把 persistence 分成 checkpointer 和 store。

checkpointer 保存 thread-scoped graph state,适合 conversation continuity、human-in-the-loop、time travel、fault tolerance。store 保存跨 thread 的长期数据,比如用户偏好、事实和共享知识。

这个划分很有用。

但在 coding agent 或有副作用的业务 agent 里,我们还要继续追问:

工具调用账本保存了吗?
不可重放工具的状态保存了吗?
文件写入前后的 hash 保存了吗?
审批记录保存了吗?
外部 API 已经发出但响应丢失时,状态是 failed 还是 uncertain?

graph state persistence 是恢复的基础。

但恢复是否安全,要看你在 state 里保存了什么。

如果 state 只有 messages 和下一步节点,恢复后仍然可能重复发请求、重复写文件、重复创建订单。

这不是 LangGraph 的错。

这是 Runtime 设计没有把副作用当成一等状态。

Human-in-the-loop 也不等于权限系统

LangGraph 支持 human-in-the-loop,这对生产 Agent 很重要。

但 human-in-the-loop 是能力,权限系统是策略。

能力是:

可以暂停
可以让人看 state
可以让人修改
可以继续执行

策略是:

什么工具必须问
什么用户能批准
什么环境默认拒绝
审批结果保存多久
恢复后审批是否仍有效
权限拒绝后模型能不能换路绕过

很多系统会把'需要人工确认'写成一个 UI 弹窗。

这只是最浅的一层。

真正的 Permission Runtime 要有 risk classification、policy evaluation、approval ledger、preview、audit log,还要和 tenant、workspace、role、environment 绑定。

LangGraph 可以让这个流程更好接入图执行,但策略本身要你自己写清楚。

LangGraph 更像 Runtime Kernel

如果一定要给它找一个位置,我会把 LangGraph 放在这里:

Product / App
  ├─ User auth
  ├─ Workspace / Tenant
  ├─ Billing / Quota
  ├─ Admin policy
  │
Agent Runtime
  ├─ Permission Runtime
  ├─ Tool Runtime
  ├─ Context Runtime
  ├─ Checkpoint / Trace / Eval
  │
Orchestration Runtime
  └─ LangGraph
      ├─ StateGraph
      ├─ Nodes / Edges
      ├─ Persistence
      ├─ Human-in-the-loop
      └─ Durable execution

它像一个 Runtime Kernel。

负责状态图和执行推进。

你的生产级 Agent Runtime 还要在它外面包一层产品和治理边界。

当然,你也可以反过来做:把很多 Runtime 责任写成 LangGraph 节点、中间件或工具 wrapper。这样也可以。

关键不是目录怎么分。

关键是这些责任有没有存在。

什么时候适合用 LangGraph

我会在这些情况下认真考虑 LangGraph:

任务会跨多步执行
需要确定性流程和模型决策混合
需要暂停等待人工审批
需要保存和恢复 graph state
需要把 agent 行为做成可观察路径
多个节点之间共享状态很复杂

比如:

代码修复 agent
客服工单处理 agent
研究报告 agent
数据分析 agent
运维排障 agent
企业内部审批 assistant

这些任务不是简单一次问答。

它们有状态,有分支,有人类介入,有失败恢复,有审计需求。

这就是 LangGraph 的舒适区。

什么时候不用急着上

如果你的需求只是:

一次模型调用
RAG 问答
固定三步 prompt chain
简单 tool calling demo
低风险内部脚本

那不必为了'看起来像 Agent Runtime'而上 graph。

Anthropic 那篇《Building effective agents》里有个判断我很认同:先用最简单的方案,只有复杂度真的必要时再加。

很多团队的问题不是框架太少,而是过早把简单业务塞进复杂框架,然后连 prompt、tool input、state 变化都看不清了。

框架不是成熟的证明。

能把复杂度控制在问题需要的地方,才是成熟。

一个简单的判断表

下次有人问'LangGraph 是不是 Agent Runtime',可以用这张表判断:

问题LangGraph 覆盖度还需要你补什么
多步骤状态流转很强业务 state 设计
持久化和恢复很强副作用 ledger、恢复策略
人机协同很强权限策略和审批审计
工具调用可承载工具校验、风险、沙箱
观测可配合 LangSmith事故归因口径、eval 回流
成本预算部分可做产品 quota、token/tool/wall-clock policy
MCP 工具治理需要你设计namespace、trust、schema drift、approval
多租户安全应用责任auth、tenant isolation、data retention

所以我的答案是:

LangGraph 是 Agent Runtime 的重要实现路线之一。

更准确地说,它是 orchestration runtime。

但生产级 Agent Runtime 不是一个包名,它是一组工程责任。

如果这些责任没有落地,你用了 LangGraph,也只是拥有了一个很好的图执行底座。

如果这些责任落地了,哪怕你暂时没有用 LangGraph,你也已经在写自己的 Runtime。


推荐阅读

  • Agent Framework 会被模型原生 Tool Use 淘汰吗?
  • MCP 解决了什么,又没有解决什么?
  • Agent Memory 应该放在 Runtime 还是 Application?

目录

  1. LangGraph 到底是不是 Agent Runtime?
  2. 先看 LangGraph 自己怎么说
  3. Runtime 有两层含义
  4. 一个更准确的比喻
  5. 它解决了 Loop 的哪些问题
  6. 它没有自动解决 Tool Runtime
  7. Persistence 也不等于完整 Checkpoint
  8. Human-in-the-loop 也不等于权限系统
  9. LangGraph 更像 Runtime Kernel
  10. 什么时候适合用 LangGraph
  11. 什么时候不用急着上
  12. 一个简单的判断表
  13. 推荐阅读
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 核心语法详解:测试脚本开发基础
  • 在 Linux 桌面里跑 Windows 应用:Winboat 实战笔记
  • AI 编程工具深度对比:Trae、Cursor、Copilot 与 Windsurf
  • 论文阅读--Agent AI 探索多模态交互的前沿领域(一)
  • OpenCode 开源 AI 编程助手使用教程
  • Linux diff 与 patch 命令实战指南
  • 网络安全工程师职业定义、核心技能与认证体系详解
  • Python 为何如此流行?深度解析其核心优势与应用场景
  • 大疆无人机如何导出日志并解析
  • 前端 WebSocket 通信实战与最佳实践
  • OpenClaw 进阶教程:记忆系统、定时任务、多模型与子代理解析
  • Python 爬虫实战指南:从基础请求到分布式框架
  • Kubernetes Python 客户端实战教程
  • Java IO 核心:BufferedReader、BufferedWriter、PrintStream 与 PrintWriter 详解
  • AI 辅助编程工具:GitHub Copilot 安装与使用指南
  • 基于 Rokid AR 眼镜的聚会游戏助手开发实践
  • 百瑞互联 BR8654A02 蓝牙 6.0 SOC 芯片规格介绍
  • Windows 7 安装 Python 3.9+ 配置指南
  • 前端加密:常用方式与使用示例
  • GitHub Copilot 学生认证教程(2026 版)

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online