每个 Token 能够分配给其余上下文的影响力是有限的。对某一条关系投入较强影响,就会减少留给其他关系的份额。预算按 Token 分配,不会随着上下文增长而增加,因此长会话中的注意力会被稀释。
可以把它想成信号与噪声。你的指令是一段音量固定的信号;上下文窗口中的其他每个 Token 都是与它竞争的声音。指令本身从未变小——每个字符仍原样存在——但随着上下文增长,周围房间越来越嘈杂,信噪比随之下降。一条在 10k Token 上下文中最响亮的指令,到了 150k 时可能只剩背景嗡鸣。这就是注意力退化背后的机制:模型并没有忘记,只是信号被噪声淹没了。
表现看起来像是不服从指令——智能体在早期同意了某项约束,后来却逐渐偏离;重新粘贴约束也只能短暂改善。问题不在指令本身,而在窗口中的其他所有内容都在与它竞争。
你能够控制的是哪些内容进入上下文。与任务无关的内容并不是中性的——它会成为覆盖在有用内容之上的噪声。保持窗口精简;当累积上下文的收益不再覆盖成本时及时清空;对重要约束重新说明,不要相信会话早期提过一次就能始终有效。
用法:
“为什么它一直忽略我最开始粘贴的 schema?”
“我们已经深入迟钝区——每个 Token 的注意力预算固定不变,上下文却一直增长。schema 的信号现在要与数千个更新的 Token 竞争。”