<!-- title: 智能体中断恢复与持久化横评 -->

## 概述

当智能体从"演示"走向"生产"，最致命的往往不是模型能力，而是**它能不能在被打断后原样接上**。一个跑了六小时、完成 47 次工具调用的研究智能体，一旦 API 超时就要从零重启——再烧六小时、再花一遍 token，这是 2026 年企业级 Agent 部署的头号故障源（数据显示 73% 的部署在第一年内发生可靠性故障）。本篇横评把"中断—恢复—人机接力"作为一把新尺子，量六栈智能体框架（LangGraph、Claude Agent SDK、OpenAI Agents SDK、Strands、CrewAI、AG2）在这条能力上的真实差距，并向下穿透到 Temporal、Restate、DBOS、Inngest、Hatchet 这层"持久化执行"引擎。核心结论一句话：**框架的 checkpoint ≠ 持久化执行**，前者挡得住应用级失败（错误分支、人机暂停），挡不住基础设施级失败（容器崩溃、宿主抢占），而动钱、发邮件这类不可逆副作用的智能体，必须在这两层之上都买保险。

## 中断—恢复能力对比表

| 维度 | LangGraph | Claude Agent SDK | OpenAI Agents SDK | Strands Agents | CrewAI | AG2 |
|------|-----------|------------------|-------------------|----------------|--------|-----|
| 中断原语 | 原生 `interrupt()` | 事件流中断 | Harness resume 记账 | 自定义工具实现 | `human_input=True` | GroupChat 管理者 |
| 恢复机制 | `Command(resume=…)` | Session 自动续接 | resume bookkeeping | 手动 DynamoDB/S3 | 任务回放 | MemoryStream 事件回放 |
| 持久化后端 | MemorySaver/SQLite/Postgres/DynamoDB | Session 存储内置 | Session（2026 新增） | 手动接入 | 文件式 | Redis/文件 |
| 状态模型 | 类型化状态图+reducer | 沙箱环境即状态 | 上下文变量+对话 | 对话历史 | 任务上下文+共享记忆 | 对话历史+MemoryStream |
| 粒度 | 每个超步（super-step） | 会话级 | Harness 步级 | 无原生 | 任务级 | 事件级 |
| 人机接力 | 一等公民 | 事件流 | 审批回调 | 自定义 | 基础 | GroupChat 控制 |
| 反序列化正确性 | 高（reducer 显式） | 高（沙箱快照） | 中 | 低（需手写） | 中 | 中 |

## 深度分析

### 一、LangGraph：`interrupt()` 把人机接力变成语言级原语

LangGraph（月下载量超 4700 万）之所以在中断—恢复这条赛道上一骑绝尘，是因为它把"暂停等人类"做成了和 `if/else` 一样自然的语言原语。架构原理很直接：图在每个**超步（super-step）**结束时通过 checkpointer 把整个 `State` 对象写入后端，键是 `thread_id`；任意节点里调用 `interrupt(payload)`，图就真正挂起，payload 通过返回值 `result["__interrupt__"]` 交给前端渲染；人类拍板后，用同一个 `thread_id` 再 `invoke(Command(resume=…))`，恢复值会直接回到那次 `interrupt()` 调用处继续往下走，**没有轮询循环，没有手写异步**。

```python
from langgraph.types import interrupt, Command
from langgraph.checkpoint.memory import MemorySaver

def approval_node(state):
    decision = interrupt({"q": "批准这笔 500 美元转账吗？", "details": state["action"]})
    return Command(goto="proceed" if decision else "cancel")

graph = builder.compile(checkpointer=MemorySaver())   # 无 checkpointer 则无法恢复
config = {"configurable": {"thread_id": "approval-123"}}
graph.invoke({"action": "Transfer $500"}, config=config)            # 挂起
graph.invoke(Command(resume=True), config=config)                    # 同一 thread_id 续跑
```

最关键、最容易被忽略的一点：必须**把 `interrupt()` 放在危险操作之前**，而不是之后——很多人写成"先执行 DELETE 再 interrupt 问是否 OK"，那就已经晚了。优缺点方面，原生支持、reducer 让并发写入可预测、LangGraph Studio 还能逐节点回放与"时间旅行"，是六栈里最强的调试体验；代价是状态图样板代码重、曲线陡。**变现评估**：这是训练营里"生产级 Agent 工程"模块的最佳抓手——一个"转账审批"或"SQL 变更审批"的可交互 demo，能把课程客单价直接拉到企业级档位，因为买方真正担心的就是这一刀。

