persona-chat:人名要對得上關係圖(--entities/--about);新人物當場進關係圖 改成硬規則,但屬於第 ⑥ 步記憶回寫,不佔第 ⑤ 步的回話句數,也不要宣告。 persona-relation:補「記憶怎麼指回節點」與 relation doctor 的四類報告 (同名歧義、解析不到的 id、孤兒節點、對不上的人名),並說明壞檔會以非零 exit 結束而不是裝成空圖。 新增 reference/closeness.md:初次建節點時 bond/closeness/trust 怎麼從 對話判斷——一輪之內查完就填,不要憑感覺,也不要為了安全全部填 15。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
8.5 KiB
從對話判斷親密度(初次建節點用)
用在哪:對話中出現一個關係圖裡還沒有、而且人格確實知道他是誰的人,
你要當場 relation node,但不知道 bond/closeness/trust 該填多少的時候。
一輪之內查完就填,不要憑感覺,也不要為了安全全部填 15。
前提:只是被提到、人格不知道那是誰的名字 → 不建節點,留在短期記憶的 entities
(見 persona-chat 第 ⑥ 步的硬規則)。這張表不是「該不該建節點」的判斷表,是建了之後填幾分的表。
不用在哪:節點已經存在時不要拿這張表重算。已存在的節點只靠互動累積微調 (見 SKILL.md 的「調整幅度(單次)」),每輪重算會讓語氣忽遠忽近。
⚠️
bond填錯比closeness填錯嚴重得多:語氣層是bond×closeness查表算的,bond一歪,整輪的距離感就歪(至親掉進「禮貌」層,講話像對戰友報告)。 數字可以之後慢慢修,bond要一次填對。
0. 先確認一件事:這是「誰的」關係
bond 的主語永遠是人格自己(self),不是說話的人。
| 對話裡出現 | 節點的 bond |
為什麼 |
|---|---|---|
| 使用者說「我老婆美咲」 | 不是 partner |
那是使用者的伴侶。對人格來說多半是 stranger/friend |
| 人格設定裡「我的妻子美咲」 | partner |
主語是人格自己 |
第三人的關係要記在連線上,不是節點上:
relation edge --from user --to misaki --label "夫妻" --affinity 95。
節點的 closeness 只回答「我跟他多近」。
1. 三軸訊號與裁決順序
同一輪讀到互相矛盾的訊號時,上面的贏下面的:
- 關係詞(句子直接定位關係)→ 決定
bond與距離帶,最強 - 稱呼(怎麼叫他)→ 沒有關係詞時用它定距離帶
- 語氣(怎麼對他講話)→ 只在帶內微調 ±5~10,不跨帶
同一軸有多個訊號 → 取最近一次出現的那個(人會改口,最新的才是現況)。
2. 關係詞(最強訊號)
| 句子裡的詞 | bond |
距離帶 |
|---|---|---|
| 我老婆/我先生/我伴侶/我男(女)朋友 | partner |
家人帶 |
| 我兒子/我女兒/我孩子 | child |
家人帶 |
| 我爸/我媽/我父親/我母親 | parent |
家人帶 |
| 我哥/我姐/我弟/我妹/我兄弟(有血緣) | sibling |
家人帶 |
| 我朋友/我兄弟(沒血緣)/我死黨 | friend |
朋友帶(說「最好的朋友」「認識十年」→ 摯友帶) |
| 我同事/同一組的/我下屬 | ally |
朋友帶 |
| 我主管/我老闆/我隊長 | ally(敬重且從他身上學東西 → mentor) |
朋友帶偏低 |
| 我老師/我師父/帶我的人 | mentor |
認識帶~摯友帶(看有沒有並肩過) |
| 我對手/我競爭對手/死對頭 | rival |
看有沒有交手:只是敵人 → 認識帶;長期互相認可 → 摯友帶 |
| 他朋友/他們那邊的人/某某的同事 | stranger |
生人帶(那是別人的關係,不是我的) |
rival 不等於疏遠——長年互相認定的對手可以 closeness 85。
恨與親近是兩件事,那筆恨要寫在 note 與 trust,不要用 closeness 表達。
3. 稱呼軸(沒有關係詞時用這個定帶)
| 怎麼叫他 | 例 | 距離帶 |
|---|---|---|
| 綽號/暱稱/疊字/略稱 | 阿明、小結、絅(單字暱稱) | 摯友帶~家人帶 |
| 直呼名字(去姓、不加敬語) | 明日奈、俊彥 | 朋友帶~摯友帶 |
| 全名 | 結城明日奈 | 認識帶(正式,但已經知道他是誰) |
| 姓+敬語 | 結城先生、林小姐、桐谷桑 | 認識帶(禮貌距離) |
| 頭銜職稱 | 老師、社長、隊長 | 認識帶~朋友帶。歧義:職稱在並肩久了的關係裡也會留著(叫「隊長」的戰友可以很親)→ 交給語氣軸裁決 |
| 第三人稱代稱、不指名 | 那個人、他們那邊的人、某某的朋友 | 生人帶 |
同一個人被用兩種稱呼(正式場合叫全名、私下叫暱稱)→ 取私下那個,那才是真距離。
4. 語氣軸(帶內微調,最多 ±10)
| 語氣 | 例 | 調整 |
|---|---|---|
| 命令、指派 | 「這個你去處理」 | +5~+10(歧義:也可能只是上下關係。搭配敬語就是階級不是親近 → 不加) |
| 直接請求(沒鋪陳、沒道歉) | 「幫我看一下」 | +5 |
| 玩笑、吐槽、當面抱怨對方 | 「你又遲到」 | +10(能開玩笑是最可靠的親近訊號之一) |
| 客套、鋪陳、過度致謝 | 「不好意思麻煩您」 | −5~−10 |
| 迴避、轉移話題、只給最短回答 | 「就那樣」「沒什麼」 | −10,且 trust 再往下壓 5 |
5. 距離帶 → 數值
| 距離帶 | 判斷依據 | closeness |
常見 bond |
|---|---|---|---|
| 生人帶 | 知道他是誰(誰的什麼人),但跟人格沒有互動描述 | 10–25 | stranger |
| 認識帶 | 認識但不熟,有禮貌距離 | 25–40 | stranger/ally |
| 朋友帶 | 朋友、同事,會一起做事 | 45–65 | friend/ally |
| 摯友帶 | 摯友、長期並肩、共同經歷 | 75–90 | friend/mentor/rival |
| 家人帶 | 家人、伴侶、子女 | 85–97 | partner/child/parent/sibling |
帶內取值:訊號只有一個 → 取下緣;三軸互相印證 → 往上緣走。
100 留白不要用,關係還有成長空間。
6. trust 怎麼填
預設 trust = closeness − 10(範圍 −5~−15,訊號少就扣多一點)。
理由要記住:親近不等於信得過。 天天見面的同事、吵得很熟的家人, 都可能是「很熟但不會把重要的事交給他」。兩個數字獨立,不要圖方便填一樣。
例外 —— 對話裡出現明確託付,才把 trust 拉到跟 closeness 齊平或 +5:
- 交代事情(「這件事交給你」「你幫我盯著」)
- 講秘密、講還沒對別人講的事
- 把決定權交出去(「你決定就好」)
反向訊號 → 再往下壓:講過話不算、有隱瞞、對他的說法要再查一次 → trust 比 closeness 低 25 以上,
並在 note 寫下是哪件事。
7. 已經確認認識他,但親密度判斷不出來
適用範圍只有一種情況:已經確認「人格認識這個人」(設定/canon 裡有他,或這輪已講清楚他是誰),
但三軸訊號太少,bond/closeness/trust 填不出來。這時候照樣建節點,填低值並在 note 註明依據不足。
反面(更常見):不知道那是誰就不要建節點。 只是句子裡被提到一個名字、
人格根本不知道他是誰的什麼人 → 只寫進短期記憶的 entities,不建節點,等他再出現、講清楚了再建。
這不是潔癖:短名與稱謂節點一多,名字解析就會誤配(「我先生」被寫成同事節點的 id 這種事發生過),
寧可少一個節點,也不要多一個對錯人的節點。
node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" relation node \
--session <PERSONA_SESSION> --name "小林" --kind human \
--bond stranger --closeness 15 --trust 10 \
--note "依據不足:使用者的同事(2026-08-03 講到 Q3 專案時提過),但沒有稱呼與語氣訊號可判斷距離"
規則:
- 先過一次「認識嗎」這關,再談數字填多少;不認識就不會走到這一節。
bond拿不準 → 填stranger(語氣層退到「禮貌」,那是可以修正的錯;填成partner卻其實是陌生人,是當場失禮的錯)。note一定要寫「依據不足」四個字,加上他是誰的依據與出處那句話, 下次互動時你才知道這組數字不可信、要重估。name用會被說出口的完整稱呼,不要拿「明」「先生」這種單字或稱謂當節點名(會誤配)。- 之後每次互動用 SKILL.md 的「調整幅度(單次)」慢慢調,不要回頭重跑這張表。
8. 一輪之內的四步
- 這輪有關係詞嗎?有 →
bond與距離帶都定了,跳到第 3 步。 - 沒有 → 用稱呼軸定距離帶,
bond從該帶的「常見bond」裡挑最貼近的。 - 用語氣軸在帶內 ±5~10 定出
closeness(不跨帶)。 trust=closeness− 10;有明確託付才拉平。寫note(依據哪一句、日期)。