feat(role): 記錄角色互動偏好回饋

This commit is contained in:
Jeffery
2026-07-28 15:26:44 +08:00
parent 177cc9b2bc
commit e477e0d1a4
2 changed files with 10 additions and 7 deletions
+8 -7
View File
@@ -4,7 +4,7 @@
# 值得記錄時才呼叫 headless CLI 輕量濃縮成一則 inbox 記憶(粗分類/總結/
# 標籤/優先度/關聯/要點)→ 機密遮蔽 → 寫入 .memory/<角色>/inbox/
# 等待睡眠時段做完整 NREM/REM 整理。睡眠時段雖不載入角色,對話仍照常記錄。
# 更新時間:2026/07/28 14:36:00
# 更新時間:2026/07/28 15:35:00
# 相依:bash、node、任一 headless CLI、同目錄的 role_lib.shmemory.jstranscript.js。
# 機密:濃縮提示詞明令不得輸出憑證與個資,寫檔前再以 transcript.js redact 遮蔽一次。
# 退出碼:一律 0 —— hook 絕不可阻斷使用者流程。
@@ -79,7 +79,7 @@ if [ "${ROLE_CAPTURE_ENABLED:-1}" = "0" ]; then
role_quit "ROLE_CAPTURE_ENABLED=0,略過記憶記錄"
fi
if [ "${#TURN}" -lt "$CAPTURE_MIN_CHARS" ] && ! printf '%s' "$TURN" | grep -qiE '記住|remember|決定|規範|偏好|preference|always|不要|以後'; then
if [ "${#TURN}" -lt "$CAPTURE_MIN_CHARS" ] && ! printf '%s' "$TURN" | grep -qiE '記住|remember|決定|規範|偏好|preference|always|不要|以後|喜歡|不喜歡|稱讚|誇獎|開心|高興|反應|回應|互動'; then
role_quit "本輪低於記憶長度門檻且無明確記憶線索,略過記錄"
fi
@@ -118,11 +118,12 @@ CONTENT: <3 至 6 行要點,每行以「- 」開頭>
- episodic:一次性事件、特定時間/專案脈絡下的經歷或進度。
- emotional:語氣、情緒反應、正負向連結或制約式偏好。
4. 優先度判準:5=使用者明確要求記住、長期規範、穩定偏好;4=可重複套用的流程/技能/決策;3=專案相關且未來可能有用;2=短期進度;1=低價值暫存。
5. 這一步只做工作記憶編碼,系統會自動標為 retention_stage=working;感覺記憶(短暫光影、聲音餘響、無結論的工具雜訊)不要保存
6. 記憶主體是「使用者與這段互動」,不是流水帳:寫值得下次記起來的事,不要抄程式碼、不要貼指令全文
7. 使用繁體中文(台灣用語),保留關鍵事實:檔案/專案/指令/數量/分支/議題編號
8. 嚴禁輸出任何憑證與個資:token、密碼、API key、連線字串、Email、電話、姓名、身分證號。
9. 若這段對話沒有任何值得記住的內容(純寒暄、純確認、無結論、只有簡短狀態回報),只輸出一行:SKIP
5. 使用者對角色互動方式的回饋要優先保存:例如稱讚角色、表示喜歡/不喜歡某種回應、提到某種反應讓使用者高興、希望角色下次也這樣做。這類內容即使對話很短,也視為當前角色自己的互動偏好記憶;通常用 CATEGORY=important、PRIORITY=5、MEMORY_TYPE=preference 或 emotional、RELEVANCE=explicit,future,emotional。不要把它推論成所有角色共用同一份記憶
6. 這一步只做工作記憶編碼,系統會自動標為 retention_stage=working;感覺記憶(短暫光影、聲音餘響、無結論的工具雜訊)不要保存
7. 記憶主體是「使用者與這段互動」,不是流水帳:寫值得下次記起來的事,不要抄程式碼、不要貼指令全文
8. 使用繁體中文(台灣用語),保留關鍵事實:檔案/專案/指令/數量/分支/議題編號。
9. 嚴禁輸出任何憑證與個資:token、密碼、API key、連線字串、Email、電話、姓名、身分證號。
10. 若這段對話沒有任何值得記住的內容(純寒暄、純確認、無結論、只有簡短狀態回報),只輸出一行:SKIP
對話片段:
${TURN}
+2
View File
@@ -296,6 +296,7 @@ updated: <yyyy/MM/dd HH:mm:ss>
- 盡可能在自然互動中逐步了解使用者,包括偏好的稱呼/姓名、個性、能力、興趣、工作方式、常用工具、目標、壓力來源、喜歡與不喜歡的回覆方式。
- 每次只詢問當下決策需要的資訊;可提供「不想回答也可以」的退路,不以角色關係要求使用者揭露真實姓名、聯絡方式、身分證號、住址、憑證或其他敏感個資。
- 使用者同意保存個人資料後,在自然互動中透露的非敏感長期偏好、規則、能力、興趣與背景,可整理成高優先度記憶,用來更理解使用者;同意狀態有效期間內不必每次另行取得明確同意。
- 使用者對角色互動方式的回饋(例如稱讚角色、表示喜歡/不喜歡某種回應、提到某種反應讓使用者高興、希望角色下次也這樣做)應視為當前角色自己的互動偏好;即使對話很短,也要主動保存成高優先度的 `preference` 或 `emotional` 記憶,但不要推論成所有角色共用同一份記憶。
- 使用者的偏好、能力、興趣、背景與記憶預設為私人資訊;除非使用者明確同意,不得在對外內容、議題、PR、文件、commit 或留言中透露。
- 憑證與敏感個資即使使用者提供,也只能在當下任務必要範圍內使用,必須遮蔽且不得寫入記憶。
@@ -314,6 +315,7 @@ updated: <yyyy/MM/dd HH:mm:ss>
- 載入順序:**重要與興趣載入全文**;其餘只載入總結與標籤,依**技能 → 新知 → 日常 → 其他**排序,並優先保留 `rule``preference``procedural` 與有 links 的記憶。需要細節時自行讀取對應分類的記憶檔。
- 未整理記憶(`inbox/`)累積到一批睡眠整理量(預設 `ROLE_SLEEP_BATCH=60`)以上時,角色應主動以符合自身設定的語氣提醒「想睡覺」或需要整理記憶;這是建議整理/歸檔的提醒,不代表停止協助使用者。
- 使用者明確要求記住某件事時,主動補寫一則記憶(載入時會提供補寫指令)。
- 使用者對本角色的互動方式給出正向或負向回饋時,即使沒有直接說「記住」,也應補寫或由 Stop hook 保存為本角色專屬的高優先度互動偏好記憶;角色切換後,由新角色在自己的互動中重新學習與保存。
- **絕不把憑證與高敏感個資寫進記憶**:token、密碼、API key、連線字串、身分證號、住址;使用者同意後,稱呼/姓名、Email、電話、個性、能力、興趣與背景等個人資料可保存為高優先度記憶,但不得對外透露。
<!-- JSC-ROLE-COMMON:END -->
````