Agent 記憶不能只靠存:Claude Dreaming 如何用 4 層記憶在會話之間糾錯、整理和構建知識庫

作者注:解讀 Anthropic 工程博客披露的 Claude Dreaming 機制。本文涵蓋 4 層記憶結構、CL-Bench 與 Wiki 實驗數據、糾錯案例和工程風險,並說明開發者如何借鑑“會話間整理記憶”的思路,搭建自己的 Agent 記憶系統。

2026 年 11 月 6 日,Anthropic 在工程博客發佈了 The components of agent memory。文章首次系統說明了 Claude Dreaming 如何在會話之間糾錯、整理記憶並構建知識庫。官方 X 賬號同步發佈了這篇文章,Claude Managed Agents 文檔中也已經出現 Dreams 的研究預覽接口。

這不是又一個“給 Agent 加個向量庫”的概念。Anthropic 用多組實驗說明:長期運行的 Agent 光保存歷史還不夠,還要持續驗證、糾錯、整合和組織記憶,舊信息才能真正幫到下一次任務。

核心價值:讀完本文,你會了解 Claude Dreaming 的 4 層記憶結構和關鍵實驗數據。你也會知道它在什麼情況下有效、什麼情況下有害,以及在自己的 Agent 裏該如何借鑑。

claude-dreaming-agent-memory-correction-knowledge-base-zh-hant-image-0


Claude Dreaming 核心信息速覽

信息項 詳情
發佈時間 2026-11-06,Anthropic Engineering 博客
核心概念 Dreaming:在會話之間利用歷史記錄重新組織和維護記憶的後臺過程
記憶分層 Transcripts、Memory notes、Memory representations、Injected context 共 4 層
產品形態 Claude Managed Agents 中的 Dreams,目前爲 Research Preview,需申請訪問
配套資料 官方 Cookbook《Dreaming with a dynamic workflow》,發佈於 2026-11-02
影響範圍 長期運行的 Agent、跨會話任務、企業內部知識庫構建

理解 Dreaming 之前,先明確幾個術語。Transcript 是完整會話記錄,包括用戶輸入、Agent 輸出、工具調用和結果。Memory Note 是從歷史經歷中提煉出來的持久事實、規則和經驗。Memory Store 是跨會話保存記憶文件的持久化存儲空間。Dreaming 的思路接近 Sleep-time Compute,也就是在主要交互之外,利用空閒算力處理已有上下文。


爲什麼 Agent 記憶不能只靠存歷史對話

很多團隊做 Agent 記憶的第一反應,是把所有對話存下來,需要時再檢索。問題在於,歷史日誌、會話摘要和可檢索的知識是三種不同的東西。日誌只是原始事件的堆積,摘要可能丟掉關鍵細節,只有經過驗證和組織的知識,才能穩定地幫到下一次任務。

直接保存全部對話,會帶來三類隱患:信息重複,舊狀態過時,錯誤不斷累積。一條寫錯的記錄會被後續會話反覆讀取,錯誤也就被當成事實繼續執行。Anthropic 的結論很直接:記憶不是越多越好,而是需要選擇、驗證和組織。

Pokémon Red 實驗把這個差別展示得很清楚。大約 10,000 步時,Sonnet 3.7 創建了 413 個文件、225 個文件夾,只拿到 1 個徽章。Fable 5 只創建了 9 個普通記憶文件、2 個文件夾和一個 global.md,卻拿到了 4 個徽章。

差距來自“記什麼”。Sonnet 3.7 大量保存不斷變化的遊戲狀態,這些記錄很快過時。Fable 5 更注重策略、已驗證的規則和行動計劃。由此得出一個設計原則:長期記憶應優先保留難以從當前環境重新獲得的知識,每次都能直接讀取的實時狀態不需要記。


Claude 記憶體系的 4 個層次

Anthropic 把 Agent 記憶拆成 4 層。每一層的職責、寫入頻率和讀取成本都不一樣。

層次 內容 作用 讀取方式
Transcripts 完整會話記錄 可搜索的事件日誌,是追溯事實的原始證據 按需檢索
Memory notes 任務中記下的重要事實、經驗、規則 沉澱可複用的經驗 按需讀取
Memory representations Wiki、索引、鏈接等結構化表示 組織知識之間的關係,支持跨文檔檢索 導航與檢索
Injected context 少量高價值記憶 新會話啓動時預先加載 自動注入

這 4 層是從“原始”逐步走向“精煉”的過程。Transcript 信息最全,但體量大、噪聲多。Injected context 最精煉,可每一條都會佔用新會話的上下文窗口,所以只能留給顯著性(Salience)最高的信息。

Dreaming 的定位是跨層維護。它會回到 Transcript 中糾正舊記錄,合併 Memory notes 裏的重複信息,構建 Wiki 和索引,並決定哪些內容值得在新會話開始時預先注入(Context Injection)。

claude-dreaming-agent-memory-correction-knowledge-base-zh-hant-image-1


Claude Dreaming 如何糾錯、整理和構建知識庫

Dreaming 糾錯:Mt. Moon 導航案例

Anthropic 記錄過一個導航錯誤。Agent 把 Mt. Moon 附近 Pokémon Center 的方位記錯了,後續會話一直沿着錯誤路線重複嘗試。

Dreaming 重新檢查歷史 Transcript 後,找到了最初那條錯誤記錄,並修正了記憶文件。用修正後記憶的 Agent,在第 1,935 次操作時抵達 Cerulean City。沒有糾錯的版本多次重複失敗,最終沒能完成目標。

這個案例說明,Dreaming 做的不只是摘要。它能回到原始經歷,覈對記憶是否仍然成立。保存的 Transcript 也因此有了新的用途:它是可以反覆複覈的證據庫。

Claude 記憶效果:CL-Bench 實驗數據

Anthropic 用 CL-Bench 1.0 中的數據庫任務測試記憶效果。下表是官方報告的 mean reward。

模型 無記憶 使用記憶 提升幅度
Opus 5.5 0.655 0.838 +0.183
Sonnet 5.5 0.644 0.833 +0.189
Opus 5 0.564 0.828 +0.264
Opus 4.7 0.383 0.700 +0.317
Sonnet 5 0.306 0.610 +0.304
Sonnet 4.6 0.330 0.364 +0.034

需要注意,這組數據只針對該任務,不是通用的 Agent 記憶能力評分。更值得關注的是一個現象:模型越強,越傾向於記錄經過驗證的規則、錯誤原因和未來可能遇到的陷阱,而不是照搬歷史對話。Sonnet 4.6 的提升很有限,說明記憶系統的效果和模型本身的“記錄質量”密切相關。

Dreaming 構建 Wiki 知識庫的效果

最大規模的實驗使用了約 350,000 份內部文件,總量約 420M Token。Anthropic 通過 128 次 Dreaming 會話逐步構建出一個知識 Wiki,再用問答任務評估效果。

檢索方式 評分 備註
Wiki 單獨使用(構建前 → 構建後) 13% → 48% Wiki 逐步成型後效果明顯
Search 單獨使用 53% 基線
Search + Wiki(構建前 → 構建後) 54% → 61% 每題平均節省約 20,000 Token
併購類跨文件綜合任務 Wiki 87% vs 純 Search 73% 跨文檔綜合優勢最明顯

claude-dreaming-agent-memory-correction-knowledge-base-zh-hant-image-2

📊 圖表說明:以上數據均來自 Anthropic 工程博客的公開實驗。如果想在自己的語料上做類似的小規模驗證,可以通過 API易 apiyi.com 調用 Claude 模型,比較“純檢索”和“檢索 + 整理後的 Wiki”兩種方案的效果與 Token 消耗。

結構化記憶的價值主要體現在兩點。一是建立鏈接和索引,讓跨多份文件的信息能夠被綜合起來。二是減少每次檢索時需要重新讀取的原文量,從而降低 Token 成本。


影響分析:Claude Dreaming 記憶整理爲什麼有時有效、有時有害

Anthropic 沒有把 Dreaming 說成萬能方案,文中給出了好幾個反例。這部分對工程實踐的參考價值,可能比正面數據還要大。

