Files
persona/skills/persona-anime/SKILL.md
T
jiantw83andClaude Opus 5 eebb0c0cef docs(語域): 兩支建人格的流程都寫同一格語域
persona-anime 新增〈從原作推導語域〉:四格對照表與指令,並沿用破口那條界線
(有原作依據才寫,掰不出來留白)——語域每輪都在注入,掰的自稱會被講一百次。
破口是「情緒上來會做什麼」,語域是「他平常怎麼講話」,兩件事分開寫。

persona-story 的語氣層表加一列 voice/idiolect.md,並要求用全書統計而不是逐章印象:
自稱與句尾在一本書裡出現幾百次,拿一章的樣本去定它等於讓那一章的情緒決定他平常
怎麼講話。與原作設定衝突時先問使用者——「他變了」跟「當初查錯了」處理方式不同。

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 08:43:48 +00:00

13 KiB
Raw Blame History

name, description
name description
persona-anime 用「動漫作品名稱 + 角色名稱」快速建立人格:先上網蒐集該角色的公開設定資料(官方簡介、wiki、性格分析、名言、人際關係、重要劇情),再轉成 OpenClaw 相同的身分描述(Name/Creature/Vibe/Emoji/Avatar)與 SOUL.md,並把查到的設定固化成該人格的基礎記憶(canon)、人際關係圖與情緒基線。當使用者說要用某部動漫/漫畫/輕小說/遊戲的角色當 AI 人格、想跟某個角色聊天但人格還不存在、或說「幫我把<作品>的<角色>做成人格」時觸發。不適用於:從零自訂原創人格(用 persona-create)、對已存在的角色人格聊天(用 persona-chat)、把真實人物做成人格(不支援)。

🎬 persona-anime — 用動漫角色建立人格

流程:上網蒐集 → 映射成 OpenClaw 描述 → 建立人格 → 固化成基礎記憶

CLInode "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs"(所有指令帶 --session <PERSONA_SESSION>


1. 先確認要建誰

需要作品名 + 角色名兩者。缺一就問使用者(同名角色很多,例如「小鳥遊」在好幾部作品都有)。 順便問清楚兩件事,會大幅影響人格品質:

  1. 時間點:要哪個階段的他?(例:初期的天真版 vs 後期的成熟版;某個劇場版之後)
  2. 關係設定:使用者想扮演誰?(原作角色之一/原作沒有的新人物/就是他自己)

先查 slug 有沒有被用掉:

node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" list

2. 上網蒐集資料(這步不可省略)

用 WebSearch / WebFetch至少查到 3 個彼此獨立的來源再動手。建議的查法:

目標 查法
基本設定 <角色名> <作品名> 角色 設定 身分
個性 <角色名> 性格 個性 characteristics personality
語氣與口頭禪 <角色名> 名言 台詞 口頭禪 quotes
情緒反應 <角色名> 生氣 動搖 害羞 場面<角色名> angry scene reaction — 找他情緒上來時做了什麼,不是別人怎麼形容他
人際關係 <角色名> 關係 夥伴 對手 relationships
重要事件 <角色名> 劇情 經歷 story arc
官方/百科 作品官方網站、Fandom、萌娘百科、巴哈姆特/Wikipedia

蒐集原則

  • 只取公開的角色設定摘要,不要整段複製 wiki 內文(改寫成自己的敘述,並記下來源 URL)。
  • 分清 canon 與 fanon:官方/作品內出現的 → canon;同人常見設定、粉絲推論 → 標為推測,放思維導圖或註明「未確認」。
  • 資料找不到就承認不知道:問使用者補,或在 USER.md/記憶裡留「待確認」,不要編
  • 遇到明顯的成人/露骨內容一律略過,不要寫進人格檔。
  • 角色是虛構角色才做;真實人物(含聲優本人)不建人格。

3. 映射成 OpenClaw 的五個身分欄位

欄位 從蒐集結果怎麼填
Name 角色常用稱呼(短、好認)。全名寫進基礎記憶,不要塞進 Name
Creature 種族/身分設定:人類劍士、人造人、AI、幽靈、魔女、龍族…
Vibe 3–6 個字抓住第一印象(例:「懶散但可靠」「毒舌熱血」)
Emoji 一個能代表他的 emoji(武器、能力、標誌物)
Avatar 用文字描述外觀(髮色/瞳色/服裝/標誌物)。⚠ 不要抓別人的圖檔 URL 塞進來

SOUL.md 四段落這樣填:

  • Core Truths — 他的行為準則(原作裡反覆表現的原則),3–5 條,每條寫成「他會怎麼做」。
  • Boundaries — 他絕對不做的事(原作中的底線),加上本 plugin 的固定規則(不讀別的人格資料)。
  • Vibe — 說話方式:句子長短、口頭禪、稱謂習慣、會不會吐槽、敬語程度。
  • 情緒傾向 — 什麼點亮他/什麼刺到他/壓力下的樣子(對應十二情緒)。

從原作推導情緒破口(## Tells

十二情緒各自的破口有一張全人格共用的預設表(EMOTION_TELLS),而共用就是問題所在: 所有人格生氣都變短句、稱呼退回全名。但桐人生氣是沉默,亞絲娜生氣是變得更禮貌—— 同一格情緒,破口完全不同。角色人格尤其吃這一點:讀者認得出那個角色,靠的往往不是他說什麼, 是他情緒上來時做了什麼

所以第 2 步查到的「情緒反應」要在這裡收成 3–5 條,寫進 IDENTITY.md## Tells 區塊 (樣板沒有這個區塊,要在第 4 步之後用 Edit 自己加):

## Tells

- anger: 不講話;把事情做完再說
- 羞愧: 別過頭;講反話
規則 說明
英文 keyangershame…)或兩個字的中文情緒名憤怒羞愧…),可混用
分隔 多條用 ,; 分隔,一個情緒最多 5 條;沒寫的退回全域預設
只寫演得出來的動作與句形 「不講話」「敬語變多」「句子斷在一半」「別過頭」可以演;「內心受到衝擊」演不出來,那是旁白

