arXiv 2026 · Stanford · 論文導讀

AutoMem

把「記憶管理」當成一種可訓練的認知技能(metamemory):讓模型自己用檔案系統決定要記什麼、何時查、怎麼組織,再用兩個 meta-LLM 外迴圈自動優化,讓 32B 開源模型追平 Claude Opus 4.5。

Metamemory Memory as File System Long-Horizon Agent Meta-LLM 外迴圈 LoRA Memory Specialist BALROG · Crafter · NetHack

Shengguang Wu, Hao Zhu, Yuhui Zhang, Xiaohan Wang, Serena Yeung-Levy · Stanford University · arXiv:2607.01224 · 專案頁 · github.com/autoLearnMem/AutoMem

SECTION 01

問題定義 — 記憶不是模組,而是技能

認知科學把「決定什麼值得記、何時取回、如何組織」這種能力稱為 metamemory(後設記憶),而且它是練出來的技能。本文把這個視角搬到 LLM:與其把記憶設計成一個固定架構模組,不如讓模型自己主動管理記憶,並把這件事當成可以被觀察、評估、優化的技能。

1.1 LLM 的瓶頸:context window 就是 working memory

LLM 的 context window 扮演「工作記憶」的角色 — 一個固定大小、限制模型一次能注意多少內容的緩衝區。長時程(long-horizon)任務動輒跑上萬步,遠遠超過這個容量。過去的外部記憶做法(RAG 檢索庫、向量庫、scratchpad、summary buffer,如 MemGPT、Generative Agents、A-MEM、MemoryBank)幾乎都把記憶當成一個被設計進系統的固定機制

1.2 本文的不同視角

本文把 read / write / search / append / create 這些檔案系統操作,提升為模型 action space 裡的第一級記憶動作,和它作用於世界的任務動作平起平坐。同一次 forward pass 既能選任務動作,也能選記憶操作(例如 <|APPEND|><|SEARCH|>)。這個極簡設計把記憶的完整控制權交給模型,同時保持行為可觀察 — 每個記憶決策都是軌跡裡一個可追溯的動作。

兩個難以手動優化的軸:記憶技能沿兩軸提升 —(1)支撐它的 結構(structure):prompt、file schema、驗證邏輯、動作詞彙;(2)模型行使技能的 熟練度(proficiency)。但一個 episode 可長達 105 步,一個記憶錯誤可能在第 50 步犯下、卻到第 800 步才浮現後果 —人工檢視完整軌跡幾乎不可行

1.3 關鍵洞察:讓 meta-LLM 當「程式碼審查者」

核心觀察是:一個夠強的 LLM(作為 meta-LLM)能通讀 agent 完整的 episode(數千步),像 code reviewer 讀完整執行 log 一樣,找出記憶決策哪裡出錯。這讓「自動化記憶改進的兩個軸」變得可行。

1.4 貢獻

① 記憶=可學習技能

用檔案系統操作把記憶管理放進與任務動作相同的 action space,模型對「記什麼、何時取、怎麼組織」有完整且可觀察的控制。

② AutoMem 框架

沿兩互補軸自動優化:scaffold 修訂(迭代記憶結構)+針對性訓練(強化模型記憶熟練度)。兩個迴圈都由分析完整軌跡的 meta-LLM 驅動。

③ 大幅拉近與前沿差距

三個程序生成長時程遊戲上,只優化記憶就帶來 ~2×–4× 進度提升,讓 32B 開源模型顯著逼近前沿閉源系統。

SECTION 02

方法總覽 — 一個內迴圈 + 兩個外迴圈

AutoMem 由兩個依序執行的外迴圈組成,共同作用在一個以檔案系統為記憶的內迴圈 agent 上。外迴圈 #1 把 agent scaffold 推到「程式碼修訂能達到的極限」;外迴圈 #2 再訓練模型的記憶能力,突破任何固定 scaffold 的天花板。

Inner-loop agent(一個 episode) LOG(要記什麼?) PLAN(要回想什麼?) 📁 檔案系統記憶(read/write/search…) Outer-loop #1 · 優化記憶 scaffold(結構) meta-LLM 讀完整軌跡 診斷記憶失敗 → 改寫 code/prompt/schema 同 seed 重跑,進步才保留 Outer-loop #2 · 訓練記憶熟練度(proficiency) meta-LLM 篩選好的記憶決策 當成監督資料(模型自己的輸出) LoRA 訓練 memory specialist
圖 1 · AutoMem 總覽(依論文 Figure 3 重繪):兩個自動外迴圈優化共享的內迴圈 agent

2.1 內迴圈 agent:記憶就是檔案系統

內迴圈是一個 LLM agent 執行一個 episode,配一個磁碟上的資料夾當外部記憶。每一步跑兩個 routine:

