Harness 剛火,可能就要成為過去式了

撰文:博陽

隨著任務的複雜度提升,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(引導)工程,才能產生效果。

找到一個情緒穩定的、會按部就班思考的員工,有效的情緒按摩是必須的。

不過儘管如此,這是第一次看到一條不是在外面加腳手架、不是盲目加大推理強度,而是像手術刀一樣直接指向模型內部認知機制的路徑。

我們離讓模型在上下文裡更靠譜,中間可能只差幾個實驗。

就是去驗證上下文懶惰和推理困難是否共享同一套情緒機制,然後再去找到催動它不再懶惰的琴弦。

Harness 剛火,可能就要被模型的進化吞沒

一旦 Anthropic 的發現插進第五節的死局,邏輯閉環就卡上了。

如果 desperate 向量飆升就強制注入 calm,或者在訓練階段直接調平情緒狀態,模型就能在長上下文裡全程保持深度思考。

既然模型不再偷懶,既然它自己就能把邏輯咬得死死的,那外界還要 Todo list 幹什麼?還要 Checkpoint 和多子代理交叉驗證幹什麼?

Harness Engineering 作為一門學科,才剛剛擁有自己的名字。但這門學科裡最核心的那一章——如何從外面管住一個聰明卻懶惰的模型——可能還沒寫完就要被劃掉了。

這也說明,在一個我們力圖製造的新智能型態下,合理的教育,而非腳手架才是護城河。

吞沒 harness 的,可能是一個更平靜、更有耐心的模型。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 打賞
  • 留言
  • 轉發
  • 分享
留言
請輸入留言內容
請輸入留言內容
暫無留言