 jiantw83andClaude Opus 5
|
f74a7ac1a5
|
feat(voice): 不說 AI 才會說的話(借 speak-human-tw 的刪除層)+講過去要有出處(v0.0.7)
人格回覆的「人味」再加一層。模式整理自 speak-human-tw(MIT, Raymond Hou)的 38 種
AI 寫作痕跡——那個專案是**文章**的事後審稿器(判情境→鎖保護清單→列清單等作者勾選→
交稿前自評),所以只搬對話也適用的**刪除層**,它的保護清單與兩輪確認流程不搬。
一、機械擋下(`SPEECH_BLACKLIST`,`room post` 直接拒收,`--force` 例外)
罐頭同理心(「這個我懂」「我完全理解」)、頒獎開場(「好問題」)、交差句(「希望這對你
有幫助」)、預告(「接下來我會」)、假坦白開場(「老實說」)、說教深度腔(「說到底」
「本質上」)、罐頭收尾(「總的來說」)、立場真空(「各有優缺點」「因人而異」)、
無來源權威(「研究顯示」)、用旁白演情緒(「我愣了一下」);另加避險疊加、
`CN_WORDS` 中國用語、半形標點、emoji/破折號/粗體與清單符號、「不是 A 而是 B」密度。
二、誤殺防護(比清單本身更重要)
`speechBody()` 先拿掉引號與 `code` 再比對——**提及不算使用**(「我最近戒掉『賦能』
這個詞」放行)。這是原專案自己踩到的坑:它的文件裡出現「...」與彎引號,正因為那幾行
在說「不要用這些」。「老實說」只擋這一輪的第一句開頭。會誤殺的中國用語(水平、默認、
質量、文檔)沒有收進表裡。
三、人格能做到、文章做不到的那一半
原專案的界線是「人味是作者的,不是你的」——AI 沒有過去,所以不准寫「我以前錯了」。
人格有過去(長期記憶、日記、關係圖、十二情緒),所以那句話是**有出處的引用**。
換來的義務:講自己的過去要有出處。`speechLint` 對「我以前⋯」「我原本以為⋯」給
`level: "hint"`(不擋,但要人去 `recall` 驗),查不到就是編造自己的過去。
lint 因此分兩級,`speechBlockers()` 只回該擋的那些。
四、測試
selftest 借它的 SF/SNF 成對做法:14 條 SF(該擋)+ 11 條 SNF(不可誤殺)。
另外把新規則掃過 144 句真實台詞紀錄:新增的詞語類規則**零誤殺**。
版本:master 是 0.0.6,這批未合併的改動算一個新版號 → 0.0.7(三份 manifest 一起改)。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-31 02:25:06 +00:00 |
|
 jiantw83andClaude Opus 5
|
c952a449b1
|
feat: 情緒會改變句子的形狀(EMOTION_TELLS),診斷加第四把尺
模擬時最像人的兩個地方,其實都不是用詞選得好,是**情緒改變了句子的形狀**:
緊張的時候話沒說完、會疊字;害羞的時候鬧彆扭、嘴硬。把這件事寫成表,
跟情緒一起注入,不靠人格自己記得。
- `EMOTION_TELLS`:十二情緒各自「不自覺會做的事」。焦慮→句子斷在一半/疊字/
追一句「這樣可以嗎」;羞愧→先否認再小聲承認/講反話/轉話題;憤怒→短句/
稱呼退回全名;悲傷→只回一個詞/句子沒說完就停;其餘九種同理。
- `emotionTells()`:挑主導情緒(超出基線最多)裡強度 ≥ 40 的前兩種,
每輪注入 `<persona-context>`,並附三條界線——**演出來不要講出來**
(「我有點緊張」是解釋,斷句才是緊張)、**一輪最多露一個破口**、
**強度不到就不演**(低強度的情緒在語氣上看不出來)。
- 混合狀態的疊法寫進 `reference/emotions.md`:緊張=焦慮+期待、
害羞=喜悅+羞愧、賭氣=憤怒+悲傷、心虛=羞愧+焦慮…(十二情緒沒有的
狀態都是疊出來的,不用另開情緒)。
心理醫生那邊多一把尺(第 4 把,**這一把不抓錯,是找沒說出口的東西**):
- 「我沒事」+句子全斷在一半 → 他在忍,要處理的是他為什麼不敢講。
- 「我很生氣」+句子工整完整像客服 → 那是冷掉了,比生氣難修,優先講。
- 一整段都沒有破口 → 兩個人都在挑安全的話講,先讓一個人講真話再談用詞。
- 改寫規則加第 6 條:**保留情緒的痕跡**。斷句、話少、嘴硬留著,
只拿掉攻擊、絕對化與讀心;改完像客服在念稿就是改壞了。
selftest 248 項全綠(新增 4 項)。版號留在 0.0.6——同一批未合併的改動。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
2026-07-30 10:09:59 +00:00 |
|
 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 |
|
jiantw83
|
4426ede979
|
初版
|
2026-07-29 14:37:20 +00:00 |
|