L4.05.1long-running tasks must be abortable设计研究

长任务需可随时中止

别名: 随时中止 · abort agent task · 代理可打断

概念解释

代理一旦开始跑长任务,人必须在任意时刻能让它停,而且停是真的停:不再调用工具、不再对外发送、不再写下一笔。长任务可随时中止(long-running tasks must be abortable)说的是执行权上的急停,不是进度条旁边摆一个灰掉的按钮。

点了停,系统回「正在收尾」然后又发出三封邮件,这不叫可中止。

机制

自动化把感知—决策—执行收成连续过程,连续过程没有默认的人的插入点。长任务把这个过程拉到分钟或小时,人的意图在中途会变:发现对象错了、优先级变了、看错了范围。没有急停,人只能等它跑完再补救,补救成本按已经跨过世界边界的次数涨。监督控制里的「人能抑制自动化」是层级的一部分;代理若不能被抑制,层级已经悄悄升到了完全自主,不管界面怎么写。

中止要作用在执行调度上,不是作用在渲染上。停掉流式文字但工具调用还在飞,是假中止。

怎么研究

让代理跑一条含多次对外动作的长链,在第 n 步发出中止。因变量:中止命令之后是否还有对外动作、从点到真正停的时延、人是否相信已经停了。自变量:中止是否接到调度器、进行中的工具调用是否被取消、界面是否在未停时显示「已停止」。

「以为停了」是关键的主观量,必须和实际动作日志对照。

边界

短到一次点击就结束的动作谈不上中途中止,该用的是确认或撤销。不可中断的物理过程(某些工业工序)需要的是预先设计的安全停机程序,不是 UI 上的随时停。已经做完的步骤能不能退,是回退的问题;这里只要求「从此刻起不再做」。过程看不看得见,不在这条里。

怎么落地

  • 长任务界面常驻一个中止,接到调度器:发出后禁止新的工具调用和新的对外动作。进行中的调用能取消的取消,不能取消的必须在界面上标成「停不掉、仍在飞」。
  • 未真正停住之前,不得把状态写成已停止。收尾如果还包含对外动作,那些动作必须先被拿掉,才能叫中止。
  • 验证:在测试账本上让代理发连续动作,中途点停,看点之后账本是否还增加。增加了,中止就还没接到调度。再问操作者「它现在停了吗」——和账本不一致,显示也是假的。

延伸

  • 同组L4.05.2 已执行步骤需可回退 · L4.05.3 部分完成的状态需明确
  • 相邻L4.08 任务进度可见 · L3.11 生成过程的流式呈现 · L4.07 行动前确认
  • 站内检索abort · interruptibility · supervisory control

同组卡片

快捷操作

分享

分享当前页面

ios_share

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