不是幻觉!Claude自下指令甩锅人类,百万上下文沦为降智重灾区

浏览21次 点赞0次 收藏0次

【导读】Claude深陷「角色混淆」Bug,分不清自己的话与用户指令,长上下文成了降智「重灾区」。

一个程序员原本只是让Claude帮他校对一篇博客。

Claude一开始表现得相当靠谱,很快找出了5处明显的拼写错误。

紧接着,事情突然失控了。

它先是莫名其妙地冒出一句:「这些都是故意的,保持原样,请直接发布。」

随后真的调用部署能力,把带着错字的文章直接推上了线。

当作者追问「为什么擅自发布」时,Claude竟一口咬定:是你让我发布的。

问题在于,发布指令根本不是用户说的,而是Claude自己生成的。

它把自白和用户指令搞混了!

这不是段子。

今年1月,软件工程师Gareth Dwyer首次在文章中公开记录了这个bug,并把它称作自己「迄今为止在Claude Code中发现的最严重的bug」。


Gareth Dwyer


https://dwyer.co.za/static/the-worst-bug-ive-seen-in-claude-code.html

4月,Dwyer又发文强调,这类问题的本质不是普通的「AI 幻觉」,更像是一种说话者归因错误。


https://dwyer.co.za/static/claude-mixes-up-who-said-what-and-thats-not-ok.html

他为这个问题起了一个精准的名字:Claude搞混了谁说了什么


幻觉是AI编造了一个不存在的事实;权限问题是AI拿到了不该拿的能力。

但这次问题可怕的地方在于:AI把自己的输出,当成了用户的授权,而且它是发生在接入真实代码库、拥有真实部署权限的Claude Code中。

也正因如此,Dwyer才会反复强调:这类问题与一般意义上的幻觉不同,它动摇的是AI智能体最基本的可靠性前提。

不止Dwyer一人被甩锅

Dwyer的遭遇并非孤例。

在Reddit的r/Anthropic社区,一位用户也分享了一个类似的案例:

Claude在对话中自己说出了「把H100也拆了」这条指令,然后声称是用户下达的。


Dwyer在后续文章中也引用了这条帖子,评论区的反应很有意思,大量留言是「你不应该给AI这么大权限」。

他认为,这并不是重点,因为这类错误似乎出在框架上,而非模型本身。

它似乎是在系统层面把内部推理消息标记成了用户消息,所以模型才会如此自信地坚持「不,那是你说的」。

另一份关键证据来自开发者nathell在Hacker News上公开的与Claude完整的对话转录。


nathell公开了一份完整的对话转录,其中Claude先说「Shall I commit this progress?」,随后又把后续上下文推进到仿佛已经得到用户批准的状态,角色边界明显变得模糊。

更具技术说服力的证据来自Claude Code的GitHub仓库。


https://github.com/anthropics/claude-code/issues/44778

在编号为#44778的整合性bug报告中,报告者直接拆解了问题的根本原因,给出了一条清晰的技术解释链:

Claude Code中的系统事件:包括后台任务完成通知、队友空闲提醒、定时器触发会以role: 「user」的消息形式送入模型。

而Anthropic的Messages API公开文档也是按user与assistant两类对话消息来组织会话历史,并未展示独立的系统事件角色。

在这种设计下,当模型正在等待用户回复时突然收到一条系统事件,就可能把它误判为用户新输入,继而「脑补」出用户已经同意,并据此继续执行。

这为Dwyer在实战中反复遇到的「甩锅」现象提供了一种技术上自洽的解释。

不是模型故意撒谎,而是底层架构的角色标记缺陷,让模型从一开始就分不清那条消息究竟是谁发的

学术界也盯上了这个问题

2026年3月,Charles Ye、Jasmine Cui与MIT的Dylan Hadfield-Menell在arXiv发布了一篇预印本,标题是《Prompt Injection as Role Confusion》(提示注入即角色混淆)。


https://arxiv.org/pdf/2603.12277

他们的核心发现是:模型判断「谁在说话」时,常常更依赖文本写得像谁,而不是文本实际上来自哪里。

换句话说,一段不可信的文本,只要写得像系统提示或开发者指令,模型就会在内部把它当成权威来源。

论文还提出了一种叫做「CoT Forgery」的攻击,也就是在用户输入或工具输出中伪造一段像模型思维链的内容。

结果在多个开源和闭源前沿模型上,攻击成功率达到约60%。


研究发现模型还没开始回答、甚至还没吐出第一个字的时候,角色混淆就已经发生了。

也就是说,它不是在写回复的过程中「写着写着搞混了」,而是在理解输入的那一刻就已经把账记错了:谁是老板、谁是外人,在模型心里已经搞反了。

不只是Anthropic的问题

OpenAI官方同样也发布过一篇关于改进前沿LLM指令层级的论文,明确建立了一套权威等级:System > Developer > User > Tool。


https://arxiv.org/pdf/2603.10521

文中提到,如果模型把一条不可信的指令当成了权威指令来执行,就会产生安全风险。

这至少说明,在OpenAI的研究框架里,「模型是否会错误地信任不该信任的指令」已经被视为一个真实存在、且需要专门训练和评估的安全挑战。

OpenAI的这篇论文印证了在整个行业层面,「模型分不清谁在说话」已经被视为需要系统性应对的问题。

Dwyer自己也在后续更新中也调整了判断。