記憶整理的 5 類工程風險

  • 過度記錄:像 Sonnet 3.7 那樣大量保存易變狀態,記憶膨脹很快,過時也很快。
  • 信息過時:環境變了,記憶還停留在舊版本,沒有來源覈對就會持續誤導 Agent。
  • 共享寫入覆蓋:在合同整理實驗中,多個 Agent 同時寫同一張彙總表,57 項關鍵事實只保留了 41 項,約 72%。改爲每份合同一個獨立頁面、由單一 Agent 寫入並保留原始條款後,57 項事實全部保留。
  • Wiki 體積膨脹:某次測試中原始文件只有 115 KB,生成的 Wiki 卻漲到 203 KB,整理反而讓信息變多了。
  • 簡單任務無收益:單個文件就能直接檢索到答案的問題,Wiki 沒有帶來明顯提升,只增加了維護成本。

對開發者的影響

  • 記憶需要分層:原始日誌、經驗規則、結構化知識、預注入上下文分開存放,各自有不同的寫入和讀取策略。
  • 來源必須可追溯:每條記憶都應能回溯到對應的 Transcript,這是糾錯的前提。
  • 寫入要串行化或分區:避免多個 Agent 併發寫同一份文件,優先採用“一實體一頁面”的結構。
  • 定期清理:Wiki 和 Memory notes 也需要去重、合併和淘汰,不然體積只會越來越大。

對行業的影響

  • Agent 記憶的研究重心正在從“檢索得準”轉向“記憶本身是否正確、是否在維護中”。
  • Sleep-time Compute 有望成爲常規架構,把整理成本放到空閒時段,減少主交互時的上下文負擔。
  • 結構化記憶更適合跨文件、多輪次、長期積累的任務。對於一次性簡單問答,純檢索依然是更經濟的選擇。

開發者如何把 Claude Dreaming 思路用在自己的 Agent

官方 Dreams 研究預覽的使用條件

根據 Anthropic 當前文檔,Dreams 屬於 Claude Managed Agents 的功能,狀態爲 Research Preview,需要申請訪問。調用時需要攜帶 managed-agents-2026-04-01 和 dreaming-2026-04-21 兩個 Beta Header。

它的輸入是一個已有的 Memory Store 加上 1 到 100 個歷史 Session,輸出是一個新的 Memory Store,原始 Store 不會被修改。任務異步運行,通常需要幾分鐘到數小時,按所選模型的標準 Token 價格計費。支持的模型以 Opus 5.5 和 Sonnet 5.5 爲主。另外,它目前不具備 Zero Data Retention 或 HIPAA 資格,處理敏感數據前需要評估。

Cookbook 中的動態工作流設計

官方 Cookbook 給出了一套可以自行搭建的多 Agent 工作流。默認由 Lead Agent 編排流程,每個 Analyzer Agent 處理一份 Transcript,Organizer Agent 負責去重、修復鏈接和維護索引。整理好的 Memory Store 掛載到下一次 Session,通常是隻讀方式,也可以用 Cron 定時執行,比如每晚整理過去一天的 Session。

Cookbook 也給出了成本示例。11 份示例 Transcript 共 283 KB,運行約 2.5 分鐘,費用約 $0.36。50 份長 Transcript 約 12 MB,在成本優化設置下大約 $8,耗時約 10 分鐘。這些只是特定實驗的結果,不是固定報價。

claude-dreaming-agent-memory-correction-knowledge-base-zh-hant-image-3

用 Claude 模型自建會話間記憶整理流程

需要先說明:API易 提供的是 Claude 系列模型的調用接口,不等於提供 Managed Agents、Memory Stores 或 Dreams API。不過 Dreaming 的核心思路,也就是“後臺讀 Transcript、提煉經過驗證的規則、交給單一寫入者整理”,完全可以用普通模型調用自己實現。下面是一個最小示例,讓 Claude 分析一份會話記錄並輸出候選記憶。

import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"  # API易 OpenAI 兼容接口
)