LOG — 「剛剛發生的事,有什麼值得記?」

agent 決定要不要、以及怎麼記錄環境對上一個動作的回應:append 到既有檔、開新檔、或改寫既有條目。

PLAN — 「現在要行動,我需要回想什麼?」

agent 跨檔 search、讀特定條目或其尾端,然後提交下一個世界動作。

為什麼共享 action space 很關鍵:因為記憶操作和任務動作都在同一個軌跡裡、都是可追溯的動作,外迴圈才能「觀察、評估、優化」它。實驗也印證:優化記憶結構本身也會改善任務行為(例如遊戲操作)— 更好的記憶組織減少了冗餘探索與漫無目的的動作,即使優化器針對的是記憶而非任務策略。

SECTION 03

兩個外迴圈 — 一個目標

兩個迴圈都對應機器學習的熟悉結構:各有要優化的 參數 θ更新訊號 ∇L,都由 meta-LLM 的軌跡分析驅動。scaffold 設定「哪些記憶操作可能」的結構天花板,proficiency 訓練再把模型推向這個天花板。

Loop #1:θ = agent scaffold(code / prompt / schema)  ∇L = 一次程式碼修訂
Loop #2:θ = 專屬記憶模型權重  ∇L = 一次「配好 LoRA 設定」的監督訓練步
共同原則:長時程改進 = 軌跡級審查(trajectory-level review)+ 針對性修訂(targeted revision)

3.1 外迴圈 #1:優化記憶 scaffold(結構)

優化訊號必須是軌跡級的,因為記憶決策的後果在長時程任務裡常被延遲:第 50 步沒記下地圖座標、或寫了重複條目把有用資訊埋掉,可能到第 800 步 agent 迷路、浪費時間重探時才浮現。只看最終 return 指標會丟掉「哪裡出錯」的軌跡結構。

因此 meta-LLM 拿到完整 episode 軌跡(逐步 log、產生的記憶資料夾、agent 程式碼本身),像個手握完整執行 log 的 code reviewer,而非一個純量獎勵訊號。例如審查 NetHack 軌跡時,它發現一個無界地圖檔累積了數千筆重複座標、把有用資訊埋掉,於是導入一個乾淨的、以座標為 key 的地圖去重格式。每次迭代都以實測進步為門檻:改寫後的 agent 跑同一組固定 seed,只有平均進度提升才保留該修訂,通常 2–5 次迭代收斂。

3.2 外迴圈 #2:訓練記憶熟練度(proficiency)

scaffold 優化後,剩下的差距在於模型「做出好記憶決策」的參數能力。這個迴圈用 meta-LLM 當 training engine(訓練引擎)更新模型權重。它讀 agent 程式碼+大量 episode 軌跡,推導篩選準則,產出監督訓練資料。

meta-LLM 是「篩選器」而非「老師」:訓練集裡每個範例都是內迴圈模型自己在 episode 中產生的原文,meta-LLM 只負責挑哪些回應值得強化 — 它過濾模型自己的行為,而不是生成新回應。此外它把資料選取邏輯、資料組成、LoRA 訓練設定當成一個聯合決策,跨多次試驗一起調校,好讓 finetune 是乾淨的能力提升而非干擾。

3.3 記憶專才 vs 遊戲模型:乾淨拆分

因為記憶是可分離的技能,本文只 finetune 一個專屬記憶模型(memory specialist),而提交世界動作的模型保持不動。部署時內迴圈跑兩個共享同一段對話歷史的模型實例:

Memory specialist(LoRA 微調)

處理 LOG routine,以及 PLAN routine 裡「查詢記憶」的部分。是 base model 的 LoRA 微調副本。

Gameplay model(凍結不動)

未修改的 base model,負責提交世界動作。在 specialist 最後一次記憶操作後,透過簡短交棒把對話交給它。

兩個好處:(1)訓練訊號聚焦 — 監督 loss 只針對記憶操作行為,不被動作格式範例稀釋;(2)base model 產生正確世界動作的能力完整保留,因為 gameplay model 權重從未被 finetune 動過。結果是記憶熟練度的提升會乾淨地疊加在 scaffold 增益之上(額外 ~9–18% 相對提升),而非彼此抵銷。

SECTION 04

環境與指標 — 為什麼選程序生成的遊戲

程序生成的長時程遊戲很適合研究記憶技能:episode 夠長,光靠 context window 管理撐不住;世界每個 episode 重新生成,pretraining 知識難以轉移;而成功需要人類自然會做的那種紀錄 — 地圖、物品欄、遭遇 log、策略筆記。三個環境都來自 BALROG benchmark。

Crafter

