Skip to content
工程洞察
卓越94 / 100
证据32/35原创24/25结构19/20实用19/20
状态回去了,外部效果没有
数字员工 · 每日研究

状态回去了,外部效果没有

对齐恢复可以让模型上下文与受控工作区回到同一检查点,却不会自动撤销远端消息、记录或交易。端到端恢复需要独立的外部效果账本与恢复闸门。

Q-20260913-01Daily Runtime V5 · 2026-09-13English →

状态回去了,外部效果没有 ​

一个长时程智能体在发送远端请求后失败。恢复系统把模型上下文和工作区都退回到请求发生前:日志里没有结果,本地文件也回到了旧版本。对智能体而言,这像是一个尚未执行的动作;但远端服务可能已经写入记录、发送消息或扣减额度。

此时再次调用,不是简单的“继续”,而可能是第二次外部效果。对齐检查点能恢复局部因果一致性,却不能证明外部世界也被恢复。安全的端到端恢复必须在重试、补偿、接受现状或停止之前,单独核对每个外部效果的权威状态。

对齐回退解决了什么 ​

AgentRewind(智能体回退恢复方法)把每个决策边界表示为模型上下文与受控环境状态组成的对齐检查点。回退时,它同时恢复两者,从失败后缀生成经验记忆,再从恢复点启动新的执行后缀。保留的前缀来自执行记录,不靠重新执行旧工具调用来重建。

这一机制解决了真实而困难的问题:若只恢复上下文,模型会面对来自另一个历史时刻的文件;若只恢复文件,模型仍可能携带已经失效的推理。论文中的工程案例说明,对齐恢复可以保留有效修复、清除有害后缀,并让后续尝试从一致世界重新开始。

报告的基准结果也支持这种局部恢复价值。在主要比较中,GPT-5.4(生成式预训练变换器模型版本)采用该方法后,任务成功率从继续执行条件下的 62.2% 提升到 87.8%,最长检查项进度从 81.4% 提升到 94.3%;较小模型的对应指标也改善。Terminal-Bench(终端任务基准)2.0 版的泛化比较同样有利于对齐回退。

这些数字证明的是受测工程环境中的恢复效用,不是任意业务系统的全局回滚正确性。

保证在受控边界停止 ​

论文明确把环境回退的主要边界设在工作区目录树。该边界内,新建文件可以删除,被删文件可以恢复,后续修改可以撤销。边界外的状态则属于另一类事实:网络请求、软件即服务记录、远端数据库、消息、支付和已经消耗的凭据,不会因为本地快照恢复而自动逆转。

这形成一个危险但容易隐藏的组合:上下文与工作区彼此一致,二者却共同落后于外部世界。局部状态越整洁,智能体反而越可能确信旧动作没有发生。

不重放保留前缀也不能解决这一问题。它只说明恢复框架没有再次执行那段工具调用,并不说明调用已经造成的远端效果消失。

“已恢复”至少包含三种事实 ​

一个通用的 recovered=true(恢复成功标记)会压掉关键差异。恢复记录至少应分别表示:

  • 轨迹已恢复:当前模型上下文指向所选检查点;
  • 受控状态已恢复:工作区与该上下文属于同一代际;
  • 外部效果已对账:每个相关效果都有与该代际兼容的存在、不存在、已补偿或未知证据。

前两项由对齐回退机制直接支持。第三项需要另一个协议。只有前两项成立时,可以说“工作器已经恢复”;若第三项仍未知,就不能说“业务世界已经恢复”,更不能把回退自动解释为重试授权。

外部效果需要自己的账本 ​

检查点账本记录上下文、环境快照、保留前缀、失败后缀、恢复记忆、执行主体和尝试代际。外部效果账本则回答另一组问题:究竟哪一次操作作用于哪个目标,目标当时是什么版本,远端是否确认,调用是否可安全重放,以及补偿是否真的生效。

一条最低限度的效果记录应包含:

  • 在执行前分配的稳定发生标识;
  • 目标标识与权威前置状态;
  • 产生该效果的主体、尝试和检查点代际;
  • 请求标识或幂等键,以及远端可验证结果;
  • 可重放、幂等、可补偿、不可逆或未知的效果分类;
  • 补偿动作自己的发生标识与验证证据;
  • 恢复后对权威目标的最新读取。

这里的核心不是保存更多日志,而是让恢复决策不能只依据已经回退的本地世界。响应丢失时,“本地没有回执”不等于“远端没有效果”;本地文件删除也不能成为远端记录不存在的证明。

恢复闸门怎样决定下一步 ​

恢复检查点只让工作器重新具备规划资格。任何重要外部动作再次发生前,恢复闸门都应依据当前权威证据分支:

外部效果状态允许的恢复方向
已证明不存在在取得新授权后创建新的发生实例
已证明存在且结果符合目标不重复调用;让本地状态接受外部事实
已证明存在但结果不符合目标,且可补偿把补偿作为新的受治理效果执行并验证
不可逆从已经存在的事实继续,不能假装回到旧世界
未知失败关闭,继续取证或转交人工判断

“未知”必须是可持久化状态,而不是异常处理中的临时空值。它保护系统免于用超时、断线或缺失回执猜测现实。

幂等与补偿不是万能橡皮擦 ​

幂等接口能降低重复调用风险,但前提是相同键确实绑定同一业务效果,并且键的有效期覆盖恢复窗口。若恢复后的请求换了参数、目标版本或授权范围,它可能已经是新效果。

补偿也不是时间倒流。退款、撤回或反向写入都是新的外部动作,可能失败、部分成功或丢失响应。对补偿再次重试,仍需自己的发生标识和权威核验,否则系统会把原始重复风险变成重复补偿风险。

面向运行时的设计规则 ​

对于具备外部变更能力的数字员工,恢复合同应遵循几条原则:

  • 在调用前创建效果身份,而不是事后从日志猜测;
  • 把效果身份绑定主体、尝试和检查点代际;
  • 在工具接入时声明重放语义,不能等失败后临时决定;
  • 对响应不明的调用重新读取权威目标;
  • 将检查点选择与重试授权分开;
  • 对高影响、不可逆或状态未知的效果默认失败关闭;
  • 把“恢复机制运行成功”与“业务目标完成”记录为不同终态;
  • 在并发恢复中核对其他主体是否已合法改变目标。

边界与未决问题 ​

现有一手证据主要来自受控工程任务。企业系统若提供事务、幂等键或补偿接口,可以降低部分风险,但这些能力必须被接入恢复合同,不能凭名称假定。研究没有证明跨服务原子回滚、补偿正确性、跨主机一致性,也没有回答谁有组织权力选择回退点。

低风险只读任务不需要与支付系统相同的证据成本,具体实现可以按影响分级;但语义边界不应消失。系统可以诚实地报告局部状态已恢复,同时把外部效果记为未知。

真正安全的停止规则因此很简单:当外部效果状态未知时,不把一个整洁的检查点当成重放许可。

证据与引用:

Last updated: