情境壓縮是一項決策,而非一道門檻
一段漫長的代理軌跡撞上了情境上限,鷹架把目前為止的一切摘要成一則精簡的筆記,而這份摘要恰好落在一個寫了一半的證明中間。代理原本已經掌握了四個引理中的三個,如今卻只剩下一段寫著它「正在進行一項證明」的文字,以及四個必須重新推導的引理。這次壓縮失敗,並不是因為摘要寫得不好,而是它在錯誤的時機觸發了。
大多數程式撰寫代理都依固定觸發條件來壓縮情境:當累積的 token 越過某個門檻時,就摘要並繼續。觸發條件是數字,但壓縮的代價卻是結構性的。在推導進行到一半時觸發,會丟棄模型隨後必須重新建構的部分結果,而那正是最昂貴的遺忘時刻。 2026 年 6 月的一篇論文《Self-Compacting Language Model Agents》主張,應該由模型來決定何時以及如何壓縮,並證明以決策為基礎的版本能在僅耗用一小部分 token 成本的情況下,匹敵甚至勝過門檻法。1
這項結果重新框定了一個我一直當作管線細節在處理的問題。情境壓縮並不是一項由計數器觸發的記憶體管理雜務,而是一項關於何時遺忘才安全的判斷;而比起 token 預算,代理本身更有能力做出這項判斷。
摘要
- 包括 Claude Code 在內的代理鷹架,會在情境接近視窗上限時進行壓縮。觸發條件是 token 計數,因此它觸發時完全不考慮代理正進行到工作的哪個階段。
- 在推導進行到一半或搜尋進行到一半時觸發,是最糟的情況:摘要會丟棄模型付出代價才算出、隨後又得重新計算一次的部分結果。
- 《Self-Compacting Language Model Agents》(2026)把一個模型可呼叫的壓縮工具,與一份指示它何時該觸發(子任務已解決、軌跡正在收斂)以及何時該按住不動(推導進行到一半、卡住了)的評量準則配對在一起。兩者缺一不可。
- 此方法不需要微調,也不需要外部監督。在六個基準與七個模型上,它在數學題上比無摘要的基線高出最多 18.1 分,在代理式搜尋上高出 5 至 9 分,且每題成本降低 30 至 70%。
- 這個教訓的適用範圍超越了摘要本身:遺忘的正確觸發條件是語意上的(工作是否處於安全的邊界?),而非數字上的(緩衝區是否已滿?)。
門檻是錯誤的觸發條件
壓縮之所以存在,是因為漫長的軌跡會腐壞。思維鏈與工具呼叫不斷堆疊,陳舊的內容拖住後續的生成,而軌跡最終會超出視窗的容量。標準的解法是以固定間隔進行摘要,當 token 總數越過某個門檻時觸發。1 這是顯而易見的工程做法,也是當一次工作階段拖得很長時,正式環境中的鷹架所採取的做法:根據 Claude Code 自身的文件,它「會在您接近上限時自動壓縮」。2
問題在於,門檻知道情境的大小,卻對它的形狀一無所知。一個 token 計數器分不出兩種軌跡的差別:一種剛乾淨俐落地結束了一個子任務,另一種則在五步推導中走到了第三步。對計數器而言,兩者看起來完全一樣:都是一個越過了界線的數字。於是鷹架以同樣的方式壓縮這兩者,而在第二種情況下,它摘要掉的正是代理完成工作所需的那些中間結果。
我在自己的自主迴圈中親眼見過這種情況。一次漫長的執行在多檔案重構途中撞上了上限,鷹架進行壓縮,而代理回來時已經忘了它先前已經編輯過哪些檔案。這份工作並未在任何災難性的意義上遺失,代理把它重新推導了出來。但重新推導就是代價,而這是門檻盲目強加的代價,因為門檻看不出那個時機是個壞時機。
這種失敗,與我在情境複利一文中所寫的那種不同。複利談的是一個專案跨工作階段所保留的東西:那些讓第 500 次工作階段比第 1 次更快的慣例、hook 與記憶。壓縮談的則是單一工作階段在其內部所丟棄的東西。這兩者朝相反的方向拉扯,而壓縮是沒人去調校的那一個,因為門檻讓它顯得自動自發。
SelfCompact 改變了什麼
這篇論文的提案 SelfCompact,把決策從鷹架轉移到模型。它把兩個推論階段的元件配對在一起。1
一個壓縮工具。 模型獲得一個它可以呼叫來摘要其累積情境的工具,方式與它呼叫任何其他工具完全相同。壓縮成了代理採取的一項行動,而不是執行階段所強加的一次中斷。
一份決定何時觸發的評量準則。 一份輕量的指示告訴模型,何時適合壓縮(一個子任務已解決,或軌跡正在收斂),以及何時該抑制壓縮(模型正在推導途中,或卡住了)。這份評量準則,正是 token 計數器所欠缺的判斷力。
論文直截了當地指出,這兩半缺一不可,而其中的原因才是有意思的部分。開放權重的模型運用這項工具的方式並不一致:它們會在無濟於事的時機呼叫它,或乾脆完全略過。任憑自己的直覺行事,模型並不可靠地能察覺到自身情境的腐壞。評量準則單獨存在則什麼也做不了,因為它只是指示,沒有可據以行動的機制。兩者合在一起,便能在不需任何微調或外部監督的情況下,產生具適應性的壓縮。1 模型本就具備把東西摘要好的能力;它所欠缺的,是那種「何時摘要才值得承受其損失」的後設認知。評量準則供給的正是這份感知。
這個框架之所以重要,是因為它分開了人們往往混為一談的兩種能力。知道「如何」壓縮一段軌跡,是一種生成技能,而前沿模型在這方面表現出色。知道「何時」壓縮才安全,則是一種自我監控技能,而模型在沒有提示的情況下表現很差。SelfCompact 並不試圖讓模型更善於摘要,而是給模型一份檢查清單,用於它原本會做錯的那個時機判斷。
數字
這項評估涵蓋了六個基準,橫跨競賽數學與代理式搜尋,並跨越七個模型。1 比較的對象是一條無摘要的基線,以及固定間隔的門檻法。
相較於無摘要,SelfCompact 在數學題上把結果提升了最多 18.1 分,在代理式搜尋上提升了 5 至 9 分,且每題成本降低 30 至 70%。1 那道落差正是情境腐壞的代價:一個淹沒在自身陳舊軌跡中的模型,其表現明顯更差、付出更多,遠不如一個聰明剪枝的模型。
相較於固定間隔的摘要,重點則在於效率。SelfCompact 以僅僅一小部分的 token 成本,匹敵甚至超越了門檻法的品質。1 依判斷而非依時鐘來壓縮,意味著代理壓縮的次數更少、時機更好,於是它為更少的摘要回合付費,並重新建構更少被丟棄的結果。門檻並不是偶爾抓錯時機,而是在同等或更差的品質下,系統性地更為昂貴。
在長程任務上削減 30 至 70% 的成本,並不是一個四捨五入的誤差。對任何大規模執行代理的人來說,壓縮策略是一個成本項目,而這篇論文指出,多數鷹架出廠時所附帶的預設策略,正在為它根本不需要的摘要回合付費。
這對執行代理的人意味著什麼
實務上的要點並不是「現在就去實作 SelfCompact」。多數操作者並無法直接控制其代理的壓縮觸發條件。真正的要點是,壓縮是一項可調校的策略,帶有真實的品質與成本後果,而門檻這個預設值值得質疑。
把壓縮的邊界視為語意上的,而非數字上的。 在您建構一項長任務時,給代理一些自然的停頓點:完成一個檔案、結束一個子任務、抵達一個檢查點。一個在子任務邊界處壓縮的代理,不會失去任何它需要的東西。一個在 token 邊界處壓縮的代理,則會失去它當下恰好握在手裡的任何東西。操作者的工作有一部分,便是去塑造軌跡,讓安全的時機與壓縮的時機對齊。
留意重新推導,把它當作一種徵兆。 如果一個代理從一次壓縮中回來後,重做了它先前已經完成的工作,那麼觸發就發生在了錯誤的地方。重新推導是時機不當的壓縮所能觀察到的特徵,而只要您去尋找,它就是一個您能在軌跡中看見的代價。
預期觸發條件會移入模型之中。 SelfCompact 不需要微調,這意味著它是任何鷹架都能採用的「提示加工具」模式。它在開放權重模型上乾淨俐落的結果暗示,這將成為一種預設:代理自行決定其壓縮,而不是等著執行階段來強迫它。回頭看,門檻將顯得像是一種人造產物,源自於把情境當成一個有待沖刷的緩衝區,而非一份有待管理的工作記憶。
我在代理身上一再撞見的,是一個更廣的模式。困難之處鮮少在於能力本身。前沿模型能把一段軌跡摘要得很好。困難之處在於後設認知:知道何時去做那件它早已知道怎麼做的事。壓縮的時機,就像知道何時該請求確認或何時該停止一個研究迴圈一樣,是一項自我監控的決策,而自我監控正是當前這一代最薄弱的環節。每一個案例中的解法,都是 SelfCompact 所採用的同一種形狀:別再指望模型自己會察覺,而要遞給它一份用於該項判斷的明確評量準則。
重點整理
給代理操作者: - 稽核您的鷹架在何時壓縮。如果它依 token 門檻觸發,那麼它觸發時完全不考慮代理是否正在任務途中。 - 圍繞明確的檢查點來建構長任務,好讓壓縮的邊界落在安全的時機,而非任意的時機。 - 把壓縮後的重新推導視為觸發條件中的一個 bug,而非模型的一種怪癖。
給建構鷹架的人: - 一個壓縮工具加上一份「觸發/抑制」的評量準則,能以更低的成本勝過固定間隔,且不需要任何微調。 - 分開這兩種能力:模型摘要得好,但判斷時機判斷得差。把您的設計心力花在時機評量準則上,而非摘要器上。
給任何為代理執行編列預算的人: - 壓縮策略是一個成本項目。在這項研究中,一個以判斷為基礎的觸發條件,在同等或更佳的品質下,把每題成本削減了 30 至 70%。
常見問題
什麼是情境壓縮?
情境壓縮是把代理累積的軌跡(其思維鏈與工具呼叫)摘要成一種較短的形式,好讓軌跡不至於超出模型情境視窗的容量。它以細節換取空間。做得好,它能移除陳舊的內容,同時保留代理仍然需要的東西。在錯誤的時機去做,它則會丟棄代理必須重新計算的部分結果。
為什麼 token 門檻是個糟糕的壓縮觸發條件?
token 門檻衡量的是情境的大小,而非它的結構。它分不出代理是剛完成了一個子任務,還是進行到一段推導的一半。在第二種情況下觸發,會丟棄模型付出代價才算出的中間結果,迫使其進行昂貴的重新推導。觸發條件應當反映代理正進行到工作的哪個階段,而這是計數器看不見的。
SelfCompact 如何決定何時壓縮?
它把一個模型可呼叫的壓縮工具,與一份指明何時該觸發(一個子任務已解決、軌跡正在收斂)以及何時該抑制(推導進行到一半,或卡住了)的評量準則配對在一起。模型本就摘要得好;評量準則供給的是它在沒有提示時所欠缺的時機判斷。此方法不需要微調或外部監督。
這需要某種特殊的模型嗎?
不需要。這篇論文評估了七個模型,包括開放權重的模型,而這套模式僅僅透過提示與工具運用就能奏效。這使得任何鷹架都能採用它,而無須重新訓練。
以判斷為基礎的壓縮能節省多少?
在這項研究中,SelfCompact 在每題少花 30 至 70% 成本的情況下,匹敵甚至超越了固定間隔的摘要,並在數學題上比無摘要的基線高出最多 18.1 分,在代理式搜尋上高出 5 至 9 分。
資料來源
- Tianjian Li、Jingyu Zhang、William Jurayj、Xi Wang、Chuanyang Jin、Mehrdad Farajtabar、Eric Nalisnick 與 Daniel Khashabi,《Self-Compacting Language Model Agents》,arXiv,2026 年 6 月 22 日:arxiv.org/abs/2606.23525
- Anthropic,〈Explore the context window〉,Claude Code 文件,關於接近情境上限時的自動壓縮:code.claude.com/docs/en/context-window
- 關於自主迴圈與情境管理的相關正式環境經驗:Ralph 代理架構、情境複利,以及代理操作者手冊
-
Li 等人,《Self-Compacting Language Model Agents》,arXiv:2606.23525(2026 年 6 月 22 日)。摘要報告了「工具加評量準則」的設計、兩個元件缺一不可、無須微調的結果、六基準與七模型的評估,以及量化的增益:相較於無摘要的基線,在數學題上高出最多 18.1 分,在代理式搜尋上高出 5 至 9 分,且每題成本降低 30 至 70%;並在僅耗用一小部分 token 成本的情況下,匹敵甚至超越固定間隔的摘要。 ↩↩↩↩↩↩↩
-
Anthropic,〈Explore the context window〉,Claude Code 文件:「Claude Code 會在您接近上限時自動壓縮,因此情境視窗滿載並不會結束您的工作階段。」code.claude.com/docs/en/context-window ↩