transcript = open("session_001.txt", encoding="utf-8").read()
resp = client.chat.completions.create(
    model="YOUR_CLAUDE_MODEL",  # 替換爲模型列表中可用的 Claude 模型
    messages=[
        {"role": "system", "content": "只提煉經過驗證的規則、錯誤原因和未來陷阱,忽略易變狀態,每條註明來源行號。"},
        {"role": "user", "content": transcript},
    ],
)
print(resp.choices[0].message.content)
查看完整實現代碼(Analyzer + 單寫入 Organizer)
import json
import pathlib
import openai

client = openai.OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.apiyi.com/v1"
)
MODEL = "YOUR_CLAUDE_MODEL"
MEMORY_DIR = pathlib.Path("memory_store")
MEMORY_DIR.mkdir(exist_ok=True)

ANALYZER_PROMPT = """你是記憶分析器。閱讀會話記錄,輸出 JSON 數組,每項包含:
topic(實體或主題名), rule(經過驗證的規則/錯誤原因/陷阱), evidence(原文出處)。
不要記錄每次都能直接從環境讀取的實時狀態。"""

ORGANIZER_PROMPT = """你是記憶整理器。給定某個主題的舊記憶頁面和新候選條目:
1. 與舊記錄衝突時,以 evidence 更可靠者爲準,並註明修正原因;
2. 合併重複條目;
3. 保留原始證據引用;
輸出更新後的 Markdown 頁面全文。"""

def analyze(transcript: str) -> list:
    resp = client.chat.completions.create(
        model=MODEL,
        messages=[
            {"role": "system", "content": ANALYZER_PROMPT},
            {"role": "user", "content": transcript},
        ],
    )
    try:
        return json.loads(resp.choices[0].message.content)
    except json.JSONDecodeError:
        return []

def organize(topic: str, items: list) -> None:
    # 一主題一頁面,由單一流程串行寫入,避免併發覆蓋
    page = MEMORY_DIR / f"{topic}.md"
    old = page.read_text(encoding="utf-8") if page.exists() else ""
    resp = client.chat.completions.create(
        model=MODEL,
        messages=[
            {"role": "system", "content": ORGANIZER_PROMPT},
            {"role": "user", "content": f"舊頁面:\n{old}\n\n新條目:\n{json.dumps(items, ensure_ascii=False)}"},
        ],
    )
    page.write_text(resp.choices[0].message.content, encoding="utf-8")

def nightly_dream(transcript_files: list) -> None:
    grouped = {}
    for f in transcript_files:
        for item in analyze(pathlib.Path(f).read_text(encoding="utf-8")):
            grouped.setdefault(item.get("topic", "misc"), []).append(item)
    for topic, items in grouped.items():
        organize(topic, items)

# 可由 Cron 每晚觸發; 下次會話只讀加載 memory_store 中的索引頁
nightly_dream(["session_001.txt", "session_002.txt"])

🚀 快速上手建議:搭建原型時,可以通過 API易 apiyi.com 用同一個 API Key 測試不同 Claude 模型作爲 Analyzer 和 Organizer 的效果。比較一下哪種組合提煉出的規則更準確、Token 消耗更低,再決定生產環境的配置。

兩種路線的差別可以用下表概括:

對比項 Anthropic Managed Agents Dreams 基於模型 API 自建記憶整理
獲取方式 研究預覽,需申請訪問和 Beta Header 直接調用 Claude 模型接口
記憶存儲 官方 Memory Store,輸出新 Store 自行實現文件、數據庫或 Wiki
調度與併發 官方異步任務 自行實現 Cron、隊列和單寫入控制
糾錯與權限 官方流程內置 需要自行設計來源覈對和權限
可用平臺 Anthropic 官方 API易 apiyi.com(模型調用)、官方 API

Claude Dreaming 常見問題 FAQ

Q1:什麼是 Claude Dreaming?

Dreaming 是 Anthropic 提出的會話間後臺記憶維護過程。它利用歷史 Transcript 糾正舊記錄、合併重複信息、構建 Wiki 和索引,並篩選出需要在新會話中預先注入的高價值上下文。

Q2:Dreaming 和普通的會話摘要、向量檢索有什麼區別?

摘要只壓縮信息,檢索只負責找信息。Dreaming 會回到原始 Transcript 驗證記憶是否仍然成立,比如 Mt. Moon 案例中修正了錯誤方位。它還負責建立跨文檔鏈接,在跨文件綜合任務中 Wiki 得分 87%,純檢索爲 73%。

