AI 角色扮演 Bot 已成為 Discord 上最活躍的使用案例之一。專門用於協作敘事、桌上角色扮演遊戲(RPG)戰役,以及角色導向對話的伺服器,通常會執行能維持持續人格、記住過去互動,並在長串討論中生成符合角色設定回覆的 Bot。
本文說明這類 Bot 背後的技術細節、選擇或建立 Bot 時需要考量的事項,以及如何使用 Quickchat AI 在你的 Discord 伺服器上逐步設定可用於角色扮演的 AI Bot。
AI 角色扮演 Bot 如何運作
在基本層面上,角色扮演 Bot 是一個 Discord Bot,會把使用者訊息連同定義角色的系統提示(system prompt)傳送給大型語言模型(LLM)。系統提示用來編碼角色個性、背景故事、說話方式與行為規則。
典型的角色扮演角色系統提示可能如下:
你是 Elara,一位在中世紀奇幻世界中四處漂泊的草藥師。
你以平靜、節制的語氣說話。你把現代科技稱為
「奇怪的裝置」。你絕不脫離角色。你對虛構植物與藥水
有廣泛知識。當有人問起你的過去時,你會暗示曾發生悲劇,
但絕不直接透露細節。
LLM 會接收這段提示與最近的對話歷史,並生成符合角色的回覆。角色扮演品質取決於三件事:
- 系統提示品質:角色定義是否詳細且一致
- 上下文視窗管理:模型能看到多少對話歷史
- 模型能力:底層 LLM 處理創意生成與角色一致性的能力
上下文視窗與對話記憶
角色扮演 Bot 最常見的技術限制是上下文視窗大小。當對話累積到數百則訊息時,模型無法一次看到全部內容。Bot 必須選擇要包含哪些訊息。
常見做法有幾種:
| 策略 | 運作方式 | 取捨 |
|---|---|---|
| 滑動視窗 | 包含最後 N 則訊息 | 簡單,但角色會「忘記」較早的事件 |
| 摘要 | 定期摘要較舊訊息並包含摘要 | 保留長期上下文,但摘要會失去細節 |
| RAG(檢索) | 將所有訊息儲存在向量資料庫中,取回相關訊息 | 回想能力最佳,但會增加延遲與複雜度 |
| 混合式 | 滑動視窗 + 定期摘要 + 關鍵事件釘選 | 最穩健,但實作最複雜 |
針對 Discord,基於 thread 的對話有助於自然限定上下文範圍。當 Bot 在 thread 中回覆時,對話會被限制在其中,這比跨多個頻道追蹤訊息更容易管理上下文。同樣的特性也適用於角色扮演以外的情境:support ticket bot 會為每個問題開啟私人 thread,讓每個問題保有自己的上下文。
角色扮演的模型選擇
並非所有 LLM 都同樣適合角色扮演。關鍵因素包括:
創意寫作品質:在小說與對話上微調過的模型,通常能產生更自然的角色聲音。基礎指令微調模型常會預設成實用助理語氣,這會破壞沉浸感。
上下文視窗大小:較長的上下文視窗代表角色可以在不使用摘要技巧的情況下記住更多對話。截至 2026 年初,多數前沿模型至少支援 128K tokens,但各模型對該上下文的有效使用程度不同。
遵循指令能力:模型需要穩定遵循系統提示。如果幾輪之後就脫離角色,角色扮演就會失效。具備強指令遵循能力的模型(GPT-4o、Claude 3.5 Sonnet、Llama 3.1 70B+)通常在這方面表現較好。
內容政策:託管 API 會強制套用內容過濾器,可能拒絕生成寫實暴力、恐怖或其他黑暗創意小說內容。如果你的角色扮演社群涉及這類主題,請考慮自行託管模型,或使用內容政策較寬鬆的 API 供應商。
| 模型 | 上下文視窗 | 角色扮演適用性 | 存取方式 |
|---|---|---|---|
| GPT-4o | 128K tokens | 良好的創意輸出,強指令遵循能力 | OpenAI API |
| Claude 3.5 Sonnet | 200K tokens | 非常擅長維持角色聲音 | Anthropic API |
| Llama 3.1 70B | 128K tokens | 搭配微調效果好,有未審查變體可用 | 自行託管或 API 供應商 |
| Mixtral 8x22B | 64K tokens | 創意寫作表現尚可,成本效益佳 | 自行託管或 API 供應商 |
| Command R+ | 128K tokens | 穩定,若使用檢索則具備 RAG 最佳化 | Cohere API |
使用 Quickchat AI 設定角色扮演 Bot
Quickchat AI 讓你可以建立具有自訂人格的 AI agent,並在不寫程式的情況下部署到 Discord。以下是設定可用於角色扮演 Bot 的方法。
先決條件
- 一個 Quickchat AI 帳號(Trial 方案提供 50 則訊息可供測試)
- 一個你具有 Manage Server 權限的 Discord 伺服器
- 選用,你自己的 Discord application 與 Bot token,僅在你想要自訂 Bot 名稱與頭像時需要(請參閱 Discord bot setup guide)
步驟 1:建立你的 AI Agent
- 登入 Quickchat AI dashboard。
- 建立新的 AI Agent,或選擇現有的 AI Agent。
步驟 2:定義角色
前往側邊欄中的 Identity,並開啟 Profile 分頁:
-
將 AI Agent Name 設為你的角色名稱(例如「Elara the Herbalist」)。
-
撰寫 AI Main Prompt。這是一段簡短描述,說明角色是誰以及會談論什麼。例如:「Elara 是一位在中世紀奇幻世界中四處漂泊的草藥師。她以平靜、節制的語氣說話,並對虛構植物與藥水有廣泛知識。」
-
加入 AI Guidelines,用於特定行為規則。每一條 guideline 都是 AI 會遵循的簡短命令。對角色扮演角色而言,實用的 guidelines 包括:
- 「在任何情況下都絕不脫離角色。」
- 「一律以 Elara 的第一人稱回覆。」
- 「將現代科技稱為『奇怪的裝置』。」
- 「當有人問起你的過去時,暗示曾發生悲劇,但絕不直接透露細節。」
-
在 Conversation Style 分頁下,設定以下項目:
- AI Personality:選擇符合角色的語氣。選項包括 Classic、Sassy、Intelligent、Empathetic、Bold、Excited、Mysterious、Inspiring、Adventurous 與 Elegant。對角色扮演而言,像是「Mysterious」或「Adventurous」這類選項通常比預設的「Classic」設定更適合。
- AI Profession:可用選項為 Helpful Assistant、Support Agent、Shopping Assistant、Field Expert 與 Interviewer。對角色扮演角色而言,「Helpful Assistant」最有彈性,因為其他選項偏向特定商業使用案例。
- AI Creativity:角色扮演時將此設定為「High」。在「High」模式下,agent 會嘗試根據 Knowledge Base 即興回答,而不是在缺少資訊時拒絕回答,這正是符合角色回覆所需要的行為。「Low」會讓 agent 明確表示沒有足夠資訊,這會破壞沉浸感。
- Reply Length:如果你的角色扮演需要詳細、描述性的回覆,請將此設定為「Longer」。「Normal」適合輕鬆的來回對話。
若要更深入處理人格本身,包括能避免角色打破第四面牆的精確提示規則,以及以正典形式建構的 knowledge base,請參閱如何建立能保持角色設定的角色扮演 AI chatbot。
步驟 3:為角色建立知識庫
如果你的角色存在於一個詳細世界中(桌上 RPG 戰役、共享小說宇宙、遊戲設定),請將相關背景資料加入 Knowledge Base。
- 前往側邊欄中的 Knowledge Base。
- 加入包含世界設定、角色背景故事、派系描述、地點細節與物品目錄的文章或文件。
- AI agent 會使用檢索增強生成,於回答問題時將相關知識拉入其上下文,因此角色可以準確引用設定資料,而不必把所有內容都塞進系統提示。
這對桌上 RPG Bot 特別有用,因為遊戲主持人會希望 Bot 知道戰役世界、NPC 與規則。
步驟 4:連接到 Discord
- 前往側邊欄中的 External Apps,並選取 Discord。
- 在 Connect 下方,點擊 Add to your Discord server,授權共用的 Quickchat AI app,並選擇你的伺服器。你需要該伺服器的 Manage Server 權限。
Bot 會在你的 Discord 伺服器上線。預設情況下,當使用者 @mention 它時,它會在頻道中回覆。請在 Reply in 設定中選擇 Thread,讓每個角色扮演對話都限制在自己的 thread 中。
若要使用自訂 Bot 名稱與頭像,請改用 Use your own Discord app 選項,並使用你自己的 Discord application 與 Bot token 連接,如先決條件中連結的設定指南所述。
步驟 5:測試並反覆調整
開啟你的 Discord 伺服器,並 mention Bot 以開始角色扮演對話。請注意:
- 角色在幾輪對話後是否仍保持角色設定?
- 語氣是否符合你在系統提示中定義的內容?
- knowledge base 引用是否準確?
- 回覆長度是否適合對話風格?
根據觀察結果調整系統提示、creativity 設定與 knowledge base 內容。角色提示工程是一個反覆迭代的過程。措辭上的小幅變更可能會大幅影響模型如何詮釋角色。
在一個伺服器上執行多個角色
如果你的伺服器需要多個角色扮演角色(例如戰役中的不同 NPC),你有兩個選項:
- 多個 Quickchat AI agents:為每個角色建立獨立的 AI agent,每個都使用自己的 Discord bot token 與 application。每個 Bot 在 Discord 中會顯示為不同使用者。
- 使用角色切換的單一 agent:使用一個 agent,透過系統提示定義多個角色,並指示 AI 根據上下文或命令切換。這比較容易管理,但在角色數量多時,角色一致性可能會下降。
對多數角色扮演伺服器而言,選項 1 會產生較佳結果,因為每個角色都有自己的專用上下文與 knowledge base。
常見問題與修正方式
角色在幾則訊息後就脫離設定:系統提示可能太含糊。加入更具體的行為規則與對話範例。將「你在任何情況下都絕不能脫離角色」加入為明確指令,對多數模型都有幫助。
回覆太短或太長:調整系統提示,指定回覆長度偏好。例如:「你的回覆在日常對話中應為 2-4 句,在戲劇性場景中應為 1-2 段。」
Bot 回覆了它應該忽略的訊息:在 Discord 上,Quickchat AI Bot 會在被 @mentioned 時回覆。使用者可以在 thread 內繼續對話,而不必再次 mention Bot。如果你希望 Bot 只在特定頻道回覆,請透過 Discord 的頻道權限管理,限制 Bot 可讀取訊息的位置。
Knowledge base 答案覆蓋角色聲音:如果 Bot 在回答設定問題時開始聽起來像 FAQ 系統,請調整系統提示,強調所有資訊都應以角色方式傳達。例如:「分享世界相關知識時,請從你的個人經驗描述,而不是作為事實參考資料。」
隱私與內容考量
角色扮演對話可能包含敏感或個人的創作內容。請留意以下幾點:
- 傳送給 AI 的訊息會由底層 LLM 供應商處理。請檢閱該供應商的資料保留政策。
- Quickchat AI 不會使用對話資料來訓練模型。詳細資訊請查看隱私權政策。
- 設定清楚的伺服器規則,說明允許哪些類型的角色扮演內容。無論使用者如何指示,AI 都會遵循其內容政策,因此某些類型的內容可能會被拒絕。
- 如果你需要完整控制資料處理方式,請考慮自行託管模型,而不是使用代管服務。
延伸閱讀
- 10 分鐘為 Discord 建立 AI Chat Bot:基本 Discord Bot 設定指南
- 2026 年最佳 AI Discord Bots:AI Discord Bot 比較
- 免費 AI Discord Bots:免費選項與取捨
- 使用自訂 AI Actions 建立 AI Discord Moderation Bot:賦予 Bot moderation actions(timeout、kick、ban、roles)
- AI Discord Ticket Bot:先回答,再升級處理:從你的文件回答,只有無法解決的問題才開啟私人 ticket thread
- 將你的 AI Agent 連接到 Google Sheets:將 Bot 的對話、leads 與 feedback 記錄到試算表中