首页/文章/Claude Code 崩了能续跑还不够:退款、发信、付款这类工具要标 never 并先查状态

Claude Code 崩了能续跑还不够:退款、发信、付款这类工具要标 never 并先查状态

· Zumac.Ai

崩溃续跑解决了什么

云上跑 Claude Code / Codex / OpenCode 时,函数超时或进程挂掉,整轮任务常要重来。Vercel 开源的 durable-harness 从外部包住现有 harness:模型调用与工具调用写入持久日志,挂了由新实例读日志接着跑;已完成的模型调用不重跑,避免同一段 token 计两次费。

这解决的是「跑到第 40 步死掉」——不是模型不够聪明,是 harness 循环太脆。

没解决什么:副作用可能已经发生

社区连续提醒同一点:

  • @Real_SlickShady:每个工具要有 replay 策略。查询类标 safe,崩溃后可再跑;退款类标 never。
  • @Flextor97:标了 never 却在执行中被掐断时,恢复后模型收到的是 「possibly run」(可能已经执行过)——于是它得自己判断退款有没有出去。请给它一个查询工具,而不是盲目再调一次退款。
  • @Acetrumtech:Durable ≠ exactly-once。 中断的工具调用可能已经改了外部系统;要配套 replay 规则、幂等键、状态检查一起上线。
  • @sukin_s:续跑时,邮件、PR 评论、付款若已发出,再跑就是重复;用 run id + step id 做键,否则「durable」只是「重复得更稳」。

可执行清单(接长任务 / 云代理前)

  1. 列出所有有外部副作用的工具:发信、发评论、创建工单、退款、扣款、合并 PR……默认 never 或等价策略。
  2. 为每个 never 工具配一个只读查询:订单状态、退款单号、邮件是否已发送。
  3. 在业务侧做幂等:同一 run/step 键只生效一次。
  4. 不要假设「换了 durable-harness 就不会双花」——日志保证的是会话连续性,不是支付系统的 exactly-once。

对照官方工程博文核对你所用版本的 replay 语义后,再把长任务丢上云。

和「本机 LaunchAgent 保活」的分工

本机用进程保活,解决的是「CLI 挂了谁拉起」;durable-harness 解决的是「云函数死了任务状态怎么续」。两者都不管支付系统有没有扣过款。长任务上云时,先标 never 与幂等,再谈自动恢复,顺序不要反。

如果你想把 Claude Code 放在一台常开、整机独享的新加坡 Mac mini 上长期运行,可以了解 Zumac.Ai,咨询 Telegram @singatao。

来源

Zumac.Ai 新加坡 Mac mini M6,整机独享,¥999/月起,联系 Telegram @singatao。
查看方案与费用 · 帮助中心

返回首页 · 更多文章

Telegram 客服