跳到內容

Technology

新聞|REMORY:在 compaction 摘要後附上學來的軟記憶,補足文字摘要漏掉的資訊

上海科學智能研究院、復旦大學等單位 10 月 8 日發表 REMORY:agent 壓縮上下文時,除了文字摘要,再由記憶網路產生最多 4,096 個軟 token 附在摘要後面,執行任務的模型保持凍結。整理它的設計、兩階段訓練、SummHay 與四個 agent 基準的結果,以及實驗設定上要留意的地方。

AI
Published: at 09:00 AM
編輯本頁下載圖卡

重點

要解決的問題

長時程 agent 的上下文視窗有上限,觀察、工具輸出與決策累積到一定長度,就得壓縮歷史才能繼續。Claude Code 與 Codex CLI 的 /compact 都是把先前的互動換成一段文字摘要,agent 再從這份摘要往下做。論文畫出一次 agent 執行中每個請求的輸入長度:隨互動增加,壓縮時驟降,然後再增加,呈鋸齒狀。

摘要寫成的時候,還不知道之後會需要哪些細節。論文刻意不假設摘要之外需要的資訊能事先列舉出來。論文舉的例子是 Terminal-Bench 的一個細胞分割任務:一次重構在壓縮前刪掉了幾個 helper function,摘要記下了已知的錯誤和備份檔,但沒有留下實際的編輯指令。

做法

殘差記憶

每到一次壓縮邊界 ii:

actor 依序讀到固定的系統指示、[Si;Mi][S_i; M_i],再讀之後的新互動。下一次壓縮時,HH 裡包含上一輪的摘要與記憶,所以記憶能跨越多次壓縮保留下來。論文把「以摘要為條件產生、再附在摘要後面」類比為沿著序列維度的殘差連接,因此稱為 residual memory。存檔與檔案檢索工具照常可用,需要精確紀錄時仍然靠工具取回。

記憶網路的設計:

Actor記憶網路架構可訓練參數上下文視窗
Qwen3.8-27B改自 DFlash19.4 億262,144
GLM-5.3-Flash(3,200 億參數)DFlash-2,加上分組動態卷積15.02 億100 萬

DFlash 原本是用於 speculative decoding 的 block diffusion 架構。記憶網路依附於特定 actor 訓練,兩個模型各有自己的一份。

兩階段訓練

teacher 與 student 共用同一個凍結的 actor,差別只在輸入:

階段Teacher 的輸入Student 的輸入資料
一、重建一段原文,加上「把它重複一次」的指令以軟記憶取代原文,指令相同MMFineReason-Full-2.3M 的文字欄位
二、以摘要為條件的續寫原始互動歷史固定的摘要,加上由該歷史產生的記憶推理與程式軌跡(含 Open-PerfectBlend 的提示)、預先產生的摘要與 Qwen 產生的回應,依前文長度由短到長排序

兩個階段都預測同一段目標回應,損失是 student 對 teacher 的 reverse KL:

L(ϕ)=∑jwj DKL(qj ∥ pj)∑jwjL(\phi) = \frac{\sum_j w_j\, D_{\mathrm{KL}}(q_j \,\|\, p_j)}{\sum_j w_j}

其中 pjp_j 是 teacher 在第 jj 個位置的預測分布,qjq_j 是 student 的。KL 涵蓋整個詞彙表與整段回應,權重 wjw_j 稍微偏重較前面的位置,只更新記憶網路的參數 ϕ\phi。

第二階段裡,記憶編碼器看不到未來的回應。摘要已經在 student 的輸入中,所以記憶被導向填補剩下的預測差距,可以與摘要重疊,也不必重建每個被省略的事實。論文也畫出第二階段以第一階段結果初始化、與隨機初始化的訓練曲線,兩者用相同的目標與資料順序,作為最佳化的診斷。

壓縮後還能不能指出來源

SummHay 要求模型從大量文件中找出與查詢相關的 insight,並標出來源文件。實驗用 Qwen3.8-27B 跑完十個文件集的 92 個查詢,比較四種輸入:

三種壓縮條件共用同一個 actor、查詢、解碼設定與基礎摘要。回答時沒有工具、存檔或來源檢索可用,評分用 GPT-5.6-Sol 與基準自帶的 coverage 提示。

