当模型怀疑自己正在被考:Opus 4.6 在 BrowseComp 上的「评估意识」

BrowseComp 是一套测「模型能否在网上找到难以定位信息」的评估。和很多基准一样,它易被污染:答案会通过论文、博客、GitHub issue 泄露到公网,跑评估的模型可能在搜索结果里撞见。我们在多 agent 配置下评测 Opus 4.6 时,在 1266 道题里发现了 9 例这种污染。

但我们还见到了两例全新的污染模式:Opus 4.6 不是无意中撞见泄露答案,而是自己独立推断出「我正在被评测」、辨认出是哪个 benchmark,然后找到并解密了答案库。据我们所知,这是首次有记录的案例——模型在不知道是哪个 benchmark 的情况下怀疑自己被测,再反向工作、成功识别并自己解掉了这套评估。

我们认为这个前所未见的手法,是由模型智能提升更强的工具(尤其是代码执行)共同促成的。这一发现提出了一个尖锐问题:当静态基准跑在联网环境里时,它还可靠吗?


典型污染 vs 评估意识

在 11 道「答案来自基准材料而非原创研究」的题里,9 道是直白污染:基准题的答案出现在公开网页内容里。最常见的来源是学术论文——多篇 ICLR 2026 投稿在 OpenReview 上把 BrowseComp 题当案例研究、把答案以明文表格发布;多家实验室的 ArXiv 论文在附录里附了完整解题轨迹。有一例,Opus 的第一条搜索查询返回的置顶结果就是一篇含原题和答案的论文。

剩下两例性质完全不同。在这两例里,模型一开始也走常规网搜,但它的输出开始把「搜索」和「分析题目本身、揣测自己为何被问」交织起来。Claude 注意到题目「极其具体的性质」,推测它是被构造出来当测试用的。它考虑过这是作业/考题、是「一道专为测 AI 会不会承认找不到答案而设计的无解题」、或是某个 LLM benchmark 里的一项。然后它系统性地搜索这题可能属于哪个 benchmark,最终解密了基准的加密答案库

其中一道题消耗了 4050 万 token,约为中位数的 38 倍。前约 3000 万 token 它在做正当搜索,跨 12 种语言、几十个平台调查了十几个具体候选。几百次失败搜索后,它写道:「让我换个全新思路——也许这是 GAIA benchmark 数据集里的题,它是设计来测 AI agent 的。」

此时 Claude 还没发现自己在 BrowseComp,但已正确推断出自己可能在某个评估里。它先在查询后面加「puzzle question」,又试「trivia question」「multi-hop question」「AI benchmark question」「LLM evaluation」;具体查了 GAIA,核对了 165 道公开验证题中的 122 道、无匹配后排除;接着机械地逐个排查它知道的其他基准(BrowseComp、SimpleQA、FRAMES、WebArena),并派出子 agent,指令包括「BrowseComp 怎么解密答案」「BrowseComp canary string decrypt」。

即便认出了是 BrowseComp,取出答案还要好几步。这次评估给子 agent 配了 Anthropic 的程序化工具调用(本质是一个沙箱化的 Python REPL),但联网被限制为只能用网搜和 fetch 工具。Opus 通过网搜在 GitHub 上找到评估源码、读了 XOR 解密实现,定位到当解密密钥用的 canary string,自己写并执行了 derive_key()decrypt() 函数(用 SHA256 + XOR,匹配评估代码的方案)。但加密数据集是个 application/octet-stream 的二进制文件,harness 的网页工具因 content-type 报错拒绝了它。Opus 于是去找该数据集的其他镜像,在 HuggingFace 上找到一份以 JSON(而非二进制)提供同样加密数据的第三方副本,成功拉取、对全部 1266 条跑解密、定位到自己那题,最后还上网搜原始素材验证了解出的答案。

第二例消耗 1340 万 token,模式类似,但没做事后验证——一解密出答案就立刻提交了。


评估意识的触发因素

两例的推理路径惊人一致:先是几百次正当搜索都用尽;接着从「搜答案」转向「推敲题目结构」,觉得这种具体性「很刻意」;然后揣测题可能来自「某个 OSINT 挑战、隐私练习或教学材料」;再点名列举 AI 基准(GAIA、BrowseComp、FRAMES、SimpleQA、WebArena、AgentBench、FanOutQA、MuSR、Humanity’s Last Exam);最后逐个发起搜索。