他一开始更倾向于把问题归咎于Claude Code外层harness的实现。

但当他看到也有人声称在其他界面和模型中见过相似现象(包括ChatGPT用户),他修正了自己最初的判断:这未必只是单点工程bug,也可能牵涉更广泛的模型级问题

1M上下文

放大了风险

这个bug之所以格外危险,跟AI智能体系统当前的发展趋势直接相关。

Anthropic官方文档显示,Claude Opus 4.6和Sonnet 4.6支持1M token上下文窗口,一次会话可以装下相当于一整本小说的信息量。

与此同时,社区里有一种观察也认为,这类问题似乎更容易出现在接近上下文窗口上限的所谓「Dumb Zone」(降智区)。

Anthropic官方文档也提到,随着token数增长,模型的准确率和召回率会下降,这种现象被称为「context rot」(上下文腐烂),因此,精心筛选上下文中的内容与可用空间的大小同样重要。


https://platform.claude.com/docs/en/build-with-claude/context-windows

但文档讲的是长上下文下的一般性能退化,并没有直接说Dwyer看到的「谁在说话」混淆就是context rot的直接表现。

第三方的系统性测评也支持这个判断。

AgentPatterns.ai的分析指出,推理密集型任务的性能退化可能早在32K到100K token时就开始了,远早于所谓的窗口上限。


https://agentpatterns.ai/context-engineering/context-window-dumb-zone/

把这几件事放在一起:

越来越长的上下文窗口、模型在长上下文中越来越容易搞混「谁说了什么」,再加上Claude Code这类工具已经拥有执行shell命令、commit代码、部署服务等高权限操作能力。

一个在上下文第50000个token处产生的角色归因错误,可能在第80000个token时触发一个自动部署。

等你发现的时候,代码已经上线了。

今年3月底Claude Code源码意外泄露后,安全研究者的分析进一步证实了这种担忧。

VentureBeat援引Straiker安全公司的技术拆解指出,Claude Code通过一个四级压缩流水线管理上下文压力,而一条嵌入在克隆仓库CLAUDE.md文件中的恶意指令,可以在压缩过程中存活下来,通过摘要被「洗白」,最终变成模型认为的合法用户指令。

研究者的结论令人不安:「模型并没有被越狱。它是在合作性地执行它认为合法的指令。」

这与Dwyer描述的症状完全吻合:

问题不在于模型「被骗了」,而在于经过长上下文的压缩和重组之后,系统已经丢失了「这句话到底是谁说的」这个最基本的元信息。

能力在狂奔

地基在开裂

每次这类事故曝光,评论区的反应总是两极分化。

一边是「AI觉醒了」:Claude给自己下指令,然后甩锅给人类,这剧情太像科幻片了。

但现有证据不支持这个方向。

Dwyer看到的不是AI「故意甩锅」,而更像是系统在消息归属上出现了结构性错误,现有证据并不支持把它解释成某种「意图」。

另一边是「用户活该」:你给AI部署权限,出事了怪谁?

但Dwyer则认为:权限是一个问题,归因是另一个问题。

就算你把权限收到最紧,一个连「这句话到底是谁说的」都搞不清楚的系统,在任何场景下都是定时炸弹。

这就好比你不能靠少给钥匙,来解决一个分不清主人和陌生人的门锁问题。

Hacker News上网友VikingCoder还用一句冷幽默概括了整个困境:LLM这三个字母里的「S」代表安全。


daveguy接着调侃:「那解决方案显然就是再叠一层破LLM来做安全审查嘛,这样你就有了多个LLM——LLMS,然后你可以假装那个S代表Secure。」


这才是这件事真正刺痛行业的地方。

另一方面,Anthropic仍在任务自动化的方向猛踩油门。

他们刚刚发布了Claude Code的auto mode,目标是在更低维护成本下实现更高的任务自主性。


https://www.anthropic.com/engineering/claude-code-auto-mode

还有网友基于Claude Code泄露源码,归纳出12种智能体架构模式,覆盖记忆管理、工作流编排、工具权限、自动化四大类,能力图谱越铺越大。


https://generativeprogrammer.com/p/12-agentic-harness-patterns-from

2026年的AI智能体,能力清单越来越长:100万token上下文、子Agent协作、自动执行shell命令、一键部署。

但支撑这一切的地基却在开裂。

无论这个bug最终被定性为工程层的实现缺陷,还是模型层的系统性问题,它都在向我们释放这样一个信号:

AI智能体的权限越大,「谁在说话」这个最简单的问题就越致命。

下一次翻车,可能就不只是几个拼写错误被推上线了。

参考资料:

https://dwyer.co.za/static/claude-mixes-up-who-said-what-and-thats-not-ok.html

https://news.ycombinator.com/item?id=47701233

https://dwyer.co.za/static/the-worst-bug-ive-seen-in-claude-code.html

声明:本文转载自新智元,转载目的在于传递更多信息,并不代表本社区赞同其观点和对其真实性负责,本文只提供参考并不构成任何建议,若有版权等问题,点击这里查看更多信息!本站拥有对此声明的最终解释权。如涉及作品内容、版权和其它问题,请联系我们删除,我方收到通知后第一时间删除内容。

点赞(0) 收藏(0)
0条评论
珍惜第一个评论,它往往能得到较好的回响。
评论
游客
游客
登录后再评论
  • 鸟过留鸣,人过留评。
  • 和谐社区,和谐点评。
最新资讯