Files
shared/scripts
JefferyandClaude Opus 5 a30fccc627 feat(role): 召回統計、整理摘要歷史、臨時授權到期;還原誤刪的共用行為文件
依 OpenClaw 記憶架構的參考逐項評估後,採納三項並補上一個誤刪。

一、recall 命中時記錄召回(原本完全沒有)
實測 recall 寫回動作數為 0、hits 分布幾乎都是初始值,導致常被查詢的記憶與
從未用過的在遺忘判斷時待遇相同。
- 新增 touchMemory():只對實際輸出的前 N 則 hits +1 並更新 last_replayed

二、整理摘要保留歷史(對應 OpenClaw 的 DREAMS.md)
state.json 的 last_sleep_digest 是單一欄位,每次整理直接覆寫,歷史過程全部遺失。
- 新增 DIGESTS.md:追加時間、摘要與套用結果,最新在上,保留最近 100 次,不注入 context

三、臨時授權會過期(對應 OpenClaw 的操作敏感型邊界)
原本沒有到期概念,使用者的一次性授權可能被整理成長期規則而導致日後越權。
- 記憶格式新增 expires;支援日期(自動判斷)與條件文字(標示由角色判斷)
- 過期者不注入(分類與 inbox 兩處皆排除),memoryHint 標示有效範圍
- forget 優先淘汰過期項且不受分類限制
- 整理與濃縮提示詞都要求臨時授權必填,並列出「這次/先/暫時/今天」等判斷提示
- 修掉兩個會讓功能等於零的漏洞:FIELD_PATTERN 白名單沒有 EXPIRES(該行被當成
  CONTENT 吃掉)、cmdWrite 的 meta 未帶 expires 與 cues

四、還原前次誤刪的共用行為文件(重要)
上一個 commit 替換「角色檔標準格式」章節時,以「找開頭到下一個標記」整段取代,
未檢查被切掉的範圍內容,連帶刪掉了 JSC-ROLE-COMMON 共用行為區塊共 87 行 47 條規則,
以及記憶章節的技能再現與關係狀態說明。
實際行為未受影響(規則真正生效處是 role_load.sh,完好無損),但 SKILL.md 是那些
規則的唯一文件來源,刪掉等於文件遺失。已自 git 完整還原並補上本次三項說明。
教訓:整段替換文件前必須先確認被切掉的範圍內有什麼。

未採納並記錄理由:向量/語意搜尋(需外部 embedding API,違反零依賴原則)、
外掛槽位(過度設計)、每日筆記日期檔(近期對話交接已用逐字對話解決且保真度更高)。
SQLite 索引記錄為未來觸發點:實測 45 則記憶 recall 耗時 196ms,訂在超過 300 則
或 500ms 再導入,在那之前屬過早優化。

版號沿用 0.0.5(master 為 0.0.4,同一 PR 不再累加)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-29 11:50:35 +08:00
..