跳到內容

認知記憶系統

仿人腦記憶設計,具備遺忘曲線:Agent 記住重要的,遺忘不重要的。


想想你如何記住事情:

  • 「上週二我和 Sarah 喝咖啡,她提到要換工作。」 — 這是情節記憶:特定時間的特定事件。
  • 「Sarah 在行銷部工作。」 — 這是語意記憶:一般事實,脫離了特定事件。

你的大腦自然地分離這些。當有人問「Sarah 做什麼的?」你不會重播和她的每次對話。你會直接存取語意事實。

而且隨著時間,不重要的情節記憶會褪色。你記不住兩週前星期二吃了什麼午餐。但你記得老闆告訴你升職的那頓午餐——因為它重要

DuDuClaw 的記憶系統完全模仿這個架構。


情節記憶(Episodic) — 特定互動的紀錄,標記有:

  • 時間戳(何時發生?)
  • 上下文(哪個通道?哪個使用者?什麼主題?)
  • 情感價值(正面、負面、中性?)

語意記憶(Semantic) — 萃取的事實和知識,不帶時間背景:

使用者是一位專注於 Rust 的後端開發者。
使用者偏好基於比喻的解釋方式。
帳務模組有 null 相關 bug 的歷史。

Agent 需要回憶時,不是只做關鍵字搜尋。它使用三個維度來排列記憶的相關性:

  • 時效性(Recency):越近期的記憶分數越高
  • 重要性(Importance):關鍵決策 > 閒聊
  • 相關性(Relevance):與當前查詢的語意距離

最終分數 = 三者的加權組合。回傳依分數排序的前 N 筆記憶。

三個維度的權重可設定。處理緊急支援工單的 Agent 可能加重時效性和重要性;充當知識庫的 Agent 可能加重相關性。

此方法受 Stanford Generative Agents 研究論文啟發,該研究證實 3D 檢索產生比簡單關鍵字搜尋更類似人類的記憶回憶。

並非所有記憶都該永遠存在。系統實作間隔重複遺忘曲線

記憶建立
|
v
初始強度:1.0
|
v
時間流逝,未被存取...
|
v
強度衰減:0.8 → 0.6 → 0.4 → 0.2
|
v
低於閾值?→ 標記為「已淡化」
(仍存在,但不會在正常檢索中浮現)
|
v
若再次被存取 → 強度重設為 1.0
(記憶被「刷新」,重新開始衰減)

衰減速率隨重要性變化:

  • 關鍵記憶(安全事件、重要決策):緩慢衰減,高閾值
  • 重要記憶(使用者偏好、重複主題):中等衰減
  • 日常記憶(問候、閒聊):快速衰減,低閾值

這防止記憶庫無限增長。舊的、不重要的記憶自然淡化,保持檢索系統快速且專注。


對直接的關鍵字搜尋,系統使用資料庫內建的全文搜尋能力。

對語意搜尋(尋找概念上相似的記憶,即使不共用關鍵字),系統維護向量索引(透過 embedding 捕捉關鍵字搜尋遺漏的連結)。


在多 Agent 設定中,Agent 有時需要存取彼此的知識,但不是全部。聯邦記憶系統提供受控的共享:

記憶有共享層級:

  • 私有:只有擁有者 Agent 可存取
  • 團隊:同群組的 Agent 可存取
  • 公開:任何 Agent 可存取

這反映組織處理資訊的方式:有些知識是部門專屬的,有些是全公司的,有些是需要知道才給的。


除了對話記憶,系統支援結構化知識匯入:外部知識來源(URL、文件、wiki)經過解析、擷取結構化資料、索引全文搜尋、生成 embedding 向量搜尋。

Web 儀表板包含互動式知識圖譜視覺化,顯示不同知識片段如何相互連結:主題、實體及其關係。


有記憶的 Agent 不會每次對話都從零開始。它記住使用者偏好、過去的問題、溝通風格。將體驗從「每次都在跟新人說話」轉變為「跟了解你的人說話」。

隨時間推移,Agent 對其領域建立豐富的理解。支援 Agent 累積常見問題、已知解法、使用者特定設定的知識。這些知識跨 session 持續存在,持續提升回應品質。

遺忘曲線確保記憶不會無限增長。系統自然維護一組相關、近期的工作記憶,同時讓舊的、不重要的記憶淡化。無需手動清理。

聯邦記憶意味著知識不會被孤立在單一 Agent。一個 Agent 學到的產品洞察可以惠及支援 Agent、銷售 Agent 和文件 Agent;全部自動,帶有隱私控制。


  • 演化引擎:記憶模式回饋到預測引擎的準確度。
  • Session Manager:對話歷史流入情節記憶。
  • Wiki 匯入:結構化知識饋入語意記憶庫。
  • 儀表板:記憶內容、搜尋介面和知識圖譜都可透過 Web 介面存取。

記憶是區分無狀態聊天機器人和有用助手的關鍵。透過仿效人類認知來建模記憶(情節/語意分離、重要性加權檢索、自然遺忘、受控共享),DuDuClaw 賦予 Agent 從每次互動中學習、記憶和成長的能力。