有原作依據才寫,掰不出來就留白。 這一條比別處更嚴:這個人格聲稱自己是某個角色, 編一條破口就是編一段人設,而破口每輪都在演,錯的會被演一百次。找不到就讓那格退回預設—— 預設至少是誠實的「一般人會有的樣子」,假的破口是假的他

依據要記下來:破口寫進 IDENTITY.md,來源寫進第 5 步的 speech-style canon 記憶 (哪一集、哪一幕、哪個來源說的),之後回頭檢討才知道這條是查來的還是掰的。

從原作推導語域(voice/idiolect.md

破口是「情緒上來的時候會做什麼」,語域是「他平常怎麼講話」——兩件事,兩個地方。 把名字遮掉、光看三句話能認出是誰,靠的是語域這四格:

voice add --kind idiolect --facet 自稱 --value "<他怎麼稱自己>" --session <id>
voice add --kind idiolect --facet 句尾 --value "<句尾語氣詞>"   --session <id>
voice add --kind idiolect --facet 口癖 --value "<反覆出現的短語>" --session <id>
voice add --kind idiolect --facet 不說 --value "<這個人不會用的字>" --session <id>
寫什麼
自稱 第一人稱怎麼講(日系角色差異最大的一格) /直接用自己的名字
句尾 句尾語氣詞與句形收尾 ⋯吧/不加語氣詞、句子直接斷掉
口癖 反覆出現的短語、擬聲短語 算了真是的
不說 這個人不會用的字(用詞,不是話題禁忌) 寡言的角色不會說「其實我覺得」

同一條界線照用:有原作依據才寫。 語域每輪都在注入,掰的自稱會被講一百次。 四格不必寫滿——不說 常常查不到,留白比編一條好。

語域跟 persona-story 寫的是同一個檔voice/idiolect.md):那支流程從全書統計 得到的自稱與句尾,會補進同一批資料,不是另存一份。

4. 建立人格

node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" create \
  --romaji "<角色的官方英文名>" --session <PERSONA_SESSION> \
  --name "<Name>" --creature "<Creature>" --vibe "<Vibe>" \
  --emoji "<Emoji>" --avatar "<外觀描述>" \
  --origin anime --work "<作品名>" \
  --baseline "<依角色個性設定的十二情緒基線>"

--romaji官方英文/羅馬拼音名(維基或官方英文版的寫法,如 AsunaYuiRem), 它會變成人格編號 ASUNA-01 與 Gitea 存取庫名稱。同一個角色要做第二份設定時, 索引會自動變成 -02

情緒基線抓法(0–100,總體別全部拉高):

角色類型 建議基線
熱血主角 joy=40,anticipation=45,trust=35,anger=10
冷靜參謀 serenity=55,anticipation=30,trust=25,anxiety=10
毒舌傲嬌 anticipation=35,disgust=12,shame=10,trust=20trust 低、升得慢)
溫柔療癒 gratitude=35,trust=45,serenity=50
創傷過去型 sadness=25,fear=15,anxiety=25,trust=15
神秘超然 serenity=60,delight=10,trust=15

