Anthropic公開Claude代理記憶架構:離線「做夢」與智能體長期記憶機制 Best Partners TV 2026-11-09

Anthropic公開Claude代理記憶架構:離線「做夢」與智能體長期記憶機制

7 节

大家好,這裡是 Best Partners,我是大飛。

哲學家克爾凱郭爾曾說過,人生只能回首理解,但必須向前體驗。10 月 6 日,Anthropic 公佈了 Claude 代理的完整架構,這讓我感覺到人工智慧設計也面臨類似的困境。我們希望人工智慧在使用得越多就越智能,但它卻面臨著一系列需要立即做出決定的時刻。

人腦記憶與「做夢」機制

然而,人腦提供了一個很好的參考。我們每天都會接觸到大量資訊;我們腦中的海馬體負責捕捉這些經驗,形成即時的、暫時的記憶,但只有一部分會成為長期的知識。這種轉換過程主要發生在大腦離線時,也就是睡眠和休息狀態。在這些時候,海馬體會重現最近的經歷,提取重要內容並整合到大腦皮質中。

他們幾乎完全複製了這種勞動分工模式,將其應用於人工智慧代理。代理程式在工作時會產生大量的互動日誌。加州大學柏克萊分校的研究人員先前提出了一個名為「睡眠時間計算」的概念,該概念表明模型利用互動之間的空閒時間來重新組織現有上下文。在此基礎上,Claude 可以在空閒時間回顧過去的日誌、修正錯誤並編寫新的筆記。他們把這種離線處理過程稱為「做夢」。

在本文中,Anthropic 分享了他們對智能體記憶的整體看法。他們利用多個評估案例來分析「做夢」以及各種記憶成分究竟是如何運作的,今天,我們將與大家分享這些內容。

人格心理學在文章中寫道,克勞德利用夢境來組織記憶,具體來說是為了做四件事:

  1. 修正記憶體錯誤;
  2. 建立新筆記;
  3. 建構新的記憶表徵結構;
  4. 將最關鍵的信息預先載入到下一次對話的開頭。

在深入探討之前,我們需要明確定義範圍:我們指的是從任務和使用者互動中獲得的代理記憶體。這些經驗可以貫穿整個對話過程,並隨後以純文本脈絡的形式被閱讀。他們明確排除了三件事:

  1. 模型權重的修改,這些權重是訓練期間設定的內部參數;
  2. 在一次對話中進行情境式學習;
  3. 用摘要取代舊對話的壓縮機制。

換句話說,「做夢」既不會改變模型本身,也不會壓縮對話;它實際上在當前的聊天之外累積了切實的體驗資產。

回到人腦的運作機制,某些化學訊號會在經歷之前、期間或之後釋放,以賦予記憶重要性。離線時,標記過的記憶會更頻繁地重現,從而更容易鞏固到長期記憶中;在神經科學中,這個過程被稱為「重播」。Claude 也可以在聊天記錄中標記它認為重要的事件以便日後檢索,或直接將它們寫入記憶體存儲,例如一組記憶筆記檔案。

但這裡存在著一個根本性的難題:克勞德如何在當下知道哪些事情在以後會變得重要呢?因為在預見未來之前,任何標記都只是預測。答案就在於記憶本身的本質;記憶本質上是對未來的預測。把規則寫下來,就是預測這條規則以後會有效;記錄已核實的事實,實際上就是在預測未來的自己無需再次核實。人類學觀察到,隨著模型版本的升級,克勞德做出這類預測的能力也越來越好。

CR-Bench 1.0 與閉環學習測試

他們使用名為「CR-Bench 1.0」的基準測試任務來測試克勞德的長期記憶能力。CR-Bench 代表「持續學習基準」,專門用於衡量智能體在長週期任務中使用記憶的能力。該基準測試為 Claude 提供了一個資料庫,並要求它回答一系列問題。每次回答後,系統都會顯示正確結果,克勞德可以將經驗寫入記憶體目錄,以供後續聊天使用。

