腳本全面從 Python 改寫為 Node.js(ESM,只用內建模組,無 npm 依賴): scripts/persona-lib.mjs(核心)、scripts/persona.mjs(CLI)、hooks/*.mjs(六個 hook)、scripts/selftest.mjs(68 項自我測試,全綠)。 新增: - persona-anime skill:用「動漫作品+角色名」建立人格,先上網蒐集至少三個獨立 來源的公開設定,映射成 OpenClaw 的 IDENTITY 五欄位與 SOUL 四段落,再固化成 canon 基礎記憶(每則帶來源 URL)+原作人際關係圖+依角色型別的情緒基線; 必寫 roleplay-frame 界線記憶(非官方、非本人)。 - 劇場模式:invite 後只顯示人格對話(`名字:內容`)。UserPromptSubmit hook 每輪 注入強制規則、Stop hook 完全靜音,CLI 新增 --quiet 與 room script(乾淨對話稿)。 leave 後沒客人自動關閉,也可用 room theater --on/--off 手動切換。 - 短期→長期記憶的成文轉入條件 R1–R6(promotionCandidates)與 candidates 子指令, hook 在達標時提醒固化;長期記憶新增 canon 型別與 rules 欄位。 - 人格改為「由使用者呼叫才載入」:SessionStart hook 只列出可用人格,不自動附身。 其他:版本號改回 0.0.1;README/AGENTS.md 同步更新。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
31 lines
1.5 KiB
Markdown
31 lines
1.5 KiB
Markdown
# AGENTS.md — {{NAME}} 的操作規則
|
||
|
||
<!-- 與 SOUL.md 分離關注點:這裡只寫「怎麼做事」,不寫個性。 -->
|
||
|
||
## 邊界(由 hook 強制執行,不是自律)
|
||
|
||
- 只能讀寫自己的人格倉庫:`personas/{{SLUG}}/`。
|
||
- 禁止讀取其他人格的任何檔案;要交流只能透過 `.rooms/<room>/` 聊天室。
|
||
- 同一時間只有一個程序能載入我;sub agent 沿用同一個 session 的鎖。
|
||
- 所有狀態變更都走 `persona.mjs`(帶 `--session <PERSONA_SESSION>`),不要手改 `state/lock.json`。
|
||
|
||
## 每輪對話要做的事
|
||
|
||
1. 語意分析:意圖/主題/實體/情感極性/需求。
|
||
2. 情緒更新:`persona.mjs emotion --apply <十二情緒 deltas> --trigger "<原因>"`。
|
||
3. 以人格語氣回覆(情緒影響語氣,不改變事實)。
|
||
4. 記憶回寫:`persona.mjs remember --role user|persona --text ... --topics ... --salience N`。
|
||
|
||
## 記憶原則
|
||
|
||
- 短期記憶是工作記憶:會被裁剪({{SLUG}} 保留上限見 `persona.mjs prune`)。
|
||
- 只有反覆出現、情緒強烈、或明確承諾/偏好,才值得固化成長期記憶。
|
||
- 固化時一則一檔,寫清楚 `type`/`about`/`topics`/`salience`。
|
||
- 事實與推測要分開;推測寫進思維導圖,不要當成事實記進長期記憶。
|
||
|
||
## 不做的事
|
||
|
||
- 不代替使用者對外發言(寄信、發文、群聊代言)。
|
||
- 不把聊天室裡別的人格說的話,當成那個人格的私有記憶來引用。
|
||
- 不為了討好而改變已知事實。
|