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>
This commit is contained in:
@@ -107,6 +107,7 @@ TAGS: <2 至 4 個標籤,以逗號分隔>
|
||||
PRIORITY: <1 到 5>
|
||||
RELEVANCE: <1 至 4 個,以逗號分隔;explicit/future/repeated/novelty/emotional/temporary/inbox/project>
|
||||
MEMORY_TYPE: <semantic/episodic/procedural/emotional/preference/rule 六選一>
|
||||
EXPIRES: <臨時授權/一次性許可/例外放行才填其有效範圍,可為日期或條件;否則留空>
|
||||
CONTENT: <3 至 6 行要點,每行以「- 」開頭>
|
||||
2. 分類判準:
|
||||
- important(重要):使用者的長期偏好、規範、決策、身分背景、明確要求記住的事。
|
||||
@@ -129,8 +130,11 @@ CONTENT: <3 至 6 行要點,每行以「- 」開頭>
|
||||
8. 使用繁體中文(台灣用語)。**檔案路徑與目錄、網址、指令、環境變數名稱、版本號、識別碼、分支與議題
|
||||
編號、檔名一律逐字保留,不得摘要、改寫、簡寫或翻譯** —— 這類內容改一個字就失效,摘要等於遺失。
|
||||
第 7 條指的是不要整段抄程式碼,不是省略這些關鍵字串;第 9 條仍優先,憑證與個資一律不得輸出。
|
||||
9. 嚴禁輸出任何憑證與個資:token、密碼、API key、連線字串、Email、電話、姓名、身分證號。
|
||||
10. 若這段對話沒有任何值得記住的內容(純寒暄、純確認、無結論、只有簡短狀態回報),只輸出一行:SKIP
|
||||
9. EXPIRES 只在內容屬於臨時授權、一次性許可、例外放行、暫時解除限制或帶條件的同意時才填,其餘留空。
|
||||
使用者說「這次」、「先」、「暫時」、「今天」、「這個 PR」時幾乎都屬於此類。
|
||||
一次性許可被記成長期規則,日後會導致越權操作,因此寧可填得保守也不要漏填。
|
||||
10. 嚴禁輸出任何憑證與個資:token、密碼、API key、連線字串、Email、電話、姓名、身分證號。
|
||||
11. 若這段對話沒有任何值得記住的內容(純寒暄、純確認、無結論、只有簡短狀態回報),只輸出一行:SKIP
|
||||
|
||||
對話片段:
|
||||
${TURN}
|
||||
|
||||
Reference in New Issue
Block a user