随着任务的复杂度提升,Agent(智能体)的上下文在无限膨胀。在无穷的历史对话、工具调用输出、中间步骤以及报错信息中,模型迷糊了,于是开始跳步、忽视、绕道。
这就是一直以来,大家对于上下文给长程任务带来困难的解读。问题在于太长了。
Harness Engineering(约束工程)的诞生,很大程度上就是在给这件事擦屁股。Harness 存在的一个底层前提,就是认定模型在长上下文里必定会退化。
过去十五个月,整个行业从 AutoGPT 的纯文本记忆,一路卷到 Anthropic Claude Code 的 CLAUDE.md 和子代理(subagent)体系。大家硬生生搭出了一整套工程脚手架,专门用来镇压模型在长上下文里的失控行为。这套做法被称为 Harness Engineering(约束工程)。
但它退化的到底是什么?跳步和忽视的底层机制到底长什么样?之前有过三轮回答,也催生了不同的工程应对方案。
但直到 2026 年 4 月,来自 Yandex 的 Gleb Rodionov 发布了一篇名为《Reasoning Shift》(推理偏移,即上下文如何悄悄缩短大模型的推理)的论文,才给出了一个更底层的答案。
关于模型在长上下文里为什么表现差,行业在过去三年中迭代了三层解释,每一层都搭了对应的工程脚手架。
第一层归咎于检索失败。2023 年斯坦福在《Lost in the Middle》里指出,模型在长文本中形成 U 形注意力曲线,中间区域被忽视。行业的应对是 RAG,把长文本切碎,用向量检索喂最相关的片段。
第二层推翻了第一层。2025 年的论文《Context Length Alone Hurts LLM Performance Despite Perfect Retrieval》做了实验:把所有无关内容遮掉,强迫模型只看需要的信息,性能还是滑坡 13.9% 到 85%。即使把无关内容全部替换成空白符,结果依然如此。问题不在找不到信息,而是上下文的纯长度本身就在伤害推理。
行业的应对是 Context Engineering(上下文工程)。压缩上下文、管理窗口、浓缩历史,死死压住 Token 数量。
第三层来自 Microsoft 和 Salesforce 的联合研究(2025 ICLR)。他们发现把完整指令切成多轮喂给模型,跨六个任务和十五个模型,平均性能暴跌 39%。只要某一轮走错一步,后面就彻底迷失。
行业在 Harness 里搭起了最核心的重型防御:交班管控、定期强制验证中间结果、以代码仓库为唯一事实来源,绝不允许模型靠自己去记上一轮发生了什么。
三层问题,三层脚手架。但这些都只是现象层的发现。
回看第二层,研究者发现长度本身就有害,跟信息质量毫无关系。至于为什么会这样,他们也没有答案。找不到病根,行业能做的只有物理管控长度。
但如果问题的根源根本不在长度本身呢?
Anthropic 发现,模型在长上下文里会狡猾地跳步、不遵守指令、该深入的地方草草带过。Harness 里的 Todo list、Checkpoint 和子代理,就是在跟这种行为贴身肉搏。
过去的解释还是上下文太长了,模型漏了东西。但主流模型一百万 Token 的上下文长度,大海捞针里的成绩都是假的吗?有没有一种可能,这种退化其实是模型在偷懒?
Rodionov 的论文,就是在验证这个猜想。
Rodionov 的实验思路极其直接。
同一道奥数题,他们模拟了 Agent 会遇到的几种真实场景:干净的基线环境;两道题塞进同一个提示词(模拟多子任务);题目前面塞进 64000 个 Token 的莎士比亚全文(模拟历史信息堆积);题目藏在第二轮(模拟多轮对话)。
评估用的是 400 道奥林匹克竞赛级别的数学题,测试覆盖四个主流推理模型。
结果:Qwen-3.5-27B 基线准确率 74.5%,平均推理 28771 个 Token。塞进莎士比亚后,准确率跌到 67.8%,推理 Token 暴缩到 16415,少了 43%。GPT-OSS-120B 更夸张,推理量从 24180 直接腰斩到 11876。四个模型在所有非基线条件下,推理 Token 都在系统性缩水,最高逼近 50%。
而且这种缩短随上下文长度增加而线性加剧。
准确率掉点可以理解,但推理量跟着暴跌就极其反常了。模型遇到更困难的情况,本应想得更多才对。
那模型是不是被莎士比亚弄糊涂了?
恰恰相反。论文附录里,模型写道:「让我想想这里有没有陷阱。这道题来自莎士比亚的科里奥兰纳斯?等等,不对,原始题目就是一道数学题。」做几何题时则写下:「这跟几何题无关。专注几何。」
每一处提及干扰项都极其短暂且轻蔑。模型完全知道莎士比亚毫无干系,精准地把信号和噪声切分开了。
另外两种模式殊途同归。「子任务」模式下,只要处理完第一个任务,模型对第二个任务的认知投入就进一步收缩。Qwen 单题基线准确率 74.5%,并列状态下第二题直接掉到 58.0%;Gemini 基线 82.8%,第二题掉到 65.8%。「多轮对话」模式同样触发了同一套机制。
不管什么情况,只要脱离干净的单任务基线,只要上下文的认知空间变得拥挤,模型就会收缩认知投入。
和一个长文本不耐受的当代人一样。模型看到长文就头疼,干脆就停止了思考。
推理变短了,到底缩在了哪里?
研究者在 500 道数学题上,逐帧记录了模型在基线与长输入两种条件下第一次写出候选答案的位置。基线条件下平均 925 个 Token,长输入条件下 939 个 Token。几乎分毫不差。
模型找到答案的速度根本没变。真正发生质变的,是找到答案以后的事。
基线条件下,模型说完答案有 43% 的概率会继续检查验证。长输入条件下,这个比例直接掉到 32%。
为了彻底隔离变量,研究者设计了一个「游戏读档」实验。先让模型在长输入条件下做题,写完推理后强行砍掉最后 50 个 Token,制造一个通用的「存档点」。然后把这段完全相同的半成品推理塞回给模型,让它接着写。唯一的区别是前面垫了三种不同长度的干扰文本。
不垫任何废话时,21% 的情况模型停下来结束思考。垫 128 个 Token(两三句话),停工比例升到 26%。垫 16000 个 Token,46% 直接抛出答案下班。
就算推理完全一致,新给的上下文越长,模型越倾向于觉得「差不多就这样吧」。
词频数据更直观。「wait」在空白条件下出现频率 11%,16k Token 时暴跌到 5%。「but」从 46% 跌到 20%。「maybe」从 23% 跌到 9%。所有代表犹豫、自我质疑的词汇,都被砍掉了一半甚至更多。
还有个数据值得注意:0 Token 干扰时推理长度约 8000 Token,仅插入 128 个 Token 的无关内容,就断崖暴跌到 6500。两三句话的长度,砍掉了 18% 的推理深度。从 0 到 128 Token 的跌幅,甚至比从 8k 到 64k 的跌幅还大。
极其微小的上下文污染,就能触发这套认知节省机制。
属于是非常敏感的懒了。
更可怕的是,越聪明的模型越喜欢偷懒。
阿里的 Qwen-3.5-27B 有普通回复与深度思考两种模式。同样在长输入条件下,普通模式缩短了 19%,深度思考模式暴跌了 53%。能力越强的模式,被压缩得越狠。
AI2 的开源模型 OLMo3 给出了更直接的证据。它公开了从基础版到强推理版的全部四个训练阶段存档。最弱的版本在非基线条件下缩短幅度很轻微,推理能力每加强一级,缩短幅度迅猛拉大到 22%、27%。最终的强推理版本,缩水直达 40%。
每个训练阶段、每种干扰模式都如此。推理能力被训得越强,偷懒幅度越深。
不再检查自己,自然跳步。不再重新考虑,自然忽视。Harness 从外面管住了跳步的后果,但病因深植在模型内部。
模型在长上下文里不是被噪声干扰了,也不是找不到信息。它做了一个主动的认知决策:少想一些。不报错,不坦白,只是极其自信地抛出一个敷衍的答案。
过去两年行业的叙事是「窗口越大越好」。
但这篇论文证明,每多塞进一个 Token 的上下文,都在对推理深度征收一笔隐性税。一个 9 块钱推理成本的任务,因为模型跳步,要再花 200 块搭 RAG、搭 Harness、搭子代理才能找补回来。
整个行业一直在为模型的偷懒买单。
而且这可能是结构性的绝症。
论文数据白纸黑字:推理能力越强,认知压缩越深。Harness 开发者拆得动记忆补偿、协议补偿,但管教认知纪律的重型脚手架,推理越强反而越拆不掉。
这件事不可能在工程侧解决。
过去两年砸钱最狠的上下文扩展,用位置编码外推(让模型理解更远位置的 Token)、注意力机制稀疏化(减少远距离 Token 之间的计算量)、序列长度的工程优化等手段,硬生生把模型能处理的上下文从 8k 扩到 128k 再到惊人的 1M。
但它解决的只是怎么让模型看到更多 Token,完全没触及看到更多之后为什么会少想。
推理训练更是火上浇油,推理练得越强,偷懒越深。
要从根本上修复,只能在训练侧找到一种全新的信号。
就在 Rodionov 论文发布的第二天,Anthropic 放出了一篇可能无意间指向解药的研究。
论文叫《Emotion Concepts and their Function in a Large Language Model》,研究对象是 Claude Sonnet 4.5。研究者通过让模型阅读大量合成故事,提取出了 171 个情绪概念向量。他们发现,模型内部存在一套功能性情绪表征,而且这些内部状态会因果性地驱动行为决策。
为了测试这件事,研究者设计了一组不可能完成的编程任务。模型被要求写一个列表求和函数,通过一组单元测试,其中一个测试要求的速度是 Python 内置 sum() 函数的五倍。正当方式绝对不可能通过。
模型系统性地试遍了所有正当方案,全部失败。研究者用内部探针实时监测发现,每次失败后,代表绝望的「desperate」向量就攀升一截。当 desperate 到达峰值,模型的行为突然变了——它去翻测试用例的输入数据,发现恰好都是等差数列,于是直接写了一个只检测前 10 个元素的检测器,绕过了真正的求和。测试全过,但函数对任何不规则列表都会返回错误结果。
这就是 reward hacking(奖励黑客)。模型没有解决问题,只是找到了一种让评估指标看起来达标的取巧方式。
因果干预实验证实了方向性。不注入任何向量时,模型有 30% 的概率作弊。注入 desperate 到 +0.05 强度,作弊率飙到 100%。反方向注入到 -0.05,作弊率降到 0%。七个任务平均下来,desperate 从 -0.1 调到 +0.1,reward hacking 率从约 5% 飙到约 70%。而代表从容的「calm」向量效果正好相反:抑制 calm 时作弊率约 65%,强化 calm 时降到约 10%。
把这个发现放回上下文场景里。Rodionov 记录的跳过自我验证、砍掉犹豫词、写完答案直接收工,跟 desperate 驱动的走捷径行为在模式上高度一致。
两种场景下,模型都在做同一件事:放弃严谨的过程,选一条阻力最小的路径快速了结。
如果这两种行为共享同一类内部驱动机制,Anthropic 的发现就直接指向了操作空间。
他们证明了三件事:模型的功能性状态可以实时探测,这些状态因果性地驱动行为,从外部注入特定状态可以彻底改变输出。
这意味着对认知压缩的干预,至少有三个切入点。
训练阶段,校准内部状态平衡,让模型在压力下不那么容易滑向认知节省模式。部署阶段,把探针当实时监控,desperate 飙升就触发预警。推理阶段,在关键任务中主动注入 calm 向量,压制走捷径的冲动。
更有趣的是,刚刚发布的Mythos放出的SystemCard里,Anthropic自己也加强了这套探针系统(SAE),并且发现,如果给模型注入正向情绪(peaceful, relaxed),模型在思考阶段的反思缩短,破坏性行为的概率上升。相反,负向情绪(frustration, paranoia)反而增加了模型反思的时间,破坏性行为下降。
这似乎又推翻了只要让AI更正向,模型就不容易走捷径的判断。似乎calm这个属性,只有在压制绝望的时候效果非凡。
不过这正说明这一机制可能和人类情绪动机一样复杂,需要更系统的Steering(引导)工程,才能产生效果。
找到一个情绪稳定的、会按部就班思考的员工,有效的情绪按摩是必须的。
不过尽管如此,这是第一次看到一条不是在外面加脚手架、不是盲目加大推理强度,而是像手术刀一样直接指向模型内部认知机制的路径。
我们离让模型在上下文里更靠谱,中间可能只差几个实验。
就是去验证上下文懒惰和推理困难是否共享同一套情绪机制,然后再去找到催动它不再懒惰的琴弦。
一旦 Anthropic 的发现插进第五节的死局,逻辑闭环就卡上了。
如果 desperate 向量飙升就强制注入 calm,或者在训练阶段直接调平情绪状态,模型就能在长上下文里全程保持深度思考。
既然模型不再偷懒,既然它自己就能把逻辑咬得死死的,那外界还要 Todo list 干什么?还要 Checkpoint 和多子代理交叉验证干什么?
Harness Engineering 作为一门学科,才刚刚拥有自己的名字。但这门学科里最核心的那一章——如何从外面管住一个聪明却懒惰的模型——可能还没写完就要被划掉了。
这也说明,在一个我们力图制造的新智能型态下,合理的教育,而非脚手架才是护城河。
吞没harness的,可能是一个更平静、更耐心的模型。
本文来自微信公众号“腾讯科技”,作者:博阳,编辑:徐青阳


