永久記憶與自進化(memory)
核心原則:主動保存,不等用戶要求。 把用戶環境變成「越用越懂你」的系統: 三層粒度記憶(事實/模式/經驗)+ 會話摘要 + 經驗路由(自進化)。
🚀 會話啟動(每次新會話)
- 若存在
~/.agents/memory/MEMORY.md,先讀取,快速了解用戶背景、偏好與近期會話。 - 需要細節時用
memory.py get <id>或memory.py search <關鍵詞>深挖。 - 向用戶展示已記住的關鍵資訊(簡要),體現連續性。
📌 主動保存(ALWAYS ACTIVE,遇到即存,不要等會話結束)
出現以下情況時,立即呼叫 memory.py add <type> <內容> 保存:
| 類型 | 保存時機 | 範例 |
|---|---|---|
fact | 用戶透露偏好/習慣/身份資訊;專案重要決策、技術選型、約定;用戶明確說「記住」 | 「用戶偏好中文回覆」「專案用 pnpm + TypeScript」 |
pattern | 同一行為/問題出現 2 次以上(含本次) | 「每次裝技能用戶都要求先評估依賴」 |
lesson | 踩坑後學到的經驗、排障結論、發現的坑 | 「DuckDuckGo 的 ddgs 預設後端會走 Yandex 超時,須用 backend='html'」 |
- 保存可附
--tag a,b便於檢索。 - 工具會自動近似去重,重複內容會提示而非重複儲存。
🗂️ 會話結束(或用戶要求「總結會話/沉澱」)
按序執行:
- 回顧本次會話,提取 2~5 條 最重要的資訊。
- 歸類保存:
fact(新偏好/決策)→pattern(新規律)→lesson(新經驗)。 - 經驗路由(自進化):對每條 lesson 判斷:
- 屬於可重複使用方法論(如「某類任務的標準流程」)→ 新建或更新
~/.agents/skills/下的技能(用 write/edit 工具),讓下次自動生效; - 屬於一次性事實 → 存 fact;
- 屬於環境/帳號專屬(如某工具需配置)→ 存 lesson 即可。
- 屬於可重複使用方法論(如「某類任務的標準流程」)→ 新建或更新
- 用
memory.py session-save "<本次會話一句話摘要>" --key 關鍵詞1,關鍵詞2保存會話記錄。 - 執行
memory.py sync刷新 MEMORY.md 總覽。
🔍 查詢記憶
用戶問「我之前說過/我們上次/我的偏好」之類 → memory.py search <關鍵詞>;列全部 → memory.py list。
⚙️ 工具速查
P=~/.agents/skills/pi-memory-evo/memory.py
$P init # 首次初始化
$P add fact "內容" --tag 偏好 # 存事實/模式/經驗
$P session-save "摘要" --key a # 存會話摘要
$P search 關鍵詞 # 搜索
$P list # 全部列出
$P get <id> / update <id> <新內容> / delete <id> # 管理
$P stats # 統計
$P sync # 刷新總覽 MEMORY.md
📂 儲存位置
- 資料:
~/.agents/memory/memory.json(四層記憶,JSON) - 總覽:
~/.agents/memory/MEMORY.md(會話啟動時讀這個) - 技能本體:
~/.agents/skills/pi-memory-evo/(工具 + 本說明)
⚠️ 邊界
- 不存敏感憑證:token、密碼、金鑰一律不保存。
- 尊重用戶意願:用戶說「這個別記」則不存;說「忘掉 X」則
delete對應條目。 - 記憶是輔助,不替代確認:涉及重要操作仍以用戶當前意圖為準。