L4.12.5silent phases need explanation设计研究
长时间没有输出的阶段需单独说明,否则会被判定为卡死
别名: 静默要解释 · not stuck · 没刷屏不等于死了
概念解释
代理会进入几分钟没有新步骤的阶段:等模型、等外部 API、等人、在跑一个不产生中间事件的批处理。界面若也跟着沉默,人会按卡死来行动——刷新、重开、再下一单。静默阶段要单独说明(silent phases need explanation):正在等什么、已经等了多久、超时之后会怎样、人现在能不能走。
转圈没有文字,等于把「等」和「死」做成同一种视觉。
机制
人用新事件当活着的证据。事件流一停,活着的证据断了,默认故事换成故障。位置与剩余若只报节点,不报「本节点内部在等」,剩余数字会冻结,冻结被读成卡死。过密是事件太多;静默是事件太少。两种都破坏跟随,方向相反。说明要把无事件解释成一种合法状态,而不是用假步骤去填——假填会违反真路径。
没有说明时,人的干预会打在健康的等待上:中止一次正在排队的付款,或重复提交造成双份。
怎么研究
插入一段无事件等待(已知会成功)。比较:无说明、转圈、转圈加「在等 X、已 t 秒、超时 T」。因变量:误中止率、重复提交率、该离开时是否留下、主观卡死判断。自变量:说明是否含对象(在等哪个 API)、超时是否可见、等待是否可取消。
误中止是主终点。说明让人更愿意等,但等错了真卡死,说明就过了头——所以要同时测真卡死时的检出。
边界
真的死了(调度器无心跳)不能靠「正在思考」遮着,心跳丢失应升成失败。过密日志里夹着静默,人更难发现「这一段其实没事件」。过程中纠错在等待里往往无拍可改,入口应变成「取消等待 / 换一条路」,而不是改对象。
怎么落地
- 超过你们测过的「人开始怀疑」的无事件时长,必须出现说明:等的对象、已等待、超时、可不可以走。转圈不得单独出场。
- 心跳丢失与合法等待分开表示。合法等待可取消;心跳丢失走失败上报。
- 验证:插入两分钟合法等待,看误中止和重复提交。两者大于零,静默就还在被当成卡死。再插入真死(断心跳),说明不应让人继续无限等——等下去,说明就把死遮住了。