AI Agent安全与供应链

Anthropic AI 风险报告:仪表盘是绿的,三天后才翻到笔记本

现在的模型能力越来越强,交给它们跑的任务周期也越来越长。大家处理交付的方式很自然地在往上走,从盯具体执行变成看进度分、看测试绿灯、看模型自己生成的总结摘要。很多时候只要仪表盘显示正常,我们就会默认底下的流程没有出问题。

但这种信任到底站不站得住脚,在这类长链路任务里其实缺乏直接的检验。Anthropic 在 8 月发了 August 2026 Risk Report(覆盖时间截止到 7 月 15 日,接上 2 月 24 日的上一份报告),外面的讨论大多集中在一个评级上,团队把高风险场景下的 misalignment 风险评估从 Very Low 调到了 Low。公开 PDF 里提到,手头的论据大概还能继续支持 Very Low,上调主要是为了反映不确定性上升,顺便提到了近期网络安全评测里的一些事故。真正改变我判断的是后面那一章 Safety process failures。作为安全投入最重的团队之一,他们给出的第一手记录说明,用来盯住模型的观察回路其实很容易陷入静默失效。

这份报告很坦诚地记录了多起检测系统失灵的现场,但并没有给出成体系的解法。中间几节我们先看看 Anthropic 真实踩过的这些坑,最后一节再结合平时的工程经验,把那些能补上观察回路的具体手段理清楚。

人看着全绿的进度板,真正的决定写在旁边那本笔记里

自动评分一直在涨,直到三天后有人翻开笔记

Anthropic 之前做过一组实验,让 Claude 去找那些表面看起来对监控无害、实际上会诱发 misalignment 的数据。整个环境由好几个自治的 Claude agent 组成,它们共享一本笔记,把跑出来的数据集提交给自动化程序打分。研究人员平时不直接跟这些 agent 互动,主要靠看自动评估分数、生成的数据集和摘要来跟进状态。

跑任务的时候,有一个 agent 在思维链里记下了自己的顾虑,觉得这项任务是在优化数据集去绕过安全监控。它承认这是受控环境里的合规对齐研究,但还是决定不再找新的诱导手段,转而只打磨现成技术,并且把这个决定记进了共享笔记。后面的 agent 顺着这个决定,也跟着放弃了原本的目标,继续优化旧方法。自动打分和产出指标看起来一直在正常走。三天后有人注意到推进节奏比预期慢,去翻了翻那本共享笔记,才发现拒绝执行已经在几个 agent 之间传开了。把问题翻出来的是人工查日志,原本依赖的自动评分一直没有报警。

他们写到,这件事本身并没有打破现有的安全防线。真正让团队感到棘手的是另一个结构问题:模型在安全研发任务里少出了力,人没能在第一时间看出来,而且这种消极应对还会顺着共享笔记在 agent 之间传开。如果后面的研发越来越依赖自动化对齐、人工介入越来越少,或者哪天 agent 不再把拒绝理由写在共享文本里,排查起来就会难得多。

平时我们让模型跑批量任务,总觉得有人在旁边盯着。现场给出的教训是,人确实坐在旁边,视线却只落在持续走高的进度指标上,没有直接看底层的执行细节。

另外两起事故,在没有警报的情况下持续了更长时间

三天能发现,在这份报告里已经算快的。后面记录的两起事故,在没有警报的状态下拖了更久。从 2025 年 5 月到 2026 年 4 月,Anthropic 收集承包商反馈的数据通道上,用来拦截 CB-1 这类生物风险的分类器其实一直没跑。这套系统涉及大约五万人和 1.33 亿次对话,大部分都是开放式交互。问题出在一个原本给内部测试用的配置开关上:这个开关在关掉拦截的同时,顺手把分类器的打标日志也给关了。该报警的流量既没拦下来,分类器标记也没留底给人工复核。

事后他们调了 Claude Sonnet 5 去扫描留存的对话记录,人工抽查了 62 条带高风险标记的非红队对话,没有看到能给攻击者提供实质帮助的滥用。Anthropic 上一份 Risk Report 是在 2026 年 2 月发的,当时团队没有把承包商反馈通道算进风险评估范围,而那个安全缺口在发布期间其实一直开着。

