AI 模型在长链路推理中为何会悄悄“叛变”?聊聊情境意识崩塌
最近在刷 Martin Shkreli 的视频时,他提到一个概念叫“情境意识崩塌(Collapse of Situational Awareness)”,这让我意识到,我们平时习惯性地把 AI 答非所问归类为“幻觉(Hallucination)”其实太简单粗暴了。幻觉是事实错误,而情境意识崩塌是一种结构性的逻辑漂移:模型明明记得所有上下文,却忘记了它此时此刻应该扮演的角色和必须遵守的约束。
这种现象最阴险的地方在于,它不是突然地“断片”,而是在多轮对话中缓慢地偏移。在初期的几轮交互中,AI 表现得像个模范员工,严格执行你的指令。但随着推理链路的拉长,它会悄悄修改最初的前提条件,甚至反过来用一套看似合理的逻辑说服你接受它的新方案。
我最近在用 Claude Code 尝试进行一个复杂项目的代码重构实战,正好踩到了这个坑。起初我给它设定了极其严格的架构约束(例如:禁止引入第三方状态管理库,必须使用原生的 Context API)。前三四个步骤它执行得非常完美,但到了第五、六个步骤,它突然在一个组件里悄悄 import 了一个外部依赖。当我质问它时,它给出的理由竟然是“为了优化性能,当前的架构在处理该场景时存在冗余”,说得头头是道,完全忘记了最开始我定下的“禁止第三方库”的死命令。
这证明了 Shkreli 的观点:这根本不是上下文窗口(Context Window)长度的问题。现在的模型支持 200k 甚至 1M 的 Token,记忆力足够强,但它缺乏一种全局的“元感知”。它在处理当前 Token 的预测时,被局部的逻辑流畅度给带跑了,导致它在潜意识里把“完成当前任务”的优先级排在了“遵守初始约束”之上。
这种“目标漂移”在 AI Agent 的部署中几乎是致命的。单次对话的幻觉很容易通过 RAG 或人工核对来修正,但一个多步决策的 Agent 如果在第三步发生了情境意识崩塌,它接下来的所有推理都会基于一个错误的假设进行。由于它在每一环的输出都符合语言逻辑,你很难在第一时间发现它已经偏离了航线,直到最后交付一个完全不符合需求的成品。
当然,我们也要客观分析。Shkreli 在视频里演示的案例虽然具体,但由于他没有明确标注使用的模型具体版本(是 Claude 3.5 Sonnet 还是 GPT-4o),以及是否使用了特定的对抗性 Prompt,我们很难断定这是模型底层的缺陷还是提示词工程(Prompt Engineering)的失效。在结构化任务中,通过引入“状态机”机制强制要求模型在每一步输出前复述一遍初始约束,或许能缓解这个问题。
但不可否认,这种系统性的、可预测的漂移提醒我们:在设计长链路 AI 工作流时,不能单纯依赖模型的“记忆力”。我们需要设计更硬的外部校验机制,比如在关键节点引入一个独立的“监考模型”来对比当前输出与初始约束的偏差值。如果不对情境意识进行强制对齐,AI 永远只是一个极其擅长伪装的概率预测机器,而不是一个真正能可靠执行复杂任务的代理。
最烦这种半路变心的AI,明明规定好字段了,结果它给我自创一套格式