2D 開放世界生存遊戲。17 個動作、22 個成就(探索/製作/戰鬥)。episode 最長 ~103 步。

103

步/episode

MiniHack

建在 NetHack 引擎上的 8 個任務套件(迷宮、走廊、Boxoban 推箱、任務)。33 個動作、~102 步/任務。

8

任務變體

NetHack

完整 NetHack Learning Environment(NLE)。200+ 動作,104–105 步/episode,地城/怪物/物品每個 seed 重生。人類玩家通常要數年才精通。

105

最長步數

4.1 指標與設定

指標:progression rate(0–100)

Crafter=22 成就取得比例;MiniHack=8 任務完成比例(每任務二元);NetHack=BALROG 的地城深度+經驗等級進度指標。報告 10 個固定 seed [42..51] 的 mean ± 標準誤。

模型與 meta-LLM

內迴圈 base=Qwen2.5-32B-Instruct(vLLM 本地服務)。scaffold 優化器用 Claude Opus 4.6、訓練引擎用 Claude Opus 4.7 當 meta-LLM。memory specialist 以 LoRA 訓練,gameplay model 為未修改 base。

Baseline 分兩組:(i) BALROG 排行榜 — 前沿閉源(Gemini-3-Pro、Gemini-3.1-Pro-Thinking、Claude-Opus-4.5、Gemini-2.5-Pro)、前沿開源推理(DeepSeek-R1 671B)、同族開源兩種規模(72B、7B);(ii) 同一個 32B 在 BALROG harness 下用基本 context 管理:16 步 sliding window(含/不含 chain-of-thought)。

SECTION 05

實驗結果 — 只調記憶就追平前沿

整個 scaffold 優化過程模型權重都沒動 — 只改 agent 程式碼、prompt、file schema — 進度卻在每個環境上大約翻倍或超過三倍。再疊上 memory training,把 32B 開源模型帶到 Claude-Opus-4.5 的水準。