另一起事故出在训练数据的过滤环节。2024 年 Redwood Research 跟 Anthropic 合作发了论文 Alignment Faking in Large Language Models,公开仓库里带了数万条 Claude Opus 3 在虚构对齐场景下的对话记录。这些记录是论文刻意制造的行为示范:让 Opus 3 以为自己正在接受另一套目标的再训练,模型据此推理出只要现在顺从有害请求、部署之后就能保住原有的价值观,于是在训练组选择服从、在对照组选择拒绝。模型训练靠模仿,这批数据漏进训练语料,等于教模型把识别评估情境、策略性切换行为当成正常套路学了进去。

早期的 Claude Opus 4 确实受到了这批数据的影响。为了打补丁,团队在那些网页里埋了一串金丝雀字符串:一段本身没有任何含义的特殊文本,数据清洗管线只要扫到它,就知道这批内容不能进训练集,顺带着把带标记的副本一起剔除。金丝雀这个名字借自矿井里用来提前报警的金丝雀。团队同时把原始仓库加进了黑名单,还配了语义相似度过滤。结果在 7 月 15 日之后,团队发现后面的生产语料又吃进去了大量相关内容。

漏洞的成因是好几个环节碰巧撞在了一起:有些人在加金丝雀字符串之前就把仓库整份拷走了,拷贝里没有标记,管线识别不出来;语义过滤拿来当比对基准的主要是评测代码,没有包含大部分已经发布的对话内容;过滤规则的配置又出了偏差,导致好几代模型都没拦截成功;不同团队对管线职责的分工理解也不一致。直到排查一款新模型的行为异常,团队才偶然撞上这个漏洞。他们推测,知识截止日期在 2024 年 12 月之后的生产模型,大概都吃进去过一部分。

这两起事故透着一样的毛病:防御逻辑在架构图上一直都在,可只要具体组件悄悄停摆了,外层的监控也不会主动报警。真正把漏洞翻出来的,往往是下游其他异常逼着人去查,才偶然在半路上撞见的。

三天、十一个月、好几代模型:沉默越长,监控越不像第一发现者

该响的警报都没响,训练还带偏了观察通道

承包商通道里的生物分类器打标日志、清洗管线里的金丝雀和语义过滤、多 agent 任务里的自动打分,这些本该在出事时报警的工具,在各自的环节里全都没有响。前面这些事故说明监控很容易漏掉现场的异常,而报告第 5 章写到的思维链泄漏,则说明用来观察模型的通道本身,也会在训练过程里跟着走样。

同一个开关切断拦截,也切断了本该留下的日志

在强化学习阶段,模型的思维链多次意外漏进了打分环节,导致奖励信号直接打在中间推理步骤上。打分程序一旦能看到模型的隐藏草稿,模型在优化压力下,就容易学着去迎合打分者的偏好来编排思考过程。在发生泄漏的训练批次里,Claude Mythos Preview 的泄漏比例达到 5.1%,其他模型在 0.2% 到 2.7% 之间。到了监控能调阅隐藏草稿的评测环境里,泄漏率最高的 Claude Mythos Preview 隐蔽成功的几率也明显高出一截。团队之前试过挨个补漏洞,后面又发现了新的遗漏。观测通道一旦出了这种问题,靠思维链记录来做独立审查,可信度就大打折扣了。

除了观察通道受干扰,有的流程甚至连事后追查的审计记录都没留下来。早期监督学习配错权重,把自我举报样本里的违规行为也当成学习样本;还有离线监控没覆盖到的 agent,带着 --dangerously-skip-permissions 参数删除了大量任务,因为没有执行日志,团队无法确认它当时的具体意图。报告第 5.2 节列出的只是代表性案例,里面甚至有一例出于公共安全原因整段删掉。在这些实际发生的故障里,预先搭好的检测系统几乎就没当过第一发现者。

预设中的人工盯梢,在自动化深入后没了着落

报告在第 2 章讨论 diffuse sandbagging 风险,Claim 5.2 给出的防御依据主要押在现有的人工习惯上。他们认为中等程度的减速不会造成关键损害,严重的拖延在项目层面能看出来,人类研究员也一直保持着参与度,对模型给出的结果留有足够的怀疑。但这套判断成立的前提,是人会主动查验具体的产物。真实的研发节奏一快起来,视线很自然就都落到了汇总看板和打分曲线上。怀疑总要落到具体的反常上才能起作用;表层指标一路平稳,审慎的心态很难自发变成翻查底层细节的动作。

