SillyTavern支援
TomoriBot可以從 SillyTavern 匯入資源: 提示管理器預設(控制提示詞結構)、角色卡(角色定義)以及世界書(內嵌的角色書或獨立的世界設定檔案)。 如果你從未使用過SillyTavern,可以安全地略過此頁面。
使用 /persona import 將現有的SillyTavern角色帶入Discord。它支援:
- 具有內嵌
chara或char中繼資料的 PNG卡片。 - 具有根層級屬性的 v2樣式JSON 卡片(
name、description、first_mes)。 - v3 JSON 卡片(帶有巢狀
data物件的spec: "chara_card_v3")。 .charx封存檔(角色卡V3套件)。
.charx檔案是包含 card.json 定義的ZIP封存檔。TomoriBot從 card.json 匯入角色文字,並略過綑綁的資源檔案(圖示、立繪、音訊、影片)。你可以在 /config > 人格 > 身分與個性 中設定頭像,在 /config > 人格 > 立繪 中新增立繪。
如果上傳的檔案是不含TomoriBot中繼資料的有效SillyTavern卡片,匯入時會自動進行轉換。你也可以將卡片傳給 /persona generate,以建立受該角色啟發的新人格。
匯入在儲存前會進行驗證(預設限制:每個文字欄位5,000個字元、200個屬性、每側100組範例對話、100個觸發詞)。有關欄位對應與轉換機制,請參閱卡片支援架構。
提示詞預設集
Section titled “提示詞預設集”SillyTavern提示管理器預設集控制傳送給模型的提示詞順序與版面配置。開啟 /config > 外掛 > SillyTavern 預設集 以匯入預設集、切換個別節點、切換使用中的預設集或還原預設格式。
預設集控制的內容
Section titled “預設集控制的內容”- 提示詞順序與標記位置
- 自訂提示詞節點
- 歷史紀錄後置節點與深度注入節點
- 匯入節點的初始啟用狀態
預設集無法取代的內容
Section titled “預設集無法取代的內容”預設集用於建構提示詞版面配置;它不會取代填入其中的文字來源:
- 系統指示與人格欄位:
/config>行為>一般行為、/config>人格>進階以及/config>人格>身分與個性。 - 即時聊天歷史紀錄、檢索到的文件脈絡以及已啟用的世界書條目。
- 自動情境:伺服器記憶、表情符號與貼圖資料、參與者清單以及短期記憶。
原生區塊如何對應
Section titled “原生區塊如何對應”原生區塊直接對應到TomoriBot的提示詞元件:
main:設定時的頻道提示詞覆寫charDescription:/config>人格>進階charPersonality:/config>人格>身分與個性dialogueExamples:/config>人格>身分與個性chatHistory:即時頻道訊息歷史紀錄worldInfoBefore與worldInfoAfter:對應插入位置的世界書條目,其後緊接檢索到的文件脈絡
系統提示詞規則
Section titled “系統提示詞規則”當匯入的預設集處於啟用狀態時,將完全由該預設集控制系統提示詞。TomoriBot的內建提示詞以及來自 /config > 行為 > 一般行為 的任何自訂提示詞都不會傳送,且該處的系統提示詞按鈕將會鎖定。你的自訂提示詞仍會保留,當你在 /config > 外掛 > SillyTavern 預設集 中關閉預設集時,該提示詞將會恢復生效。
使用Handlebars區塊在特定值存在時才納入相應指令:
{{#if description}}Follow the character description.{{else}}Use a neutral voice.{{/if}}{{#unless {{getvar::compact}}}}Include scene details.{{/unless}}像 description 這樣的簡稱代表 {{description}}。你也可以直接在條件式中放置數值巨集,如 {{#if {{input}}}}。在修剪前後空格並忽略大小寫後,空文字、false 與 0 均判定為偽。條件式中未知的巨集視為空白。
區塊支援巢狀結構,包含TomoriBot的 {{if capability:web_search}} 與 {{if tool:web_search}} 區塊。使用 {{/if}} 閉合 #if,使用 {{/unless}} 閉合 #unless。格式有誤的區塊(例如出現第二個 else 或不正確的閉合標籤)會被忽略。缺少閉合標籤的Handlebars區塊會在該節點末端結束。多餘孤立的 else 與閉合標籤會被捨棄。超過32層的巢狀區塊會保持未渲染的條件式語法。匯入提示會回報這些問題。
{{setvar::key::value}} 用於儲存文字;{{addvar::key::value}} 用於附加文字。未執行的Handlebars分支中的宣告不會生效。條件式可以讀取節點順序中較早出現的宣告,包含同一節點中前面部分的宣告。純文字中的 {{getvar::key}} 會在走訪完所有已啟用的節點後取得最終值。工具與功能條件在其後執行,因此它們不控制變數賦值。
| 巨集 | 數值 |
|---|---|
{{user}} | 觸發回覆的成員 |
{{char}}, {{bot}} | 目前使用中的人格名稱 |
{{personality}} | 人格屬性 |
{{description}} | 人格提示詞 |
{{scenario}} | 空白:卡片中的情境已合併至人格屬性中 |
{{mesExamples}} | 範例對話文字 |
{{lastChatMessage}}, {{input}} | 提供的對話中最近一則使用者訊息 |
{{time}} | 伺服器時間,例如 3:45 PM |
{{date}} | 伺服器日期,例如 October 28, 2026 |
{{weekday}} | 英文星期名稱,例如 Wednesday |
{{isotime}} | HH:mm 格式的伺服器時間,例如 15:45 |
{{isodate}} | YYYY-MM-DD 格式的伺服器日期,例如 2026-10-28 |
{{model}} | 設定的模型 ID;每輪隨機選取的模型與備用模型不會反映在此處 |
{{provider}} | 設定的供應商 ID:google、openrouter、novelai 或 custom |
{{char_version}} | 空白:角色卡版本不予儲存 |
時間相關的巨集在每次組裝提示詞時共用一次時鐘讀數,並使用伺服器的數值型 UTC 偏移。日光節約時間遵循你設定的偏移。成員的個人時區不會影響它們。當時間感知關閉時,所有5個時間巨集均為空白,測試它們的條件式判定為偽。請將時間巨集放在靠後或深度注入的節點中:像 {{time}} 這樣變動的值會使其之後的所有內容在供應商的提示詞快取中失效。
{{random: A, B}} 與 {{random::A::B}} 用於隨機選取項目;{{roll:2d6}} 用於擲骰子。{{// notes}} 用於移除註解,{{trim}} 用於修剪節點周圍的空白字元。這些巨集與條件式僅適用於預設集指令。世界書條目僅支援展開 {{user}}、{{char}} 與 {{bot}}。
相容性注意事項
Section titled “相容性注意事項”- 在
prompt_order中停用的節點將保持停用狀態,直到在/config>外掛>SillyTavern 預設集中啟用為止。空白節點與僅含註解的節點永遠不會傳送給模型。 - 標記順序按字面順序執行:將
chatHistory置於dialogueExamples之前會將聊天歷史紀錄放在最前面。世界資訊標記決定 Always On 世界書的位置;已觸發的世界書、檢索到的文件、參與者在線狀態與時鐘則保持在最新四個發言回合附近。最新或跨頻道的短期記憶也同樣保持在那些訊息附近,或在有設定的情況下更靠近。 - 歷史紀錄後置注入會合併到現有的對話歷史紀錄中,而不是作為獨立訊息傳送。
- 不支援正規表示式後處理、預設集定義的取樣參數(溫度、top-p)與分層預設集。舊版文字補全預設集在匯入時會捨棄SillyTavern專屬區塊。
在 /help 中選擇 外掛,然後選擇 SillyTavern 預設集,可查看Discord內指南。內部預設集處理機制請參閱預設系統架構。