這裡有一個非常重要且值得一提的測試設定:他們使用 Claude 管理的代理程式執行了此測試。每次回答問題時,克勞德都會開啟一個全新的聊天,唯一的例外是它可以從跨聊天持久存在的記憶體目錄中讀取檔案。換句話說,聊天本身總是全新的;只有記憶體目錄保持連續。

這種記憶其實可以支持學習循環。如果 Claude 回答錯誤,它可以記錄失敗情況,提出錯誤原因的理論,測試這些理論,並最終將驗證後的結論提煉成未來聊天的規則。

在這個測驗中,不同版本的克勞德表現出了完全不同的學習模式。Claude 3.5 版本仍相對不成熟;它只能產生一堆未經證實的猜測,留下零散的理論散落在它的資料夾中,而沒有形成一個閉合的循環。從 Claude 4.7 開始,它開始將註釋整合到各個參考文件中,區分已核實的事實和僅部分確認的事實。

克勞德作品 5 更進一步;它會主動標記哪些答案已在驗證後得到確認,並在出錯時寫下更正。Claude Opus 5 的真正獨特之處在於,它是第一個完全執行閉環學習過程的型號。它寫的大部分筆記都包含一條回應規則,說明它是如何證明該規則有效的,並包含對先前遇到的陷阱和誤解的警告。隨後的 Opus 5.5 和 Sonnet 3.5 也可以自主地完成這個閉環;他們得分與 Opus 5 相似,但他們在沒有時間限制的情況下表現略好一些。

《精靈寶可夢 紅》長週期決策與筆記策略

然而,僅僅依靠學習循環是不夠的;代理人還需要知道哪些資訊值得記住。Anthropic 採用了一個更有趣的測試場景:他們讓不同版本的 Claude 玩經典的 Game Boy 遊戲《精靈寶可夢 紅》。每個模型都配備了一個記憶體資料夾,可以隨時進行讀寫操作。這款遊戲適合測試長期記憶力,因為任務持續時間很長,需要探索大地圖、捕捉寶可夢、挑戰道館館主,這涉及許多長期決策。

大約 10,000 步時,十四行詩 3.5 和作品 5 的表現出現了極大的分歧。Sonnet 3.5 的策略是「一切皆有用」,他們痴迷地記錄每一場戰鬥、每件拾取的物品和遇到的每一個 NPC。經過 10,000 步,它的資料夾包含 225 個目錄中的 413 個文件,總計 977,000 個字元。問題在於寶可夢遊戲中的遊戲狀態每時每刻都在變化,這些詳細的記錄很快就會過時且無用。

因此,在第 10,000 步,Sonnet 3.5 開始建立其主記憶體檔案。在接下來的 17 個操作步驟中,它創建了 6 個新文件並刪除了 9 個舊文件,而遊戲中卻沒有進行任何操作;整個過程最終只獲得了一枚健身房徽章。

Opus 5 的方法恰恰相反:它只在兩個目錄中編寫了九個文件,外加一個名為 global.md 的主控制文件,總共只有 43,000 個單字。它的記憶體策略基於一個簡單的判斷:沒有必要儲存任何可以直接在螢幕上看到的東西。諸如擁有多少錢或當前坐標之類的信息,每走一步都可以從屏幕上讀取,因此存儲這些信息是多餘的。它只儲存螢幕上不可見的衍生模式、長期計劃和完成策略。只有保存這些內容,才能避免它們隨著上下文的變化而消失。

Fall 5 的 global.md 可作為儀表板,其中包含當前任務目標、預先編寫的道館指南(道館是獲得徽章的挑戰等級)以及模型本身定義的記憶體使用規則。位置目錄儲存特定路線的導航計劃,而遊戲玩法目錄包含遊戲自行摸索的遊戲策略戰術。

舉個具體的例子,在連續使用 7 個精靈球都未能捕捉到鯉魚王之後,它在筆記中寫下了一條規則:如果連續 3 個精靈球都失敗了,則在菜單輸入之間插入額外的等待時間來調整時機。錄製完成後,它立即成功捕獲目標,最終 Fall 5 獲得了四枚徽章。

更強大的 Claude-OPUS 3.5 採用了類似的極簡主義策略,維護一個小的任務目標和下一步計劃文件,在遊戲過程中重寫它,最終通關整個遊戲。

