fix(記憶固化): 判斷過的短期記憶留痕跡,候選數字才會降
睡眠有做固化,但隔天開機照樣提醒「N 組已達固化條件」,數字只會往上爬 (實測 KIRITO-01:短期記憶 120 筆、候選 222 組)。原因不是睡眠沒做事, 是判斷沒有留下痕跡——promotionCandidates() 無條件掃全部短期記憶,而 consolidate 不在來源那筆上寫任何東西,也不刪它(--forget 是按顯著度刪, 不是按固化過沒有刪),所以同一批每輪都被重算成候選。 - 短期記憶多兩個欄位:reviewed_at(看過、判斷過了)與 promoted_to (固化成了哪一則)。兩者分開記——「看過決定不記」跟「已經記下來」都不該 再進候選,但事後要查「這則長期記憶從哪幾筆長出來」只能靠 promoted_to。 - promotionCandidates() 只看沒有 reviewed_at 的那些;total 照舊算全部。 R6 容量壓力仍看總筆數,但候選只從未判斷的挑,全部判斷完就不再出現 (否則它會單獨把提醒永遠點亮)。 - consolidate --from-short "#N,#N":寫長期記憶時一起標來源。 - candidates --reviewed all|<#N,#N> [--until <ISO>]:看過決定不記的標這裡。 --until 讓「某次睡眠當下判斷過的那批」可以一次收掉。 - candidates 輸出每筆前面加 #N(就是上面兩個旗標要填的編號),並在結尾 提示判斷完要標記。 - 標記不等於刪掉:那幾筆還在短期記憶裡,照舊被 prune 依天數與顯著度裁。 文件:persona-sleep 的流程多一步「標掉判斷過的」並註明漏掉的後果、 persona-memory 補一張「怎麼標」的表、README 的 R1–R6 段補這一層。 selftest 補 13 項(602 → 615 全綠)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -36,14 +36,19 @@ description: 讓人格睡覺:把一天的活狀態收成能留下來的形狀
|
||||
## 情況一:當前人格自己睡
|
||||
|
||||
1. 盤點:`candidates --session <PERSONA_SESSION>`
|
||||
2. 逐則固化(判斷):`consolidate --session <id> --name <n> --body <b> --type ... --salience N [--forget]`
|
||||
3. 寫一則日記:`consolidate --type diary --name diary-<YYYY-MM-DD> --body "<第一人稱回顧>"`
|
||||
4. 消化 inbox(`memory/inbox/room-*.jsonl`,當 guest 時帶回的見聞)
|
||||
5. 更新心智圖與關係圖:`mindmap`、`relation node --name <人> --contact`
|
||||
6. 結算懸著的事(判斷):`loop list --session <id>`,今天有下文的 `loop done --id <id>`、
|
||||
2. 逐則固化(判斷):`consolidate --session <id> --name <n> --body <b> --type ... --salience N
|
||||
--from-short <#N,#N> [--forget]`
|
||||
**`--from-short` 不要省**:那是把來源短期記憶標成判斷過的地方,編號看 `candidates` 輸出的 `#N`。
|
||||
3. 看過但決定不記的,也要標掉:`candidates --session <id> --reviewed <#N,#N>`(或 `--reviewed all`)。
|
||||
**這一步漏掉,明天開機照樣提醒「N 組已達固化條件」**——判斷做了但沒有留痕跡,
|
||||
計數只看短期記憶有沒有被標記,不看你昨天固化了幾則。看起來就像睡眠沒做固化。
|
||||
4. 寫一則日記:`consolidate --type diary --name diary-<YYYY-MM-DD> --body "<第一人稱回顧>"`
|
||||
5. 消化 inbox(`memory/inbox/room-*.jsonl`,當 guest 時帶回的見聞)
|
||||
6. 更新心智圖與關係圖:`mindmap`、`relation node --name <人> --contact`
|
||||
7. 結算懸著的事(判斷):`loop list --session <id>`,今天有下文的 `loop done --id <id>`、
|
||||
已經不重要的 `loop drop --id <id>`。**這一步要自己做**:`sleep` 裡的 `sweep-loops`
|
||||
只收「7 天都沒進展」的,它分不出「今天解決了」與「一直沒人管」。
|
||||
7. 機械性收尾:
|
||||
8. 機械性收尾:
|
||||
|
||||
```bash
|
||||
node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" sleep --session <PERSONA_SESSION> --json
|
||||
|
||||
Reference in New Issue
Block a user