题记与说明
撰写日期:2026-11-03
本文由同日两份章节稿综合而成:纵轴稿《Agent 任务可靠性工程——幂等、断点续跑、补偿、超时与人工接管的发展历程》(历时轴,1950s–2026)与横轴稿《竞品/同类/替代方案横向对比》(共时轴,2026-11-03 时间截面)。综合稿消除了两稿之间的重复与口径不一致(统一贯穿案例、统一 Temporal 补偿/幂等的评级口径,见正文标注),关键事实保留来源 URL,未能核实之处在文末集中声明。
最终稿说明:本稿为按独立审读意见修订后的最终稿(2026-11-03)。相对初稿的主要修订:①交叉洞察的证据边界收紧——推断超出文本处显式标注"本课题外推",可靠性判断口径统一为"水平低、建设滞后"(非趋势降);②"五支柱×五类玩家"改为如实的"4+1"表述;③Airflow HITL 表述与评级对齐;④能力总表补偿列补评级判据、Pydantic AI 行改"随所选引擎评级";⑤历史日期论断补官方出处(AgentKit 公告页另注组件停用更新);⑥NightBatch-50w 参数闭环(补 800 条低置信度来历、区分两个窗口口径);⑦分期交叠加说明、交叉洞察 §2 去重;⑧新增"落地第一步"专节(幂等键/意图表/补偿登记最小骨架、夜批成本量级)并在首次引用处补 Zylos 来源定性。初稿保留于 drafts/ 目录,未作改动。
贯穿案例:夜间批处理系统。纵轴用它串起五个概念的演化史,横轴用它派生出具体负载 NightBatch-50w 与"夜批五问"作为统一探针。
TL;DR
Agent 任务可靠性工程是把 1970 年代批处理的五个概念——幂等键、检查点续跑、Saga 补偿、超时窗口、人工值班——搬进 LLM 工具循环:语义未变,载体三迁(数据库内核→框架→协议→agent 运行时)。2026 年截面上的实况是"4+1":四个支柱各有其主,且集中在三类玩家——B 类持久化执行引擎拿走断点续跑与超时,A 类批处理编排平台拿走分区幂等与审计(Airflow 3.1 还补上了 HITL 审批),C 类 Agent 框架拿走检查点与中断审批;D 类托管平台的招牌是托管与按量计费而非支柱本身,E 类替代范式用成本、检测、人审换可靠性。第五个支柱——补偿——无人认领,是全生态最大空位。检查点≠副作用记录是共同盲区。落地分三档:纯生成用 Batch API;有副作用以持久化引擎为骨架、工具幂等化并登记补偿链;强合规加审批门与审计。夜间批处理是默认验证负载。落地第一步(幂等键格式、"发送意图表"与补偿登记表的最小骨架、夜批成本量级估算)见交叉洞察之后的专节。
纵轴:发展脉络——五个可靠性概念从银行机房到 Agent 运行时
0. 为什么用"夜间批处理"做贯穿案例
夜间批处理是这五个可靠性概念的天然试验场,也是它们最早、最集中的落地形态:
| 概念 | 夜间批处理中的原型 |
|---|---|
| 幂等 | 批量扣款任务重跑不得重复扣款——业界通行做法以"会计日期 + 任务编号"作幂等键,重跑前先查执行状态表(银行日终批处理对账系统实战(知乎)) |
| 断点续跑 | 跑批按步骤/分片记录 checkpoint,失败后从最后提交点重跑(Spring Batch 的 chunk 模型,见阶段三) |
| 补偿 | 批量中失败的交易用冲正交易回滚,冲正本身也必须幂等;日终对账差错进入次日处理(7×24 核心系统设计(博客园)) |
| 超时 | 跑批窗口硬约束:凌晨 0:00–6:00 必须结束,否则"日切"失败,第二天营业无法开始(银行核心系统 7x24 方案(fintx PDF)、ITPUB:24 小时机制实现) |
| 人工接管 | 跑批失败 → 监控告警 → 值班人员按 runbook 手工干预 → 差错工单,这是最古老的 human-in-the-loop |
横轴稿将这一案例具体化为 NightBatch-50w(口径说明:上表的 0:00–6:00 是行业通行的跑批窗口原型,本案例为自身设定把窗口收窄为 02:00–06:00):每晚 02:00 启动,读取当日 50 万条交易,逐条调用 LLM 生成摘要与风控标记写库,其中约 800 条低置信度摘要需人工复核("夜批五问"之五与人工接管落地一节的数字出处),另对约 4,000 条高风险项自动发送告警邮件,06:00 前完成,全程无人值守。它同时具备长时间窗(4 小时)、无人值守(凌晨)、副作用密集(写库 + 发邮件)、失败代价滞后(清晨才发现)四个特征,因而最能暴露五支柱的缺口。Agent 时代的可靠性工程,本质上是把这五件事从"银行机房"搬进"LLM 的工具调用循环"。
阶段〇(1950s–1970s):批处理与"操作员"——人工接管是最古老的一环
- 大型机时代的夜间批量(工资、报表、对账)确立了"白天联机、夜里跑批"的作业模型,作业由 JCL(IBM OS/360,1964)之类的作业控制语言描述。
- Unix 世界把"什么时间跑什么"从人变成表驱动:cron 由贝尔实验室开发(通常归于 Brian Kernighan),随 Unix 第 7 版(1979)普及;1987 年 Paul Vixie 重写为 Vixie cron,成为后来绝大多数 Linux/BSD 的标准实现(Softpanorama: Cron History)。
主要参与者:IBM(OS/360/JCL)、贝尔实验室、Paul Vixie。驱动因素:硬件与机时昂贵,业务允许隔夜出结果——可靠性靠操作员手册(runbook 雏形)、磁带备份与值班操作员。"人工接管"在此时不是兜底机制,而是执行机制本身:任务失败时,是人在机房里换磁带、重跑作业。
阶段一(1978–1991):事务处理理论奠基——ACID、两阶段提交与 Saga
- 1978:Jim Gray 在 IBM 研究报告《Notes on Data Base Operating Systems》(RJ2188)中系统给出事务、提交协议与恢复技术,包括两阶段提交(2PC)与 checkpoint(SIGMOD Record: Jim Gray at IBM)。
- 1983:Härder 与 Reuter 在《Principles of Transaction-Oriented Database Recovery》中提出 ACID 缩写,并引用 Gray 1978 的 checkpoint 思想(论文 PDF)。
- 1987:Garcia-Molina 与 Salem 在 SIGMOD 发表 《Sagas》:把长事务拆成顺序子事务,任一失败则按逆序执行补偿事务来语义化撤销已完成部分——这是"补偿"概念的出生证明(ACM DL、论文 PDF)。
- 1991 前后:X/Open 发布 XA 分布式事务规范,把 2PC 工程化进 CICS/数据库生态(通识性事实,未单独检索原文)。
驱动因素:银行联机系统(ATM、柜面)要求跨资源原子性,但长事务锁表拖垮并发 → Saga 用"补偿"换吞吐。与夜批的映射:银行日终批量(计提结息、总账汇总)正是"长事务"的极端形态——天然无法全程持锁,于是行业用对账 + 冲正在批处理层面模拟原子性,这是 Saga 思想在业务侧的并行演化。
阶段二(1990s–2007):中间件工程化——死信队列、幂等方法与"活动"模型
- 1993:IBM MQSeries 发布,消息队列成为异步解耦标配;死信队列(DLQ)把"处理失败的消息"显式化,人工处理 DLQ 成为标准运维动作。
- 1996/1999:HTTP/1.1(RFC 2068,后由 RFC 2616 沿袭、今天由 RFC 9110 承接)把幂等性写进协议语义:GET/PUT/DELETE 幂等、POST 不幂等——幂等第一次有了协议级定义(协议通识)。
- 2004–2006:Amazon SQS 提供"至少一次"投递,把 at-least-once + 消费端幂等确立为云端默认容错姿势。
- 2007:Pat Helland 发表 《Life beyond Distributed Transactions: an Apostate's Opinion》(CIDR 2007):放弃跨服务 2PC,改用 activities + 实体 + 携带唯一 ID 的消息,用幂等重试实现"恰好一次的效果"——这是今天一切"幂等键"设计的理论祖源(论文 PDF、ACM Queue 2016 重刊)。
驱动因素:互联网规模化后,跨数据库 2PC 代价过高,可靠性的实现位置从"数据库内核"上移到"应用与消息层"。与夜批的映射:日终对账文件传输丢失 → 用同一文件名/批号重传,接收端凭幂等键去重;对不上的流水进差错文件,次日人工或半自动冲正。
阶段三(2003–2016):云与大数据——重试、超时、断点续跑被"框架化"
五个概念从"论文与手工"变成"框架默认值"的阶段。(分期说明:本阶段区间自初稿的"2007–2016"改为"2003–2016",以与首条 GFS/MapReduce 论文的实际年份对齐;它与阶段二在 2003–2007 区间存在交叠——阶段二以 2007 年 Helland 一文收官,那是中间件时代幂等理论的顶点;本阶段以 2003/2004 年 GFS/MapReduce 开篇,那是"框架替你做可靠性"的起点。分期按主题演进衔接,不按严格年序切分。)
- 2003/2004:Google 发表 GFS 与 MapReduce 论文,夜间全量重算索引成为常态;MapReduce 的任务级重试与原子重命名写,本质是"调度器替你做幂等与断点续跑"。
- 2007–2008:Spring Batch(Accenture 与 SpringSource 合作)发布 1.0,把 chunk-oriented 处理、事务性 checkpoint、restart(断点续跑)做成批处理框架的内建能力;其模型后来被 JSR-352(2012 立项,随 Java EE 7 于 2013 落地)标准化——Spring Batch 是事实蓝图(Spring Batch restart 文档、Oracle: Batch Processing in Java EE 7)。
- 2010–2011:Kafka(LinkedIn 开源)用 offset 把"断点续跑"简化成消费者提交位点,一夜之间成为数据管道续跑的通用词汇。
- 2011–2012:Netflix 全面迁往 AWS 后开源 Hystrix(2012):超时、熔断、降级、舱壁隔离——"超时"从配置项升级为一等公民的可靠性原语(发布公告:Netflix Tech Blog: Introducing Hystrix for Resilience Engineering, 2012-11-26;能力细节见 Hystrix Wiki)。
- 2014–2015:Airbnb 开发 Airflow(2015 年 6 月开源——Airbnb 工程博客发布公告, 2015-06-02;2019 年 1 月 8 日成为 Apache 顶级项目——ASF 官方公告):DAG 化夜间 ETL,backfill/catchup 把"补数"变成任务级断点续跑,SLA miss 把"跑批超时"变成自动告警(backfill/catchup 机制讲解见 datainterview)。
- 2014–2017:Stripe 把幂等键做成支付 API 的标准能力(客户端为每笔业务生成唯一 key,超时重发返回同一结果,绝不重复扣款;工程总结《Designing robust and predictable APIs with idempotency》2017 年发表)(Stripe Blog、幂等键历史考)。此后幂等键成为支付类 API 行业标配。
- 2016-12:AWS 在 re:Invent 发布 Step Functions(发布公告:AWS News Blog, 2016-12-01):状态机 + Amazon States Language,原生 Retry(指数退避)/Catch/Wait,把重试与补偿编排做成云服务(错误恢复模式示例见 purple-technology)。
驱动因素:云故障常态化("一切皆会失败")、微服务拆分、夜间 ETL 规模化。可靠性工程的重心从"防失败"转向"失败后自动恢复"。
阶段四(2016–2022):Durable Execution 成熟——概念被"平台化"(口径统一说明见内文)
- 2012:Amazon 发布 Simple Workflow Service(SWF),Maxim Fateev 与 Samar Abbas 主导其开发。
- 2016–2017:两人在 Uber 打造 Cadence(开源 durable execution 引擎);"事件历史 + 确定性重放"模型让一个 workflow 无论跑一秒还是一年、进程崩溃多少次,都能恢复到正确位置继续。
- 2019:二人创办 Temporal Technologies(Temporal 是 Cadence 的 fork,原班人马打造)(InfoQ: Durable Execution for Control Planes、Cadence 官网、HN 讨论)。Temporal 官方把 Saga/补偿、信号(人工介入)、定时器、自动重试全部纳入平台能力(Temporal 补偿动作实践)。
- 同期旁支:Azure Durable Functions(2017 前后由 Durable Task Framework 演化而来)、DBOS(2023,把 durable execution 建在 Postgres 之上)、Restate、Inngest 等(durable execution 引擎对比讨论)。
口径统一说明:纵轴稿曾写 Temporal 把"补偿"平台化,横轴稿则将 Temporal 的补偿评为 △(用户代码、无专门原语),并引用实践者原话"Temporal/Restate 解决的是 durability(崩溃后续跑),而不是 compensation(撤销已完成步骤)"(Reddit 帖)。两说并不冲突,本综合稿统一为:Temporal 平台化的是补偿的"执行保证"与官方样本(Saga class、补偿 cookbook——失败时登记的补偿代码一定会被调用),而非"补偿语义"本身;补偿逻辑仍是用户代码,因此横轴评级维持 △。同理,Temporal 的幂等评级为 ○:确定性重放让工作流代码"逻辑上只执行一次",但 activity 层是 at-least-once,写库、发信等外部副作用仍需业务幂等键(Temporal Activity 文档)。
驱动因素:微服务编排复杂度失控 + 慢业务(网约车行程本身就是持续数分钟到数小时的"事务")。与夜批的映射:跑批逻辑一旦写成 durable workflow,宕机自动从事件历史重放恢复;值班工程师从"凌晨被电话叫起来手工重跑"变成"早上看控制台回放"。夜间批处理第一次可以"自己从昨夜的中断点上醒来"。
阶段五(2022–2024):LLM Agent 诞生期的可靠性危机
- 2022-10:ReAct 论文(Yao 等)确立"推理 + 工具调用"循环;LangChain 同期开源,agent 一词工程化。
- 2023-03-30:AutoGPT 病毒式走红,随即暴露灾难性可靠性问题:无限循环、成本失控、缺乏确定性停止条件——社区复盘普遍认为根因是"没有确定性的 stop 条件"(LessWrong 当月讨论、失败模式复盘)。这是"agent 可靠性危机"的公开时刻。
- 2023-06:OpenAI 推出 function calling;2023-11-06 首届 DevDay 发布 Assistants API(Threads/Runs/Run Steps)——"运行"成为可持久化、可追踪的对象,是 agent 断点续跑的雏形(该 API 后于 2025-08-26 宣布弃用、2026-08-26 关停,被 Responses API 取代:OpenAI 官方弃用公告、官方迁移指南)。
- 2023-08:NVIDIA 开源 NeMo Guardrails,guardrails(护栏)进入 agent 词汇表。
- 2024:LangChain 推出 LangGraph,把 checkpointer(状态持久化)与 interrupt()(图内人工介入)+ Command(resume=value) 做成一等公民——等于把 Temporal 的 durable execution + human signal 思想搬进 agent 状态机(LangGraph Persistence 文档)。社区很快发现其痛处:resume 时节点从头重放会导致工具双重执行——这恰好证明"agent 也需要幂等键"(社区复盘:LangChain 论坛:How to resume the agent workflow after interrupt("Twice execution of agent when using the interrupt")、langchain-ai/langgraphjs #1298、langchain-ai/langgraph #3875;初稿泛称的 Reddit r/AI_Agents 讨论未能定位到具体帖,最终稿改引以上可定位链接)。
- 2024-06:Sierra Research 发布 τ-bench(arXiv:2406.12045),提出 pass^k 指标:同一任务重复 k 次全部成功才算通过——第一次把"一致性/可靠性"而非"一次性成功率"变成基准测试的主指标(arXiv)。
- 2024-10:Anthropic 发布 computer use;2024-11-25 发布 MCP(Model Context Protocol),工具接入标准化(MCP 时间线)。
- 2024-12:CMU 发布 TheAgentCompany(arXiv:2412.14161):最强模型(Claude 3.5 Sonnet)在模拟公司里也只完成 24% 的全任务(CMU 新闻、论文)。2024-12-19 Anthropic 发表《Building Effective Agents》:区分 workflow 与 agent,强调从简单组合(prompt chaining、orchestrator-workers、evaluator-optimizer)起步(原文)。
驱动因素:模型能力(长上下文、工具调用)到位,但 pass@1 尚可、pass^8 崩塌;AutoGPT 式的失控循环让"能力展示"让位于"可重复的成功"。可靠性第一次成为 agent 的显式工程学科。
阶段六(2025–2026):可靠性工程正式成为 Agent 工程学核心
- 2025-01-23:OpenAI 发布 Operator(CUA 模型),内置 Watch Mode 与 Take Control Mode——"人工接管"第一次成为产品级功能名,敏感操作(登录、付款、发邮件)强制人工确认(官方公告、System Card)。
- 2025-03-11:OpenAI 发布 Responses API 与 Agents SDK(源自 Swarm 实验项目),四大原语为 Agent、Handoffs、Guardrails、Tracing(InfoQ 报道)。
- 2025 上半年,协议层把"接管"写进状态机:MCP 被 OpenAI(2025-03-26)、微软(2025-03-19)、Google DeepMind(2025-04-09)相继采纳,2025-12 捐给中立基金会(MCP 维基时间线);Google 于 2025-04 发布 A2A 协议,任务生命周期含 input-required / auth-required 状态——把"暂停等人"做成协议状态,2025-06 捐入 Linux Foundation(A2A 规范、发布公告)。
- 2025-03:METR《Measuring AI Ability to Complete Long Tasks》:以"50% 可靠完成"定义时间视界,发现其约每 7 个月翻倍——agent 可靠性首次被量化为可外推的工程量(METR;2026-01 的 Time Horizon 1.1 更新把 8 小时以上长任务样本从 14 个扩到 31 个)。
- 2025-09-29:Anthropic 发布 Claude Code 2.0 / Claude Agent SDK:checkpoints + /rewind(可恢复代码、会话或两者)、hooks(allow/ask/block 三态审批门)、
canUseTool权限回调与 permission modes——断点续跑与人工接管在编码 agent 中全面产品化(官方公告、checkpointing 文档、hooks 审批门课程)。 - 2025:Temporal 上线 Durable AI 文档并联合 Vercel AI SDK 发布 durable agents 方案:把 LLM 调用放进 Activities(自动重试),用事件历史重放恢复任意中间状态(Durable AI 文档、Temporal × Vercel AI SDK)。OpenAI DevDay(2025-10-06)发布 AgentKit,把 agent 评估(Evals)做成平台组件(官方公告 Introducing AgentKit, 2025-10-06;注:该公告页现标注 Agent Builder 与 Evals 将于 2026-11-30 后停用——平台组件迭代速度之快的又一注脚)。
- 2026:可靠性工程从特性变成"危机叙事 + 行业共识":
- 2026-04:Claude Code 上线 routines(定时/无人值守任务)——夜间 agent 跑批正式成型:cron 式触发、睡醒式后台 agent、早晨人工审查 PR(tessl 报道;另见 Upstash:Background Coding Agents(2026-08)、camelRun Background Agents(2026-10))。
- 2026-05:学术侧《Reliability and Effectiveness of Autonomous AI Agents》(arXiv:2605.17036)显示领域数据后训练可大幅提升 agent 可靠性。
- 2026-07-01:AIwire 发表《The Agent Reliability Crisis》(Disarray CEO Doris Xin):长时程 agent 的失败是架构性的——自我评估偏乐观、策略锚定(一个 agent 花 14 小时钻牛角尖,另一路 3 小时试 19 个简单方案胜出)、记忆漂移(10 条准确但过期的"环境恶劣"记录让 agent 静止 12 小时)、工具超时返回歧义被 agent 当成推理题、可观测性缺失;结论是必须外置独立评估层、supervisor、记忆治理与结构化审计记录(全文)。
- 2026 行业调查:LangChain《State of Agent Engineering 2026》(约 1,340 名受访者):89% 已给生产 agent 装可观测性,但仅 52% 部署前跑离线评估、不到一半有线上评估;"质量与不可预测行为"是项目失败头号原因(转述见 LinkedIn 摘要);Datadog《State of AI Engineering 2026》引发的 SRE 回应讨论了生产环境 agent sprawl(agent 蔓延)治理(DZone)。另据 AI SRE 实测复盘,真实故障自主解决率约 11.4%(厂商宣称约 70%),共识是"有真实爆炸半径的动作保留人工审批"(cloudai.pt)。
- 2026 agent 幂等工程化:工具层开始原生携带
idempotency_key(Arcade.dev 的 Agentic Tool Patterns),社区明确"幂等键必须在重试循环之外生成""幂等 ≠ 恰好一次执行"(Hacker Noon, 2026-09 系列与 FocusClaw, 2026-10 类综述)。Gartner 亦于 2026-08 预测到 2028 年每个 agentic workflow 的推理成本将增长 5 倍以上——可靠性同时成为成本治理问题(AIwire 报道侧栏)。
驱动因素:任务时长从分钟级跃升到小时/天级(METR 时间视界翻倍曲线),"无人监督长时间自主工作"成为产品默认形态(夜间 agent 跑批);而 pass^k、24%、11.4% 这些数字反复证明:能力问题在收敛,可靠性问题在放大——这里"放大"指可靠性水平本就低、且与能力提升的差距在拉大,而非"可靠性正在变差"的趋势判断。
收束:夜间批处理的三个时代与贯穿规律
- 机房时代(1960s–2000s):银行日终跑批——幂等键(会计日期+任务号)、步骤 checkpoint、冲正、跑批窗口(超时)、值班操作员。可靠性 = 人 + 手册。
- 框架时代(2010s–2020s):Spring Batch/Airflow/Temporal 的夜间 ETL——backfill 即续跑,durable workflow 即自愈,SLA miss 即超时告警,on-call 即接管。可靠性 = 框架默认值。
- Agent 时代(2025–2026):Claude Code routines、后台编码 agent、夜间 Deep Research——同一套概念换了载体:事件历史/会话存档 = checkpoint(/rewind、LangGraph checkpointer、Temporal 重放);审批门 = 人工接管(hooks allow/ask/block、input-required、Take Control Mode);工具 idempotency_key = 批量扣款幂等键;预算与时间视界 = 跑批窗口;晨间 PR 审查 = 日终对账。
贯穿性规律:
- 五个概念都是 1970s–1980s 的遗产,半个世纪里语义未变,载体三迁:数据库内核 → 中间件/框架 → 平台/协议 → agent 运行时。
- "超时"与"人工接管"的角色在上升:前者从窗口约束变成预算与时间视界管理,后者从"操作员换磁带"变成协议状态机里的显式状态(input-required)与产品功能(Take Control Mode)。
- 每当自主性上一个台阶(cron → 自动重试 → durable workflow → 自主 agent),失败模式就换一层皮(任务失败 → 循环失控 → 自评成功、锚定、记忆漂移),而对策始终是老三样:外置评估、显式状态、可审计记录。
- 2026 年的共识:agent 可靠性危机"不是 bug,是架构问题"——补齐 supervisor、幂等工具契约、可观测面与审批门,正是当年银行跑批工程师做过的事,只是这次对象会说话。
横轴:横向对比——2026-11-03 时间截面的五支柱竞品图
评级口径(承自横轴稿):表格评级(◎ / ○ / △ / ✗)是对官方文档所示能力的文档级判断,不是压测结论:◎ = 官方一等原语;○ = 有官方支撑、需自建薄层;△ = 社区模式/部分覆盖;✗ = 本次检索未见官方原语,基本靠开发者自理。产品迭代很快,引用前请按来源链接复核。
1. 对比框架:五支柱定义与"夜批五问"
| 支柱 | 一句话定义 | 反面(没有它会发生什么) |
|---|---|---|
| 幂等 | 同一操作执行多次,副作用只发生一次 | 重试导致重复写库、重复发信、重复扣费 |
| 断点续跑 | 进程崩溃/重启后,从失败点继续而非从头再来 | 50 万条的批次在第 49 万条崩掉后全部重跑 |
| 补偿 | 已完成的步骤在后续失败时被显式"反向撤销"(Saga) | 已发出的告警邮件无法作废、已写入的标记无法回滚 |
| 超时 | 挂死/慢死的单步被检测、取消、重试或降级 | 一条 LLM 请求卡 10 分钟,拖死整批 |
| 人工接管 | 流程能停在"安全点"等人批准/改写,再用人的输入继续 | 凌晨无人值守时,低置信度输出直接流到生产 |
五个支柱化作对 NightBatch-50w 的五问,作为逐项对比的统一探针:
- 幂等之问:02:40 一个 worker 宕机重启,已处理的 12 万条会不会重复写库、重复发邮件、重复计费?
- 续跑之问:03:17 上游 API 限流导致整批失败,修复后重跑,是从断点继续,还是重跑 50 万条(再烧一遍 token 钱)?
- 补偿之问:06:30 复盘发现 prompt 版本有缺陷,已发出的 4,000 封告警邮件是误报——平台能帮我们"撤销"吗?
- 超时之问:某条 LLM 调用挂死 10 分钟,谁在多长时间后发现它、杀掉它、重试还是降级?
- 接管之问:800 条低置信度摘要要人复核,人批准后流程继续;凌晨没人时流程必须停在安全点,而不是挂死或瞎跑。
2. 竞品分类学:五类"同类/替代方案"
| 类别 | 产业传统 | 代表 | 核心主张 |
|---|---|---|---|
| A 类·批处理编排平台 | 数据工程/调度 | Apache Airflow 3.1、Prefect 3、Dagster | 夜批的"原生栖息地":调度、重试、回填、审计已成熟,Agent 只是新任务类型 |
| B 类·持久化执行引擎 | 分布式系统 | Temporal、AWS Step Functions、Restate、DBOS、Inngest、Hatchet 等 | 把"崩溃后续跑"做成运行时保证,而非应用层纪律 |
| C 类·Agent 框架内置原语 | LLM 应用框架 | LangGraph、OpenAI Agents SDK、Mastra、Pydantic AI、CrewAI/AutoGen/MS Agent Framework | 在 agent 抽象内部提供 checkpoint、interrupt、审批等原语 |
| D 类·云托管 Agent 平台 | 云厂商一体化 | Amazon Bedrock AgentCore、LangGraph Platform/Smith、Temporal Cloud | 托管运行时 + 会话隔离 + 计费,可靠性外包给云 |
| E 类·替代范式 | 各种 | ① Batch API 直跑 ② 观测/评估驱动(LangSmith/Langfuse/Braintrust) ③ 审批即服务(HumanLayer)与低代码 HITL(n8n) ④ 冗余/投票/LLM-as-judge ⑤ "重试+换模型"裸奔派 | 不做执行层工程,用别的机制(成本、检测、人审、冗余)换可靠性 |
注意:A/B/C/D 存在大量交叠(Pydantic AI 可跑在 Temporal 上;LangGraph 有官方 Temporal 集成;Airflow 3.1 已于 2025-09-25 补上 HITL——见 §3 其人工接管列的 ◎ 评级与出处)。分类依据是方案的"主传统",而非互斥边界。
3. 能力对比总表(五支柱 × 方案)
图例:◎ 一等原语 | ○ 有支撑需自建薄层 | △ 社区模式/部分覆盖 | ✗ 未见官方原语 | N/A 不在其职责范围。
补偿列单独判据(该列口径分歧最大,补充如下):◎ = 平台内置补偿原语/自动补偿编排(本次检索无一方案达到,全生态没有一处 ◎);○ = 官方文档给出成体系的补偿接线模式,需手工接线(如 Step Functions 官方 Catch 状态链、Prefect 事务回滚钩子);△ = 仅官方样本/指南级材料、补偿本身仍是用户代码(Temporal 官方 Saga 样本、Restate Sagas 指南),或只能撤销框架内状态、外部副作用撤不回(LangGraph 的 rewind/time-travel——与"显式反向撤销副作用"的支柱定义尚有距离,故 △;其余 C 类框架连状态回滚的官方材料都没有,故评 ✗),或虽有官方持久化/事务原语可承载补偿、但无补偿专文,补偿逻辑需完全自建(部分覆盖)(DBOS 的事务性 Postgres 步骤日志、Inngest 的步骤记忆化);✗ = 未见任何官方补偿材料。
| 方案 | 类 | 幂等 | 断点续跑 | 补偿 | 超时与重试 | 人工接管 |
|---|---|---|---|---|---|---|
| Temporal(含 Cloud) | B | ○ 活动"至少一次",业务幂等自建;工作流代码确定性重放 | ◎ 事件史 + 确定性重放 | △ 补偿以用户代码表达(官方 Saga 样本),无专门原语 | ◎ StartToClose / Heartbeat / ScheduleToClose 三层超时 + RetryPolicy | ◎ Signal / Update + 持久定时器,官方 HITL cookbook |
| AWS Step Functions | B | ○ 靠任务设计(如 DynamoDB 条件写) | ◎ redrive 从失败点重启;Distributed Map 只重跑失败的子工作流 | ○ Catch 显式接补偿状态链 | ◎ Task 级 TimeoutSeconds + 默认重试 3 次指数退避 + JitterStrategy | ○ 回调令牌(wait-for-task-token)等外部事件,可接人工审批,无内置审批 UI |
| Restate | B | ◎ 日志化 ctx.run 步骤 + 内置幂等键 | ◎ journal 重放 | △ 官方 Sagas 指南最成体系(补偿链反序执行、两段式 reserve/confirm),但补偿本身是用户闭包 | ○ 持久定时器 / awakeables 一等公民 | ○ awakeable 等外部事件,可承载 HITL |
| DBOS | B | ○ 步骤日志存 Postgres | ◎ 轻量库(非独立服务),状态全在 Postgres | △ 无专门原语,需自建 | ○ | △ 有 OpenAI Agents 集成;审批原语未见专门文档 |
| Inngest(含 AgentKit) | B | ◎ step.run 结果记忆化 = 天然幂等;并发/节流控制内置 | ◎ 步骤记忆化 + 断点续跑 | △ 无 Saga 级文档,错误按步处理 | ◎ 持久 sleep、waitForEvent 带超时、重试策略 | ○ waitForEvent 等人 |
| Hatchet | B | △ 普通任务"至少一次",幂等靠开发者(其文档自述) | ○ 持久事件日志 | ✗ | ○ 持久定时器/事件 | △ |
| Apache Airflow 3.1 | A | △ 靠 logical_date/分区键的开发者纪律 | △ 任务级重试;子集重跑靠 clear,无步骤级 | ✗ | ○ execution_timeout 每次尝试独立生效 + Deadline 提醒(注意"超时未必杀死底层查询"的坑) | ◎ 3.1(2025-09-25)新增 4 个 HITL deferrable operator + common-ai provider 的 HITL Review(审批 agent 输出) |
| Prefect 3 | A | ◎ 事务 + 幂等键(commit/rollback 语义) | ○ 任务缓存 + 重试 | ○ 事务回滚钩子是补偿的雏形 | ○ | ✗ |
| Dagster | A | ◎ 分区(partition)= 幂等单位,回填天然安全 | ○ RetryPolicy 声明式 + 资产重跑 | ✗ | ○ | ✗ |
| LangGraph(含 Platform) | C | ✗ 工具副作用需自行包装 | ◎ 每 superstep 检查点;生产建议 Postgres/Mongo checkpointer;time-travel | △ 无补偿原语;可 rewind+fork,但外部副作用撤不回 | ✗ 节点级超时需自行包装 | ◎ interrupt() + Command(resume=...);HITL 强依赖持久 checkpointer |
| OpenAI Agents SDK | C | ✗ | ○ sessions 持久化运行状态 | ✗ | ✗ | △ guardrails(tripwire)+ 工具调用人工审批,运行可暂停 |
| Mastra | C | ✗ | ○ workflow 状态存 LibSQL/Postgres,suspend/resume | ✗ | ○ | ◎ suspend()/resume() + 工具审批 HITL(已知限制:带 suspend 的工作流暂不能被 agent 调用) |
| Pydantic AI | C | 随所选引擎评级(见对应行) | 随所选引擎评级(Temporal/Restate/DBOS 为 ◎,Prefect 为 ○) | 随所选引擎评级(见对应行) | 随所选引擎评级(模型请求与工具调用跑成 activity/step) | 随所选引擎评级(经引擎的 Signal/中断实现,见对应行) |
| CrewAI / AutoGen / MS Agent Framework | C | ✗ | ○ 各自 memory/flow 持久化(AutoGen 有 Magentic-One ledger) | ✗ | ✗ | △ CrewAI human_input、AutoGen UserProxy,非持久审批 |
| Amazon Bedrock AgentCore | D | △ 托管运行时不负责编排幂等 | ○ 会话隔离 microVM + 托管会话存储(2026-03 preview) | ✗ | ○ 托管弹性 runtime(2026-09 新版) | △ 未见专门审批原语文档 |
| n8n | E | △ 节点级重试 ≠ 步骤记忆化;社区指出失败执行重试不会自动从失败步骤续跑 | △ | ✗ | △ 节点超时;"卡死重试"先于 error 分支触发,难以被错误工作流捕获 | ◎ 原生 Human-in-the-loop for tools:暂停等审批后继续 |
| OpenAI / Anthropic Batch API | E | ○ custom_id 关联请求与结果,失败单条可控重提 | △ 服务托管逐条状态 | ✗ | △ 24 小时窗口 SLA,非细粒度超时(Anthropic 明示批量 5 折) | ✗ |
| HumanLayer | E | N/A | N/A | N/A | N/A | ◎ 审批即服务:API 把审批路由到 Slack/邮件,人批后 agent 继续(2026-10 仍在活跃发版) |
| LangSmith / Langfuse / Braintrust | E | ✗ 检测失败 ≠ 恢复失败 | ✗ | ✗ | ✗ | ✗(提供人工标注/评审队列,但不驱动执行) |
4. 成本与生态要点(2026-11 检索值,部分为第三方汇总,以官网为准)
- Temporal:OSS(多语言 SDK)+ Temporal Cloud;第三方汇总:Essentials 约 $100/月起(含 100 万 actions/月,超出约 $50/百万)、Business 约 $500/月起,以官网定价页为准。分布式系统传统中最成熟的一档,已与 OpenAI Agents SDK、Pydantic AI、LangGraph 集成。
- AWS Step Functions:按状态转换计费的商业托管;AWS 生态内默认选择,十年级成熟度。
- Restate / DBOS / Inngest / Hatchet:均可自托管免费起步(DBOS 只需一个 Postgres,基准文称在 PgDog 分片上跑出每秒 100 万工作流);Inngest 的 AgentKit 仍在快速演进(存在与自建 step 混用的已知问题 #196)。
- Airflow / Prefect / Dagster:Apache-2.0 等 OSS 自托管免费,托管版另计;Airflow 是数据工程事实标准,最大生态,3.x 大版本换代期。
- LangGraph:核心 MIT 免费;自托管 Lite 免费至 100 万节点;Platform 托管 $0.001/节点 + 部署费,第三方汇总档位约 $295/月(原型)至约 $10,195/月(多 agent 产品);LangSmith Plus $39/席/月,以官网定价为准。节点计费对高扇出的夜批尤其敏感——50 万条 × 每条若干节点会迅速上量。
- AgentCore:按 AWS 用量计费;2025 推出、2026 快速演进(2026-03 会话存储 preview、2026-09 弹性 runtime),部分功能仍 preview。
- Batch API:Anthropic 批量明示 5 折、最长 24 小时返回;OpenAI 同类机制——无基础设施成本的"吞吐解"。
- HumanLayer:本次检索未核实定价(发布说明更新至 2026-10,产品活跃);专项工具,只做"人审批"这一件事。
5. 五支柱逐项深读:谁强、谁缺、夜批怎么办
幂等——两派做法。运行时记账派(Inngest 步骤记忆化、Restate journal 步骤 + 内置幂等键、Temporal 确定性重放让业务代码"逻辑上只跑一次"、Prefect 事务幂等键):平台替你记账"这一步做没做过"。开发者纪律派(Dagster 分区键、Airflow logical_date、LangGraph/OpenAI SDK 完全自建)。第三方调研的行业忠告值得整段引用:"检查点只告诉运行时它在哪里,不告诉它副作用是否已发生";每个有变异副作用的工具都应成为事务边界——"先记录意图、再执行、落持久化回执",并引用 Stripe 幂等键、Lambda Powertools 幂等工具与 Outbox 模式(Zylos 调研。来源定性(最终稿补):Zylos 是一家构建持久化 agent 系统的 AI 产品公司,该文是其官网 Research 栏目 2026-04-24 发布的技术综述,属厂商研究而非独立第三方调研——其生态梳理部分与本课题引用的官方文档可交叉印证,但结尾明确落回"这对 Zylos 式 agent 意味着什么"的产品视角,页面亦无作者署名与机构自我介绍;引用其判断时应知悉此利益相关。本课题引用该调研的关键判断处,均另附官方文档或一手帖子对照;§7 的五条盲点为其独有总结、无其他来源可交叉验证,应按"单一厂商调研"的置信度对待)。夜批落地:写库用 upsert、发邮件先写"发送意图表"再投递、对外计费调用统一带幂等键——无论选哪列方案,这三件事都逃不掉(这与纵轴阶段六"幂等键必须在重试循环之外生成"的 2026 社区共识同源;幂等键格式与意图表字段的最小骨架见文末"落地第一步")。
断点续跑——三档实现。服务托管状态(Step Functions redrive + Distributed Map 跳过已成功子项,AWS 文档)> 引擎重放(Temporal 事件史、Restate journal、DBOS Postgres)> 图/框架检查点(LangGraph 每 superstep)。Zylos 调研特别警告:图检查点必须被工程化为"重放边界"——例如 LangGraph 中 interrupt 之前的代码可能在恢复时重跑,检查点不等于事务边界;这正是纵轴阶段五记录的"resume 时工具双重执行"问题的机制解释。夜批落地:绝不要把"整批"塞进一个 task/一个节点;按"单条交易 = 一个 activity/步骤/分区"建模,断点续跑与计费优化同时成立。
补偿——全生态最弱的一环,也是本课题最大的差异化空间。最重要的行业判断来自实践者:"Temporal/Restate 解决的是 durability(崩溃后续跑),而不是 compensation(撤销已完成的步骤)"(Reddit 帖:为 Spring AI 自建 Saga 补偿库),与本课题分类学一致。生态现状:Restate 文档最完整(业务逻辑放 try 块、抛 terminal error 触发补偿、补偿闭包按完成顺序累积失败时反序执行、两段式 API 先 reserve 再 confirm、一次性 API 先注册带幂等键的补偿再执行动作、补偿本身必须幂等——Restate Sagas 指南);Step Functions 靠 Catch 显式接补偿状态链,可行但要手写全部接线(AWS 错误处理文档);Temporal/DBOS/Inngest/各 C 类框架的补偿=用户代码;LangGraph 的 rewind/time-travel 只能回滚"图内状态",撤不回已经发出的邮件。夜批落地:4,000 封误报邮件的"补偿"本质是业务动作(发更正邮件、作废链接、回滚标记)。平台能保证的是"补偿代码一定会被执行",不会替你发明补偿——每个有副作用的步骤都应同时登记其补偿函数(补偿登记表的最小骨架见文末"落地第一步")。
超时——B 类成熟度断层领先。Temporal:StartToClose/Heartbeat/ScheduleToClose 三层超时 + RetryPolicy,heartbeat 超时是"发现挂死"的最快手段(Temporal Activity 文档);Step Functions:Task 级 TimeoutSeconds,默认重试 3 次、1 秒起步指数退避、可配 JitterStrategy(tecracer 解读),但有两个著名陷阱——工作流级超时不能像状态级那样被 Catch 捕获(Stack Overflow 讨论),状态超时后 Lambda 仍在运行、补偿可能与"还活着的副作用"竞态(repost.aws 讨论)——夜批里"杀掉的任务其实还在跑"会直接破坏幂等假设;Airflow:execution_timeout 每尝试独立 + Deadline 提醒,但"超时未必杀死底层查询"(Airflow issue #32512);C 类普遍无节点级超时原语;n8n 的卡死重试先于错误分支触发,观测性差。夜批落地:单条 LLM 调用设 start-to-close 60–120 秒 + heartbeat 30 秒;整批设 schedule-to-close 兜底(如 4 小时);供应商 P99 抖动时降级到备用模型而不是阻塞队列。Zylos 调研同时警告嵌套重试会放大成重试风暴:HTTP 客户端 × 框架 × 引擎 × 供应商每层都配重试反而更脆,需要全局重试预算与熔断——这是纵轴"超时从窗口约束变成预算管理"的横轴落地形态。
人工接管——从"聊天消息"到 durable event 的范式迁移(2025–2026 年变化最大的一环)。四条实现路径已分化:① 框架内中断(LangGraph interrupt()、Mastra suspend()/resume()、OpenAI SDK 审批)——与 agent 循环无缝,但持久性取决于外部 checkpointer/存储;② 引擎内事件(Temporal Signal/Update + 持久定时器、Inngest waitForEvent、Step Functions 回调令牌)——审批是持久事件,等一个月也不占进程;③ 编排器内审批(Airflow 3.1 HITL operator + HITL Review,带通知、超时、分支选择,天然接批处理审计,官方博客、HITL 教程、HITL Review provider);④ 外置审批服务(HumanLayer、n8n 原生 HITL,跨框架复用,但注意 n8n 执行层短板:失败执行重试不会自动从失败步骤续跑——社区帖)。行业对"正确形态"已有初步共识:审批必须是 durable event,而不是聊天窗口里的一条消息——要记录谁、何时、批准的是哪个工件(含哈希/版本)、决定与过期时间(Zylos 调研,来源定性见本节幂等一段)。同时评论界提醒"审批疲劳":人跟不上 agent 的审批请求频率(Cobus Greyling 评述),第三方开始把审批设计成"按可逆性/影响分级的风控控制面"(ColdAI 指南、Digital Thought Disruption)。夜批落地:800 条低置信度摘要 → 审批队列,每条带过期时间(如 4 小时);过期未批自动降级为"不发送"而非挂死整批;审批记录(人、时间、工件哈希、决定)入审计表——用 Temporal Signal、Airflow 3.1 HITL 或 HumanLayer 皆可实现,关键是别用微信/Slack 消息本身当状态存储。
6. 夜批场景选型建议(按副作用烈度分三档)
| 场景 | 夜批形态 | 推荐组合 | 理由 |
|---|---|---|---|
| ① 纯生成型:只写自己的库,无对外副作用 | 50 万条摘要入库,可重写覆盖 | LangGraph/Pydantic AI + Postgres checkpointer;或最省钱的 Batch API(5 折、24h 窗、custom_id 断点重提)+ 客户端超时包装 | 副作用幂等可靠"重写覆盖"兜底,框架级 checkpoint 已够;执行引擎是过度设计 |
| ② 副作用型:写库 + 发邮件/扣费/改 CRM | NightBatch-50w 本体 | 持久化执行引擎为骨架(Temporal 全能 / Restate 要补偿文档 / Inngest 要开箱幂等 / DBOS 要省一个服务),agent 框架只当"大脑";工具全幂等化;补偿链显式登记(Restate Saga 模式或 Step Functions Catch) | 五问中续跑、超时、幂等由引擎兜底;补偿目前任何方案都帮不了你,必须自己写 |
| ③ 强合规/高风险:金融、医疗、对外承诺类动作 | 夜批含不可逆动作 | A 类(Airflow 3.1 + 分区幂等 + Deadline + HITL operator 卡在危险动作前)或 Temporal + Signal 人工门 + 全量事件史审计 | 要的是审计轨迹、权限、SLA 与"人签字"的正式性,A 类的传统强项 |
反面清单(何时不要上重型引擎):团队 < 5 人且无分布式系统经验时,Temporal 的确定性重放心智负担真实存在(Reddit 实践反馈);纯 LLM 批处理且可覆盖重写时,Batch API 比任何引擎都便宜;已有成熟 Airflow 资产且动作可逆时,先升级到 Airflow 3.1 的 HITL 比引入新栈划算。
7. 全行业共同盲点(所有"竞品"都没解决的)
据 Zylos 2026-04 对该领域的系统性调研(来源定性见 §5 幂等一段:厂商研究而非独立第三方调研,以下五条为其独有总结,无其他来源可交叉验证),当前整个赛道(含 Temporal/Restate/Inngest/LangGraph 全部阵营)共同缺失的是(Zylos 调研):
- 检查点 ≠ 副作用记录:无一家的 checkpoint 同时回答"副作用是否已发生"(幂等收据仍是应用层责任);
- 全局重试预算:嵌套重试层会放大成重试风暴,缺少运行级熔断与预算控制;
- 版本漂移:模型、prompt、工具、沙箱任一变更都可能破坏确定性重放——重放 hazard 无平台级答案;
- 恢复测试:故意在"最坏时刻"杀掉运行时的恢复测试套件,几乎没有团队拥有;
- 观测数据脱敏:trace 里的上下文可能成为数据泄露向量,行业默认配置普遍未处理。
该调研总结的行业收敛方向是一个五层架构:run/step 日志 → 围绕非确定性的重放边界 → 幂等工具包装 → 持久化人工门 → 恢复测试套件。与五支柱对照,这是部分对应而非"一一对应",显式映射如下(最终稿补):
| Zylos 五层架构 | 与本课题五支柱的对应 |
|---|---|
| run/step 日志 | 支柱间共享的可观测底座,不单独对应某一支柱 |
| 围绕非确定性的重放边界 | 断点续跑 |
| 幂等工具包装 | 幂等 |
| 持久化人工门 | 人工接管 |
| 恢复测试套件 | 无直接对应(五支柱之外的新增维度) |
| ——(五层中无对应层) | 超时与补偿:超时散落在各层的重试策略里,五层未单列;补偿完全缺席 |
即五层架构直接覆盖幂等、断点续跑、人工接管三个支柱,超时与补偿没有对应层——补偿的缺席再次印证它是全生态空位。横轴对比的结论是:五支柱里没有任何单一竞品能整体覆盖,它天然是一个"组合工程"课题。
交叉洞察:两轴结合说明了什么、对用户的判断与建议
1. "平台化序列":每一代基础设施只吃下五支柱中的一部分
把纵轴的演化史与横轴的能力矩阵叠在一起,会看到一个此前两章各自都未能点透的结构:五个概念的"平台化"是有先后顺序的,而这个顺序正在 agent 时代重演。
- 数据库内核时代(1978–1983)平台化了恢复(checkpoint/ACID);Saga 论文(1987)给出了补偿的理论,但从没有一代基础设施真正把它平台化——横轴 2026 年的评级表证实了这一点:全生态补偿没有一处 ◎,最好的材料也只是 Restate 的文档级模式。
- 中间件/框架时代(1993–2016)平台化了重试与超时(MQ/DLQ、Hystrix、Step Functions RetryPolicy)和任务级续跑(Spring Batch restart、Airflow backfill)。
- 引擎时代(2016–2022)把断点续跑推到运行时保证(事件史 + 确定性重放),并把幂等做成了半平台化(步骤记忆化/日志化步骤),但副作用幂等仍留给应用层(Temporal 幂等 ○ 的原因)。
- Agent 时代(2025–2026)正在平台化的恰好是纵轴指出"角色在上升"的那一环——人工接管:从操作员 → on-call → 协议状态(input-required/auth-required)→ 产品功能(Take Control Mode、hooks 审批门、Airflow 3.1 HITL、HumanLayer)。
这个序列对判断 2026 年的产品格局给出一条简明法则:某一环在上一代基础设施里最弱、而在新负载上最疼,它就是下一代产品的机会。补偿正是这个位置——纵轴里它 40 年停留在论文与冲正交易,横轴里它是唯一全生态空缺的支柱,且已有实践者自建库回应(Reddit SpringBoot 帖)。"可补偿的 agent 工具调用协议"是本课题识别出的、最值得压注的细分。
2. 纵轴的"失败模式换皮"与横轴的"共同盲点"互为印证
纵轴收束处已给出"失败模式换皮、对策是老三样"的规律(见纵轴收束第 3、4 条),此处不再重复引子,只保留两轴对照后的增量:把横轴共同盲点五条逐条对到银行跑批的老答案上,并显式标注哪些是纵轴文本内确有出处、哪些是本课题外推(最终稿按审读意见收紧了初稿"全部是 40 年前就有答案的问题"的说法):
| 横轴共同盲点 | 银行跑批老答案 | 出处状态 |
|---|---|---|
| 检查点 ≠ 副作用记录 | 执行状态表(幂等收据) | 纵轴有出处:夜批原型表幂等行(银行日终批处理对账系统实战(知乎)) |
| 无全局重试预算 | 跑批窗口(0:00–6:00 日切硬约束) | 纵轴有出处:夜批原型表超时行(fintx PDF / ITPUB,链接见纵轴 §0) |
| 版本漂移 | 程序版本与数据快照绑定 | 本课题外推,纵轴文本未考据该实践的历史出处 |
| 无恢复测试 | 日切/灾备演练 | 本课题外推,纵轴文本仅提及日切约束、未考据"演练"实践 |
| 观测脱敏缺失 | 差错文件权限控制 | 本课题外推,纵轴文本仅提及差错文件、未提及权限/脱敏管理 |
即五条盲点中,前两条是纵轴文本内有出处、40 年前就有答案的老问题;后三条是本课题基于行业惯例的外推映射,合理但未考据——部分是老问题(两条有出处、三条为本课题外推),而非初稿所称"全部是老问题"。在此边界内,两轴交叉得出的结论比单轴更硬:agent 可靠性危机"不是 bug,是架构问题"(AIwire 2026-07)这句话,在时间轴上成立(每一代都重演),在空间轴上也成立(每一家竞品都缺同样五块)。
3. 能力在收敛、可靠性在放大,且可靠性同时是成本问题
三条独立证据链在两轴交汇处闭环:纵轴的 METR 时间视界每 7 个月翻倍(能力上行)对 τ-bench pass^k、TheAgentCompany 24%、AI SRE 真实解决率 11.4% vs 宣称 70%(可靠性水平低、且与能力提升的差距在拉大——与纵轴阶段六"能力问题在收敛,可靠性问题在放大"同一口径,指水平低而非趋势下行);横轴的 LangChain 2026 调查显示 89% 装了可观测性但仅 52% 跑离线评估——需要说明(最终稿按审读意见修正):89%/52% 均为检测侧数字,只能证明检测建设的普及程度;恢复侧(补偿、恢复测试)没有任何可比数字,因此本课题的结论限定为"可靠性水平低且建设滞后",而非"检测能力的普及远快于恢复能力的建设"这类量化对比(LangSmith/Langfuse 在横轴评级中五支柱皆 ✗,因为检测失败 ≠ 恢复失败)。同时,Gartner 2026-08 预测 2028 年 agentic workflow 推理成本增长 5 倍以上,横轴的节点计费对夜批高扇出敏感,纵/横轴共同的案例 NightBatch-50w 里"重跑 50 万条 = 真金白银的 token"(具体量级估算见文末"落地第一步")——可靠性工程在本课题中从来不只是正确性问题,它就是成本治理:幂等省的是重复执行的 token,断点续跑省的是重烧整批的钱,审批过期降级省的是挂死整夜的算力。
4. 夜批为什么是两轴共同选中的试金石
纵轴用它串起 70 年历史(银行日终 → 大数据 ETL → 夜间 agent 跑批),横轴用它设计五问探针——两轴的选择并不偶然:夜间批处理同时具备长时间窗、无人值守、副作用密集、失败代价滞后四个特征,且经济学敏感。2026 年 Claude Code routines 的出现(2026-04)意味着夜间批处理从比喻变成了 agent 的默认运行形态:晨间 PR 审查就是日终对账,hooks 审批门就是值班操作员,/rewind 就是 checkpoint。用夜批验证可靠性方法,等于在最锋利的场景上测试。
5. 对用户的判断与建议
核心判断:
- 五支柱是五张不同的牌;2026 年的实况是"4+1"——四支柱有主且集中在 A/B/C 三类玩家,补偿无人认领。不存在"选一个框架就解决可靠性"的选项,它天然是组合工程。
- 补偿是全生态空位;若要在此方向投入,"可补偿的 agent 工具调用协议 + 恢复测试套件"(后者是五层中落地最少的恢复测试层;前者针对的是五层完全缺席的补偿维度,是空位本身而非其中一层)价值最大。
- 人工接管的共识形态已经明确:durable event + 过期时间 + 审计记录;新意空间在"按可逆性/影响分级的审批控制面"与审批疲劳治理。
- agent 可靠性危机是架构问题:外置评估层、supervisor、记忆治理、结构化审计(AIwire 2026-07 的处方与银行跑批老三样同构)。
分档落地建议(承接横轴 §6):
- 个人/小团队、纯生成型夜批(摘要、翻译、代码生成后人工审):Batch API 直跑(5 折 + custom_id 断点重提)+ 客户端超时包装 + 覆盖写库。不要上 Temporal,执行引擎在这是过度设计。
- 有对外副作用的夜批(NightBatch-50w 本体):持久化引擎做骨架(按需选型:补偿文档看 Restate、开箱幂等看 Inngest、已有 Postgres 看 DBOS、全能但要养集群看 Temporal),agent 框架只当大脑;三条铁律——每个副作用工具带幂等键(重试循环之外生成)、每个副作用步骤登记补偿函数、heartbeat 超时发现挂死 + 全局重试预算防风暴。
- 强合规场景:Airflow 3.1 的 HITL operator 或 Temporal Signal 人工门卡在不可逆动作之前,全量事件史入审计,低置信度输出进带过期时间的持久审批队列,过期未批自动降级为"不发送"。
无论哪一档,最后一条都相同:把"凌晨 3 点杀进程"写进恢复测试——这是横轴共同盲点里最便宜可补的一块,也是纵轴"日切演练"(本课题外推映射,见 §2 对照表)的直接继承。夜间批处理系统应作为所有方法的默认验证负载。
落地第一步:幂等键、意图表、补偿登记与成本量级(最终稿新增)
三档建议止步于"选型",读者合上报告后的第一行代码写什么、夜批一晚到底烧多少钱——本节给出最小着落。以下 schema 与估算均为本课题建议的最小骨架/量级示例,非任何厂商官方样例或报价。
1. 幂等键:生成位置与最小格式
- 生成位置:重试循环之外,由业务层在首次发起前生成一次、随请求携带;框架/引擎层只透传,不重新生成——对应纵轴阶段六"幂等键必须在重试循环之外生成"的 2026 社区共识。
- 格式:
<业务域>:<实体类型>:<业务唯一序号>:<操作版本>,例如:nightbatch:alert:2026-11-03-TX000123:v1(发送告警邮件)nightbatch:riskflag:2026-11-03-TX000123:v1(写风控标记)
- 组成原则:业务唯一序号用"批次日期 + 交易号"这类天然业务键(与纵轴夜批原型的"会计日期 + 任务编号"同构),不要用随机 UUID——重跑时必须能生成出同一个键,去重才生效;操作版本在 prompt/逻辑变更时递增,避免新旧逻辑互相覆盖。
2. "发送意图表"最小骨架(PostgreSQL 方言)
CREATE TABLE send_intent (
idempotency_key TEXT PRIMARY KEY, -- nightbatch:alert:2026-11-03-TX000123:v1
batch_id TEXT NOT NULL, -- 批次号(logical_date / run id)
txn_id TEXT NOT NULL, -- 交易号
channel TEXT NOT NULL, -- EMAIL / SMS / WEBHOOK
intent JSONB NOT NULL, -- 待发动作全量参数(收件人、模板 id、变量)
payload_hash TEXT NOT NULL, -- 工件哈希:审批记录与审计用它对账
status TEXT NOT NULL DEFAULT 'PENDING',
-- PENDING -> SENT / FAILED / CANCELLED
attempt INT NOT NULL DEFAULT 0,
approval_id TEXT, -- 关联人工审批(低置信度条目),可空
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
sent_at TIMESTAMPTZ,
receipt JSONB -- 供应商回执(message id 等)= 副作用收据
);投递协议三步:①投递前先 INSERT(主键冲突 = 已发送过,直接读回执返回)——这一步把"检查点不知道副作用发没发生"(§7 盲点一)变成数据库事实;②调供应商投递;③UPDATE status/receipt。崩溃恢复时扫 PENDING 且未超 attempt 限额的行继续,SENT 行天然跳过。
3. 补偿登记表最小骨架
CREATE TABLE compensation_registry (
idempotency_key TEXT PRIMARY KEY, -- 与被补偿的前向副作用同键
action_type TEXT NOT NULL, -- SEND_ALERT_EMAIL / WRITE_RISK_FLAG / ...
compensate_fn TEXT NOT NULL, -- 补偿动作标识(SEND_CORRECTION_EMAIL /
-- VOID_LINK / UNSET_RISK_FLAG)
compensate_payload JSONB NOT NULL, -- 补偿所需上下文(更正文案、标记原值等)
state TEXT NOT NULL DEFAULT 'OPEN',
-- OPEN -> COMPENSATED / UNCOMPENSATABLE
reason TEXT, -- 触发补偿的原因(如 prompt 版本缺陷)
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
compensated_at TIMESTAMPTZ
);使用规则(承 §5 补偿一节 Restate/Step Functions 的结论):①每个有副作用的步骤在写"发送意图表"的同一事务里登记补偿行;②补偿函数本身必须幂等(同键重复执行无害);③发给外部世界的动作多数只能"发更正"而不能真撤回——登记表的作用是把"哪些动作需要善后"从记忆变成记录。
4. NightBatch-50w 的成本量级(示例估算,口径已注明)
估算假设:每条交易组装 prompt 约 1.5K 输入 tokens(交易上下文 + 模板)、输出摘要与标记约 0.5K tokens;单价取某中档旗舰模型公开牌价 $3/百万输入、$15/百万输出为锚(请按实际模型与 2026-11 牌价代入重算)。
| 项目 | 计算 | 量级 |
|---|---|---|
| 单跑一遍整批(输入) | 50 万 × 1.5K = 7.5 亿 tokens × $3/百万 | ≈ $2,250 |
| 单跑一遍整批(输出) | 50 万 × 0.5K = 2.5 亿 tokens × $15/百万 | ≈ $3,750 |
| 单夜全量 | 上两行合计 | ≈ $6,000/夜 |
| Batch API(5 折) | $6,000 × 50% | ≈ $3,000/夜 |
| 无断点续跑时整批重跑一次 | +$6,000 | 事故使当夜成本翻倍 |
| 每月 5 次整批失败、全部从头重跑 | 5 × $6,000 | ≈ +$30,000/月 |
| 800 条低置信度人工复核 | 800 × 2 分钟 ≈ 27 人时 × $50/时 | ≈ $1,300/夜 |
读法:一次"从头重跑"的代价 ≈ 单夜全量 $6,000,约等于两晚 Batch API 的成本——断点续跑每挽救一次整批失败,省下的就是"单夜全量"那一格的数字;800 条人审约 $1,300/夜,说明"审批过期自动降级为不发送"的设计(§5 接管落地)在钱上也是成立的。若按 Gartner 2026-08 的 5 倍推理成本预测外推(未计模型降价对冲),2028 年同规模夜批的单夜成本将到 $30,000 量级——这正是纵轴"超时变成预算管理"、横轴"全局重试预算"在钱上的含义。
5. 第一周可以做完的事
- 为写标记、发邮件(及如有)计费调用三个副作用各自定出幂等键格式,落库为发送意图表 + 副作用收据;
- 为每个副作用登记补偿行(补偿函数哪怕先是"发更正邮件"的占位实现);
- 单条 LLM 调用包 start-to-close 60–120 秒 + heartbeat 30 秒;HTTP 客户端重试次数与引擎重试预算对齐,防嵌套风暴(§5 超时落地);
- 跑通"低置信度 → 审批队列(带过期时间,过期自动降级不发送)"最小闭环(Temporal Signal / Airflow 3.1 HITL / HumanLayer 任选其一);
- 用"凌晨 3 点 kill -9"做一次恢复演练并记录实测恢复行为——这就是 §7 盲点四"恢复测试"的最小版。
参考来源(两章节稿合并去重,均为 2026-11-03 检索/阅读)
理论与经典论文
- Sagas (SIGMOD 1987):https://dl.acm.org/doi/10.1145/38713.38742 | PDF:https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf
- Härder & Reuter 1983(ACID):https://cs-people.bu.edu/mathan/reading-groups/papers-classics/recovery.pdf
- SIGMOD Record: Jim Gray at IBM:https://sigmodrecord.org/?smd_process_download=1&download_id=4373
- Pat Helland, Life beyond Distributed Transactions (CIDR 2007):https://www.ics.uci.edu/~cs223/papers/cidr07p15.pdf | ACM Queue 2016 重刊:https://queue.acm.org/doi/10.1145/3012426.3025012
批处理、框架与协议
- cron 历史:https://softpanorama.org/Utilities/Cron/history.shtml
- Spring Batch restart:https://docs.spring.io/spring-batch/reference/step/chunk-oriented-processing/restart.html | JSR-352/Java EE 7 批处理:https://www.oracle.com/technical-resources/articles/java/batch-processing-ee-7.html
- Airflow 发布公告(Airbnb 工程博客,2015-06-02):https://medium.com/airbnb-engineering/airflow-a-workflow-management-platform-46718aa94620 | ASF 顶级项目公告(2019-01-08):https://news.apache.org/foundation/entry/the-apache-software-foundation-announces44 | Airflow 历史(入门文):https://medium.com/data-science/getting-started-with-apache-airflow-df1aa77d7b1b | backfill/catchup:https://www.datainterview.com/courses/data-pipelines/backfills-catchup
- Hystrix 发布公告(Netflix Tech Blog,2012-11-26):http://techblog.netflix.com/2012/11/hystrix.html | Hystrix Wiki(能力细节):https://github.com/netflix/hystrix/wiki/how-it-works
- Step Functions 发布公告(AWS News Blog,2016-12-01):https://aws.amazon.com/blogs/aws/new-aws-step-functions-build-distributed-applications-using-visual-workflows | 错误恢复模式示例:https://blog.purple-technology.com/error-recovery-pattern-with-aws-step-functions
- Stripe 幂等设计:https://stripe.com/blog/idempotency | 幂等键史话:https://hatchet.run/blog/first-idempotency-key
- 夜间批处理案例:银行日终对账系统实战(知乎)https://zhuanlan.zhihu.com/p/2003869331243680993 | 7×24 核心系统与日切(博客园)https://www.cnblogs.com/luscinia/p/8635576.html | 银行核心 7x24 方案(fintx PDF)http://www.fintx.org/uploads/posts/7x24-continuous-accounting-system/%E9%93%B6%E8%A1%8C%E6%A0%B8%E5%BF%83%E7%B3%BB%E7%BB%9F7x24%E6%96%B9%E6%A1%88.pdf | 24 小时机制实现(ITPUB)http://m.blog.itpub.net/283313/viewspace-2152454
持久化执行引擎(横轴一手文档)
- Temporal Activity 超时/重试:https://docs.temporal.io/activity-execution | AI 定位页:https://temporal.io/ai/distributed-systems | Durable AI 文档:https://docs.temporal.io/ai | HITL cookbook:https://docs.temporal.io/ai/cookbook/human-in-the-loop-python | 教程:https://learn.temporal.io/tutorials/ai/durable-ai-agent | 定价:https://temporal.io/pricing | Temporal × Vercel AI SDK:https://temporal.io/blog/building-durable-agents-with-temporal-and-ai-sdk-by-vercel | Saga 补偿实践:https://dev.to/temporalio/compensating-actions-part-of-a-complete-breakfast-with-sagas-2782 | InfoQ: Building Temporal:https://www.infoq.com/presentations/durable-execution-control-plane | Cadence:https://cadenceworkflow.io
- Durable Digest(2026-01,OpenAI Agents SDK on Temporal):https://www.linkedin.com/pulse/durable-digest-january-2026-temporal-technologies-svsnc
- AWS Step Functions 错误处理:https://docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html | redrive:https://docs.aws.amazon.com/step-functions/latest/dg/redrive-executions.html | 超时陷阱:https://stackoverflow.com/questions/75987476/ ;https://repost.aws/questions/QUZ1kPB3rSTN-CY1nPmPkeIw/ | 重试解读:https://www.tecracer.com/blog/2023/08/handling-errors-and-retries-in-stepfunctions.html | Saga 模式:https://zhenye-na.github.io/blog/2022/06/19/distributed-transactions-and-sagas-in-microservices.html
- Restate Sagas 指南(已全文读取):https://docs.restate.dev/guides/sagas/ | 定位报道:https://www.scalablepod.it/en/startup/restate
- DBOS:https://www.dbos.dev | 轻量化主张:https://www.dbos.dev/blog/what-is-lightweight-durable-execution | crashproof AI agents:https://www.dbos.dev/blog/durable-execution-crashproof-ai-agents | Databricks 场景(2026-04):https://www.dbos.dev/blog/building-durable-agents-dbos-databricks | HN 讨论:https://news.ycombinator.com/item?id=42727970
- Inngest:https://www.inngest.com/blog/durable-execution-key-to-harnessing-ai-agents | durable steps:https://www.inngest.com/blog/ai-agents-inngest-durable-steps | 持久化工作流文档:https://www.inngest.com/docs/durable-execution/durable-workflows | agent-kit issue #196:https://github.com/inngest/agent-kit/issues/196
- durable execution 引擎对比讨论:https://www.linkedin.com/posts/joseph-fuge_lately-ive-been-down-a-curiosity-rabbit-activity-7414718374800347138-vkp7
- 行业调研(已全文读取;厂商研究,定性见 §5 幂等一段):Zylos, *Durable Execution for AI Agent Runtimes*(2026-04-24):https://zylos.ai/research/2026-04-24-durable-execution-agent-runtimes | Resonate journal:https://journal.resonatehq.io/p/durable-workflows-and-durable-ai
批处理编排平台
- Airflow 3.1 发布博客(HITL):https://airflow.apache.org/blog/airflow-3.1.0 | HITL 教程:https://airflow.apache.org/docs/apache-airflow/stable/tutorial/hitl.html | HITL Review provider:https://airflow.apache.org/docs/apache-airflow-providers-common-ai/stable/hitl_review.html | execution_timeout 坑:https://github.com/apache/airflow/issues/32512 | timeout 通知综述:https://www.linkedin.com/learning/data-engineering-pipeline-management-with-apache-airflow-45121487/configure-email-notifications-for-execution-timeout
- Prefect 事务与幂等键:https://www.prefect.io/docs/v3/advanced/transactions | 幂等管线博客:https://www.prefect.io/blog/the-importance-of-idempotent-data-pipelines-for-resilience
- Dagster op 重试:https://dagster.io/docs/guides/build/ops/op-retries | Astronomer 对比:https://www.astronomer.io/airflow/astro-vs-dagster | SLA-safe 模式集:https://medium.com/@Modexa/sla-safe-by-design-12-airflow-dagster-patterns-a5c28d56ed68
Agent 框架与平台
- LangGraph 持久化/中断/HITL:https://docs.langchain.com/oss/python/langgraph/persistence ;https://docs.langchain.com/oss/python/langgraph/checkpointers ;https://docs.langchain.com/oss/python/langgraph/interrupts ;https://docs.langchain.com/oss/python/langchain/human-in-the-loop | interrupt 发布博客:https://www.langchain.com/blog/making-it-easier-to-build-human-in-the-loop-agents-with-interrupt | resume 双重执行社区复盘:https://forum.langchain.com/t/how-to-resume-the-agent-workflow-after-interrupt/434/2 | https://github.com/langchain-ai/langgraphjs/issues/1298 | https://github.com/langchain-ai/langgraph/issues/3875
- OpenAI Agents SDK 守卫与审批:https://openai.github.io/openai-agents-python/guardrails | https://developers.openai.com/api/docs/guides/agents/guardrails-approvals | 批评:https://runcycles.io/blog/openai-agents-sdk-has-guardrails-for-content-but-nothing-for-actions | 评述:https://cobusgreyling.medium.com/openai-ai-agents-sdk-guardrails-206bb1e777bc
- Mastra:https://mastra.ai/docs/workflows/suspend-and-resume | https://mastra.ai/docs/workflows/human-in-the-loop | Durable Agents 博客:https://mastra.ai/blog/introducing-durable-agents | 已知限制 issue:https://github.com/mastra-ai/mastra/issues/11015
- Pydantic AI 持久化执行:https://pydantic.dev/docs/ai/capabilities/durable_execution/overview | Temporal 集成:https://pydantic.dev/docs/ai/capabilities/durable_execution/temporal | Temporal 官方博客:https://temporal.io/blog/build-durable-ai-agents-pydantic-ai-and-temporal
- Amazon Bedrock AgentCore:https://docs.aws.amazon.com/bedrock-agentcore/latest/devguide/runtime-sessions.html | 会话存储(2026-03):https://aws.amazon.com/about-aws/whats-new/2026/03/bedrock-agentcore-runtime-session-storage | 弹性 runtime(2026-09):https://aws.amazon.com/blogs/machine-learning/the-new-agentcore-runtime-elastic-optimized-and-consistently-fast-starts | 评析:https://devopsboys.com/blog/bedrock-agentcore-session-isolation-memory-2026
- LangSmith/LangGraph 定价:https://www.langchain.com/pricing
替代范式
- Batch API:https://www.certsafari.com/anthropic/claude-developer-foundations/learn/claude-api-cost-and-scale-prompt-caching-batch-processing-and-cloud-platforms | https://github.com/digitaldreams/local-batch-api
- n8n:HITL 文档 https://docs.n8n.io/build/integrate-ai/ai-examples/human-in-the-loop-for-tools | 社区帖(失败步骤续跑)https://community.n8n.io/t/best-practice-for-centralized-error-handling-and-retry-from-failed-step-in-production-workflows/300785 | (AI 工具失败错误工作流)https://community.n8n.io/t/setting-up-error-workflow-upon-ai-agent-tool-failure/252743 | (Reddit)https://www.reddit.com/r/n8n/comments/1xjcujk/
- HumanLayer:https://docs.humanlayer.com/release-notes
- 补偿缺口与社区实践:https://www.reddit.com/r/SpringBoot/comments/1ve5j7k/i_built_a_saga_compensation_library_for_spring_ai | https://www.linkedin.com/pulse/your-ai-agents-can-act-recover-brijesh-shah-zpkff
- 审批控制面:https://coldai.org/technologies/ai-agents/human-in-the-loop-approvals | https://digitalthoughtdisruption.com/2026/07/26/implementing-human-review-ai-agents-control-plane
Agent 时代评测与事件
- τ-bench(arXiv:2406.12045):https://arxiv.org/abs/2406.12045 | TheAgentCompany(arXiv:2412.14161):https://arxiv.org/abs/2412.14161 | CMU 新闻:https://www.cs.cmu.edu/news/2025/agent-company | Reliability and Effectiveness of Autonomous AI Agents(arXiv:2605.17036)
- Building Effective Agents:https://www.anthropic.com/research/building-effective-agents
- Operator 公告:https://openai.com/index/introducing-operator | Operator System Card:https://openai.com/index/operator-system-card
- Agents SDK 报道(InfoQ):https://www.infoq.com/news/2025/03/openai-responses-api-agents-sdk
- Assistants API 弃用公告(2025-08-26,sunset 2026-08-26):https://community.openai.com/t/assistants-api-beta-deprecation-august-26-2026-sunset/1354666 | 官方迁移指南:https://developers.openai.com/api/docs/guides/migrate-to-responses
- AgentKit 官方公告(2025-10-06):https://openai.com/index/introducing-agentkit/
- MCP 时间线:https://en.wikipedia.org/wiki/Model_Context_Protocol | A2A 规范:https://github.com/a2aproject/A2A/blob/main/docs/specification.md | A2A 发布公告:https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability
- Claude Code 2.0 公告:https://www.anthropic.com/news/enabling-claude-code-to-work-more-autonomously | Checkpointing 文档:https://code.claude.com/docs/en/checkpointing | Hooks 审批门课程:https://academy.claude.com/courses/ai-native-sdlc-playbook/hooks-as-approval-gates
- Claude Code routines(tessl, 2026-04):https://tessl.io/blog/anthropic-adds-routines-to-claude-code-for-scheduled-agent-tasks | Upstash: Background Coding Agents(2026-08):https://upstash.com/blog/how-background-coding-agents-keep-working | camelRun Background Agents(2026-10):https://camelai.com/run/background-agents
- METR 长任务研究:https://metr.org
- AutoGPT 失败复盘:https://tisankan.dev/autogpt-real-world-failures | LessWrong: Auto-GPT 讨论(2023-04):https://www.lesswrong.com/posts/s9JWqgnv7xT2mxmE7/auto-gpt-open-sourced-disaster
- The Agent Reliability Crisis(AIwire, 2026-07-01):https://www.hpcwire.com/aiwire/2026/07/01/the-agent-reliability-crisis
- LangChain State of Agent Engineering 2026(转述):https://www.linkedin.com/posts/bibekguptaweb_state-of-ai-agents-activity-7417074518428409857-3YxH | DZone: Agent Sprawl:https://dzone.com/articles/agent-sprawl-production | AI SRE 真实解决率 11.4%:https://cloudai.pt/ai-sre-agents-resolve-11-4-of-real-incidents-vendors-sell-you-70
- 2026 agent 幂等工程化:https://arcade.dev | https://hackernoon.com | https://focusclaw.com | Gartner 预测(AIwire 侧栏):https://www.hpcwire.com/aiwire
未核实与局限声明(两章节稿声明合并,最终稿修订时更新)
- X/Open XA 规范年份(1991 前后)与 HTTP 幂等方法 RFC 细节为协议通识,未单独检索原文。
- 初稿中 Hystrix(2012)、Airflow(2015 开源/2019 顶级项目)、Step Functions(2016-12)、Assistants API 弃用/关停、AgentKit 发布等日期类论断,最终稿已补官方出处(Netflix Tech Blog 发布公告、Airbnb 工程博客公告 + ASF 公告、AWS News Blog 发布公告、OpenAI 弃用公告与迁移指南、AgentKit 官方公告)。其中 Airbnb 工程博客公告 URL 由本次检索定位(标题与日期 2015-06-02 依检索结果),Medium 页面在本环境直接打开超时,未能逐字核验;AgentKit 公告页已实际打开核验(2025-10-06,并读到 Agent Builder/Evals 将于 2026-11-30 后停用的更新)。
- 初稿称 LangGraph resume 双重执行"社区复盘见 Reddit r/AI_Agents 及 LangChain 论坛",本次修订检索未能定位到具体 Reddit 帖,最终稿正文改引可定位的 LangChain 论坛帖与 GitHub issues(langgraphjs #1298、langgraph #3875)。
- LangChain《State of Agent Engineering 2026》细分数字来自对报告的 LinkedIn 转述而非报告原文;Datadog《State of AI Engineering 2026》原文未能直接打开(WebFetch 403),仅据 DZone 回应与检索摘要引用。
- 横轴评级与价格为 2026-11-03 文档级快照:评级是官方文档所示能力的文档级判断、非压测结论;Temporal/LangChain 等定价为第三方汇总,未逐项核实,以官网为准;Hatchet/Restate Cloud/Inngest Cloud/AgentCore 等成本未逐项核实。
- HumanLayer 本次检索未核实定价;部分泛域名来源(arcade.dev、hackernoon.com、focusclaw.com、hpcwire.com 侧栏)为方向性引用而非具体篇目深读。
- 两章节稿在 Temporal 补偿/幂等表述上的口径差异,已按正文"口径统一说明"合并(Temporal 平台化的是补偿的执行保证与官方样本,补偿语义与副作用幂等仍是用户代码责任),非新增外部事实。
- arXiv:2605.17036 与部分 2026 年来源(tessl、Upstash、camelRun、cloudai.pt 等)为章节稿检索所得,本次综合未重新打开原文核验,引用时请按链接复核。
- 最终稿新增"落地第一步"一节中的 SQL schema 为本课题建议的最小骨架(非任何厂商官方样例);成本数字为量级估算示例,token 用量与单价假设已在文中注明,非报价;800 条人审成本按 2 分钟/条、$50/小时的示例参数计算。
*本稿为最终稿(按独立审读意见修订,2026-11-03);评级、价格与 2026 年行业数字在正式引用前建议按上述链接二次复核。*