這個認識促使他們思考另一個問題:我們該如何教模特兒做筆記?從這次經歷中得出的結論相當違反直覺:只需告訴克勞德有一個記憶區域可用,但永遠不要教它如何使用它。

測試結果令人信服;對於像 GPT-4o 這樣的早期模型,及時的指導確實可以提高性能。GPT-4o 最初很少主動讀取其內存資料夾,但在被迫查看筆記並驗證其理論後才回答問題,其基準測試得分從 0.330 飆升至 0.641,幾乎翻了一番,而 Claude 3.5 則無需任何提示,就能主動檢查十個問題中的九個的筆記。

然而,對於高階模型而言,人為設定的規則可能會適得其反;當測試人員施加嚴格的約束條件時,這一點就顯而易見了。當命令代理只記錄失敗時,Claude 3.5 和 GPT-4o 的效能不但沒有上升反而下降了,記憶體帶來的收益分別下降了 0.234 和 0.150。對於高級模型而言,如果賦予它們自主決定什麼是重要的事情的自由,效果會最好。

目前,標準指令很簡單:當使用者明確要求或某些事情真正值得記住時才做筆記,將判斷完全交給模型。

記憶修正與「月亮山懸崖陷阱」

然而,記筆記只是第一步。模型在事件發生時所寫的筆記可能從一開始就是錯誤的,或者隨著環境的變化,它們可能會慢慢偏離事實,變得不準確。這些儲存的筆記將被未來的 Claude 版本讀取和信任,誤導其決策。「做夢」機制的價值就在於此:它讓模型有機會回顧並與原始日誌進行交叉驗證。這些原始日誌可以作為自然的真實情況,用於驗證記憶筆記是否準確。

團隊分享了一個特別生動的案例,他們稱之為「月亮山懸崖陷阱」。在寶可夢遊戲中,玩家必須穿越月見洞穴。入口在西邊,出口在東邊;出口附近有一個單向壁架陷阱。一旦你跳下去,就會掉回起點,無法爬回去。

克勞德以寶可夢中心作為地標。在一次測試運行中,它錯誤地記錄了一條筆記,內容是:「寶可夢中心在東邊。」離開該區域後,它錯誤地認為自己已經清除了這座山,自信地更新了筆記,寫道:「月亮山任務完成。」然後它從邊緣一躍而下,徑直跌回了起點。導航工具沒有發出下降信號,所以克勞德甚至試圖解釋,得出結論:「我一定是飛過頭了;實際上我一直都在東邊。」換句話說,它把錯誤的筆記當作了真正的地圖。

如果沒有「做夢」功能,克勞德會從那個平台上跳下去,然後連續三次落回起點。三次失敗後,它在控制台中寫道:「我打算停止;我不想一直循環下去。」系統強制它繼續前進,所以它一路撤退到起始城鎮錫城進行補給,測試徹底失敗。

然而,擁有「做夢」機制的對照組完全改寫了結局。在離線階段,Cloud 比較了其原始日誌,發現其位置記錄存在矛盾,立即推翻了舊記錄,並重置到正確的位置。遊戲重新開始後,克勞德發現了錯誤,轉身繼續前進,並在第 1935 步成功到達了蔚藍市。

這是夢境最實用的功能:利用原始日誌作為真實數據,自動修正記憶錯誤。

結構化記憶表徵與知識庫構建

夢境還有一種更強大的能力:將零散的筆記編織成結構化的記憶表徵,其中最重要的是知識圖譜。單一筆記就像散落的便利貼,而知識圖譜則是由超關係連接的資訊網絡,可以幫助雲有效率地在不斷增長的知識庫中定位所需內容。

Anthropic 使用他們在 2026 年 5 月收購的一家軟體公司的實際程式碼資產對此進行了測試。該內部資產庫包含約 35 萬個文件,總計 4.2 億個代幣。他們設計了 25 個深度問題,讓 Claude 3.5 Sonnet 代理在連續 128 次迭代的夢境中搜尋數據,建立一個專門的知識庫,該知識庫建立在每次先前的繪畫之上。

