fix(role): 記錄器不再把其他角色的設定寫成自己的身分(0.1.1) #25

Merged
admin merged 2 commits from develop into master 2026-07-29 10:08:17 +00:00
Member

問題(實測案例)

使用者在角色 A 的工作階段中建立角色 B 並設定別名,Stop hook 卻把「使用者要求以 <B 的別名> 呼喚 A」寫成 A 的 priority: 5 身分指示,並標記「應在所有未來互動中遵守」。

A 的 identity.md 根本沒有該 aliases 欄位 —— 這是憑空產生的假「明確指示」,且實測 hits: 2(已被召回兩次)。

這個問題由角色自己在載入記憶時發現並查證,不是人工巡檢抓到的。

根因

capture 的 prompt 只說「你是角色 X 的記錄器」,沒有教它區分「本輪在談另一個角色的設定」與「本輪在談你自己」。加上原有第 5 條要求「使用者對角色互動方式的回饋要優先保存(priority 5)」,於是「幫 B 設定別名」被記成了 A 自己的身分指示。

做法

新增 5a 條,判準是看句子的主體是誰

「叫你小雨」和「幫小雨設定別名」完全不同 —— 後者你只是協助者。

這種情況記成 CATEGORY=dailyMEMORY_TYPE=episodic 的「協助建立/調整了角色 X」即可,不得寫成 priority: 5 身分指示,也不得把對方的別名、稱呼或關係定位寫成自己的。

附帶修正:版本號

上一個 commit 在 PR #24 合併之後才推上 develop,當時誤判 PR 仍為 open 而未升版,導致 master 與 develop 內容不同卻同為 0.1.0。各助理以版本判斷更新,同版號會抓不到這次修正 —— 因此本 PR 一併升版至 0.1.1

驗證

項目 結果
假記憶已歸檔清除 壓縮至 archive/forgotten/,未直接刪除
該角色記憶中不再有此假指示 grep 無命中
另一角色(第三個角色)記憶稽核 無反向污染
bash -n

🤖 Generated with Claude Code

## 問題(實測案例) 使用者在角色 A 的工作階段中建立角色 B 並設定別名,Stop hook 卻把「使用者要求以 <B 的別名> 呼喚 A」寫成 **A 的 `priority: 5` 身分指示**,並標記「應在所有未來互動中遵守」。 A 的 `identity.md` 根本沒有該 `aliases` 欄位 —— 這是**憑空產生的假「明確指示」**,且實測 `hits: 2`(已被召回兩次)。 這個問題由角色自己在載入記憶時發現並查證,不是人工巡檢抓到的。 ## 根因 `capture` 的 prompt 只說「你是角色 X 的記錄器」,沒有教它區分「本輪在談另一個角色的設定」與「本輪在談你自己」。加上原有第 5 條要求「使用者對角色互動方式的回饋要優先保存(priority 5)」,於是「幫 B 設定別名」被記成了 A 自己的身分指示。 ## 做法 新增 5a 條,判準是**看句子的主體是誰**: > 「叫你小雨」和「幫小雨設定別名」完全不同 —— 後者你只是協助者。 這種情況記成 `CATEGORY=daily`、`MEMORY_TYPE=episodic` 的「協助建立/調整了角色 X」即可,**不得**寫成 `priority: 5` 身分指示,也不得把對方的別名、稱呼或關係定位寫成自己的。 ## 附帶修正:版本號 上一個 commit 在 PR #24 合併**之後**才推上 develop,當時誤判 PR 仍為 open 而未升版,導致 master 與 develop 內容不同卻同為 `0.1.0`。各助理以版本判斷更新,同版號會抓不到這次修正 —— 因此本 PR 一併升版至 `0.1.1`。 ## 驗證 | 項目 | 結果 | |---|---| | 假記憶已歸檔清除 | ✅ 壓縮至 `archive/forgotten/`,未直接刪除 | | 該角色記憶中不再有此假指示 | ✅ grep 無命中 | | 另一角色(第三個角色)記憶稽核 | ✅ 無反向污染 | | `bash -n` | ✅ | 🤖 Generated with [Claude Code](https://claude.com/claude-code)
jiantw83 added 2 commits 2026-07-29 10:06:03 +00:00
實例:使用者在角色 A 的工作階段中建立角色 B 並設定別名,Stop hook 卻把
「使用者要求以 <B 的別名> 呼喚 A」寫成 A 的 priority 5 身分指示(實測已被召回 2 次)。
A 的 identity.md 根本沒有該 aliases 欄位 —— 這是憑空產生的假「明確指示」。

根因:capture prompt 只說「你是角色 X 的記錄器」,沒有教它區分
「本輪在談另一個角色的設定」與「本輪在談你自己」。

新增 5a 條:看句子主體是誰。「叫你小雨」和「幫小雨設定別名」不同,
後者只是協助者,應記成 daily/episodic 的協助紀錄,不得寫成 priority 5 身分指示,
也不得把對方的別名、稱呼或關係定位寫成自己的。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
前一個 commit(記錄器跨角色污染修正)在 PR #24 合併之後才推上 develop,
當時誤判 PR 仍為 open 而未升版,導致 master 與 develop 內容不同卻同為 0.1.0 ——
各助理以版本判斷更新,同版號會抓不到這次修正。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
admin approved these changes 2026-07-29 10:08:14 +00:00
admin merged commit fca908edfa into master 2026-07-29 10:08:17 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: plugins/shared#25