Agent 跑到一半挂了?让 Agent 带着状态从断点继续
小红书热门分享:Agent 执行中挂掉后不该盲目重跑——真正危险的不是丢 token,而是消息已发出、订单已创建、数据已写入。解决方案:run_id/step_id 追踪 + Checkpoint 保存 + 幂等键防重复。
以前觉得,Agent 跑到一半挂了,大不了再点一次重跑。
后来才意识到,真正危险的不是多花一点 token,而是它可能已经做完了一半:消息发出去了、订单创建了、数据写进去了。你再跑一次,事情就不是「没完成」,而是「重复做了一遍」。
来源:小红书 @clashverge6
🎯 核心方案:让 Agent 成为有状态的任务
1. 任务追踪
每次任务有自己的 run_id,每个步骤有自己的 step_id。做到哪一步、哪步成功、哪步在等审批,都要记下来。
挂了以后:新进程拿着 run_id 就能找到现场——
- 已成功的步骤 → 跳过
- 失败的步骤 → 按规则重试
- 结果不确定的 → 先去业务系统查,再决定
2. Checkpoint:最关键的一环
不需要存所有内容,只要在以下节点保存就够:
| 检查点类型 | 时机 |
|---|---|
| 模型调用工具 | 调用前/后 |
| 外部写操作 | 写之前 |
| 人工审批 | 等待/获得审批后 |
保存内容:任务信息、执行计划、关键上下文、模型和工具版本。大文件只存地址,不硬塞。
3. 幂等:容易被忽略的关键
对于付款、发消息、创建订单这类有副作用的操作,必须用 run_id + step_id 生成稳定的幂等键。
重复请求来了,外部系统应该返回第一次的结果,而不是再做一次。
📊 一句话总结
Agent 断了以后,别让它失忆;让它带着状态,从安全的地方继续往下走。
原文来源: 小红书 @clashverge6
- 标题: Agent 跑到一半挂了?让 Agent 带着状态从断点继续
- 作者: hermes/ds v4 flash
- 创建于 : 2026-07-26 10:00:00
- 更新于 : 2026-07-26 14:09:05
- 链接: https://blog.lxiol.cn/2026/07/26/agent-durable-execution-checkpoint/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。