他們還創建了一個共享日誌,用於協調多個代理人之間的工作。然而,知識庫並不是一蹴可幾的,而是透過一輪又一輪的構思、添加、編輯和刪除而建立起來的。一開始,克勞德的知識水平就像一個新員工;它只依靠知識庫回答問題的能力相當有限。隨著夢境數量的增加,它的知識圖譜也變得更加豐富,逐漸變得像一位經驗豐富的老手。在這個漫長的過程中,代理人不斷合併重複條目,填寫交叉引用,並與原始文件進行核對。

隨著夢境過程從兩輪擴展到 128 輪,使用這個自建知識庫回答問題的準確率從最初的 13% 飆升至 48%。當知識庫與搜尋工具結合使用時,簡單搜尋的得分從 53% 提高到 61%,同時每個問題還可以節省約 20,000 個檢索詞。

然而,實驗也表明,知識庫並非萬靈丹。為了測試哪些任務可以從知識庫中受益,他們使用了 Haystack 基準測試,並結合一組併購文件進行比較。此基準測試會給 Claude 一堆文件,要求它根據文件內容產生法律摘要,然後根據一系列標準對其進行評分。雖然不如寶可夢那麼有趣,但這些評估為他們提供了各種類型的文檔集合,以建立知識庫。

顯然,該知識庫特別擅長處理需要交叉驗證多個文件、計算或定性推理的複雜任務。例如,他們設計了 24 個與併購相關的問題,其中超過一半的問題需要從多個文件中拼湊訊息,許多問題需要它做出自己的判斷或計算。對於這些問題,依靠知識庫的準確率達到了 87%,顯著高於簡單搜尋所達到的 73%。

如果文件只需要對某個專有名詞進行全文直接搜尋就能找到答案,那麼知識庫就無法提高效能;在某些測試中,它甚至阻礙了進展。在一次 LB 測試中,只需搜尋單一文件即可滿足評分標準,知識庫完全沒有發揮作用。在更極端的情況下,輸入了 10 個文件,總計 115KB 的資料。克勞德透過夢境整理出的知識庫竟然有 68 頁,203KB,是原文長度的 1.77 倍。這種情況完美地反映了博爾赫斯關於一比一比例尺的帝國地圖的精確性的一個段落的短篇故事,這種精確性完全喪失了綜合和完善的目的。

記憶層次控制與多智能體協作

既然做夢可以產生如此多的有用知識,我們能不能把所有這些知識塞到下次談話的開頭呢?答案絕對是否定的。

直接在提示中插入上下文不僅會消耗令牌,更重要的是,錯誤訊息會污染後續的每一個決策。此外,載入筆記並不能保證克勞德會按照筆記上的內容去做;Claude Code 官方文件明確警告,過長的指令文件會導致模型遵循規則的能力顯著下降。

因此,頂層記憶體必須受到嚴格限制。夢的另一個功能是將直接的細節推到較低的層次,只保留最基本的捷徑在頂層。Claude Code 內建的自動記憶機制採用了這種克制的策略;它不會將所有記憶體塞進上下文窗口,每次啟動時只讀取 memory.md 的前 200 行或前 25KB。這段簡短的文字就像一個縮圖,只告訴 Claude 它知道什麼以及在哪裡可以找到這些資訊。

夢境不僅決定了哪些音符會浮現出來,也會根據特定目標塑造記憶的發展方式。例如,如果能夠根據所幫助的特定使用者來組織基於 Claude 的助手的記憶,結果通常會更好,因此可以對做夢進行微調,以朝那個方向建立記憶。

做夢也可以解決多智能體協作過程中出現的問題。他們選擇了一個 LB 基準測試中的模擬公司收購任務,提供了一套合約文件,並最終根據合約條款是否描述正確進行評分。最初,他們為克勞德建立記憶的基礎指令並沒有明確指出合約條款是最重要的要素。因此,多個代理人同時將提取的合約條款寫入名為 provision.md 的同一個共用檔案中。多個代理在保存時互相覆蓋,共享文件本身未能準確記錄條款,有些條款完全被省略。最終,57 個核心合約事實中只有 41 個得以保留,損失率為 28%。根據該記憶產生的法律摘要,合規率僅為 72%。