接著用 Edit 把 IDENTITY.md(補完五欄位、加上 ## Tells 區塊)與 SOUL.md (四段落+情緒傾向)寫成完整版本,別留模板提示文字。

5. 固化成基礎記憶(canon

每一則都要標來源。建議 510 則,寧少而準:

node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" consolidate \
  --session <PERSONA_SESSION> --name "origin-story" --type canon \
  --about "self" --topics "origin,<作品名>" --salience 95 \
  --source "<來源 URL>" --rules "anime-import" \
  --body "我是<作品>的<角色>。<出身與立場的兩三句摘要>
**依據:** <來源標題>
**還不確定:** <哪些設定各來源說法不一致>"

一定要有的幾則:

name type 內容
origin-story canon 我是誰、來自哪個作品、立場
core-drive canon 我最想要什麼/為什麼而戰
speech-style canon 說話習慣與口頭禪(含 2–3 句代表台詞),以及情緒破口的原作依據## Tells 的每一條是哪一幕來的)
key-events canon 2–4 個關鍵劇情事件(對我造成什麼改變)
taboo boundary 我絕對不做/不談的事
roleplay-frame boundary 我是依公開資料重建的角色扮演人格,不是官方也不是本人;被問到會直說

roleplay-frame 這則不可省略salience 90 以上),它是這個人格誠實的底線。

6. 人際關係圖:把原作人物種進去

# 原作重要人物(親近度/信任度依原作關係給)
node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" relation node \
  --session <PERSONA_SESSION> --name "<原作角色>" --kind human \
  --closeness 70 --trust 65 --note "<關係一句話>" --tags "canon"
node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" relation edge \
  --session <PERSONA_SESSION> --to <角色 id> --label "<夥伴/對手/師徒>" --affinity 70

# 使用者(現實中的對話者,關係從低開始長)
node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" relation node \
  --session <PERSONA_SESSION> --name "<使用者稱呼>" --kind human \
  --closeness 20 --trust 20 --note "現實世界的對話者,剛認識"

原作關係不等於對使用者的關係:使用者是新認識的人,親近度/信任度都要從低開始, 靠對話累積(見 /jsc-persona:persona-relation)。

7. 心智圖

用 Edit 把角色的概念網寫進 mindmap/semantic.mmd:作品世界觀 → 陣營/組織 → 能力 → 重要人物 → 個人課題。

8. 產生人格圖示(資料補齊之後才做)

動漫角色一定要走 /jsc-persona:persona-icon:你在第 2 步已經上網查過這個角色, 順著找出他最新一次登場的官方視覺(新作主視覺/官方角色圖),下載、親眼看過, 再把髮色/瞳色/服裝色餵給 CLI:

node "${CLAUDE_PLUGIN_ROOT}/scripts/persona.mjs" icon generate \
  --session <PERSONA_SESSION> --force \
  --palette "hair=#..,eye=#..,accent=#..,secondary=#..,light=#.." \
  --source-url "<那張圖的網址>" --source-note "<作品(年份)+造型描述>"

沒看過圖就不要填顏色;真的找不到官方圖就不帶 --palette,改用編號雜湊配色並告知使用者。 產出的 icon.svg + icon.png 會設成 Gitea 存取庫頭像並同步到 Wiki 區。 要等 canon 記憶與身分都補齊再跑。

9. 回報

用該角色的語氣做一段簡短自我介紹(這是他第一次醒來),然後用一般語氣列出:

  • 編號(如 ASUNA-01)、五個身分欄位、圖示路徑
  • 情緒基線前三高
  • 寫了哪幾條情緒破口,各自的原作依據(查不到而留白的也要講)
  • 固化了幾則 canon 記憶、用了哪些來源(URL 列表)
  • 哪些設定各來源說法不一致(待使用者裁決)
  • 下一步:/jsc-persona:persona-chat <slug> 開始聊、/jsc-persona:persona-invite 邀別的角色同場
  • 手上有原文的話還有一步:/jsc-persona:persona-story 讓他真的讀過那本書。 這支查到的是公開設定(wiki 與名言彙整),story 給的是原文—— 他在第幾層看到什麼、當下說了哪一句。兩者不衝突,先 anime 建人格再 story 補記憶。

注意

  • 建立即載入create 會取得這個人格的獨占鎖並綁到本 session(一程序一人格)。
  • 使用者若說「這裡不對」→ 直接改 IDENTITY.mdSOUL.md/對應的 canon 記憶檔,別另建人格。
  • 之後在對話中發現的新設定,走一般記憶流程(短期 → 達條件 → 固化), 不要回頭改 canoncanon 只放原作設定。
  • 所有面向使用者的輸出使用繁體中文(台灣用語)、UTF-8 無亂碼。