HAVENLON 不完美主体 | #10 Human-in-the-Loop 也救不了一个错误的控制结构
当 AI Agent 开始获得越来越多真实执行能力,很多系统自然会想到一种方案:把人放回 Loop 里。Agent 可以分析、规划、调用工具、准备动作,但真正高风险的事情,在执行前再让一个人点一下 Approve。这看起来非常合理,也确实比完全无约束的自主执行安全得多。
但把"不完美主体"这个前提继续推下去,就会碰到一个不太舒服的问题:为什么我们默认这个人一定比 Agent 更可靠?人会疲劳,会误判,会被错误上下文影响,会机械审批,会形成 Automation Bias,会因为信息不足而依赖 Agent 的摘要,甚至在面对一个复杂系统时根本无法真正理解自己正在批准什么。
于是 Human-in-the-Loop 很容易从一种安全机制变成一种心理安慰:界面上有一个人,流程里有一个 Approve,日志里有一条人工确认,组织因此觉得"这件事不是 AI 自己决定的,所以应该安全"。但安全从来不是看流程里有没有人,而要看这个人到底有没有独立判断能力、独立证据和真正的拒绝权。
Human-in-the-Loop 不是一种结构,只是一个位置。真正决定安全的,是这个位置到底拥有多少 Authority。
一、人在 LOOP 里,不等于人在控制
很多系统把"人工参与"直接等同于"人工控制",这两个概念差别很大。一个人可以看到 Agent 的动作,不代表他能阻止;可以收到通知,不代表他能拒绝;可以拥有 Approve 按钮,也不代表下游一定尊重这个结果。甚至审批动作本身,也可能只是流程上的确认,而不是现实执行之前不可绕过的条件。
所以判断 Human-in-the-Loop 是否有效,不能只问有没有人,而要问这个人能不能 Halt,能不能 Reject,能不能改变参数,能不能让执行真正失效。如果这些都做不到,他可能只是站在旁边。Presence 不等于 Authority。
二、人工审批最容易制造"安全已经完成"的错觉
一个系统原本是 Agent → Tool → Execution,加一层之后变成 Agent → Human Approval → Tool → Execution。从流程图上看安全了很多,团队也容易就此停止追问:这个 Approval 到底检查了什么?人看到的是什么?动作执行时有没有变化?审批对象和执行对象是不是同一个?审批之后参数还能不能被修改?人是否拥有足够信息理解风险?
一个本该继续工程化的问题,被"有人工审批"过早终结了。人工审批很容易被当作万能的安全证明,实际上它只是增加了一个主体,而这个主体仍然可能错。
把人加进流程,不等于把不确定性移出系统。
很多时候,只是把错误概率从一个主体转移到了两个主体之间。
三、人本身就是典型的不完美主体
如果这个系列只把 AI 当成 Fallible Subject,它其实并不成立,因为人同样如此。人会看错对象,理解错任务,漏掉信息,依赖经验做快速判断,在压力下减少检查,在重复操作中形成惯性,因为时间不足而相信摘要,因为前面十次都没问题就默认第十一次也没问题。这些既不是道德问题,也不是能力问题,而是人类认知的基本特征。
因此 Human-in-the-Loop 不该被理解成"把不可靠的 AI 交给可靠的人",更准确的描述是:一个不完美主体的判断,被交给另一个不完美主体复核。这当然可能提高整体可靠性,但前提是两者足够独立;如果不独立,错误就会继续传播。
四、最危险的审批,是"看起来有选择,其实没有信息"
想象这样一个审批页面:Agent 请求支付 50,000 美元,风险等级 Low,建议 Approve。审批者需要在 Approve 与 Reject 之间做决定,但为什么风险是 Low?谁判断的?这笔钱为什么应该付?收款对象是谁?原始任务是什么?有没有订单 Evidence?状态有没有发生变化?这些信息可能一条都没有。
于是审批者并没有在做独立判断,他只是对 Agent 已经整理过的结论进行二次确认。这时 Human-in-the-Loop 很容易退化成 Human-confirming-the-Agent。
如果人只能看到 Agent 的结论,就很难成为 Agent 的独立控制。
真正的独立审批必须能接触独立 Evidence,否则两者共享同一个认知来源。
五、共享上下文会制造共同失效
假设 Agent 因为一个错误数据源产生了错误判断,随后生成审批说明"供应商付款已经完成确认",人看到之后批准。表面上是两层控制,实际上 Agent 的判断来自错误数据,人的判断来自 Agent 的总结,两者共享同一个错误前提,这就是典型的 Common-Mode Failure。
两个主体不等于两层安全,只有两个独立的判断来源,才可能形成真正的分层。
所以审批设计不能只追求"有人看过",必须追求人看到了与 Agent 不同、足以独立判断的证据。
六、AUTOMATION BIAS 会让人越来越像"批准机器"
AI 越强,Human-in-the-Loop 反而可能越容易失效。最初审批者会认真检查每一个动作,但当 Agent 连续 99 次都对,人在第 100 次自然会降低警惕;再往后系统开始提供 Recommendation、风险评分和自动解释,人只需要确认,最终变成看一眼、点 Approve。
这不是人变懒,而是高准确率的系统天然会塑造人的行为。
当 AI 长期正确时,人类监督最容易从判断退化成确认。
这意味着 Human-in-the-Loop 的安全价值会随时间衰减,如果结构不强制独立验证,这种衰减几乎是必然的。
七、审批规模一上来,人就会被机器速度击穿
人类审批还有一个现实问题:吞吐量。一天 10 个高风险动作可以认真看,100 个开始疲劳,1000 个根本无法深度理解。如果 Agent 每分钟产生数百个请求,Human-in-the-Loop 就会陷入根本矛盾——要么阻塞自动化,要么降低审批质量。
组织通常会妥协:低风险自动通过,高风险人工审批,然后提高阈值,再做批量 Approve,最后人只看极少数异常。这时所谓 Human-in-the-Loop 已经不是逐次控制,而更像 Human-on-the-Exception-Path。这本身没有错,问题在于系统必须承认这一点,不能一边让机器高速自动执行,一边继续宣称"有人在 Loop 里,所以安全"。
当机器速度超过人类认知吞吐量,人工审批就不可能继续承担最终安全边界。
八、审批按钮并不等于否决权
很多系统有 Reject,但 Reject 也未必是最终控制。审批人拒绝之后,管理员可能 Override,Agent 可能换一条 API,SaaS 可能绕过当前流程,某个 Root 用户可以直接执行,甚至 Executor 根本不验证审批结果,只接受上游传来的 Action。这种情况下,Human-in-the-Loop 更像治理流程,而不是不可绕过的控制。
真正的 Authority 必须能回答:如果人说 No,Reality 会不会真的停下来。如果答案不是绝对的,这个"拒绝"就不是 Final Denial。
拒绝只有在无法被同一信任域绕过时,才真正构成边界。
九、人工审批也可能只是"把责任签给一个人"
有些系统引入 Human-in-the-Loop 并不是为了提升控制质量,而是为了责任归属:系统记录某某人在 15:42 点击 Approve,出事之后可以说有人批准过。从审计角度这有价值,从安全角度它可能完全没有降低执行风险。
Accountability 与 Control 不是一回事。责任可追溯帮助事后调查,控制则必须在执行发生之前阻止不该发生的动作。
能证明"谁批准了事故",并不等于系统拥有阻止事故的能力。
如果人工审批最终只提升了 Accountability,却没有提高 Prevention,它就不能被当成真正的执行边界。
十、真正的问题不是"人还是 AI",而是"单主体还是结构"
很多 AI 安全讨论最后会变成二元问题:应该相信 AI,还是相信人?不完美主体想拆掉的恰恰是这个二元结构,因为答案可能是两者都不能被假设永远正确。AI 会错,人也会错。
所以问题不应该停在"谁做最终决定",而应该变成"什么结构可以让任何一个主体的错误都不能直接进入现实"。这会把讨论从 Human vs AI 转向 Subject vs Structure。
成熟的安全不是选一个更可信的主体,而是减少系统对任何单一主体正确性的依赖。
十一、人应该参与边界定义,而不是被迫审批每个动作
Human-in-the-Loop 并非没有价值,人在很多地方依然非常重要:定义业务目标,设定 Mission,确定风险偏好,建立边界,处理异常,解决冲突,批准高价值的策略变化。这些任务需要语义理解、责任判断和处理模糊现实的能力。
但这与"每一个 Action 都让人点一次 Approve"完全不同。可扩展的 Agent 系统更合理的结构是人定义边界、机器在边界内自动执行,超出边界时再把决策交还给人,这样人的认知资源才会被用在真正重要的地方,而不是被机器请求淹没。
人最有价值的位置不一定是在每次执行前点确认,而是在定义什么可以被自动执行。
十二、有效的人类控制节点应该具备什么
如果确实需要人工参与,一个有效的人类控制节点至少要满足几个条件:拥有独立 Evidence,而不是只看 Agent 的总结;拥有真正的拒绝权,拒绝之后执行必须停止;审批对象必须绑定,不能批准 A 最后执行 B;审批应有时效,不能今天批准、明天状态变化后继续沿用;关键参数必须锁定,金额、对象、范围变化之后需要重新验证;人类的审批本身也应被记录成 Evidence。只有这样,人工判断才真正成为执行链条中的独立 Authority。
Human-in-the-Loop 的价值不在于"有人参与",而在于"这个人是否拥有一个不依赖 Agent 的独立判断位置"。
十三、审批必须与具体 ACTION 绑定,而不是泛化授权
一个常见风险是用户批准了一个模糊任务,Agent 随后执行大量动作。比如"允许 Agent 完成这次服务器迁移",这条 Approval 可能覆盖创建实例、修改网络、删除旧节点、迁移数据库、更改 DNS。如果后面某一步发生偏差,系统仍会认为用户已经批准了整个任务,这就是 Broad Approval。
强的执行控制需要更明确的绑定:Intent、Object、Boundary、State 和 Critical Action。
审批如果不能明确对应执行对象,就很容易从授权变成免责。
执行层因此必须验证:当前 Action 是否仍是此前批准 Action 的合法后继。
十四、最容易被忽略的是"执行时状态"
人批准时看到的是一个状态,执行时可能已经是另一个状态。审批发生时余额充足、对象正确、权限有效、环境稳定,十分钟后执行时,这些可能都已经变了。如果系统认为人工审批具有永久权威,就会把旧判断强行套用到新现实。
这也是 Execution Control 必须存在 Runtime Check 的原因:Human Approval 可以作为 Proof,但不能替代当前状态的验证。
人批准的是某个时刻的一组条件,不是对未来所有状态的无限授权。
十五、人工审批不是 FAIL-SECURE
很多系统会在不确定时把任务交给人,这很合理,但如果人的判断本身缺少信息,并不能真正解决 Unknown。比如系统无法确认订单是否批准,于是弹给人:是否继续付款?而人也看不到审批 Evidence,只能凭经验判断。这不是消除 Unknown,只是把 Unknown 转交给了另一个主体。
真正的 Fail-Secure 是:未知本身就不满足执行条件,必要时让人去补齐 Evidence,而不是让人凭直觉把 Unknown 变成 Allow。
人类判断不能被用来把"未知"伪装成"已知"。
十六、有效的人工判断应该能改变系统,而不只是处理个案
如果一个人每天反复拒绝同一类错误请求,最成熟的做法不是让他继续每天拒绝,而是把这类判断沉淀进 Boundary,把人的经验转化成结构:某类金额必须双重 Evidence,某种对象不能自动操作,某种状态永远禁止执行,某种异常必须进入 Safe Mode。这样系统才能真正积累。
人工判断最有价值的结果,不是多一次审批,而是减少未来需要审批的次数。
十七、HUMAN-IN-THE-LOOP 应该变成 HUMAN-DEFINES-THE-BOUNDARY
如果 Agent 要真正规模化,Human-in-the-Loop 必然会变化——不是人消失,而是人的位置改变:从每次动作都参与,变成定义规则、设置边界、处理异常、承担最终治理。正常动作自动执行,边界动作自动拒绝,未知状态 Fail-Secure,只有真正需要语义判断的少数情况才交给人。
这时人不再是 Agent 后面的一个按钮,而是整个执行体系边界的设计者与例外裁决者。这才是适合高自主系统的 Human Role。
十八、它不能成为错误架构的最后补丁
如果一个系统存在这些问题:Agent 同时拥有 Decision 与 Execution,Context 不可信,Authority 没有拆分,执行参数没有绑定,State 不重新验证,Evidence 不完整,最终边界可以被绕过——那么在中间加一层人工审批,并不能从根本上修复结构,因为人同样是不完美主体。他可以降低风险,却无法成为万能的安全证明。
需要改变的是底层逻辑:不要让任何一个主体的瞬时判断直接拥有现实效力,Agent 不行,人不行,Owner 不行,SaaS 也不行。最终执行应该属于可验证条件,Human Approval 可以是其中之一,但不应该是唯一。
Human-in-the-Loop 最成熟的形态,不是"人拥有最终真理",而是"人作为一个重要主体,被嵌入一个不依赖任何单一主体绝对正确性的结构"。
真正的问题从来不是 AI 应不应该替代人,也不是人是不是 AI 最后的保险,而是一个系统究竟把最终控制建立在主体身上还是结构身上。结构如果错了,再聪明的人也只能不断修补;结构足够清楚,人和 AI 都可以在各自的位置上发挥能力,而不必承担"永远不能犯错"的责任。所以最可靠的系统不是 AI 做决定、人来兜底,而是 AI 可以错、人也可以错,但没有任何一次错误能够绕过最终执行边界。
更多推荐

所有评论(0)