### 二、Claude Agent SDK：把 Agent 当成有状态沙箱运行时

Claude Agent SDK（前身 Claude Code SDK，2025 年底更名）走的是完全不同的路：它不把 Agent 当成一串轻量函数链，而是当成一个**有状态、沙箱化的运行时**。核心四概念是 Agent（封装模型、系统提示、工具、MCP、skills）、Environment（容器模板：包、网络、文件挂载）、Session（环境内一个常驻实例，跨轮保持状态）、Events（应用与 Agent 之间的消息流）。中断—恢复在这里几乎是"免费"的：状态不是存在某个抽象 State 字典里，而是**就活在会话环境本身**——写进磁盘的文件、设置的环境变量、建好的数据库，全部跨轮持久；Session 在失败后自动续接。

```python
from claude_agent_sdk import Agent, Session
agent = Agent(model="claude-sonnet-4-20250514", tools=[read_csv, run_query],
              mcp_servers=["filesystem", "postgres"])
async with Session(agent, environment="data-analyst-env") as session:
    resp = await session.send("分析 Q1 营收趋势")     # 中途崩溃也能续
    async for event in resp: print(event)
```

这种"状态即环境"的模型，对编程智能体、数据分析智能体这类**会持续产出产物**的任务极其自然——工作目录里的中间文件就是断点，根本不需要你显式 checkpoint。缺点同样明显：深度耦合 Claude 模型，无法换 GPT/Llama；沙箱本身有运维成本（虽然 Claude Managed Agents 把容器编排托管了）。**变现评估**：最适合包装成"代码 Agent / 数据分析 Agent 训练营"，卖点就是"沙箱里跑坏了也不污染宿主、断了能续"，对要在客户真实数据上跑的 to-B 场景是硬通货。

### 三、OpenAI Agents SDK：Harness 接管 resume 账本

OpenAI Agents SDK 从实验性的 Swarm 进化而来，2026 年 4 月的 Harness 升级是它的转折点——这套脚手架（驱动 Codex 的同一套）把指令、工具、审批、追踪和**resume bookkeeping**全打包了，让长跑智能体能在中断后接续，并支持沙箱执行。它的心智模型是 handoff 中心：一个 Agent 可以通过产生 handoff 把控制权连同完整上下文转给另一个 Agent，天然映射客服分层、流水线这类场景。但 handoff 本质是顺序的，原生并不擅长并行 Agent 执行或图式路由。

真正让它在中断—恢复这条赛道上"弯道超车"的，是 **OpenAI Agents SDK 与 Temporal Python SDK 的 GA 集成（2026 年 3 月 23 日）**：一个 `TemporalRunner` 把每次 Agent 调用包成 Temporal activity，`activity_as_tool` 把 Temporal activity 自动转成 OpenAI 兼容的 tool schema——**崩溃防护几乎零成本白送**。OpenAI 自己就在生产用 Temporal 跑 Codex。**变现评估**：这是 GPT 生态学员最快的"耐久化"上车路径，"一行配置让 Agent 抗崩溃"的标题极具传播力，适合做中等客单价的进阶课。

### 四、关键洞察：框架检查点 ≠ 持久化执行

把六栈放到一起看，最大的认知陷阱就在这里——**框架的 checkpoint 和"持久化执行（durable execution）"是两种强度不同的保证**。LangGraph 1.0 在每个超步把图状态快照到 Postgres/DynamoDB，按 `thread_id` 取回，这确实能让 Agent 在失败后恢复，是真的、是有用的。但"每个超步检查点"和"从日志做 exactly-once 步骤回放，跨任意崩溃"不是一回事。更精确的分工是：

- **框架检查点**保护的是**应用级失败**：糟糕的推理、错误的分支、人机暂停。
- **持久化执行引擎**保护的是**基础设施级失败**：容器崩溃、网络分区、宿主抢占。

生产部署往往**两层都要**。而且所有这些引擎能成立，都靠同一条铁律：**LLM 调用、工具调用、外部副作用必须被推进"已记录的步骤"里，只跑一次，崩溃后从日志回放**。哪个供应商对这条边界含糊其辞，就离它远点。**变现评估**：这条"两层保险"的认知差，本身就是企业内训的高价值内容——大量团队以为接了 LangGraph checkpointer 就万事大吉，实际在动钱场景下会出事，把"为什么你的 Agent 会在第 30 小时丢状态"讲透，是顾问式变现的金牌选题。

### 五、持久化执行三引擎：Temporal / Restate / DBOS

