記憶注入「兩條路分開」實作計畫

2026-09-22|EverOS|依據:Supermemory radar 報告 §4、§6b|Brian 已拍板方向 A,本頁請你拍板 3 個細節

進度更新(2026-09-22 清晨)

先講一個剛查到的關鍵發現

現在每次開工,系統去翻記憶時,用的是一句寫死的英文:「project context: recent decisions, architecture…」。不管你今天要做什麼,它都問同一句話。

比喻:你每天走進圖書館,館員都只問書庫同一句「有沒有跟這個人有關的書?」——當然每天拿到差不多的那幾本,而且每本都「有點相關、又不太相關」。這就是分數全擠在 0.50–0.58 的原因。

小實測(今晚跑的,免費):改用「真實的任務句子」去問,同一個書庫馬上找得準:

拿什麼去問第 1 名分數第 1 名是不是要的
現在寫死的那句0.579✗(7 月的舊進度)
「R2-B chunk 2 驗收…」0.742✓ 正中(第 2 名 0.716 也中)
「incident_detect v6.1 round 2…」0.652✓ 正中
「磁碟成長警報誤報…」0.640✓ 前 5 名全中
今天的 Supermemory 開場句0.650✓ 記憶架構討論
「繼續昨天的工作」(太籠統)0.650△ 撈到一堆雜的
「幫我訂披薩」(故意亂問)0.582✗ 應該什麼都不給

兩個結論:①方向對了:拿任務句去問,準度立刻上來。②但不能只看分數高低決定塞不塞:籠統句也能拿到 0.65,和真正命中的 0.652 一樣高。要看的是「第 1 名有沒有明顯甩開後段班」(命中時會甩開,亂問時大家擠在一起)。

1. 請你拍板 ⏳待拍板

決策 1:你說完第一句話後,系統要塞什麼給 Claude?⏳

前情:以後開工那一刻不再塞舊對話。等你打出第一句話,系統拿那句話去翻 EverOS。翻到之後,要用什麼形式交給 Claude?

建議 C。理由:A 的精準+留一條讓 Claude 自己追查的路,多花的空間只有一行。

決策 2:「夠不夠相關」的標準,要怎麼定出來?⏳

前情:上面的小實測只有 8 句話。用 8 句話定標準,像只考 8 題就決定及格線,容易定歪。上次的「先只記錄、不生效」觀察期(08-06 開始)拖了一個多月沒回收,也是前車之鑑。

建議 A。理由:免費、一次定準,而且重播工具以後換模型、調參數都能重用。

決策 3:只在「第一句話」翻記憶,還是每一句都翻?⏳

前情:Supermemory 的做法是每一輪都讓 Claude 判斷要不要翻。但你這邊每翻一次,你送出的那句話就要多等 1–3 秒才到 Claude 手上。

建議 A。理由:先把最大的病灶治掉;B 等 A 跑順、有數據再說。

2. 我已選好、但你可以翻案 ✅已預設,可翻

3. 執行層 🔒已授權自行決定

  1. 工單 1|重播工具(派 coder):新檔 hooks/tools/replay_first_prompts.py。從各專案對話紀錄抽每場第一句話→呼叫現有搜尋→輸出一份分數表。只讀不寫。
  2. 我來定標準:看分數表定「命中規則」,抽 30 組給你過目。
  3. 工單 2|新程式+舊程式瘦身(派 coder):新檔 hooks/everos-first-prompt.py(過濾雜訊、去重複、過期標記這些功能,從舊程式搬成共用模組,不重寫);hooks/everos-session-start.py 拿掉舊對話與個人檔案,只留「攝取心跳警告」。部署清單 hooks/deploy-claude-hooks.sh 加新檔。
  4. 驗收員檢查(派 reviewer)→ 過了才部署。
  5. 部署:先跑備份 → 部署腳本 → 在 ~/.claude/settings.json 的「送出訊息時」清單加一行(逾時設 8 秒,大於程式內的 5 秒)。

驗收條件:

工單會附「偏離紀錄」條款:遇到計畫外狀況→選保守做法→寫下來→繼續做;只有碰到不可逆動作才停下來問。

4. 風險與回退

風險怎麼防
你送出第一句話時變慢上限 5 秒、壞了就放行;實測每次約 1–3 秒,只發生在第一句
標準定歪,塞錯或該塞沒塞用幾百場歷史重播定標準(決策 2-A);每次都留紀錄可檢討
交棒場合第一句很籠統→什麼都沒塞這是刻意的:交棒檔已經帶著脈絡
改到全域設定檔動手前先跑 ~/Code/EverOS/safety/backup.sh pre-two-lanes

回退(兩步,1 分鐘):①把 settings.json 新加的那一行刪掉。②部署腳本每次都會自動留舊版備份(.bak-predeploy-*),把舊的 everos-session-start.py 複製回去。資料庫完全不動,沒有任何不可逆動作。