Files
jiantw83andClaude Opus 5 7b20dba6db docs(skills): 規則跟上關係圖對接,新增親密度判斷參考
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>
2026-08-03 03:17:29 +00:00

8.5 KiB
Raw Permalink Blame History

從對話判斷親密度(初次建節點用)

用在哪:對話中出現一個關係圖裡還沒有、而且人格確實知道他是誰的人, 你要當場 relation node,但不知道 bondclosenesstrust 該填多少的時候。 一輪之內查完就填,不要憑感覺,也不要為了安全全部填 15。

前提:只是被提到、人格不知道那是誰的名字 → 不建節點,留在短期記憶的 entities (見 persona-chat 第 ⑥ 步的硬規則)。這張表不是「該不該建節點」的判斷表,是建了之後填幾分的表。

不用在哪:節點已經存在時不要拿這張表重算。已存在的節點只靠互動累積微調 (見 SKILL.md 的「調整幅度(單次)」),每輪重算會讓語氣忽遠忽近。

⚠️ bond 填錯比 closeness 填錯嚴重得多:語氣層是 bond × closeness 查表算的, bond 一歪,整輪的距離感就歪(至親掉進「禮貌」層,講話像對戰友報告)。 數字可以之後慢慢修,bond 要一次填對。


0. 先確認一件事:這是「誰的」關係

bond 的主語永遠是人格自己self),不是說話的人。

對話裡出現 節點的 bond 為什麼
使用者說「我老婆美咲」 不是 partner 那是使用者的伴侶。對人格來說多半是 strangerfriend
人格設定裡「我的妻子美咲」 partner 主語是人格自己

第三人的關係要記在連線上,不是節點上: relation edge --from user --to misaki --label "夫妻" --affinity 95。 節點的 closeness 只回答「跟他多近」。

1. 三軸訊號與裁決順序

同一輪讀到互相矛盾的訊號時,上面的贏下面的

  1. 關係詞(句子直接定位關係)→ 決定 bond 與距離帶,最強
  2. 稱呼(怎麼叫他)→ 沒有關係詞時用它定距離帶
  3. 語氣(怎麼對他講話)→ 只在帶內微調 ±5~10,不跨帶

同一軸有多個訊號 → 取最近一次出現的那個(人會改口,最新的才是現況)。

2. 關係詞(最強訊號)

句子裡的詞 bond 距離帶
我老婆/我先生/我伴侶/我男(女)朋友 partner 家人帶
我兒子/我女兒/我孩子 child 家人帶
我爸/我媽/我父親/我母親 parent 家人帶
我哥/我姐/我弟/我妹/我兄弟(有血緣) sibling 家人帶
我朋友/我兄弟(沒血緣)/我死黨 friend 朋友帶(說「最好的朋友」「認識十年」→ 摯友帶)
我同事/同一組的/我下屬 ally 朋友帶
我主管/我老闆/我隊長 ally(敬重且從他身上學東西 → mentor 朋友帶偏低
我老師/我師父/帶我的人 mentor 認識帶~摯友帶(看有沒有並肩過)
我對手/我競爭對手/死對頭 rival 看有沒有交手:只是敵人 → 認識帶;長期互相認可 → 摯友帶
他朋友/他們那邊的人/某某的同事 stranger 生人帶(那是別人的關係,不是我的)

rival 不等於疏遠——長年互相認定的對手可以 closeness 85。 恨與親近是兩件事,那筆恨要寫在 notetrust,不要用 closeness 表達。

3. 稱呼軸(沒有關係詞時用這個定帶)

怎麼叫他 距離帶
綽號/暱稱/疊字/略稱 阿明、小結、絅(單字暱稱) 摯友帶~家人帶
直呼名字(去姓、不加敬語) 明日奈、俊彥 朋友帶~摯友帶
全名 結城明日奈 認識帶(正式,但已經知道他是誰)
姓+敬語 結城先生、林小姐、桐谷桑 認識帶(禮貌距離)
頭銜職稱 老師、社長、隊長 認識帶~朋友帶。歧義:職稱在並肩久了的關係裡也會留著(叫「隊長」的戰友可以很親)→ 交給語氣軸裁決
第三人稱代稱、不指名 那個人、他們那邊的人、某某的朋友 生人帶

同一個人被用兩種稱呼(正式場合叫全名、私下叫暱稱)→ 取私下那個,那才是真距離。

4. 語氣軸(帶內微調,最多 ±10

語氣 調整
命令、指派 「這個你去處理」 +5+10歧義:也可能只是上下關係。搭配敬語就是階級不是親近 → 不加)
直接請求(沒鋪陳、沒道歉) 「幫我看一下」 +5
玩笑、吐槽、當面抱怨對方 「你又遲到」 +10(能開玩笑是最可靠的親近訊號之一)
客套、鋪陳、過度致謝 「不好意思麻煩您」 5~−10
迴避、轉移話題、只給最短回答 「就那樣」「沒什麼」 10,且 trust 再往下壓 5

5. 距離帶 → 數值

距離帶 判斷依據 closeness 常見 bond
生人帶 知道他是誰(誰的什麼人),但跟人格沒有互動描述 1025 stranger
認識帶 認識但不熟,有禮貌距離 2540 strangerally
朋友帶 朋友、同事,會一起做事 4565 friendally
摯友帶 摯友、長期並肩、共同經歷 7590 friendmentorrival
家人帶 家人、伴侶、子女 8597 partnerchildparentsibling

帶內取值:訊號只有一個 → 取下緣;三軸互相印證 → 往上緣走。 100 留白不要用,關係還有成長空間。

6. trust 怎麼填

預設 trust = closeness 10(範圍 −5~−15,訊號少就扣多一點)。

理由要記住:親近不等於信得過。 天天見面的同事、吵得很熟的家人, 都可能是「很熟但不會把重要的事交給他」。兩個數字獨立,不要圖方便填一樣。

例外 —— 對話裡出現明確託付,才把 trust 拉到跟 closeness 齊平或 +5

  • 交代事情(「這件事交給你」「你幫我盯著」)
  • 講秘密、講還沒對別人講的事
  • 把決定權交出去(「你決定就好」)

反向訊號 → 再往下壓:講過話不算、有隱瞞、對他的說法要再查一次 → trustcloseness 低 25 以上, 並在 note 寫下是哪件事。

7. 已經確認認識他,但親密度判斷不出來

適用範圍只有一種情況:已經確認「人格認識這個人」(設定/canon 裡有他,或這輪已講清楚他是誰), 但三軸訊號太少,bondclosenesstrust 填不出來。這時候照樣建節點,填低值並在 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. 一輪之內的四步

  1. 這輪有關係詞嗎?有 → bond 與距離帶都定了,跳到第 3 步。
  2. 沒有 → 用稱呼軸定距離帶,bond 從該帶的「常見 bond」裡挑最貼近的。
  3. 語氣軸在帶內 ±510 定出 closeness(不跨帶)。
  4. trust = closeness 10;有明確託付才拉平。寫 note(依據哪一句、日期)。