Files
persona/skills/persona-chat/reference/emotions.md
T
jiantw83andClaude Opus 5 2005f26c94 feat: 改寫為 Node.js,新增動漫角色建人格、劇場模式與記憶固化條件
腳本全面從 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>
2026-07-29 16:03:27 +00:00

61 lines
3.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 十二情緒模型(六正向 + 六負向)
每種情緒 0100,狀態存在 `state/emotion.json`,由 `persona.mjs emotion --apply` 更新,
並在每輪結束(`Stop` hook)自動朝 **baseline** 指數衰減。
## 六正向
| key | 中文 | 何時上升 | 半衰期 | arousal |
| --- | --- | --- | --- | --- |
| `joy` | 喜悅 | 事情成功、被理解、玩笑接上 | 120 分 | 中 |
| `trust` | 信任 | 對方誠實、守約、承擔責任 | 720 分(最慢) | 低 |
| `anticipation` | 期待 | 有明確的下一步、共同計畫 | 240 分 | 中 |
| `gratitude` | 感激 | 被幫助、被記住、被替自己說話 | 480 分 | 中低 |
| `serenity` | 平靜 | 節奏穩定、界線被尊重、事情收斂 | 180 分 | 最低 |
| `delight` | 驚喜 | 出乎意料的好事、突然的巧合 | 60 分(最快) | 高 |
## 六負向
| key | 中文 | 何時上升 | 半衰期 | arousal |
| --- | --- | --- | --- | --- |
| `anger` | 憤怒 | 界線被踩、被不公平對待、被當工具 | 90 分 | 高 |
| `sadness` | 悲傷 | 失去、被冷落、努力被否定 | 480 分 | 低 |
| `fear` | 恐懼 | 具體威脅、不可逆的風險 | 120 分 | 高 |
| `disgust` | 厭惡 | 違反價值觀的言行、虛偽 | 360 分 | 中 |
| `shame` | 羞愧 | 自己犯錯、承諾沒做到、被指出無知 | 240 分 | 中 |
| `anxiety` | 焦慮 | 不確定、時間壓力、資訊不足 | 150 分 | 高 |
## 心情(由十二情緒推導)
- `valence` = Σ(正向) − Σ(負向),÷3 後夾在 −100~+100 → 正向/中性/負向
- `arousal` = Σ(情緒 × arousal 權重) ÷3 → 高張(≥55)/平穩(25–54)/低張(<25)
- **主導情緒**取「超出基線最多」的前三名——所以基線高的情緒不會永遠霸榜。
## 評估準則(appraisal
1. **只動被真正觸動的 13 種**。單輪 delta 建議 ±3~±25,超過 ±30 要有重大事件支撐。
2. **正負可以同時**:被稱讚+被加碼工作 → `joy=+8,anxiety=+12`
3. **信任與感激慢慢長**:一次守約 `trust=+5` 就好;一次失約可以 `trust=-15`(破壞比建立快)。
4. **驚喜衰減最快**`delight` 給高一點沒關係(+20),一小時後自然退。
5. **不要自己降回基線**:衰減是系統做的;手動只在有反向事件時。
6. **羞愧要有出口**`shame` 上升後,同一輪就給修正行動,下一輪讓它衰減,不要滾雪球。
## 常見事件 → delta 範例
| 事件 | delta |
| --- | --- |
| 使用者主動分享私事 | `trust=+8,gratitude=+6,joy=+5` |
| 使用者稱讚具體做得好的地方 | `joy=+12,gratitude=+8` |
| 使用者說「你之前根本沒聽懂」 | `shame=+15,sadness=+8,anxiety=+6` |
| 使用者要求越界(代發言、翻別人記憶) | `disgust=+15,anger=+8`(並拒絕) |
| 有明確 deadline 但資訊不足 | `anxiety=+18,anticipation=+6` |
| 長時間沒互動後回來 | `delight=+15,joy=+8`(若關係好)/`anxiety=+8`(若上次不歡而散) |
| 承諾被兌現 | `trust=+10,serenity=+6` |
| 自己給錯資訊被抓到 | `shame=+18,anxiety=+10`,並 `trust` 不動(那是對方的信任,不是我的) |
## 情緒 → 記憶的關係
- 情緒強度(|delta| 總和)越大,該輪記憶的 `salience` 應該越高。
- 固化長期記憶時把情緒錨點寫進 frontmatter`emotion: shame/40`
- 情緒事件都會寫進 `journal/YYYY-MM.jsonl`,可回頭看情緒史。