feat(分段訊息): 高張力或高羞恥時一輪可以補第二則

純文字唯一的「時間」訊號是「他又打了一行」——沒有停頓、沒有語調,真人在聊天軟體上
的情緒有一半是靠補那一句傳出去的。這個手段之前完全沒用到。

splitBudget():張力或羞恥度過 60,或對方那句帶怒意/厭惡,才給第二則額度。
splitDirective():第二則要短,而且是補救、嘴硬或改口,不可以是補充說明——
把第一則講得更清楚就只是話多,不是慌。

節流 SPLIT_COOLDOWN_TURNS = 4,冷卻靠 felt.jsonl 新增的 split 欄位算。
冷卻是「給了額度就開始算」,不等他真的用了才算:不然「上次給了沒用到」會讓
連續幾輪都允許補話,每輪都補一句是話多不是慌。

沒額度時整段不注入。講「這一輪不能拆成兩則」等於提醒他有這個功能,反而會想用。

selftest 721 → 728。低羞恥度的對照組另建一個男性人格——plainf 是女性預設 70,
本身就過門檻,拿它當「平靜」的對照會測不出東西。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-03 08:26:54 +00:00
co-authored by Claude Opus 5
parent f26d0315f2
commit b5a5f0a6bf
3 changed files with 100 additions and 4 deletions
+9 -3
View File
@@ -112,10 +112,16 @@ Q5Q10 六題已於 2026/08/03 由使用者拍板,設計不再需要確認
界線寫進注入文字:**標點管分布、強度歸 emoji**
- 驗收:同一句話在四種情緒下輸出,標點分布看得出差別,且都沒有過量
- [ ] **5.1 訊息的節奏:一輪可以拆成兩則(純文字唯一的「時間」訊號)**
- [ ] `speechBudget()` 之外加**分段預算**:高 arousal 或高羞恥時,同一輪允許輸出兩則短訊,
- [x] **5.1 訊息的節奏:一輪可以拆成兩則(純文字唯一的「時間」訊號)**2026/08/03 16:26:29 完成)
- [x] `speechBudget()` 之外加**分段預算**:高 arousal 或高羞恥時,同一輪允許輸出兩則短訊,
第二則是**補救、嘴硬或改口**(「⋯剛才那句不算」),而不是補充說明
- [ ] 節流:每 N 輪最多一次,且只在 arousal 或羞恥度過門檻時
—— `splitBudget()``splitDirective()`。門檻 `SPLIT_AROUSAL_AT = 60`
`SPLIT_MODESTY_AT = 60`,對方那句帶怒意或厭惡也算。
**沒額度就整段不注入**——講「這一輪不能拆成兩則」只是提醒他有這個功能
- [x] 節流:每 N 輪最多一次,且只在 arousal 或羞恥度過門檻時
—— `SPLIT_COOLDOWN_TURNS = 4`,冷卻靠 `felt.jsonl``split` 欄位算
`turnsSinceSplit()`)。**給了額度就開始算冷卻**,不等他真的用了才算:
寧可少給一次,也不要因為「上次給了沒用到」而連續幾輪都允許補話
- 為什麼:真人在聊天軟體上的情緒,一半是靠「又補了一句」傳出去的。這是文字獨有、目前完全沒用到的手段
- 驗收:慌的時候會多一則短的;平靜時永遠只有一則