L4.05.2executed steps must be reversible设计研究

已执行步骤需可回退

别名: 步骤回退 · agent rollback · 把做过的退掉

概念解释

中止挡住的是未来的步;已经跨过世界边界的步,要另有一条退路。已执行步骤可回退(executed steps must be reversible)要求代理对做过的每一类动作预备逆操作:撤回邮件、恢复文件、关掉刚开的权限,并且人可以点这条逆操作,而不必自己去各系统里手工拆弹。

停住之后世界还停在被改过的样子,只是不再继续改,这不叫回退。

机制

长任务把多个可逆与不可逆动作串在一起。人中止时,通常不是整条都该留着,也不是整条都该抹掉:可能前两步是对的,第三步开始偏了。回退需要按步寻址,而不是一个总的「撤销任务」。自动化若只存了「任务成功/失败」而不存每步的逆,人就只能对着外部世界做考古。

不可逆动作没有技术逆操作,回退在那里失效,必须在做之前用确认拦住——那是另一条的工作。这里处理的是技术上还能退的那些步,被产品忘记提供退法。

怎么研究

任务含若干可逆步(写草稿、加标签、改本地文件)和至少一步不可逆(对外发送)。中止后提供:无回退、整任务回退、按步回退。因变量:人能否只退错误的那几步、误退正确步的次数、回退是否真的在外部系统生效。自变量:步是否有逆操作记录、回退粒度、不可逆步如何被标出。

外部生效必须查真实系统(测试邮箱、测试盘),不能只看产品内的「已撤销」标签。

边界

从未执行的步无所谓回退。部分完成之后世界处于哪一种中间态、要不要人清理,是状态说明的问题。对外已发生、社交上不可逆的动作,回退只能变成道歉和更正,不要假装等于没发生过。随时停不等于已经退。

怎么落地

  • 每一种会改世界的工具调用,实现时同时实现逆调用,并把逆与该步的标识绑在一起。
  • 中止之后给出按步的回退清单,默认只勾选中止点之前仍可逆且人未确认要保留的步。不可逆步标成「退不了」,不要做假按钮。
  • 验证:让代理改三个本地对象、发一封测试信,中途中止,只回退第二个对象。第二个必须回去,第一和第三个必须还在,测试信必须仍标为退不了。产品内标签与外部系统不一致,回退就是假的。

延伸

  • 同组L4.05.1 长任务需可随时中止 · L4.05.3 部分完成的状态需明确
  • 相邻L4.07 行动前确认 · L4.11 行动前确认与不可逆操作 · L4.13 代理的失败上报与求助
  • 站内检索rollback · compensating action · undo

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/L4.05.2