当框架检查点不够用，就该在框架下面垫一层引擎。三者实现机制各异，但都遵循"把每个已完成步骤在下一步运行前持久化，崩溃后回放而非重跑"这一核心：

- **Temporal**：确定性工作流回放。编排代码是 workflow，每个外部副作用是 activity，Temporal 记录 activity 输入输出的 event history；崩溃后重跑编排代码，但**不重跑 activity，而是从历史复用记录的输出**。代价是工作流代码必须确定性、大 LLM 载荷可能撑爆 history。2026 年 2 月 17 日以 50 亿美元估值融 3 亿美元（a16z 领投），披露终身 9.1 万亿次 action、峰值 15 万次/秒、营收同比增 380%。规模和集成最厚，运维最重。
- **Restate**：journal-based。每个持久步骤追加到 per-invocation 日志、在调用继续前持久化；以**自包含单二进制**从笔记本扩到多区集群，Restate Cloud（2025 年 9 月 30 日对所有人开放）按 durable action 计费，免费层每月 5 万次、`ctx.get/ctx.set` 不计费，可部署到 Cloudflare Workers/Vercel/Deno。便携性与边缘适配是它的赌注。
- **DBOS**：最激进——**它是库不是服务器**。用 `@DBOS.workflow()` / `@DBOS.step()` 装饰函数，状态直接写进你自己的 Postgres（`workflow_status` 表记 PENDING、`operation_outputs` 表存步骤输出）；重启时后台线程扫描 PENDING 工作流从最后完成步骤续跑。`@DBOS.step(retriesAllowed, intervalSeconds, maxAttempts)` 让重试策略声明式、按步配置。运维成本最低，规模履历最短。

**变现评估**：三家分别对应"大厂规模 / 边缘 Serverless / 极简 Postgres"三个故事，可拆成三条独立的"耐久化落地"实操课；其中 DBOS"无服务器、只加一个库"对中小团队最有吸引力，适合做入门级训练营的压轴模块。

### 六、失败数学与"建还是买"决策

最后回到一组冷硬的数字，它们解释了为什么中断—恢复在 2026 年从"锦上添花"变成了"生死线"。**任务时长翻倍，失败率翻四倍**；85% 的单步准确率在十步链条上会失败五分之四，二十步时存活在统计上几乎不可能；95% 的单步成功率在十步任务上整体完成率只剩 60%，五十步跌破 8%。生产数据更扎眼：连续执行超过 35 分钟后成功率显著下滑，GPT-4o 跑复杂办公任务、缺持久化基础设施时失败率超 91%，多会话任务缺外部状态管理时失败率高达 98%。

算一笔经济账：一个多日研究智能体在第四小时崩掉，无检查点=四小时计算重跑+token 双倍+上下文可能自相矛盾；有检查点（假设 5 分钟间隔）=只补 5 分钟。生产部署分析显示，检查点能**把多步工作流的无效处理削减 60% 以上**。据此可得到一张清晰的分层决策表：任务 **10 分钟以内** → 自建轻量检查点即可；**10 分钟到 4 小时、非确定性决策图复杂** → LangGraph + Postgres/DynamoDB；**超过 4 小时、或多 Agent 编排依赖复杂、或涉及不可逆副作用** → 上 Temporal Cloud，OpenAI Agents SDK 的 GA 集成让 GPT 系几乎零成本接入。**变现评估**：这张"按任务时长分层选型"的决策表，是 to-B 咨询的黄金交付物——企业最怕的就是"选错了层、要么过度工程、要么上线即崩"，把它做成选型工作坊，客单价和复购率都高。

## 系统架构图

```mermaid
flowchart TB
    subgraph APP["应用 / 人机接力层"]
        H[人类审批 UI]
    end

    subgraph FW["智能体框架层（中断原语）"]
        LG[LangGraph interrupt + checkpointer]
        CA[Claude Agent SDK Session/Environment]
        OA[OpenAI Agents SDK Harness resume]
        ST[Strands 模型驱动循环]
        CR[CrewAI human_input]
        AG[AG2 GroupChat/MemoryStream]
    end

    subgraph DE["持久化执行引擎层（exactly-once 回放）"]
        TP[Temporal 工作流回放]
        RS[Restate 单二进制 journal]
        DB[DBOS 库+Postgres]
        IN[Inngest 步级记忆化]
        HT[Hatchet 托管任务队列]
    end

    subgraph INFRA["基础设施失败域"]
        CB[容器崩溃 / 宿主抢占 / 网络分区 / API 限流]
    end

    H <-->|Command resume / interrupt payload| FW
    FW -->|状态/快照 checkpoint| DE
    FW -.挡得住.-> APPFAIL[应用级失败: 错误分支/推理漂移/人机暂停]
    DE -.挡得住.-> CB
    DE -->|回放日志| FW

    classDef app fill:#fef3c7,stroke:#d97706,color:#000
    classDef fw fill:#dbeafe,stroke:#2563eb,color:#000
    classDef de fill:#dcfce7,stroke:#16a34a,color:#000
    classDef infra fill:#fee2e2,stroke:#dc2626,color:#000
    class H,APPFAIL app
    class LG,CA,OA,ST,CR,AG fw
    class TP,RS,DB,IN,HT de
    class CB infra
```

