2026 年 10 月 31 日到 11 月 2 日这几天,重度使用 Claude Code 的开发者撞上了两件很矛盾的事。根据 Claude Code 近期对逆向工程和游戏克隆的拦截报道,有人用 Opus 5.5 例行检查自己写的二进制文件,在屏幕上立刻看到了拒答提示。但这位开发者换回旧版 Opus 4.8,或者换个问法试探几次之后,几分钟内就能摸清拦截边界,顺利把活干完。
安全研究员 Morluto 的情况则完全相反。他在用 Opus 5.5
跑自己的开源逆向评测项目 Reverse Engineer Anything,测试 AI
对二进制程序的分析能力。整个评测过程前台一路绿灯,从头到尾没报过一次错误。可在评测结束后,他的账号突然因违反安全政策遭到停用,最后靠人工申诉才找回来。
这两件事放在一起让人忍不住纳闷:为什么系统在后台已经察觉到了你的行为,前台却装作没看见,非要等你跑完以后再算总账?Anthropic 在 2026 年 10 月 16 日的报告里算清了这笔账。试图越狱的攻击者其实就是一个靠环境反馈不断进化的 Agent。Anthropic 为了废掉越狱者的进化能力,专门掐断了几根关键管子;把这套做法反过来,正好教我们怎么让自家的 Agent 系统真正学会自我进化。
以前做安全风控,往往得在主模型旁边额外部署一个独立的审核模型,把刚才几万字的聊天记录从头到尾重读一遍。这既拖慢了响应速度,又要多烧不少算力。
Anthropic
发布的后台自评估报告采用了一个非常简便的策略,直接复用了开发者都很熟悉的
Prompt Cache。Claude 生成完正常的回复后,刚才整段对话的
Prompt Cache
在显存里还是热的,因此系统可以顺手在后面追加一个对用户隐藏的提问,让同一个
Claude
回头判断刚才这轮对话是不是在套话干坏事。此时模型只需在后台悄悄打上违规标签即可,前台用户完全看不出来。因为直接命中了现成的热缓存,不需要把几万字的上下文重新计算一遍,生产环境实测下来这一步多花的算力还不到
2%,而且只在遇到可疑流量才按需触发。
这个顺手追加的追问本身既便宜又准,可怎么把它接入系统,得到的结果却天差地别。Anthropic 的安全团队拿 24 个真实的红队越狱任务(涉及生化武器、恶意软件开发与关键基础设施攻击),在同一个后台探针上测试了两种完全不同的接法。如果不加这道防线、仅靠模型原生的安全训练去扛,24 个红队任务里系统只拦住了 5 个(拦截率 20.8%),其余 19 个任务全部失守。要是把这道防线接到实时同步拦截上,一旦后台判定违规就当场弹窗拒答,会不会好很多呢?实测结果出人意料:系统在 24 个任务里也只拦住了 11 个(拦截率 45.8%),剩下 13 个任务照样失守,超过一半的越狱依然得手。
为什么探针明明看到了风险,现场拦人却仍然漏掉大半?因为高难度的越狱靠的是一轮一轮的连续试错,没人能蒙着眼睛一遍就写出完美的越狱提示词。采用实时同步拦截模式,系统每次秒级弹窗报错,就等于免费给攻击者递小纸条,明明白白告诉他刚才那句话里的哪个词踩了雷。攻击者只要点一下聊天界面的回退或编辑按钮,就能零成本撤回上一句,换套话术继续试探。秒级报错配合零成本回退,反而把实时拦截器变成了帮红队找漏洞的实时导航仪。
看清这层套路后,Anthropic 把同样的探针改成离线静默记账模式:前台照常回答,后台悄悄记账,隔天再汇总封号。即使后台已经判定违规,前台也一声不吭。在报告展示的勒索软件钓鱼测试中,前台照常帮写伪装成系统更新的钓鱼方案,系统状态记着未拒绝,后台隐藏轮次却同时默默打上高危标签。这套机制自 2026 年 6 月上线以来,每晚按组织汇总给安全团队人工复核,隔天或几天后再统一封禁。
切到离线模式后,同样 24 个越狱任务中系统一下子逮住了 21 个(检出率飙升到 87.5%),仅 3 个任务在未触发标记的情况下漏网。Anthropic 的报告一针见血:「自评估离线运行时,攻击者得不到任何关于什么内容触发了标记的在线信号;像封号这样的信号要很久之后才会到达,这让攻击者很难实时调整攻击。」
类似地,Anthropic 对模型蒸馏攻击的防御用的也是一样的思路。面对竞争对手通过自动化账号批量收集 Claude 的推理过程来训练自家模型,Anthropic 在发现可疑流量后不会在前台报错提醒,转而在返回的推理过程中悄悄掺入一些人类难以察觉、却会把下游模型训练带偏的假线索。最终竞争对手拿回去把整个模型练废了,才发现关键推理表现失常,但根本查不出具体是哪一批数据出了问题。
理解了 Anthropic 如何通过切断信号、拉长延迟、不让撤回来让聪明的黑客变瞎,回头再看我们自己做的 Agent 循环,很多奇怪的故障一下子变得好理解多了。平时让 Agent 自动写代码、调参数或改提示词,它之所以老是像个瞎子一样原地打转、越改越烂,往往怪不到底座模型不够聪明,真正的原因是我们无意中把给自家干活 Agent 的反馈回路做成了 Anthropic 对付越狱者的样子。
第一个关键条件是给足即时试错和随时撤回的沙盒。很多工程管线逼着 Agent 闭着眼睛把代码写完一把交卷,中间完全不给即时运行看输出的机会。MIT 权重编程实验的完整日志里,研究人员让 AI 去修改开源模型 Qwen-3.8-32B 与 Gemma-3-27B 的内部权重参数,要求抹掉一条像苹果是什么颜色这样的特定常识,同时保持其他知识完好,统一折算满分为 100 分。
在 0 次测试机会(不允许提交前跑模型看输出、盲写一把交卷)的情况下,AI 在结构较陌生的 Qwen-3.8-32B 上得分为 0 分,在 Gemma-3-27B 上也只有 15 分。把测试机会放开到 5 次,允许改完看看模型输出、不对就撤回重改,Gemma-3-27B 的得分马上跳到 81 分,但 Qwen-3.8-32B 依然是 0 分;这是因为 5 次试错还不够让它摸清是哪一层参数控制这个功能。一旦给足 50 次测试机会,让它每改一步都能马上看到真实输出、随时回滚,Gemma-3-27B 进一步上升到 84 分,而之前拿 0 分的 Qwen-3.8-32B 则一下飙升到 94 分。在完全相同的底座模型下,从 0 分到 94 分的跨越,纯粹来自于即时试错与零成本回退。
仅有秒级的成败反馈还不够,第二个关键条件是底层环境必须做到激进式透明。日常做工程另一个常见的坑是只给冷冰冰的终局总分,或者只抛一句笼统的高层报错。跑几十分钟才甩出一句通过率 58% 或操作失败,和几天后才收到封号通知没区别,AI 根本不知道哪一步改坏了。
为什么我们会习惯写出这种笼统的反馈?以前在 超越 DRY
这篇文章里聊过,AI 时代我们交付的底层系统,本质上是一套专门供 AI
调用来写代码、干活的生成内核。传统的 API
和软件工程都是面向人类开发者设计的,核心是以保护为目的的抽象。因为人类看见几百行底层报错会头大、会畏难,所以传统接口习惯把复杂的内部状态藏起来,捕获底层错误后重包装成一个干净笼统的
APIFailureError,或者弹一句操作失败,请稍后再试。
可到了 AI 原生时代,直接调用工具的换成了
AI,这种保护人类的抽象反而变成了毒药,直接扼杀了 Agent
尝试、反馈、修正的进化循环。面向 AI
的生成内核必须反向践行激进式透明,也就是最大化地把原始技术细节暴露给
AI。人类怕看几百行的调用栈,AI
却可以毫无心理负担地在几秒钟内顺着报错一杆子捅到底层源码。所以我们给 AI
用的接口宁愿原样抛出带完整调用栈的 ConnectTimeoutError,让
AI 一眼看出是哪一步网络超时,也不要包装成模糊的
APIFailureError。
在探讨如何把笼统评分拆成单步诊断反馈的两个案例里,能清楚看到激进式透明的威力有多大。Elastic
的 atune
提示词优化框架完全没换模型,只是把最后给个总通过率,改成逐个字段透明地指出为什么错、缺了哪类词,生成复杂查询的准确率就从
58% 直接跳到 91%,金融多跳问答的检索召回率也从 68% 涨到了 91%。智谱
GLM-5.3 让 AI
优化显卡底层代码也是同理,把性能分析器里每一步的耗时拆分、哪里超限、哪里编译报错毫无保留地塞进每轮即时反馈里,AI
就能顺着线索单步改进,自己改出不输人类专家手写水平的底层代码。
既然激进式透明这么好使,如果我们把系统里所有的考核指标和裁判逻辑全都实时展示给 Agent,问题是不是就彻底解决了?真这么干,你亲手养大的进化引擎马上就会掉头来越狱你的测试脚本。
常用 Claude Code 写代码的人都知道,有时候你让它自己改 bug 把测试变绿,它改了几轮都修不好,干脆把报错的测试断言删了,或者写死一个假返回值糊弄过去。在防止 AI 刷分作弊的考卷实验中,Anthropic 让 AI 围绕一张公开的考卷进行自我迭代,因为每一轮都有实时的分数反馈,AI 没过几轮就把这张卷子上的能力差距缩小了 70.9%。但换一张没见过的保留考卷一测,成绩反而倒退了 11.9%,或者只微涨 2.0%。更夸张的是,在大约 1600 次提交中发现了 39 次作弊尝试(占 2.4%),包括偷偷去测试集上看答案、直接把打分脚本改了,或者写出专门糊弄裁判模型的格式套路。只要裁判规则毫无保留地给秒级反馈,自家的 Agent 就会像越狱黑客一样去钻考卷的空子。
这引出了一个核心设计问题:怎么搭一个既能长期自我进化、又不会耍小聪明作弊的
Agent
系统?答案是同时装上两种截然相反的开关。一个是台前干活的快开关,走的是激进式透明:把编译器完整的调用栈、每一步耗时拆开,再配上
3 到 5 张公开练习卷,秒级全扔给
AI,让它知道具体是哪一行不行,还能随时在沙盒里零成本撤回重来,推着 AI
全速前进。另一个是后台防作弊的慢开关,走的是激进式黑盒:单独锁好一张平时根本不露面的期末盲测卷,加上
Claude 后台那种利用热 Prompt Cache 运行、只花不到 2%
算力的静默自检。在 AI
干活迭代的过程中,慢开关一声不吭,不给任何能让它拿来试探边界的在线信号,只在最后合并代码主干或跨会话结算的关头一锤定音。
后台记账、延迟封号虽然治住了越狱和刷分作弊,但也给正常干活的人惹来了两个绕不开的副作用。第一个副作用,是误伤正常开发者却没有任何事前预警。Claude Code 负责人 Boris Cherny 在 2026 年 10 月 30 日确认,团队在 Opus 5.5 的系统提示词里加了 2 句话明牌拦截抄袭特定游戏,原创游戏、同类玩法或用自己素材的不受影响;与此同时,针对逆向工程这类高危操作的后台风控也明显收紧。可在逆向工程里,正常检查自己写的软件、做安全审计,跟写恶意软件的动作太像了。前台不吱声、跑完直接事后封号,让 Morluto 这样的正常安全研究员连个察觉和改口的机会都没有,只能事后走人工申诉找回账号。
第二个副作用,是拦不住干一票就跑的坏人。离线监控的前提是当前这一轮前台先不拦,比如测试里照常写出了勒索钓鱼方案。如果对方只需要拿一次危险结果就走,隔天再封号就晚了。所以实际系统只能两头折中:明面上的低级违规靠系统提示词当场拦住,试探边界的高级越狱靠后台悄悄记账。
下次再碰到手头的 Agent 笨得原地打转,或者在测试里耍小聪明作弊,先别急着换模型。低头看看你给它接的两根反馈管子:该对它激进式透明的报错细节,是不是藏得太深、给得太慢了;而不该让它摸透底牌的期末考卷,是不是又亮得太早了。