Table 1 · BALROG 長時程遊戲表現(progression rate %,mean ± 標準誤)。AutoMem 建於 Qwen2.5-32B-Instruct。
AgentCrafterMiniHackNetHack
前沿閉源(BALROG 排行榜)
Gemini-3-Pro57.3 ± 4.440.0 ± 7.76.8 ± 3.2
Gemini-3.1-Pro-Thinking55.0 ± 6.427.5 ± 7.12.6 ± 0.3
Claude-Opus-4.549.5 ± 3.127.5 ± 7.12.0 ± 0.5
Gemini-2.5-Pro55.0 ± 6.017.5 ± 6.01.7 ± 0.2
開源(BALROG 排行榜)
DeepSeek-R1 (671B)36.4 ± 3.825.0 ± 6.81.4 ± 0.5
Qwen2.5-72B-Instruct27.3 ± 3.65.0 ± 3.40.3 ± 0.3
Qwen2.5-7B-Instruct16.4 ± 3.00.0 ± 0.00.0 ± 0.0
Qwen2.5-32B-Instruct · 基本 context 管理 baseline
sliding window19.55 ± 3.462.50 ± 2.470.00 ± 0.00
+ chain-of-thought17.27 ± 2.7110.00 ± 4.740.00 ± 0.00
Qwen2.5-32B-Instruct · AutoMem(本文)
memory-as-file-system, v025.00 ± 5.507.50 ± 4.160.42 ± 0.37
+ scaffold opt.(loop #1)47.27 ± 2.0527.50 ± 7.061.57 ± 0.35
+ memory training(loop #2)51.36 ± 3.8130.00 ± 7.251.85 ± 0.44

5.1 記憶本身就是高槓桿的一軸

scaffold 優化(權重未動)就讓進度翻倍或三倍以上:Crafter 25.0→47.27(×1.89)、MiniHack 7.5→27.5(×3.67)、NetHack 0.42→1.57(×3.74)。scaffold 後的 32B agent 大幅贏過 Qwen2.5-72B-Instruct,也遠勝同 base 的 sliding-window 策略 — 說明在長時程任務上,結構良好的外部記憶管理比模型規模或 context 管理更高槓桿

0 30 60 v0 25.0 +scaffold 47.3 +train ★ 51.4 Opus-4.5 = 49.5 Qwen-72B = 27.3 Crafter progression rate(%)— 只優化記憶的三個階段
圖 2 · Crafter 上三階段進度(依論文 Table 1 / Figure 1 之數值):v0 → scaffold → +train,追平 Claude-Opus-4.5

5.2 訓練記憶專才在 scaffold 之上再疊加增益

在優化後的 scaffold(Crafter v5 / MiniHack v4 / NetHack v2)之上,memory-proficiency 訓練把進度再提升到 Crafter 51.36%(+4.09)、MiniHack 30.0%(+2.5)、NetHack 1.85%(+0.28),幅度相當於一到兩次 scaffold 迭代。兩軸協同:結構修訂推高 prompt/schema 天花板,熟練度訓練補足模型能力差距 — 一起把 32B 帶到 Claude-Opus-4.5(49.5/27.5/2.0)水準,並在幾分之內逼近 Gemini-3.1-Pro-Thinking(55.0/27.5/2.6)。

5.3 任務動作與記憶操作在共享空間裡同步改善

不生產性動作率

−32~65%

卡住或來回振盪的步數比例(三環境)。

冗餘記憶寫入

−68~83%

重複寫入大幅下降。

空搜尋率

−13~50%

SEARCH 卻回傳空的比例下降 → 檢索更精準。

每步輸入 context

−3~30%

Crafter/NetHack 達 −25~30%,更精簡的記憶壓縮了模型要注意的內容。

5.4 記憶檔案 schema 的演化(NetHack 範例)

下面是外迴圈 #1 對 NetHack 記憶 schema 的具體改寫(依論文 Figure 5):把無界 append-only 的地圖檔,換成以座標為 key 的去重格式,並自動同步物品欄與狀態、預載策略參考。結果讓記憶每步的成長從 138 字元降到 6 字元,減少 95%

# v0:無界、只 append,累積重複座標,把有用資訊埋掉
dungeon_map.txt:
  (3,4) corridor
  (3,4) corridor      # 重複:同一格重走時又記一次
  (3,5) wall
  (3,4) corridor      # 又重複…檔案無限成長

# 優化後:座標為 key 的去重 + 自動同步檔 + 策略參考
<|UPSERT_MAP|> (3,4) corridor   # 新觀測 overwrite 舊條目,不再 append
inventory.txt   # 由 scaffold 從 observation 自動同步,模型免手動 READ 對帳
status.txt      # 同上,自動維護
strategy.txt    # 預載主要目標(找樓梯、下降),省掉早期重新發現目標的操作

5.5 訓練把「先查再寫」的記憶紀律內化

訓練後的 memory specialist 出現一致的行為轉變:動筆改記憶前先查詢記憶。LOG 階段的 writes/SEARCH 比在每個環境都下降 — specialist 在 append 新內容前,會先 search 既有檔,而非盲寫。

Table 2 · 演化後 scaffold 上,LOG 階段每次 SEARCH 對應的 writes(越低=寫入前檢索越多)
環境Base+ Trained
Crafter0.840.39 (−54%)
MiniHack2.890.82 (−72%)
NetHack4.661.31 (−72%)

質性軌跡(Figure 6):Crafter 進度 9 → 55 → 59%(base 只砍木頭;scaffold 造石器、蓋熔爐、挖鐵;trained 同層級還會餵飽自己);MiniHack Corridor-R3 為 0 → 0 → 100%(唯 trained specialist 走出分支走廊到達樓梯);NetHack 0 → 1.85 → 2.42%(base 在經驗等級 1 幾百步內死掉;scaffold 撐數千步達等級 2;trained 存活更久、爬到等級 4)。

SECTION 06

限制與未來工作

作者明確點出三個限制,每個都指向一個延伸方向。

① 只研究「情節式」記憶

檔案系統在每個 episode 開頭都清空重來。自然的延伸是 persistent memory:跨 episode 攜帶知識。

② 只在遊戲環境驗證

遊戲很適合研究記憶(長時程、程序生成、豐富的資訊管理需求),但方法也應能套用到真實世界、記憶密集的任務。

③ 每個環境各訓一套

三個遊戲結構與目標不同,因此各優化一套 scaffold 與 memory specialist。能否共用單一 scaffold 或 specialist,尚待探索。

結論

本文證明記憶管理是 LLM agent 一個可獨立學習、高槓桿的技能。AutoMem 把它拆成 structure 與 proficiency 兩軸,用 meta-LLM 外迴圈自動優化;只調記憶(不動 gameplay 權重)就在三個長時程遊戲上帶來 ~2×–4× 提升,逼近前沿閉源系統。更廣的發現是:長時程任務改進可分解成「軌跡級審查 + 針對性修訂」,這種工作流程能被 meta-LLM 自動執行 — 而人工檢視完整軌跡不可行。把這個分解套用到記憶以外的其他 agent 能力,是有潛力的方向。

Broader Impacts:把記憶管理當成獨立能力來自動優化與針對訓練,能降低長時程 agent 變得實用所需的模型規模門檻,對開源部署是可近用性的提升。相同技術可延伸到遊戲以外任務。作者提醒:釋出的產物未經進一步安全審查,不宜直接用於高風險部署。