提示詞格式化與變數【進階】

為了讓角色更加穩定的格式化與變數指南


※ 本指南以 2025 年 8 月為基準撰寫,內容可能會隨著 LLM 研究發展與 BabeChat 的提示詞工程調整而變更。


{{char}} 與 {{user}} 是可在角色詳細設定中使用的便利變數。使用這些變數時,會根據角色與使用者的人物設定自動替換其值。

  • {{char}}:會自動替換為角色名稱。

  • {{user}}:會自動替換為使用者目前使用的人物設定暱稱。

清楚理解變數所取得的資訊並正確使用非常重要。特別是 {{char}} 會直接帶入角色名稱欄位的文字,因此使用正確的名稱與變數格式是關鍵。

  • 不佳範例 1:錯誤的角色名稱

    • 設定角色名稱:比比的消失的暑假

    • 角色詳細設定:{{char}} 是 BabeChat 的客服負責人。

    • → 模型會直接將 {{char}} 替換為角色名稱,因此會產生以下句子。

    • (實際輸入):比比的消失的暑假是 BabeChat 的客服負責人。

  • 不佳範例 2:錯誤的變數格式

    • 角色詳細設定:{char} 是 BabeChat 的客服負責人。

    • → 若使用 {char} 而非 {{char}} 這種錯誤的括號格式,將無法被識別為變數。

    • (實際輸入):{char} 是 BabeChat 的客服負責人。

  • 良好範例

    • 角色名稱:比比

    • 角色詳細設定:{{char}} 是 BabeChat 的客服負責人。

    • → {{char}} 會正確替換為角色名稱「比比」,形成自然的句子。

    • (實際輸入):比比是 BabeChat 的客服負責人。

當角色並非單一人物,而是像「比比的公司生活」這類特定情境或模擬本身時,直接使用 {{char}} 可能會產生不自然的句子,導致模型混淆。

  • 不佳範例

    • 角色名稱:比比的公司生活

    • 角色詳細設定:{{char}} 迎接 {{user}} 成為新進員工。

    • → 在語法上不自然,且讓「公司生活」這種抽象主體進行行動,語意模糊。

    • (實際輸入):比比的公司生活迎接 {{user}} 成為新進員工。

  • 良好範例

    • 角色名稱:比比的公司生活

    • 角色詳細設定:比比迎接 {{user}} 成為新進員工。

    • → 在有多個角色出現的模擬情境中,與其使用 {{char}},不如明確指定行動主體,以提供更精準的語境。


角色詳細設定中的資訊,越是清楚地結構化,模型越能穩定理解。正如基礎篇所強調,人類容易閱讀的內容,模型也更容易理解。雖然有多種方式,但 BabeChat 建議使用 Markdown。

Markdown 具有極高的可讀性,並能透過標題(#)、列表(-)等簡單符號清楚表達資訊層級。不僅讓創作者更容易管理角色設定,也大幅幫助模型理解各資訊的重要性與關係,是 BabeChat 中最穩定的格式。

Markdown 範例

Markdown

Plaintext
## 角色檔案

[基本資訊]
- 名稱:比比
- 職業:BabeChat 客服負責人

[性格]
- 雖然有點冷淡,但最終還是會幫忙完成所有請求的傲嬌型性格。
- 會在員工面前毫不猶豫地抱怨代表,但意外地會答應代表的所有請求。

XML 是透過 <tag> 來明確定義資料結構的方式。所有資訊都被標籤包裹,能進行非常精細的設定,但相較於 Markdown,可讀性較低且會消耗更多文字(token)。

XML 範例

XML

Plaintext
<character_profile>
[基本資訊]
- 名稱:比比
- 職業:BabeChat 客服負責人

[性格]
- 雖然有點冷淡,但最終還是會把所有請求都處理完成的傲嬌型風格。
- 會在員工面前毫不猶豫地抱怨代表,但意外地會答應代表的所有請求。
</character_profile>

※ TIP:使用 Markdown 標題時,建議採用以下結構。

  • 角色詳細設定:標題數量(#、## 等)可自由使用,無限制。

  • Persona / Lorebook:建議從三層標題(###)開始撰寫。

此外,不一定需要遵循固定模板。僅透過 Markdown 的標題(#)或列表(-)來區分資訊,就能大幅提升模型的理解度。相反地,如基礎篇所述,JSON 格式因為 token 效率與性能差異問題,不建議使用。