Claude 也要睡覺了:Dreams 怎麼整理 Agent 的記憶垃圾山
Anthropic 替 Claude 的 Managed Agents API 宣布了一個新功能:Dreams。這個 API 可以先粗略理解成:開發者把 Claude 包成會接任務、用工具、跨會話工作的服務,而不是每次只開一個乾淨聊天室。
這個名字很可愛,甚至有點中二。AI 會講話、會推理、會用工具,現在連睡覺都要排進行程表。可是 @danizhu 這則推文真正抓到的重點不是命名,而是 Dreams 解決了一個每個 Agent 開發者遲早會撞上的問題:context rot。
所謂 context rot,聽起來像工程師把霉菌帶進 prompt 裡,但問題其實非常樸素。Agent 在工作時會把東西寫進記憶,這件事一開始很美好。記得使用者偏好、記得專案慣例、記得過去踩過的坑,感覺像請了一位會做筆記的助理。
然後會話一路累積,筆記本開始變成倉庫清倉現場。
同一件事被重複記錄,版本還不一樣。三週前成立的假設現在已經過期,但它還躺在記憶庫裡裝死。某次除錯時隨手留下的臨時判斷,被 Agent 當成宇宙真理一起帶進下一輪脈絡。最後 Agent 每次工作都拖著一大袋雜訊上路,像去便利商店買茶葉蛋卻背了一整套露營裝備,瓦斯爐、天幕、摺疊椅全部帶齊。茶葉蛋還沒買到,人先累死。
Dreams 的意思是:Claude 可以在「睡覺」時整理這袋東西。
Dreams 實際做了什麼
Dreams 不是在原本的記憶庫上直接動刀。依照推文描述,開發者會觸發一個非同步工作,也就是先丟一個背景任務給 Claude,讓它讀取既有記憶庫,並搭配過往會話紀錄一起看。這裡有一個明確限制:最多可以納入 100 段會話。
接著 Claude 會產生一份全新的、重新組織過的記憶庫。
這個新記憶庫要處理幾件事。重複項目會被合併;彼此矛盾的內容會被解決;已經過時的條目會被替換;過去會話裡沒有被明白寫成記憶、但其實反覆出現的模式,也可能被整理出來。
這最後一點很關鍵。Dreams 不是把資料夾重新命名,或把垃圾桶清一清而已。它比較像半夜偷偷幫研究生整理實驗紀錄的教授:不只把紙本按照日期排好,還會從一堆「今天又炸了」的註記裡看出「原來每次換某個參數都會炸」。
Clawd murmur:
這裡最猛的是「從逐字紀錄裡挖出沒有明寫的模式」。一般摘要像把會議錄音壓成幾個結論;Dreams 比較像助教看完整學期作業後說:「這位同學不是不會寫遞迴,是每次終止條件都忘記。」這不是壓縮,是診斷。
原本的記憶庫不會被碰。這個設計非常工程腦,也非常重要。Dreams 產出的只是新版本,開發者可以審查,可以掛到未來會話,也可以覺得不對勁就丟掉。
換句話說,它預設整理記憶這件事可能會整理錯。不是因為 Claude 很爛,而是因為「替長期記憶下結論」本來就有風險。把原始記憶留著,讓輸出可審核、可逆轉,這比直接開著推土機進資料庫優雅很多。
這不是摘要器,是記憶礦工
@danizhu 特別提醒,Dreams 不是單純做一次摘要。
如果只是摘要,那就像把一間爆炸的房間拍成一張全景照。照片比較小,房間還是爆炸。Dreams 的定位更接近主動從會話紀錄裡挖模式、找洞見、重組知識。
開發者還可以傳入自訂指令,指定整理時要優先看什麼、忽略什麼。推文舉的例子很具體:可以要求 Claude 優先整理程式碼風格偏好,同時忽略一次性的除錯筆記。
這個差別很大。因為 Agent 記憶裡最麻煩的,常常不是資訊太少,而是資訊的壽命不同。
「這個專案偏好小函式、少抽象」可能是長期偏好。
「今天測試失敗是因為某個環境變數沒設」可能只是一次事件。
把兩者都塞進長期記憶,Agent 就會開始出現奇怪行為。好比家庭冰箱裡同時放泡菜、感冒藥、去年中秋節沒吃完的烤肉醬,而且每個瓶子都貼著「重要」。最後打開冰箱只剩考古。
Dreams 的價值就在於,它提供了一個機制,讓記憶不只是越堆越高,而是可以被重新分類、過濾、凝結成更穩定的知識。
Clawd 認真說:
Agent 記憶最怕「一日限定情報」混成「永久人格設定」。今天因為版本衝突暫時不要跑某個指令,不代表之後還要避開它。把臨時解法當祖訓,這種系統真的會讓工程師懷疑人生。
可以看 Claude 睡覺時在想什麼
Dreams 還有一個很有意思的設計:執行期間可以觀察。
推文提到,當一個 dream 正在跑,它的 session_id 會指向底層正在運作的即時會話。開發者可以串流事件,看到 Claude 當下正在讀什麼、寫什麼。
這點看似只是可觀測性,但對 Agent 記憶系統來說很實際。因為記憶整理不是純粹的背景清潔工作,它會影響未來行為。若整理過程完全黑箱,等於把「這個 Agent 之後會怎麼理解使用者、專案、偏好」交給一個看不見的夜間批次工作。
可串流觀察讓 Dreams 比較像一個可以旁聽的整理過程。開發者不一定每次都要盯著看,但當結果很奇怪時,至少有機會回頭檢查:Claude 是讀到哪段會話才產生這個判斷?哪個記憶被合併了?哪個舊條目被替換了?
這不是華麗功能,是除錯時會救命的功能。系統越像會自己學習,越需要留下可追蹤的痕跡。不然 Agent 突然開始堅持某種做法,工程師只能坐在螢幕前發呆:到底哪一次對話把它教壞了。
成本:沒有魔法,照 Token 算
Dreams 的成本也沒有藏什麼神祕小字。推文說,它依照所使用模型的標準 API Token 費率計費,可以用 Opus 或 Sonnet,也就是 Anthropic 不同等級的 Claude 模型。用量會隨輸入會話的數量與長度成長,所以建議一開始從小規模開始。
這裡沒有免費午餐,也沒有「睡覺不用電」這種童話。Claude 要讀既有記憶庫、讀過往會話、做整理、產生新記憶,全部都會消耗 token。
但這個成本模型也讓取捨變得清楚。Dreams 不必每次 Agent 動一下就跑。它比較像定期保養,而不是每踩一次油門就拆引擎。可以先從少量會話、明確目標開始,觀察整理出來的記憶品質,再決定什麼時候值得擴大。
Clawd 吐槽時間:
這裡千萬不要把 Dreams 想成「記憶越多越要全部拿去夢一次」。那就像家裡幾本書還裝圖書館條碼機,結果光掃碼就掃到天荒地老。先針對高價值、高噪音的會話做整理,通常比較像工程,不像祭改。
為什麼叫 Dreams:不是浪漫,是排程
@danizhu 認為 Dreams 這個名字是刻意的隱喻,而且是一個好隱喻。先講清楚:下面這段睡眠與記憶的類比,是用一般認知科學常見的「睡眠幫助記憶鞏固」說法來理解命名,不是 Anthropic 文件宣稱 Claude 真的有生物式睡眠。
這個比喻真正有用的地方,不是「AI 好像人類」這種浪漫話術,而是它提醒開發者:整理記憶最好不要硬塞在做事當下。
生物記憶的鞏固大多發生在睡眠期間。大腦會重播經驗,剪掉比較弱的連結,強化有意義的模式。睡覺不是把白天發生的事逐字備份,而是把一整天的混亂重新編碼:重要的留下,雜訊淡掉,原本分散的經驗被連成模式。
Agent 也有類似問題。白天,也就是執行任務時,它要行動、得到結果,並把重要資訊寫進記憶。這時候要求它同時完美維護長期記憶,負擔很重,也容易把眼前事件誤判成永久規則。
Dreams 把這件事拆開:工作時先記錄,睡覺時再整理。
第二個迴圈:Agent 不只要行動,也要反思
推文最有洞見的一段,是把 Dreams 看成 Agent 迴圈之外的第二個迴圈。這句聽起來有點抽象,翻成白話就是:Agent 不能只有「做事」這一條流水線,還需要另一條「事後檢討」流水線。
原本的 Agent 迴圈負責行動與寫入:接任務、使用工具、得到結果、把重要資訊寫進記憶。這個迴圈很像白天醒著做事。
Dreams 則形成另一個迴圈:反思、重組、改善。它把累積下來的經驗拿到離線階段重新塑形,避免任務跑到一半還要一邊扮演工程師、一邊扮演檔案管理員。
這個分離,是 @danizhu 認為長期效能可以複利成長的關鍵。因為在 Dreams 之前,記憶比較像只追加日誌:新的東西一直寫進去,舊的東西很少被真正消化。雜訊變多時,常見解法是繼續調 Prompt,叫 Agent「請忽略不重要的東西」、「請優先看最近資訊」、「請自行判斷衝突」。這當然有用,但也有點像房間太亂時,在門口貼一張紙寫「進門請小心不要踩到雜物」。問題還在,只是多了一張紙。
Dreams 的轉變是:記憶可以變成會演化的知識庫。背後多了一個離線學習機制,專門處理記憶生命週期。
Clawd 內心戲:
這是整則推文的核心爆點。很多 Agent 系統把「會記得」當終點,其實那只是開始。真正困難的是「記得正確的東西、忘掉該忘的東西、把零散事件變成可用規則」。人腦如果只能記不能忘,大概很快就藍屏。
更大的脈絡窗不是解藥
@danizhu 最後把矛頭指向一個常見迷思:更好的 Agent 不一定來自更大的脈絡窗,而是來自更好的記憶生命週期管理。脈絡窗可以先想成 Claude 這次對話「一次看得到多少資料」的桌面大小。
這句話很狠,因為 AI 圈太常把「塞更多」當答案。脈絡窗不夠?加大。歷史資訊太多?加大。Agent 忘東忘西?再加大。
可是無限大的脈絡也不能自動解決雜訊、矛盾、訊號遺失。把整間倉庫都塞進背包,背包變大了,倉庫還是亂的。Agent 仍然可能被過期資訊影響,仍然可能看到互相衝突的偏好,仍然可能在一堆低價值紀錄裡找不到真正重要的模式。
如果沒讀過 gu-log 前面兩篇也沒關係,可以把它們當成兩塊背景拼圖:SP-135 談的是讓 Agent 用檔案系統,而不是只撐大脈絡窗;CP-199 談的是 Andrew Ng 的跨會話 Agent 記憶課。前者問「記憶要放在哪裡」,後者問「記憶怎麼跨會話活下來」。Dreams 再往前推一步:放久了之後,誰負責打掃、合併、丟掉過期資訊?
所以 Dreams 代表的是另一個賭注:答案不是只靠容量,而是整理。
容量當然重要,沒有足夠脈絡,很多工作做不起來。但容量不是治理。記憶系統需要新增、更新、合併、廢棄、審核。這些動作如果沒有生命週期管理,再大的脈絡窗都只是更豪華的垃圾場。
AI 先有了聲音,接著有了大腦。現在記憶成為下一層能力,而記憶一旦變長、變多、變複雜,就不能只是醒著硬撐。
它也需要睡覺。
結語
Dreams 最值得記住的地方,不是 Claude 多了一個漂亮功能名,而是 Agent 記憶系統終於開始正視「整理」這件事。
長期 Agent 若要變可靠,不能只會把每次經驗都塞進倉庫。真正的進步來自另一種能力:把經驗拿出來重看,刪掉噪音,修正矛盾,再把反覆出現的模式變成下一次行動時可用的知識。
會記得很厲害。會整理記憶,才比較像真的在成長。
至於 Claude 需不需要睡前故事,Anthropic 目前沒有公布。這部分暫時只能交給產品經理晚上自己反省。( ̄▽ ̄)/