Skip to content

Latest commit

 

History

History
66 lines (44 loc) · 3.34 KB

File metadata and controls

66 lines (44 loc) · 3.34 KB

記憶階層 — 四池一魂(定稿)

用語

  • 解構:把內容拆解、分析成可處理的單位(例如一句一則事實)。
  • 濃縮:把多則解構後的內容,經由模型再解構後壓成更少、更精的條目,進上一階層;不是萃取,是「變濃、變少」的壓縮。

結構(由下而上流動)

階層 容量 來源 滿池時動作 流出後
當前對話 20 輪 使用者+LLM 最近 20 輪 滿 20 輪解構濃縮成 1 句進短期 當前緩衝歸零,再累積下一輪 20
短期記憶池 200 當前 20 輪濃縮成 1 句進池 池滿 200 → 解構後濃縮成 50 句進長期 短期池歸零
長期記憶池 100 短期濃縮 50 進來 池滿 100 → 解構後濃縮成 5 句進核心 長期池歸零
核心記憶池 20 長期濃縮 5 進來 池滿 20 → 解構後濃縮成 1 句進靈魂 核心池歸零
靈魂 1 核心濃縮 1 進來,與靈魂合併 不歸零,成長

靈魂的成長

靈魂永遠是「一個我」;隨核心一次次濃縮 1 句進來,靈魂從少到多、由短到長成長:

  • 一句一行一段一篇一章一文一檔
  • 無論長度如何,都是一個整體:都是我

實作上:靈魂可存成單一檔(如 SOUL.md),每次從核心濃縮 1 句進來,就與現有靈魂內容合併(LLM 或規則),寫回該檔;「一句到一檔」是同一份文件的擴充,不是多檔。


回答時注入的結構

生成當輪回覆時,從各階層取出的數量(拼進 prompt 的「記憶」區塊):

階層 注入條數
當前 1
靈魂 1(整份靈魂或摘要,視長度)
核心 2
長期 3
短期 5

即:當前 1 + 靈魂 1 + 核心 2 + 長期 3 + 短期 5


與現況差異

  • 現況:短期無固定 cap、滿 N 條「提煉」一批進長期;長期 append-only;SOUL.md 手動編輯。
  • 定稿:當前一句解構一句進短期;短期 200→濃縮 50 進長期並歸零;長期 100→濃縮 5 進核心並歸零;核心 20→濃縮 1 進靈魂並歸零;靈魂單檔成長(一句到一檔);回答結構固定為 1+1+2+3+5。

實作檔案(workspace/memory/)

  • short_term.jsonl:短期池(cap 200),滿後濃縮 50 進長期並歸零。
  • long_term.jsonl:長期池(cap 100),滿後濃縮 5 進核心並歸零。
  • core.jsonl:核心池(cap 20),滿後濃縮 1 進靈魂並歸零。
  • current.txt:當前 1 句(上一輪解構結果)。
  • 靈魂:SOUL.md(workspace 根),由核心每次濃縮 1 句融入後重寫。

答覆時除記憶外還帶什麼

  • 近期對話上下文:後端保留最近 N 輪「使用者 → 助手」對話(N 由 CHATMERY_RECENT_TURNS 設定,預設 20,範圍 1–100),每次請求一併送入模型(system + 歷史輪次 + 本則 user),避免雞同鴨講。
  • 當前 1:最近一次「20 輪→濃縮 1 句」的那一句,注入記憶區塊,直到下一輪 20 再濃縮更新。
  • 系統開頭:prompt 最前為 靈魂(SOUL.md),再接時間、記憶、即時、附檔、背景、能力邊界。