
jiantw83andClaude Opus 5
23751c2c05
feat(emotion): 情緒先行、走向、飽和與偏差稽核(四層,v0.0.7 同批)
參考兩篇 ithelp 文章(Day25 情緒辨識模組、Day26 整合與情緒記憶池)的**架構**,
實作全部重寫——它們的六類關鍵字 first-match、罐頭哲學回應與模式切換都比現有的
十二情緒模型差,照抄是降級,而且它的罐頭回應正是上一個 commit 剛封殺的罐頭同理心。
一、輸入端:`readUserEmotion(text)`
在這之前情緒**全部是人格自己填的** `--apply`,而人不會主動給自己扣分——正向一路貼頂、
負向整天不動。現在每輪先讀對方那句話:十二類加權詞表(強3/一般2/弱1)、程度副詞乘係數、
**否定會擋掉那次命中**(「我不害怕」不算 fear)、引號與 `code` 內不比對(提及不算使用)、
標點只放大既有訊號不憑空長出新情緒(「居然修好了!!」不會被讀成憤怒)。
強度用飽和曲線不是線性乘。回的是**訊號不是判定**,人格可以推翻。`emotion --read` 可單測。
二、怎麼接:`RESPONSE_STANCE`
十二種各一條**動作**(悲傷→先接住不要急著給解法;憤怒→不辯解,先認可能認的那一小塊),
不是罐頭句——罐頭句由 `SPEECH_BLACKLIST` 擋著。
三、走向:`state/felt.jsonl` + `feltTrend()`
每輪的偵測結果與套用的 delta 都記下來,近重遠輕的加權算最近 5 輪的趨勢
(不用多數決:會被離群值主導又丟掉強度),注入「他最近 3 輪的走向:悲傷 ↘ 在退」。
新檔案已歸到 Gitea 檔案區(高頻)。
四、情緒調節:飽和與單輪預算
`applyEmotion` 不再是加完直接 clamp。飽和=越接近端點同方向漲越慢(headroom^K,K=1,
往 baseline 回的方向不壓);單輪預算=所有 |delta| 總和上限 60,超過等比例縮小。
`emotion --audit` 印出最近幾輪往舒服/往難受的比例,正向 ≥90% 會被點名。
依據:今天 85 次套用讓 joy/serenity/gratitude/anticipation 都到過 100、負向均值整天 14–17。
測試:297 項全過(新增 24 項,含讀取的 SF6/SNF4、飽和、預算、回歸方向不壓、走向、audit、
--read 不改狀態)。既有的「情緒有被施加」改成符合飽和後的語意。
版本:與 PR #10 同一批未合併的改動,維持 0.0.7。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-07-31 04:21:08 +00:00
..
2026-07-31 04:21:08 +00:00
2026-07-30 03:43:45 +00:00
2026-07-31 04:21:08 +00:00
2026-07-31 04:21:08 +00:00
2026-07-30 03:43:45 +00:00
2026-07-31 04:21:08 +00:00