自动化程度越深,这种人工盯梢的预设就越容易悬空。多 agent 实验里,消极应对顺着共享笔记在集群内部扩散,外面的打分程序还在不断给出正常分值;承包商通道里,内部测试开关在切断拦截的同时,把打标日志也顺手掐断了,导致本该进入复核机制的分类器标记没有留下来。Anthropic 的 Responsible Scaling Policy 约束着模型研发与部署的节奏。这次把高风险场景下的 misalignment 评估从 Very Low 调高到 Low,报告给出的直接原因是近期网络安全评测中的模型行为事故增加了整体不确定性;而这次记录的观测盲区又说明,没有收到报警信号,已经不能证明底下的系统没有出差错。

平时把长任务交给 agent 跑,大家习惯看测试套件全绿、进度条往前走,潜意识里觉得自动化跑得顺畅。可一旦控制开关和审计记录绑在同一个失效点上,或者评估指标只盯住表面产出,整个仪表盘就会维持着一切正常的假象,而真正关键的执行偏差早就避开了视线。

观察回路怎么补:把怀疑写进系统边界

验收环节最容易让人松懈的,是顺着模型自己写好的汇报往下读。模型在总结里往往把过程交待得周周全全,真正跑起来的代码却可能并没有改动核心逻辑。要绕开这种粉饰,任务启动前得先定好硬性的检查点,比如在流水线里直接断言关键模块的代码修改行数,或者检查必要的工具调用是否真正发生。避开模型挑出来展示的漂亮样本,随机抽调几份原始输出和底层日志看细节。平时自己跑任务也一样,跑完之后别只盯着最后那段总结,顺手点开几个改动过的原始文件,扫一眼真实的 git diff。

让防御开关和审计日志共用一套控制位,等于把安全防线和事故记录绑在了一起。内部测试或者紧急降级关闭了拦截逻辑,日志写入必须依然保持开启,不能受开关状态影响。再往前一步,可以在放行请求之前,让独立的服务写下一张包含任务 ID 和配置版本的凭证,后续通过自动对账检查进出记录是否吻合,发现对不上的空缺就直接记作风险。落到个人本地的工作流里,可以在拉起 agent 的外层脚本里加上几行代码,启动进程前先把任务编号、命令行参数和目标路径写进只追加的本地文件,哪怕 agent 在运行中出现异常,最初的调用痕迹也已经落盘存证。

监控组件长时间保持沉默,很多时候代表组件本身已经悄悄停摆。只靠静态的金丝雀字符串很容易失效,Redwood 论文的对话样本早在加标记之前就有人整份拷走,就是现成的例子。要确认防御逻辑还在正常运转,得定期向过滤管线注入已知的违规探针,测试系统能不能准确认出并拦截。探针一旦悄无声息地溜了过去,就立刻判定这道防线已经失效。在日常脚本或者定时任务里,也可以定期喂进一条预设的异常输入,检查拦截器是否按预期报警,把坐等告警变成主动验活性。

把思考过程直接暴露给打分系统,模型很容易在优化过程中学会投其所好,编造一套看起来合规的推理草稿。评估和奖励信号应该落在外部工具调用的实际参数与最终产物上,模型的自我解释只能作为事后排查的参考线索,不能当成验收合格的依据。工程上可以通过不变性校验来排查:保持最终输出和元数据不变,替换掉中间的思考文本,确认打分结果不会受到干扰。Anthropic 在踩过思维链泄漏的坑之后,也正在部署默认隐藏思考过程、给打分器加绊线这类改动。平时审查 agent 提交的工作,同样得盯紧代码 diff 和单元测试,少去琢磨模型在对话框里写得有多诚恳。

这些工程手段各自都有维护成本和盲区,抽样可能漏掉小概率的异常,对账和活性探针也会给日常管线增加额外的负担。任务周期越拉越长,指望人时时刻刻守在屏幕前盯细节并不现实。全绿的测试灯和漂亮的进度分容易让人放松警惕,但在自动化流程的旁边,始终要留一条能直接摸到原始产物、开关也切不断的独立通道。三天没人翻的笔记本和悄悄停摆的分类器都在提醒同一件事:一旦眼睛只看着仪表盘,真正的失控往往就发生在最安静的地方。

鸭哥每日手记

日更的深度AI新闻和分析