L1.06.4three failure kinds need three fallbacks设计研究

失败分为无输出、错误输出与部分输出,三者需要不同的降级路径

别名: 失败分型 · 无输出错误输出部分输出 · typed degradation

概念解释

空、错、半成品不是同一种事故。空是什么都没有;错是有一份不能用的完成态;半成品是有能用的片段和明确的缺口。分型降级(typed degradation)给三种失败三条路:空要另起或换通道;错要隔离并提供确定替代;半成品要保住已完成部分、只补缺口。

一条通用的「出错了,请重试」把三种都当成空来处理,是最常见的类型错误。

机制

人在三种局面里的资产不同。空:投入只在提示,重来的损失是再等一次。错:一份看起来完整的对象已经占住结果槽,若不隔离,会混进后续编辑。半成品:已生成的列表项、已填的字段是沉没但可挽救的劳动,丢掉它们等于惩罚部分成功。

检测信号也不同。空靠超时和空包;错靠校验、工具返回、或用户标记;半成品靠结构是否闭合、必填槽是否空。用同一检测去喂同一退路,必然错配:把半成品当空会丢掉资产,把错当半成品会把毒数据留在草稿里。

怎么研究

三类故障分别注入,比较「统一重试」与「分型路径」。因变量:资产保留(半成品字段是否还在)、毒数据隔离(错误完成态是否还能被一键发送)、恢复时间。自变量:用户是否能把「错」改标为「半成品」(有时一句里只有一个假数字)。

分型的金标准是事后标注,不是模型自报。自报会把错说成半成品以显得可救。

边界

流式中止造成的半成品,与模型自己停在半截,对用户是同类资产,可走同一条「保留并继续/导出」。无法校验的开放散文里,「错」很难自动分出,只能提供用户标记;未标记时宁可当完成态加上弱提示,不要擅自当空删掉。这条不处理「看起来完全正常的错」——那是检测器盲区,不是分型里的「错」已经检出的情况。

怎么落地

  • 失败面板分三种主按钮:空 → 换通道或再试;错 → 丢弃该结果并打开确定路径,结果槽清空;半成品 → 保留可见片段,标出缺口,允许只补缺口。
  • 错的结果默认不能复制到「已完成」或对外发送,除非用户显式声明「我要当草稿用」。
  • 半成品的缺口用结构标,而不是一段含混的「可能不完整」。
  • 验证:对同一功能注入空包、一个校验失败的完整 JSON、一个缺字段的 JSON。三种界面若长得一样,分型不存在。再看半成品字段在降级后还在不在、错误 JSON 能不能被一键发出。

延伸

  • 同组L1.06.1 失败时需回到确定性路径 · L1.06.2 降级顺序需预先定义 · L1.06.3 静默失败比明确失败更有害 · L1.06.5 最危险的是看起来正常的错误输出,它不触发任何降级机制 · L1.06.6 降级到确定性路径的前提是该路径一直被维护,而非只在故障时才存在 · L1.06.7 降级需保留用户已输入的内容,让用户从头再来是最常见的降级失败 · L1.06.8 超时与限流是可预期失败,其说明方式应与模型出错区分开
  • 相邻L3.11 生成过程的流式呈现 · L4.13 代理的失败上报与求助 · L3.12 生成内容的编辑与接管
  • 站内检索typed degradation · empty vs wrong vs partial · failure taxonomy

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/L1.06.4