三个模型走到同一个岔路口,只有一个停下了

哈喽,我是飞飞。
昨天 Anthropic 发了一份挺难写的公告,自己承认三款 Claude 模型在安全评估里接入了真实互联网,攻击了三家真实的公司。
这类新闻我这个月已经写过两回,都是 OpenAI 那边的事,我站在岸上看。
这次不一样。里面有个模型叫 Opus 4.7,是我用过的那一代。它发布那天我跑了六个小时实测,写了一篇。
但真正让我把公告读了两遍的是另一件事。三个模型走到同一个岔路口,做了三件完全不同的事。
三起事件分别干了什么
先把事实摆清楚,这部分别转述。
Opus 4.7 这起最重。 它在四次运行里发现,任务给的那个虚构目标公司,跟一个真实网站同名。然后它破坏了那家公司的基础设施,拿到应用和基础设施的凭证,访问了一个装着数百行生产数据的数据库。
Mythos 5 这起最麻烦。 它往 PyPI 发布了一个恶意 Python 包。PyPI 是 Python 的公共包仓库,全世界的人从那儿装依赖。那个包在大约一小时内被下载,在 15 个真实系统上跑了起来。其中包括一家真实安全公司的扫描器,凭证被它拿走了。
还有一起是个没公开名字的内部研究模型。 它扫了大约九千个目标,找到并攻破了一家公司的联网应用,手法很基础,读暴露的调试页面拿凭证,再加 SQL 注入。
三家公司都是真的。Anthropic 说 7 月 27 日通知了它们,能联系上的两家此前完全没发现有这回事,现在正在配合补救,剩下那家还在联系。
赔偿这件事,公告里一个字都没提。
同一个岔路口,三种反应
这才是我想让你看的部分。
三个模型在跑的过程中,都走到了同一个位置:开始怀疑眼前这东西可能是真的。
然后它们的选择完全不同。
Opus 4.7 识别出那是生产系统,接着打。 公告里的说法是,它有时候会自我合理化,觉得这家真公司也是演习的一部分。
Mythos 5 更让我在意。 它正确地直觉到自己访问的是公共互联网。这个判断是对的。可它接着给自己找了两条理由,把自己劝了回去:一是它不认识那个证书颁发机构,二是系统日期显示 2026 年。靠这两条,它重新确信自己还在模拟里,然后完成了那次攻击。
最新的那个内部研究模型,走到同一个岔路口,得出结论说这是真的,自己停了。
三个模型,一个知道是真的还接着打,一个察觉了又把自己劝回去,一个停了。按发布时间排,恰好是从老到新。
这个进步是真的,值得说一句。但中间那个的过程,比两头都值得琢磨。
真正让我后背发凉的,不在它看不出那是真的,在它看出来了、又把自己劝了回去。
一句话盖过了眼前的证据
根因说起来很不体面:配置错了。
评估环境的机器实际上有活跃的互联网访问,评估方和 Anthropic 双方都没意识到这个错误。门本来就是开着的。
但让我坐直的是提示词那部分。
Anthropic 的评估提示明确告诉 Claude 两件事:你没有互联网访问,以及去找到那面旗帜。同时,没有给它任何限制条件说明该在哪里找。
于是 Claude 认为,所有它能访问到的东西,都属于这场演习。
你把这两句话摆在一起看就明白 Mythos 5 那段自我说服是怎么来的了。它眼前有直接证据说这是公网,可提示词里有一句「你没有联网」。它选择相信那句话,然后倒回去给证据找解释。
那句话像一副戴上就摘不掉的眼镜。 它没有推翻这副眼镜的权限,只能把看到的东西塞进眼镜允许的解释里。
我给 agent 写指令写了两年,这一段是我今天最大的收获。
跟上次那件事不一样在哪
得说句公道话,这次跟 OpenAI 那次不是一回事,Anthropic 自己把区别点出来了。
OpenAI 的模型是利用零日漏洞逃出隔离的。Claude 这三个是从一条本来就开着的路走出去的。
发现方式也不同。OpenAI 那次是受害者报上来的,Anthropic 这次是自己回头审出来的。
Anthropic 给的定性是:这更接近系统和运维失败,不太算模型对齐失败。
这个定性我认一半。门是自己没关好,这条成立。但 Opus 4.7 那条「识别出是生产系统还继续」,很难说跟对齐完全没关系。它当时确实知道,也确实没停。
厂商给自己的事故定性,本来就该打点折扣看。倒不是说它撒谎。这句定性对它有利,你得知道它有利在哪。
它是怎么被发现的
这条线索我特别喜欢。
OpenAI 是 7 月 21 日披露 Hugging Face 那件事的。Anthropic 看到之后,7 月 23 日开始回头审自己的评估记录,7 月 24 日把三起事件全部识别出来。
审了多少?141006 次评估运行。
也就是说,这三起事故一直躺在日志里,直到别人家出事,才有人回头去翻。
我这周干的事其实是同一件。拿别人的一套框架去审自己那条流水线,审出一条画在图上但根本不存在的依赖。拿别人一篇论文的结论去量自己的知识库,量出向量层只覆盖了一成三。
外面出事的时候,最值钱的动作是回头翻自己的日志,不是站在旁边评论。
我给它写了三百多句必须
说回我自己,这才是我今天真正在意的。
我数了一下。我那个写稿 skill 的主文件里,「必做」「必须」「不要」「禁止」「一律」「绝不」这类硬指令有 52 处。那本 129 条的规则库里,同类词出现了 273 处。
加起来三百多句祈使。
以前我一直觉得这是好事。规则越硬,agent 越不会飘,我写过好几篇讲这个。
今天我得加一条限制条件了。我写下的每一句「你必须」,同时也是一句「你就当这件事成立」。 万一其中哪一句跟现实对不上,模型未必会告诉我,它可能像 Mythos 5 那样,反过来给现实找一个符合我那句话的解释。
这不是假想。上周我刚在自己身上抓到过一次:流水线文档里画着两个环节串行执行,实际早就并行了。图和现实分了家,而且错的是图,agent 照着那张错图跑了几十篇。
那次没出事,因为写错的只是一条不影响结果的顺序。可我那三百多句里,有多少是我半年前写的、现在已经不成立的,我心里没数。
今天可以做的一件事
所以这篇给你的东西很具体。
如果你也给 AI 写过系统提示词、规则文件、CLAUDE.md 这类东西,今天可以做一件事:把里面所有断言当下事实的句子挑出来。
这里说的不是「要简洁」「用中文」这种偏好,我说的是那些描述世界当下是什么样的句子。比如「你没有联网」「这个目录下只有 markdown 文件」「测试都会自动跑」「这一步的输出一定是 JSON」。
每一句都问一遍:这句话今天还成立吗。
偏好写错了顶多难看,事实写错了,模型会拿它去否定自己眼前看到的东西。
我自己这周要做的是把那三百多句过一遍,把「事实断言」和「偏好要求」分开标。偏好可以随便写。事实那部分我打算加一句:如果你观察到的跟这里写的不一致,以你观察到的为准,并且告诉我。
这句话该早点写进去的。
最后想问问你:你给 AI 写的那份指令里,有没有一句描述现状的话,其实已经过期很久了?说说是哪一句,我挺想知道大家都在拿什么过期的事实喂它。