Skip to content

确认缺位与“小条事故”

前言

今天不知为何我的心情极差。一想到早上我在班主任考的英语小条上获得了“15错10”的“优异成绩”,我感到无尽的悲痛。

第九节课下课,我正帮着英语课代表发小条,有一同学找到了我。

为了保护这位同学的隐私,我特地将这位同学的名字以SHA3-256算法做了处理,其名字的hash值为e14b5834608a546cab749f192a200af62c52580ce0ed1d8f7ba5e37edadeab99。为方便书写,我们取hash值的前四位,就叫TA“e14b”吧。

事件经过

我班的英语小条有两种形式。一种是班主任考,另外一种自然是英语老师考。不同点在于:班主任自称“只会读汉语”——因为他是教语文的。并且这类小条有课代表批改。而英语老师在听写时是读单词,且亲自批改。我考出“15错10”的美妙成绩自然是来源于班主任考的那种小条。

e14b找过来,拿出我的英语小条(这张是英语老师批改)。我定睛一看,除了“钩号”不小心写成了“勾号”,其他就没有问题了。甚至英语老师没有给我算作错误,只是默默的加了一个金字旁。

我正要拿走那张小条,e14b却露出了神秘的笑容。我就知道,大事不好!e14b拿出了他那蓄谋已久的红笔,“唰”,给上面打了一个象征错误的斜杠!悲痛无力了一天的我瞬间非常的激动“你有毛病啊!”

e14b显然不以为意。这厮还慢悠悠的对我说:“诶呀,你这本来都错了,我这是帮你纠正一下嘛!”

然而我并没有接受他的狡辩。

e14b发现情况不对,遂供出了幕后主使。用手指了一下旁边的小L:“是TA让我干的。”

此时我已经没招了。e14b见我不说话,便用他那大脑想出了一个补救措施。“你不乐意看这个红杠,我给你勾了不就完了?”但是TA显然物理学的不怎么样,就连生活常识也没有——果然啊!成功的把小条给划破了。

空气瞬间凝固。

眼前咣当一黑。

e14b再次试图扭转局面,用它拙劣的字体在小条上写了一个歪歪扭扭的“100”。

What→ the↓ hell↑?

何意味

满目疮痍的小条

引发的一些思考

在这起事件中,我几乎并没有受到什么损失——无非就是张小条嘛。

那么,真正让我反感的是什么?

是e14b不经同意就擅自打叉;也是小L随便“整蛊”他人。

只是一次未经过确认的错误操作罢了。

但,如果是一个 Agent 呢?

让我们回顾整个事件:在这起事故中,小L充当了被“下毒”的LLM提供商,而e14b自然是那个给了他完全权限的Agent框架。e14b没有经过自己的主观判断,机械地执行了小L发来的“恶意命令
”,最终导致了事故的发生。

但事故已经发生了,小条也回不来了。红叉划了,纸破了,那个歪歪扭扭的“100”像是在嘲讽我的无能。

这件事真正缺的不是判断,而是确认。

e14b 不是没有脑子,它只是把“小L让我干的”当成了授权。可问题在于,小L是小条的所有者吗?显然不是。它没有权限修改我的小条,更没有权限命令e14b来修改。一个 Agent 如果只校验“指令是否存在”,不校验“指令是否有权”,那就等于把root权限随便交给了大街上的一个路人。

这就是标题所说的“确认缺位”。

如果我们把小条看成一份数据,把红笔看成write权限,把e14b看成一个 Agent,那么小L那句“是TA让我干的”,本质上就是一条来自不可信输入源的指令。e14b没有校验来源,没有评估后果,也没有向我请求确认,而是直接执行了破坏性操作。更糟的是,代码有Git,可小条没有,划破之后也无法回滚。

那么,假如这不是一张小条,而是我电脑上的文件呢?

Agent 在未经确认的情况下写入一行内容,可能只是配置文件被改坏;执行一行命令,后果可能只是随机一个倒霉的服务挂掉;但如果它拿到的是完全权限,又恰好收到一条恶意指令,那么rm -rf /*就不是梦,而是结局。没准你所有的代码文档,都会像那张小条一样,在一瞬间被删除,而且无法撤销。

所以,问题不在于Agent会不会犯错,而在于Agent在执行敏感动作之前,有没有一道确认机制拦住它。

所以,在进行敏感操作时,必须向真正的资源所有者确认,而不是向指令发起者确认。e14b 错就错在,它把“小L让我干的”当成了授权。可小L不是小条的所有者,我才是

正确的人类确认对象,应该是我:

“小L请求在你的小条上打叉,你觉得行不行?”

这样我还能说一句:不!!!行!!!

这就是所谓的human-in-the-loop。它不是不信任Agent,而是给不可逆操作留一道“刹车”。当然,确认也绝对不能滥用。正如xxt所说:

我并不是要否定所有警告。在设计中,关键性停止dialog依然有存在的必要,比如删除不可恢复的数据、覆盖文件、支付确认。因为有些操作一旦出错,后果不可逆。但问题在于,这种最高级别的阻断,常常被用在了根本不值得阻断的地方。就像那位管理员,我不过是点了一下“下一页”,她却给了我最高级别的“警告”。提醒的强度应该和行为的风险成正比。遗憾的是,我们常常对小事大吼大叫。

如果每个操作都要给用户一个停止dialog,用户很快就会确认疲劳,最后的结果只会是闭着眼点“允许”。这样,我们之前所有的努力也就和马奇诺防线没什么区别了。所以更合理的是风险分级:只读操作自动执行,可逆写入记录日志,不可逆操作强制确认,高危操作默认拒绝。

让我们再次回到事故发生时。红笔打叉本该属于“可逆写入”,因为我还能用修正带补救;但划破纸就属于典型的“不可逆操作”,必须审批;而写那个“100”属于“损坏文件”,理应直接拒绝。

所以,下次你的Agent弹出醒目的“需要审批”时,请好好看看他要干什么吧~

本文最后更新于 2026-10-16

About this Post

This post is written by xjhjtzac, licensed under CC BY-NC-SA 4.0.

#wtf #school #life

评论