## 推荐方案

- **最快上手的 HITL 演示**：LangGraph `interrupt()` + `Command(resume=…)` + 一个 MemorySaver。从安装到第一个"转账审批"demo 半小时内搞定，是教学与拉新的最佳起点。
- **编程/数据分析 Agent**：Claude Agent SDK。状态即沙箱，产物即断点，崩溃自动续接；要省运维就上 Claude Managed Agents。
- **GPT 生态长跑 Agent**：OpenAI Agents SDK + Temporal Python SDK（2026.3 GA）。一行 `TemporalRunner` 把每次调用变 activity，崩溃防护白送，OpenAI 自家 Codex 同款。
- **已在 AWS 且工具成百上千**：Strands + Bedrock + AgentCore，HITL 用自定义工具补，再用 DynamoDBSaver 接 LangGraph 做兜底检查点。
- **多角色业务流水线快速原型**：CrewAI，`human_input=True` 够用；但要清醒它"任务回放"粒度粗，动钱场景不够。
- **多轮会话/代码执行密集**：AG2 的 GroupChat + MemoryStream 事件回放。
- **任务超 4 小时或碰不可逆副作用**：在任一框架下垫 Temporal（规模/集成优先）或 Restate（边缘/Serverless）或 DBOS（已有 Postgres、要极简）。
- **铁律不可破**：所有 LLM/工具/外部调用必须进"已记录步骤"，只跑一次、从日志回放；`interrupt()` 永远放在危险操作**之前**；`thread_id` 与 checkpointer 缺一不可。

## 参考来源

1. [2026 AI Agent Framework Showdown: LangGraph vs CrewAI vs AG2 vs Claude SDK vs Strands vs OpenAI — QubitTool](https://qubittool.com/blog/ai-agent-framework-comparison-2026) — 六大框架的状态管理、HITL、持久化对比矩阵与基准数据
2. [Durable Execution for AI Agents: Temporal vs Restate vs DBOS — Alatirok](https://alatirok.com/durable-execution-ai-agents-compared/) — 三大持久化引擎架构机制与非确定性铁律的深度横评
3. [Durable Agent Execution in Production 2026: Temporal, LangGraph — AgentMarketCap](https://agentmarketcap.ai/blog/2026/04/10/durable-agent-execution-production-temporal-modal-event-sourced) — 失败数学、checkpoint 与 durable 执行的本质差异、建还是买的分层决策
4. [How to Implement Human-in-the-Loop in LangGraph Using the interrupt() Pattern — BSWEN](https://docs.bswen.com/blog/2026-04-16-langgraph-human-in-the-loop/) — interrupt/resume 三种模式代码与常见踩坑（含 checkpointer/thread_id）
5. [Interrupts — LangChain 官方文档](https://docs.langchain.com/oss/python/langgraph/interrupts) — interrupt() 与 Command(resume) 的权威语义说明
6. [Temporal reveals a serverless option for its Durable Execution platform — The New Stack](https://thenewstack.io/temporal-replay-2026-news/) — Temporal 50 亿美元融资、9.1 万亿终身 action、Serverless workers 披露

> [!tip] 51学通信知识星球
> **星主：爱卫生**（微信：gprshome201101）——公众号「51学通信」创办者，19 年通信行业运维与讲师经验，著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书（各大电商平台有售）。
> **星球定位**：深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域，主打运维岗位与信令分析。
> **当前规模**：5200 篇主题 / 990 个回答，198 元/年。
> **加入福利**：加入星球后请加爱卫生微信，拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题，另有群内分享。
> **AI 加持**：51学通信知识星球已作为 skill 接入 WorkBuddy，使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例，做总结、找文档和 PPT 等场景全覆盖。

![51学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
