讓 agent 自我學習的 Memory 與 Dreaming(第 2/2 段)


🏦 台灣Pay 銀行轉帳 💙 PayPal
介紹 dreaming 怎麼在背景整理 agent 的 memory,並用 SRE 平台示範
- 10:47 團隊在處理層(processing layer)做了一個回饋迴圈來解決 memory 的問題,這個流程叫 dreaming
- 15:54 Demo:給 SRE 用的 agent 平台,會看進來的 alert 和 page,並針對其中一部分啟動 agent 來判斷怎麼 triage、怎麼修
- 20:34 結論:用 memory 加上 dreaming,可以做出會自我改進的 production agent
💡 你可以怎麼用:你可以自己手動做 dreaming:每週把累積的對話和筆記丟給 Claude,請它找出你們反覆卡住的地方、合併重複和互相矛盾的內容,整理成一份新版指引。你看過差異、確認沒問題後,再換掉舊的專案指示或筆記。
看全部 40 條重點
🧑🏫 這段講 AI agent 怎麼越用越聰明。agent 是會自己拆步驟、用工具完成任務的 AI 助手;memory 是它跨任務留下的筆記。影片介紹 dreaming:在背景幫 agent 整理筆記的流程,再用一個 SRE 系統維運平台實際示範。如果你想知道「AI 記憶」接下來會怎麼走,這段講得很具體。
- 10:47 團隊在處理層(processing layer)做了一個回饋迴圈來解決 memory 的問題,這個流程叫 dreaming↳ agent 自己寫的筆記容易越堆越亂,寫錯了也沒人改。團隊在「處理層」加了一個會回頭檢討的流程,叫 dreaming。處理層就是存下資料和拿出來用之間,專門加工資料的那一層。
- 10:47 dreaming 目前是 research preview,可以搭配 managed agents 使用↳ research preview 就是搶先試用版,功能還在調整。managed agents 是 Anthropic 幫你代管、代跑 agent 的服務,dreaming 目前要跟它一起用。
- 10:47 dreaming 會找出不同 agent、不同 session 裡反覆出現的錯誤模式,並自動整理(organize、curate)它們的 memory↳ session 指 agent 一次完整的工作過程。dreaming 會把很多 agent 的很多次工作放在一起比對,找出一再犯的同一種錯,再把筆記刪修、歸類成好用的版本。
- 11:18 客戶 Harvey 用了 dreaming 之後,法律 benchmark 的完成率提高到 6 倍↳ benchmark 是標準化的測驗題庫。法律 AI 公司 Harvey 用了 dreaming 以後,法律任務測驗的完成率變成原本的 6 倍,可見筆記整理過差很多。
- 11:18 dreaming 是 batch process,在 session 之外(out of band)執行,跟 session 完全脫鉤↳ batch process 是累積一批資料再一次處理;out of band 是在主流程之外另外跑。所以 agent 在做事時,dreaming 不會插手,兩邊完全分開。
- 11:48 可以把它想成回饋迴圈:agent 寫入 memory,dreaming 再把 memory 修整好,然後不斷重複↳ 流程是一個循環:agent 做事時寫筆記,dreaming 定期整理成更好的版本,agent 照新版做事、繼續寫筆記。每轉一圈,品質就往上一點。
- 11:48 觸發方式:臨時手動(ad hoc)、每晚、每小時,或由事件觸發(例如 session 結束);全部透過 API 控制↳ 什麼時候整理可以自己決定:想到就手動跑、每晚跑、每小時跑,或某件事發生時自動跑,例如一次工作結束。API 是讓程式彼此下指令的介面,這些都能用程式設定。
- 11:48 每次 dreaming 會分析 session transcript、檢查 memory 目前的狀態,在 session 效率差、出錯或需要更好指引的地方提出 memory 優化建議↳ transcript 是 agent 工作過程的完整紀錄。dreaming 讀這些紀錄、對照現有筆記,找出 agent 繞遠路、做錯或缺少指引的地方,再提出筆記該怎麼改。
- 12:18 產出是一份經過驗證、整理得更好的 memory snapshot,agent 可以自己決定要不要採用↳ snapshot 是某個時間點的完整存檔。dreaming 不直接改原本的筆記,而是交出一份驗證過的新版本,要不要換上由 agent 決定。
- 12:18 dreaming 讓 agent 能持續自我學習,把 memory 的迴圈補完整↳ 以前 agent 只會寫筆記,沒人回頭檢查。有了 dreaming,寫下、檢討、修正、再使用才串成完整的循環,agent 可以邊做邊變強。
- 12:48 out of band 好處一:適合 multi-agent 系統,跨 session、跨 agent 看 transcript,能找出單一 agent 自己不容易發現的模式↳ multi-agent 是很多 agent 分工合作的系統。單一 agent 只看得到自己的經驗;dreaming 在外面一次看所有紀錄,才看得出大家都卡在同一個地方。
- 12:48 好處二:有專門的 dreaming harness,目標比較明確↳ harness 是包在模型外面、規定它怎麼做事的那套框架和工具。dreaming 有專用的一套,只為了整理記憶而設計,目標很單純。
- 13:19 dreaming 是獨立流程,agent 不必在「提升 memory 品質」和「完成任務」之間取捨,兩者分得很乾淨↳ 如果要 agent 邊做事邊整理筆記,它得在兩件事之間分心取捨。整理交給獨立流程以後,agent 只管把任務做好。
- 13:19 好處三:dreaming 不在 hot path 上,不會讓 agent 變慢↳ hot path 指使用者在等回應時一定會經過的那段流程。dreaming 不在這段流程裡,所以不會讓 agent 回得更慢。
- 13:19 整體來看:memory 層可以跨 agent、跨環境共用,不只限在特定任務或用途裡↳ memory 不是綁死在某個 agent 或某件任務上,不同 agent、不同環境都能共用,比較像全公司共用的知識庫,而不是各自的私人筆記。
- 13:49 dreaming 會在所有 agent 之間,從全局角度優化並調和(reconcile)memory↳ reconcile 是把互相矛盾或重複的內容整理成一致的版本。dreaming 會看全部 agent 的筆記,把說法衝突的統一、重複的合併。
- 13:49 兩者合起來就是一套組織層級的 memory 系統,memory 的規模和品質都能往上擴展↳ 共用記憶讓知識傳得開,dreaming 負責顧品質。兩個合起來就是整個組織的記憶系統,筆記變多也不會變亂,數量和品質一起成長。
- 13:49 講者的看法:跨 agent 共用、持續改進的 memory 能提高每個 agent 的基本水準,dreaming 又再往上拉一層↳ 講者認為,大家共用、又一直在改進的記憶,會把每個 agent 的最低水準墊高,dreaming 再往上多拉一級。
- 14:21 規模放大之後,memory 會變成很大的知識來源,讓 Claude 了解它所在的組織和世界↳ 記憶累積得夠多以後,就不只是工作筆記,而會變成讓 Claude 了解你們公司怎麼運作、外面世界是什麼情況的大型知識來源。
- 14:21 類比 thinking models/test time compute:讓模型多花一些 token 探索問題,平均來說結果會比較好↳ thinking models 是回答前會先想一輪的模型;test time compute 指使用時讓模型多算一點。token 是模型處理文字的單位,多花一些讓它探索,答案平均會比較好。
- 14:53 dreaming 也是一樣:先花功夫整理出品質更高的 memory,後續所有 agent 的表現都會受益↳ dreaming 的道理一樣:先多花一次整理的成本,換來品質更好的記憶。之後每個 agent 查到的都是好資料,這份投資會一直回收。
- 14:53 memory 讓 agent 能從一個任務學習、記住,帶到下一個任務;dreaming 負責驗證、整理並充實 memory↳ 兩者分工清楚:memory 讓 agent 把這次學到的東西帶到下一次;dreaming 負責把關,檢查對不對、整理好、補上缺的部分。
- 15:24 講者認為 dreaming 是連接「現在的 memory」和「組織規模的 memory 與知識」的橋樑↳ 現在的 memory 大多還是零散的個別筆記。講者認為 dreaming 是讓它升級成整個組織都能信任的知識庫的那座橋。
- 15:54 Demo:給 SRE 用的 agent 平台,會看進來的 alert 和 page,並針對其中一部分啟動 agent 來判斷怎麼 triage、怎麼修↳ SRE 是負責讓系統穩定運作的工程師;alert 是異常警示,page 是把值班人員叫起來的緊急通知。平台會挑一部分警示,派 agent 判斷輕重緩急(triage)並想辦法修。
- 15:54 agent 可以用一個唯讀、全組織共用的 knowledge memory store,裡面放 SLO policy、runbook、on-call 對應表這類不常變動、但每個 agent 都需要的資訊↳ memory store 是存放 agent 記憶的地方。唯讀的那種只能看不能改,放全公司共用、很少變動的資料,例如 SLO policy(服務要達到的穩定標準)、runbook(出事時的處理手冊)、值班表。
- 16:27 agent 也可以用讀寫皆可的 memory store,內容跟當下的任務相關↳ 另一種 memory store 可讀可寫,agent 可以隨時記下跟手上任務有關的新發現,內容會跟著工作一直更新。
- 16:27 例子:某個 agent 找到 alert 的根本原因,送出修正,並在 memory 裡記下「修正正在進行中(in flight)」↳ 例如某個 agent 查出警示的根本原因,送出修正,並在筆記寫下「修正處理中」(in flight,意思是已經送出、還沒完成)。
- 16:59 之後遇到類似問題時,下一個 session 讀了共用的 memory store,就知道修正已經在路上,並依此採取行動,這就是 cross-session memory↳ 之後類似的警示又響了,新的 agent 讀了共用筆記,就知道修正已經在路上,可以依此決定下一步。這種跨越不同次工作的記憶,叫 cross-session memory。
- 17:31 企業環境需要 audit log 和歷史紀錄:memory 保留完整版本歷史,可以切換版本,也可以查到每次寫入是哪個 session 做的↳ audit log 是能追查「誰在什麼時候改了什麼」的紀錄。企業需要這種紀錄,所以每一版筆記都會留著、可以切回舊版,也查得到每次修改是哪一次工作寫的。
- 18:01 用 optimistic concurrency model 當作前置條件(precondition),避免不同 agent 互相覆蓋彼此寫入的內容↳ optimistic concurrency 是先假設不會撞車,但寫入前先檢查(precondition)資料有沒有被別人改過,有的話就擋下。這樣兩個 agent 不會把對方的內容蓋掉。
- 18:31 在 console 裡可以看到 memory store 清單和裡面的檔案;在 Dreams 分頁可以啟動 dream,用 API 或 UI 都行↳ console 是網頁版的管理後台,可以看到所有 memory store 和裡面的檔案。切到 Dreams 分頁就能啟動一次 dreaming,也可以用 API 從程式啟動。
- 18:31 Demo 選了 team SRE memory store,加上最近 7 天的一批 session(大約 5 個)來跑 dreaming↳ 示範時選了 SRE 團隊的 memory store,再挑最近 7 天、大約 5 次的工作紀錄當素材,讓 dreaming 從這些經驗裡整理。
- 19:02 執行中可以看到 5 個輸入 session,還有一個正在產生的輸出 memory store,也可以打開 dreaming session 來看↳ 執行時畫面會列出 5 份輸入的工作紀錄,還有一個正在產生的新 memory store;也可以點進去看 dreaming 正在做什麼。
- 19:02 dreaming 本身就是用 managed agents 做的,會開出一組 subagent 平行分析 transcript,介面(UX)跟其他 managed agents 一樣↳ dreaming 本身也是用 managed agents 做的。subagent 是主 agent 派出去的小幫手,它會同時派好幾個分頭讀紀錄;操作介面(UX)跟其他 agent 一樣。
- 19:33 dream 跑完後可以看到 memory store 更新的 diff↳ diff 是新舊版本的差異對照,類似 Word 的追蹤修訂。跑完以後可以逐條看到筆記新增、刪除或改了哪裡,方便人確認。
- 19:33 例子:跨 session、跨 agent 反覆出現「CPU 飆高後 60 秒觸發 alert」的模式,dreaming 推測 retry 行為可能有問題↳ dreaming 發現:好幾個 agent、好幾次工作都遇到「CPU 飆高 60 秒後才跳警示」。它推測可能是 retry(失敗後自動重試)的機制出了問題。
- 20:03 dreaming 把這個發現記到 memory,下一個遇到同樣模式的 agent 就能直接用上↳ 這個推測寫進記憶以後,下一個碰到同樣情況的 agent 不用從頭查,可以直接拿這個線索來用。
- 20:03 dreaming 也把 triage log 改寫得更全面,不再只是逐條記錄發生過的事件↳ 原本的 triage log(處理紀錄)只是一條條記下發生過的事;dreaming 把它改寫成有歸納、比較完整的說明。
- 20:34 結論:用 memory 加上 dreaming,可以做出會自我改進的 production agent↳ production 指真正上線、有真實使用者在用的環境。memory 加上 dreaming,可以做出上線後還會自己越變越好的 agent。
- 20:34 講者預期今年 agent 會跑得越來越久(例如好幾天),持續累積並改進對周遭世界的理解是關鍵,而 memory 系統會是重要的一環↳ 講者預期今年 agent 會連續工作更久,甚至好幾天。任務拉得越長,越需要持續累積、修正對周遭的理解,記憶系統會是很重要的一塊。
📘 術語
dreaming(dreaming(做夢)):找出跨 agent、跨 session 的錯誤模式,並自動整理、修整 memory 的流程
research preview(研究預覽版):dreaming 目前的釋出狀態,可以搭配 managed agents 使用
batch process(批次處理):dreaming 的執行方式,在 session 之外執行,跟 session 完全脫鉤
out of band(帶外(在主流程之外)):跟 agent 主迴圈分開執行,所以不會拖慢 agent,也適合 multi-agent 系統
session transcript(session 對話紀錄):dreaming 每次執行時分析的材料
snapshot(快照):dreaming 的產出:經過驗證、整理得更好的 memory,agent 可以選擇要不要採用
hot path(關鍵執行路徑):dreaming 完全不在這條路徑上,所以不會增加 agent 的延遲
test time compute(推論時運算):讓模型花一些 token 探索問題,平均能得到比較好的結果;拿來類比 dreaming
memory store(記憶庫):agent 存取 memory 的地方,分成唯讀、全組織共用的,以及可讀寫、跟任務相關的
SRE(網站可靠性工程師):Demo 平台的使用者,負責 on call、處理 alert 和 page
runbook(維運手冊):放在唯讀組織知識 memory store 裡、不常變動的資訊之一
SLO policy(服務水準目標政策):同樣放在唯讀組織知識 memory store 裡的資訊
optimistic concurrency model(樂觀並行控制模型):一種前置條件,確保 agent 不會互相覆蓋彼此寫入的內容
audit log(稽核紀錄):企業需要的功能:可以看 memory 完整版本歷史,並查到每次寫入來自哪個 session
subagent(子 agent):dreaming 會開出一組 subagent 平行分析 transcript
diff(差異):dream 完成後顯示 memory store 更新了哪些內容
research preview(研究預覽版):dreaming 目前的釋出狀態,可以搭配 managed agents 使用
batch process(批次處理):dreaming 的執行方式,在 session 之外執行,跟 session 完全脫鉤
out of band(帶外(在主流程之外)):跟 agent 主迴圈分開執行,所以不會拖慢 agent,也適合 multi-agent 系統
session transcript(session 對話紀錄):dreaming 每次執行時分析的材料
snapshot(快照):dreaming 的產出:經過驗證、整理得更好的 memory,agent 可以選擇要不要採用
hot path(關鍵執行路徑):dreaming 完全不在這條路徑上,所以不會增加 agent 的延遲
test time compute(推論時運算):讓模型花一些 token 探索問題,平均能得到比較好的結果;拿來類比 dreaming
memory store(記憶庫):agent 存取 memory 的地方,分成唯讀、全組織共用的,以及可讀寫、跟任務相關的
SRE(網站可靠性工程師):Demo 平台的使用者,負責 on call、處理 alert 和 page
runbook(維運手冊):放在唯讀組織知識 memory store 裡、不常變動的資訊之一
SLO policy(服務水準目標政策):同樣放在唯讀組織知識 memory store 裡的資訊
optimistic concurrency model(樂觀並行控制模型):一種前置條件,確保 agent 不會互相覆蓋彼此寫入的內容
audit log(稽核紀錄):企業需要的功能:可以看 memory 完整版本歷史,並查到每次寫入來自哪個 session
subagent(子 agent):dreaming 會開出一組 subagent 平行分析 transcript
diff(差異):dream 完成後顯示 memory store 更新了哪些內容
✏️ 小考一題
根據影片,下列哪一項「不是」字幕裡提到的 dreaming 觸發方式?
A. 臨時手動(ad hoc)觸發B. 每晚或每小時定期觸發C. 由 session 結束等事件觸發D. 每次呼叫工具之後自動觸發看答案
答案:D。[11:48] 講者說 dreaming 可以 ad hoc、nightly、hourly 觸發,也可以由 session 結束之類的事件觸發;字幕沒有提到「每次呼叫工具後觸發」
💛 覺得有幫助?支持一下


課本免費、沒有廣告,支持與否都能照常讀 🐰