酒館世界書教程:匯入、觸發、排查與角色卡獲取(tuniang reviews)
酒館世界書教程:匯入、觸發、排查與角色卡獲取(tuniang reviews)
Contents
酒館世界書教程的關鍵是:先分清卡內嵌世界書與獨立 JSON,再分別匯入角色卡、世界書和預設;條目重點核對主鍵、次級鍵、觸發策略、order 與 token 預算,最後用聊天實測觸發。
簡介
這篇教程面向剛接觸酒館(SillyTavern)世界書的使用者,教你從檔案識別、匯入、條目配置到觸發排查,完成一本可用的世界書;也適合已有角色卡但觸發總不穩定的人。
前置準備
- 一個能正常對話的 SillyTavern 前端,並已接好模型 API;部署與 API 連線請另看對應教程。本文綜合的資料覆蓋 SillyTavern 1.12.x 至 1.18.0 的部分機制,按鈕和欄位可能隨版本變化。
- 角色卡檔案:PNG 或 JSON;世界書:獨立 JSON 或角色卡內嵌
character_book;預設:JSON。不要假設所有 JSON 都是同一種檔案。 - 一個文本編輯器或 JSON 檢視器,方便檢查
key、keysecondary、selective、position等欄位。 - 可選:Python 3。
feverZHONG/liya-sillytavern-worldbook的 CLI 為純 Python 標準庫;安裝tiktoken後可用同口徑統計 token。 - 可選:中文社群賬號。類腦等 SillyTavern Discord 常有教程和角色卡,但需遵守社群規則;先讀教程再提問。
- 若使用 DSH 等第三方酒館管理工具,入口不同:其教程對應倉庫已於 2026-08-27 歸檔,通常在“設定→酒館管理”拖入角色卡或世界書 JSON,它的“全文注入/關鍵詞觸發”屬於工具層封裝,不要與 ST 原生世界書欄位混用。
分步教程
以下以原版 SillyTavern 為主線;DSH 等工具只作為旁註。
步驟 1:先分清檔案型別(為什麼 JSON 不能亂拖?)
JSON 可能是預設、世界書或角色卡;PNG 只有原始檔案才可能是角色卡。匯入前先看作者說明和檔名,別把預設當世界書拖入。匯入報錯時,先確認檔案型別,再確認圖片是否為原始 PNG。
步驟 2:匯入角色卡
在原版 ST 中,角色卡走角色管理/角色卡匯入入口。PNG 角色卡是把角色資料附加在圖片中,匯入時酒館會分離圖片與卡資料;JSON 角色卡直接匯入。不少新卡會自帶世界書,匯入後先檢查是否已出現關聯世界書;舊卡或未內建的書再單獨匯入。作者說明要求裝外掛時,先裝外掛再測。
步驟 3:匯入或新建世界書
獨立世界書走世界書模組匯入;沒有現成檔案時,在世界書模組新建,再新增條目。條目內容會自動儲存,關鍵詞通常用半形英文逗號分隔。世界書作用域包括全域性、角色、聊天(v1.17.0+)和 Persona(v1.17.0+);共用書和單聊天書不要混用。
若用 DSH 等工具,世界書 JSON 可在酒館管理裡拖入,條目會分組顯示,並可選關鍵詞觸發模式;這是工具層功能,不是原版 ST 欄位。
步驟 4:卡內嵌書和獨立 JSON 怎麼選?
卡內嵌書隨角色卡走,適合只服務這一張卡;獨立 .json 適合多卡共用、按角色分流。按原始碼實證資料,多卡共用和按角色分流只有獨立書做得到。若要把獨立書關聯到卡,欄位應放在 data.extensions.world,寫在頂層不生效。
| 對比項 | 卡內嵌世界書(character_book) | 獨立 JSON 世界書 |
|---|---|---|
| 存放位置 | 角色卡資料內 | 單獨 .json 檔案 |
| 適合場景 | 單卡專用設定 | 多卡共用世界、按角色分流 |
| 匯入方式 | 隨角色卡匯入,先檢查是否已帶書 | 在世界書模組單獨匯入 |
| 共用能力 | 通常隨卡使用 | 可多卡共用 |
| 注意點 | 資料稱卡內 characterFilter 在 ST 1.18.0 不被讀取,需按版本實測 | 關聯到卡時注意 data.extensions.world 欄位位置 |
步驟 5:條目欄位怎麼填?
最少關注 key 和 content;需要條件觸發時再加 keysecondary、selective 和 selectiveLogic。
| 欄位/設定 | 作用 | 注意點 |
|---|---|---|
key | 主關鍵詞,逗號分隔 | 避免“老師”“過去”“決定”等通用詞;角色名與使用者名稱預設參與掃描,容易誤觸發 |
keysecondary + selective | 次級關鍵詞門檻 | 只填次級鍵但不開 selective,次級鍵會被忽略;開啟後預設 AND_ANY,即主鍵命中且至少一個次級鍵命中 |
selectiveLogic | 次級邏輯:0=AND_ANY,1=NOT_ALL,2=NOT_ANY,3=AND_ALL | 主鍵命中是所有模式的必要前提;次級鍵為空時該邏輯無效 |
content | 注入內容,支援宏 | 只保證內容進入上下文,不保證模型一定遵循 |
constant | 常駐條目,無需關鍵詞 | 仍受預算和機率影響;大量常駐會擠佔 Conditional 條目空間 |
probability | 觸發率 0–100 | 0 不觸發,100 一定觸發 |
position / depth | 插入位置與 @D 深度 | 預設 After Char Defs(position 1);@D 的 depth=0 最靠近對話末端;AN 頻率為 0 時 Top/Bottom of AN 會被靜默跳過 |
order | 全域性排序鍵,預設 100 | 預算截斷時按降序保留;它不是單卡區域性優先順序,方向性影響有爭議,需實測 |
group / groupWeight | 同組競爭與相對權重 | 權重是相對值,預設 100;groupOverride 可按 order 確定性勝出 |
scanDepth / caseSensitive / matchWholeWords | 條目級覆蓋 | 中文條目應關閉全詞匹配,避免中文/日文被破壞 |
步驟 6:觸發策略和插入位置怎麼設?
三種策略:Constant 常駐、Conditional 關鍵詞觸發、Vectorized 向量觸發。Constant 條目會先消耗預算;Vectorized 不停用關鍵詞觸發,若只想向量啟用,需要同時刪除 Key 欄位。插入位置共有 8 個;寫作或設定約束常放 After Char Defs,@D 的 depth 0–4 要謹慎堆疊。Outlet 需用宏手動呼叫,v1.13.5+ 支援。
步驟 7:token 預算和 order 怎麼調?
ST 預設 world_info_budget 為 API 最大上下文的 25%,world_info_budget_cap=0 表示不設絕對上限;預算耗盡後,即使關鍵詞命中也不再插入新條目,Constant 條目會優先插入。寫長設定或小說資料時,25% 可能不夠,可適當調高,但要給對話歷史留空間。
order 是全域性排序鍵,多卡共用時主鍵撞車和 order 競爭會互相影響。有教程說 order 越大影響越大;原始碼資料確認 order 參與全域性降序排序和預算截斷保留,但“最終 prompt 中越靠末尾影響越強”這一步被標為需真機驗證,不要只憑數值迷信,建議用 Prompt 預覽或實測確認。
步驟 8:怎麼驗證真的觸發了?
在聊天裡問一個應觸發設定的問題,要求 AI 複述世界觀或規則;開啟工具欄的 prompt/世界書詳情,檢視條目是否進入上下文;邊改邊測時先點重新整理再發送。
可選 CLI:wb ls 你的卡.json 檢視條目;wb check --all 做觸發體檢;wb keys --all 看關鍵詞撞車;wb sim 你的卡.json "測試句" --book 世界書.json 模擬觸發。wb ls 可自動識別卡內書、獨立書和條目清單三種形狀。
去哪找角色卡
世界書常跟角色卡一起分發。下面只給入口和定位,本站不託管、不轉載任何第三方角色卡;下載後請自行檢視作者說明、授權和所需外掛。
優先推薦(相對乾淨/授權清晰)
- aicharactercards.com:稽核較嚴、SFW 友好。
- RisuRealm:每張卡可帶 CC 授權,支援多格式和匯入 ID。
- character-tavern.com:策展型目錄,UX 較好。
最大但偏成人(務必帶分級提示)
中文社群
- 類腦 / 旅程等 SillyTavern 中文 Discord、cards.sillytavern.one:中文卡庫與社群,內容混合,注意頻道規則和分級。
進階/創作者
- Hugging Face:有角色卡/預設倉庫,按倉庫 license 使用。
- Pygmalion:模型與社群入口,適合繼續查創作者資料。
- r/SillyTavern:Reddit 社群,適合找教程、外掛和創作者分享。
以上多為使用者生成內容、含成人分級(NSFW),請開啟 SFW 過濾並遵守年齡驗證;角色卡版權歸原作者,下載與使用請遵循各站條款。角色卡格式簡述 V2/V3(內嵌 PNG 或 JSON)。
常見問題排查
| 現象 | 可能原因 | 處理 |
|---|---|---|
| 匯入報錯或識別不了 | JSON 可能是預設、世界書或角色卡;PNG 不是原始檔案;作者要求外掛未裝 | 先確認檔案型別,查作者說明,必要時用資訊提取工具讀取 |
| 關鍵詞寫了但不觸發 | keysecondary 存在但 selective 未開;預算耗盡;AN 頻率為 0;中文全詞匹配開啟;scanDepth 太淺 | 逐項檢查欄位、預算和全域性設定 |
| 條目頻繁亂觸發 | 主鍵用了通用詞;角色名/使用者名稱預設參與掃描;Constant 太多 | 換專有名詞,降低 probability,減少常駐條目 |
| 多卡互相干擾 | 主鍵跨卡撞車;order 是全域性排序;卡內書和獨立書邊界不清 | 共用書只放“世界”設定,人物關係留在各自卡內書 |
| 調 depth/budget 沒反應 | 按 ST 1.18.0 原始碼實證,卡內 book 級 scan_depth、token_budget、recursive_scanning 沒有讀取點 | 不要把它當生效開關,改全域性設定或條目級欄位 |
| Character Filter 不生效 | 版本口徑衝突:ST 1.18.0 資料稱卡內 character_book 的 characterFilter 不被讀取;另一份手冊把 Character Filter 列為高階觸發控制,但未確認卡內書可用 | 先在當前版本真機測試,不要預設生效 |
| DSH 里正常、ST 裡不觸發 | DSH 的全文/關鍵詞注入是工具層封裝,欄位和入口與 ST 原生不同 | 不要把兩套匯入方式混用 |
| order 調大反而亂 | order 是全域性排序,不是單條絕對優先順序;預算截斷按降序保留 | 用 Prompt 預覽實測,不要只憑數值判斷 |
FAQ
Q1:酒館世界書和角色卡是什麼關係?
角色卡定義角色與對話主體,世界書按關鍵詞或常駐規則把設定注入上下文;不少角色卡會內嵌世界書,也可以單獨匯入 JSON。
Q2:為什麼一張 PNG 圖片也能當角色卡?
PNG 可以在不影響圖片顯示的情況下附帶角色卡資料,酒館匯入時分離圖片和卡資料;只有原始 PNG 才可能這樣,不是所有圖片都行。
Q3:新角色卡自帶世界書,還要單獨匯入嗎?
先匯入角色卡並檢查是否已帶書;已內建就不必重複匯入,舊卡或未內建的卡再單獨匯入。作者說明要求外掛時先裝外掛。
Q4:selective 和 keysecondary 怎麼設?
只填次級鍵但不開 selective,次級鍵會被忽略;開啟後預設 AND_ANY,即主鍵命中且至少一個次級鍵命中。需要排除邏輯再用 selectiveLogic 1/2/3。
Q5:中文關鍵詞為什麼不觸發?
先關閉 Match Whole Words;它預設開啟,對中文/日文有破壞性影響。再檢查主鍵是否太泛、預算是否耗盡、AN 頻率是否為 0。
Q6:世界書 token 預算設多少?
ST 預設 world_info_budget 為 API 最大上下文的 25%,cap=0 不設絕對上限;預算耗盡後不再插入。長設定可適當調高,但要給對話歷史留空間。
Q7:order 越大越好嗎?
不完全是。order 是全域性排序鍵,預設 100,預算截斷按降序保留;有教程說越大影響越大,但“越靠末尾影響越強”這一步在原始碼手冊中被標為需真機驗證,建議用 Prompt 預覽確認。
Q8:世界書能保證 AI 一定按設定寫嗎?
不能。世界書只保證內容進入上下文,不保證模型遵循;還要靠提示詞、預設、模型能力和實際測試。
Q9:卡內書和獨立書怎麼選?
單卡專用選卡內嵌;多卡共用、按角色分流選獨立 JSON。獨立書關聯到卡時注意 data.extensions.world 欄位位置。
Q10:匯入報錯怎麼辦?
先確認是角色卡、世界書還是預設;PNG 要原始檔案;讀作者說明和外掛要求;可嘗試資訊提取工具讀取。
CTA
想繼續檢視酒館世界書與角色卡的實戰筆記,可訪問 tuniang.ai。
Sources
- GitHub - feverZHONG/liya-sillytavern-worldbook: 莉婭 · SillyTavern 世界書(Lorebook)機制——觸發鏈原始碼實證 + 獨立世界書工具鏈(體檢 / 觸發模擬 / 生成 / 自測) · GitHub - GitHub - feverZHONG/liya-sillytavern-worldbook: 莉婭 · SillyTavern 世界書(Lorebook)機制——觸發鏈原始碼實證 + 獨立世界書工具鏈(體檢 / 觸發模擬 / 生成 / 自測) · GitH…
- 剛開始玩酒館,問問有沒有啥入門教程? - 剛開始玩酒館,問問有沒有啥入門教程?