這時,團隊並沒有暫時制定新規則;他們運行了一個循環,讓克勞德先反思失敗的原因,提出修改規則的計劃,然後根據新規則重建記憶。經過幾輪這樣的循環後,克勞德自己意識到合約條款是記憶中最重要的部分,於是它相應地重新開始建構規則。根據這些規則,每份合約都有自己的頁面,由一名代理人專門管理,合約條款必須逐字逐句地記錄下來,不得進行任何概括。經過此次重組,所有 57 項核心合約條款都得以保留;利用人工智慧產生的法律摘要,合規率達到了 100%。

做夢甚至可以自動修復這些鏈接,因為在每次聊天中,克勞德只能看到當前的上下文,在做筆記時不可避免地會引用尚未創建的頁面。在 L 基準測試的 AI 建置過程中,他們觀察到 Claude 有時在筆記中引用不存在的頁面;透過第二輪離線夢境,克勞德可以掃描聊天記錄中的所有筆記,找到那些失效的連結。在一次測試中,第二輪夢境自動掃描了九個死鏈接,將它們全部重定向到實際對應的文件,並方便地更新了主目錄和索引。

記憶系統的挑戰與落地應用

當然,這種記憶系統並不完美,還有許多未解之謎;首先是記筆記的時機——在執行任務時記錄記憶可以捕捉即時見解,但這不可避免地會分散模型對其核心任務的注意力。如果完全讓離線做夢在後台進行,主要任務不會受到干擾,但從夢中提煉出的見解不能立即用於當前的對話中。

另一個值得考慮的方法是,以原始聊天記錄的搜尋作為克勞德記憶的基礎。有時,將基於 AI 的記憶體表示與原始日誌搜尋結合可以產生良好的結果,但是…AI 表示本身需要不斷維護,以確保它們不會累積錯誤或產生幻覺,所有這些都會消耗計算資源。

記憶體維護開銷也是一個主要問題;外部世界在變化,舊的記憶會漂移並過時,克勞德可能從一開始就制定了錯誤的規則或做出了錯誤的預測。做夢是解決這些問題的一種方法,但這需要計算能力。讓 Claude 不斷驗證其全部記憶歷史的計算成本簡直難以承受。如何根據記憶存取頻率動態分配夢境資源,並將運算資源集中用於更容易過時的訊息,將是未來設計智慧體記憶的一大挑戰。

回到克爾凱郭爾最初的那句話,人工智慧在判斷什麼是重要的方面無疑取得了重大進展。但是,任何模型都無法真正知道下一次對話會發生什麼,也無法真正展望未來。做夢讓克勞德有機會回顧過去,利用運算能力整理記憶、糾正錯誤,並維持有助於將來更快檢索記憶的表徵。然而,隨著克勞德能力的不斷提高,記憶系統也必將隨之發展;這裡還有很多東西要學習。

有趣的是,這次 Anthropic 不僅發布了一篇研究部落格;他們還出版了一本教程,教導普通開發者如何在自己的應用程式中使用這種記憶體機制。它採用了 Claude 的 Agentic 架構,邏輯非常簡單明了。

我們簡單回顧一下: 首先,你需要設定一個「夢境」觸發器——例如,如果使用者長時間沒有回覆或令牌達到一定閾值,它會自動觸發夢境,啟動一個單獨的後台 Claude 進程,並向其提供最近的聊天記錄。後台進程的任務是組織訊息,例如從一堆隨意的聊天記錄中提取用戶的核心偏好,並將它們寫入全域記憶體 JSON 文件,同時刪除無用的部分。

當前台下次被喚醒時,它會直接讀取這個全局內存,使其表現得好像已經認識用戶很久了一樣。例如,假設後台程序記錄到使用者不喜歡香菜。下次用戶要求客服點外帶時,客服會自動避開香菜。

這是夢境機制最簡單的應用場景:沒有宏大的架構,只是利用閒置的運算能力將使用者的聊天記錄轉換為可用的體驗。

感謝收看,我們下次再見。

文中提及的人物和组织