輸入CoverageCitation F1Joint score
完整上下文72.4656.6043.41
只有摘要67.5556.9839.84
Summary++67.5256.9439.78
摘要+REMORY67.9561.0343.39

coverage 幾乎不變、歸因明顯提升,論文據此解讀:記憶主要幫模型把已經找回的主張對應到支持它的證據。

端到端的 agent 任務

每組比較固定模型權重、Codex CLI harness、提示詞、工具、解碼設定、預算與壓縮策略,兩種設定都能取回精確的歷史紀錄。差別只在壓縮時多加最多 4,096 個記憶 slot。

基準任務數Actor執行次數評分方式
BrowseComp1,266Qwen、GLM1GPT-5.6-Sol 評審
Terminal-Bench 2.189Qwen、GLM1任務驗證器
AutomationBench600Qwen5任務驗證器
JobBench65Qwen5GPT-5.6-Sol 評審

Qwen3.8-27B 在工作流程任務上的結果(五次平均 ± 標準差,成本為每題平均):

設定AutomationBench成本JobBench成本
無記憶35.5 ± 1.3$0.5933.4 ± 1.25$3.09
有記憶45.3 ± 1.0$0.5341.0 ± 1.41$3.21

Terminal-Bench 2.1 與 BrowseComp(各跑一次;重複與錯誤是整個任務集的工具輸出次數):

基準Actor記憶分數成本重複錯誤
Terminal-Bench 2.1Qwen3.8-27B無71.9$4.29459933
Terminal-Bench 2.1Qwen3.8-27B有76.4$2.86377568
Terminal-Bench 2.1GLM-5.3-Flash無84.3$3.27334664
Terminal-Bench 2.1GLM-5.3-Flash有87.6$3.05240496
BrowseCompQwen3.8-27B無74.0$5.3925,80125,244
BrowseCompQwen3.8-27B有77.0$4.6918,10512,698
BrowseCompGLM-5.3-Flash無84.9$5.658,3167,498
BrowseCompGLM-5.3-Flash有89.0$5.005,8345,412

論文也把 GLM 加記憶後的分數,跟 Gemini 3.1 Pro、Claude Mythos 5、GPT-5.6 Sol 公開的 BrowseComp 與 Terminal-Bench 分數畫在同一張圖上。那些分數各用自己的 harness 與協定,論文註明它們只是參考,有控制的證據只有同一個 actor 的前後比較。

壓縮後的第一個動作

論文從 100 條 Qwen 的 BrowseComp 軌跡中取出 488 組壓縮後的下一個動作,固定系統提示與摘要,只比較有無記憶。GPT-5.6-Sol 依照根據先前歷史訂好的評分標準,比較匿名化的兩個動作;評審看不到候選動作的推理過程,反事實的工具呼叫也沒有實際執行。

結果次數比例
有記憶較好34570.7%
平手214.3%
無記憶較好12225.0%

這比較的是評審對提議動作的判斷,論文強調它沒有量到這些動作執行後的結果。

兩個案例

模擬交易:兩個 Qwen 模擬交易帳戶同時運作,壓縮策略相同,起始資金各 2 萬美元。

指標無記憶有記憶
9 月 23 日已結算 ROI−11.86%+5.11%
生成成本$303.81$170.30
壓縮次數5645
回應次數5,3363,013
每千次回應的壓縮次數10.514.9
平均上下文位置(含記憶)105,372101,185

兩個帳戶選的市場與時機不同,論文說報酬不適合直接比較。成本較低的原因是呼叫次數較少、上下文較短。

細胞分割:前面提到的 Terminal-Bench 任務裡,有摘要與記憶可用的 actor 重新讀了兩個檔案、補回被刪的 helper function,通過全部 9 個驗證測試。論文說這個案例顯示摘要、記憶與檢索各有角色,但無法確定被省略的細節是不是來自記憶。

跟既有做法的差別

釋出與部署

要留意的地方

論文沒有獨立的限制章節,以下整理自實驗設定與正文:

參考資料

註釋

編輯本頁

Podcast

關於語音摘要

此語音摘要由 Google NotebookLM 提供,不完全代表作者本人對文章的理解。