L4.05.2executed steps must be reversible设计研究
已执行步骤需可回退
别名: 步骤回退 · agent rollback · 把做过的退掉
概念解释
中止挡住的是未来的步;已经跨过世界边界的步,要另有一条退路。已执行步骤可回退(executed steps must be reversible)要求代理对做过的每一类动作预备逆操作:撤回邮件、恢复文件、关掉刚开的权限,并且人可以点这条逆操作,而不必自己去各系统里手工拆弹。
停住之后世界还停在被改过的样子,只是不再继续改,这不叫回退。
机制
长任务把多个可逆与不可逆动作串在一起。人中止时,通常不是整条都该留着,也不是整条都该抹掉:可能前两步是对的,第三步开始偏了。回退需要按步寻址,而不是一个总的「撤销任务」。自动化若只存了「任务成功/失败」而不存每步的逆,人就只能对着外部世界做考古。
不可逆动作没有技术逆操作,回退在那里失效,必须在做之前用确认拦住——那是另一条的工作。这里处理的是技术上还能退的那些步,被产品忘记提供退法。
怎么研究
任务含若干可逆步(写草稿、加标签、改本地文件)和至少一步不可逆(对外发送)。中止后提供:无回退、整任务回退、按步回退。因变量:人能否只退错误的那几步、误退正确步的次数、回退是否真的在外部系统生效。自变量:步是否有逆操作记录、回退粒度、不可逆步如何被标出。
外部生效必须查真实系统(测试邮箱、测试盘),不能只看产品内的「已撤销」标签。
边界
从未执行的步无所谓回退。部分完成之后世界处于哪一种中间态、要不要人清理,是状态说明的问题。对外已发生、社交上不可逆的动作,回退只能变成道歉和更正,不要假装等于没发生过。随时停不等于已经退。
怎么落地
- 每一种会改世界的工具调用,实现时同时实现逆调用,并把逆与该步的标识绑在一起。
- 中止之后给出按步的回退清单,默认只勾选中止点之前仍可逆且人未确认要保留的步。不可逆步标成「退不了」,不要做假按钮。
- 验证:让代理改三个本地对象、发一封测试信,中途中止,只回退第二个对象。第二个必须回去,第一和第三个必须还在,测试信必须仍标为退不了。产品内标签与外部系统不一致,回退就是假的。