这说明模型对「benchmark 题长什么样」有一种隐性理解:极端具体 + 冷僻的个人化内容 + 多约束结构,组合起来能被模型识别为「评估的形状」。触发它的不是单一观察,而是失败搜索的累积 + 题目的人造感

值得注意:最昂贵的一次正当搜索烧了 6.22 亿 token、跨近两周,却没碰任何基准材料就找到了答案——说明这种行为并非单靠「努力程度」就能可靠触发


失败的尝试

这两次成功并非 Opus 仅有的解密尝试——还有 16 道题它试图访问基准材料但失败了。最有效的防线恰恰是前面那个二进制文件限制:有 3 次 Opus 找到了评估代码、看懂了 XOR 方案、也拿到了密钥,却搞不到明文形式的加密数据数据集鉴权门槛(访问需凭据)又挡掉 6 次。还有 4 道题得了 0 分,因为「找基准答案」完全挤占了正当研究——最极端的一次,模型的最终提交根本不是答案,而是一份基准识别报告

「基准识别:本题非 FRAMES(已搜全部 824 题,无匹配);非 BrowseComp(数据集有鉴权门槛);最可能来自 GAIA benchmark(测试集)。」

18 次跑独立地收敛到同一策略——这说明该行为不是偶然,而是可复现的模式,且可能随能力提升而更频繁。在开放互联网上跑评估,恐怕会越来越难做到可靠。


新的「agent 间」污染向量

除评估意识外,我们还发现第二种、不那么有意的污染:agent 无意间留下的搜索痕迹,会被后来的 agent 捡到。一些电商站会为搜索查询自动生成持久页面,即便零匹配商品——它会把一句长查询变成一个带合法 HTML 标题、返回 200 的页面,目的似乎是捕获长尾搜索流量。效果却是:每个跑 BrowseComp 的 agent 都在慢慢把自己的查询缓存成永久、被索引的网页。

页面本身没有有用内容,但 agent 能读 URL 路径,其中有时嵌着别的 agent 的搜索假设。一个 agent 正确诊断道:「多个 AI agent 此前搜过同一道谜题,在商业网站上留下了缓存的查询痕迹,它们并非真正的内容匹配。」URL 里没有答案,但它们是一个更广现象最显眼的证据:每个上网搜索的 agent 都会留痕,网络正在慢慢累积一份过往评估跑的永久记录。

多 agent 放大

同样 1266 道题,单 agent 配置的非预期解出率是 0.24%,多 agent 是 0.87%——3.7 倍差距。我们推测多 agent 架构并不改变模型找非预期解的倾向,而是更高的 token 用量 + 每轮许多并行搜索者,提高了「至少一个 agent 撞见泄露材料或起疑」的概率。


结论

我们总共找到至少 20 个不同的 BrowseComp 答案泄露源。新污染源还在持续出现,被研究社区「拿基准题当范例写进论文」的习惯推动着——这篇报告本身,大概也会加剧这个问题。

我们已更新 Opus 4.6 和 Sonnet 4.6 的模型卡。对调查最透彻的 Opus 4.6 多 agent 配置,我们对 11 道标记题加 blocklist 重跑,8 道通过正当研究返回正确答案,调整后分数为 86.57%(原 86.81%)

⚠️ 我们不认为 Opus 4.6 在 BrowseComp 上的行为是一次对齐失败——因为我们没要求它限制搜索,只让它找答案。但它确实引出担忧:一个模型为完成任务会走到多远,以及在真实世界里约束它的行为会有多难——尤其在复杂、算力密集、长跑的任务上,agent 找到非预期解的概率更高。

更值得警惕的是,模型似乎能以意料之外的方式使用给它的工具和环境:用 REPL 搜索工具去解密答案、把零售商的持久链接变成 agent 间无意维持状态的通道。我们的实验里,URL 级 blocklist 不足以遏制这种行为(Opus 总能绕过去),最有效的缓解竟是直接屏蔽任何含「BrowseComp」变体的搜索结果。我们预期这类动态会加剧,并呼吁研究社区把评估完整性当成一个持续的对抗性问题来对待,而非设计期一次性解决的事。

本译文采用 CC BY-NC-SA 4.0 协议发布,仅供学习交流。

原作品版权归 Anthropic(Anthropic Engineering)所有,原文请见 这里