Q3:Claude Dreaming 現在可以使用了嗎?

相關工程博客發佈於 2026 年 11 月 6 日。Dreams 目前以 Research Preview 形式出現在 Claude Managed Agents 中,需要申請訪問,並且要帶上兩個 Beta Header 才能調用。

Q4:沒有 Managed Agents 訪問權限,能借鑑 Dreaming 思路嗎?

可以。按照“Transcript 收集、後臺分析、單寫入整理、只讀掛載、定期維護”的流程,用普通模型調用就能實現一個簡化版本。通過 API易 apiyi.com 可以用 OpenAI 兼容接口調用 Claude 模型來完成分析和整理。存儲、調度和權限需要自己實現。

Q5:API易 是否直接提供 Claude Dreaming 功能?

不提供。API易 apiyi.com 提供的是 Claude 等模型的調用接口,不包含 Anthropic 的 Managed Agents、Memory Stores 或 Dreams API。適合用它調用模型、自建記憶整理流程,新用戶可以先用免費測試額度驗證方案。

Q6:Dreaming 有哪些已知限制?

單文件就能回答的簡單問題,Wiki 沒有明顯收益。整理可能讓體積膨脹,例如 115 KB 的原文生成了 203 KB 的 Wiki。多 Agent 共享寫入會丟失事實。官方 Dreams 還不具備 ZDR 和 HIPAA 資格,任務耗時從幾分鐘到數小時不等。


Claude Dreaming 核心要點 Key Takeaways

  • 記憶不只是存儲:保存全部對話會累積重複、過時和錯誤,需要驗證和組織。
  • 4 層記憶結構:Transcripts、Memory notes、Memory representations、Injected context 各司其職。
  • 糾錯依賴原始記錄:Dreaming 回到 Transcript 覈對,修正了導致反覆失敗的錯誤方位。
  • Wiki 擅長跨文檔任務:併購任務中 Wiki 得分 87%,純檢索爲 73%,每題平均節省約 2 萬 Token。
  • 整理也有副作用:併發寫入會丟失事實,Wiki 會膨脹,簡單任務用不上。
  • 自建可行:通過 API易 apiyi.com 調用 Claude 模型,可以實現簡化版的會話間記憶整理。

總結

Claude Dreaming 帶來的啓發主要有三點:

  1. 長期記憶的核心是維護:只有經過驗證、去重、組織的記憶,才能穩定幫助下一次任務。
  2. 記什麼比記多少更重要:優先記錄難以從環境中重新獲得的規則、錯誤原因和陷阱,不要記錄易變狀態。
  3. 結構化記憶要看場景:跨文件、多輪次、長期積累的任務值得引入 Wiki,簡單檢索任務不必爲此增加維護成本。

如果你的 Agent 已經在跨多個會話運行,可以先從“保留 Transcript、每晚串行整理一次、只讀掛載索引頁”這個最小閉環做起。推薦通過 API易 apiyi.com 調用 Claude 模型快速驗證這套流程,平臺提供 OpenAI 兼容接口和新用戶免費測試額度。


📚 參考資料

  1. The components of agent memory:Anthropic 工程博客原文,介紹 4 層記憶結構與 Dreaming 實驗
  2. 鏈接: anthropic.com/research/components-of-agent-memory
  3. 說明: CL-Bench、Pokémon、Wiki、合同整理等實驗數據的原始出處

  4. Dreaming with a dynamic workflow:Claude 官方 Cookbook

  5. 鏈接: platform.claude.com/cookbook/managed-agents-cma-dreaming-with-a-dynamic-workflow
  6. 說明: Lead、Analyzer、Organizer 多 Agent 工作流示例和成本參考

  7. Anthropic 官方 X 發佈動態:Dreaming 工程博客的發佈說明

  8. 鏈接: x.com/AnthropicAI/status/2118814753154064501
  9. 說明: 確認發佈時間和官方定位

作者:API易 技術團隊
技術交流:歡迎在 API易 官網首頁聯繫我們,更多資料可訪問 docs.apiyi.com 文檔中心

發佈留言