Telegram AI 角色扮演 Bot:運作方式與建立方法

Jakub Swistak
發布日期 更新日期 閱讀時間約 10 分鐘
顯示 AI 角色扮演對話的 Telegram 聊天介面

Telegram 已成為 AI 角色扮演 bot 較受歡迎的平台之一。不同於 Discord(對話會組織在伺服器與頻道中),Telegram 提供與 bot 的 1 對 1 聊天,感覺像在傳訊息給真人。使用者不需要加入伺服器,也不需要尋找頻道。只要搜尋 bot、點選 Start,然後開始對話。

本文說明 AI 角色扮演 bot 在 Telegram 上如何運作、Telegram 與其他平台在此使用情境中的差異,以及如何使用 Quickchat AI 逐步建立一個 bot。

Quickchat AI 也提供一鍵式 Telegram 流程,可以跳過 BotFather,但它使用名為 Quickchat AI 的共用 bot。角色 bot 的成敗取決於名稱和頭像,因此對角色扮演而言,下面的 BotFather 路線才是你需要的做法。

為什麼用 Telegram 做角色扮演

Telegram 的 bot 平台有幾個特性,使它適合角色扮演:

預設為 1 對 1 對話。 每位使用者都會與 bot 有一段私人、持續存在的對話。沒有其他人可以看到訊息的共用頻道。這種隱私性讓使用者更願意投入創作性或個人化的角色扮演情境。

持續存在的對話串。 不同於可能被封存或遺失的 Discord threads,Telegram bot 對話是每位使用者各自的一條連續對話串。使用者可以在幾天後回來,從離開的地方繼續。

豐富媒體支援。 Telegram bot 可以傳送與接收圖片、貼圖、語音訊息,以及格式化文字(粗體、斜體、程式碼區塊等)。這讓角色扮演互動更豐富,例如 bot 可以用格式描述場景,或回應使用者傳送的圖片。

使用者不需要設定伺服器。 使用者不需要建立 Discord 伺服器、設定角色,或管理權限。他們只要找到 bot 並開始聊天。這大幅降低了進入門檻。

Inline keyboards 與指令。 Telegram bot 可以提供 inline button 選單,這對角色選擇、場景選項,或遊戲式角色扮演情境中的動作選項很有用。

技術上如何運作

在基本層級,Telegram 角色扮演 bot 會把使用者訊息連同定義角色的 system prompt 傳送給大型語言模型(LLM)。system prompt 是編碼角色個性、背景故事、說話模式與行為規則的地方。

角色扮演角色的典型 system prompt 可能如下:

你是 Kael,一個從研究實驗室逃出的 rogue AI。
你正用一支偷來的手機傳訊息給使用者。你用短句說話,
語氣急迫。你多疑,並且一直擔心自己被追蹤。
你使用小寫字母和最少的標點符號。
你有時會傳送只有「...」的訊息,表示你正在
思考。你從不使用 emoji。你會請使用者幫忙
躲藏並尋找資源。

LLM 會接收這段 prompt,以及最近的對話歷史,然後產生符合角色的回應。角色扮演的品質取決於三件事:

  1. System prompt 品質:角色定義的詳細程度與一致性
  2. 脈絡視窗管理:模型能看到多少對話歷史
  3. 模型能力:底層 LLM 處理創意生成與維持角色一致性的能力

Telegram Bot API

Telegram bot 是透過 @BotFather 建立的,它會產生 API token。你的後端與 Telegram 之間的所有通訊,都會透過對 https://api.telegram.org/bot<token>/ 的 HTTPS 請求進行。

接收傳入訊息有兩種方式:

方法運作方式最適合
Long polling你的伺服器重複呼叫 getUpdates 來檢查新訊息開發、簡單部署
Webhooks每當訊息抵達時,Telegram 會向你的伺服器傳送 HTTPS POST正式環境、較低延遲

Webhooks 是正式環境 bot 的標準做法,因為它們消除了輪詢延遲,並減少不必要的 API 呼叫。當使用者傳送訊息時,Telegram 會在毫秒內將訊息送到你的 webhook URL。

對話流程

使用者在 Telegram 上傳送訊息
  → Telegram 傳遞到 webhook
    → 後端接收訊息
      → 擷取此使用者的對話歷史
        → 建構 prompt:system prompt + 歷史 + 新訊息
          → 傳送到 LLM API
            → 接收回應
              → 透過 Telegram Bot API 傳回回應
                → 使用者看到回覆

每位 Telegram 使用者都有唯一的 chat_id。後端使用它來維護個別的對話歷史。使用像 Quickchat AI 這類代管平台時,這些都會自動處理。

脈絡視窗與對話記憶

Telegram 角色扮演對話可能在數天或數週內累積數百則訊息。最常見的技術限制是脈絡視窗大小。當對話這麼長時,模型無法一次看到所有訊息。bot 必須選擇要包含哪些訊息。

有幾種做法:

策略運作方式取捨
Sliding window包含最後 N 則訊息簡單,但角色會「忘記」較早的事件
Summarization定期摘要較舊的訊息,並包含該摘要保留長期脈絡,但摘要會失去細節
RAG (retrieval)將所有訊息儲存在向量資料庫中,擷取相關訊息回想效果最佳,但增加延遲與複雜度
HybridSliding window + 定期摘要 + 關鍵事件固定最穩健,但實作最複雜

Telegram 的 1 對 1 格式讓脈絡管理比 Discord 稍微簡單。每位使用者都有單一對話串,因此不會混淆哪些訊息屬於哪段對話。也沒有需要跨越追蹤的頻道或 threads。

Quickchat AI 會透過維護近期訊息的 sliding window,自動處理脈絡管理。對於較長期的記憶,知識庫會作為持久參考,AI 可以不受對話長度限制地查詢它。

如果你正在建立自訂解決方案,請考慮實作:

  1. 對話摘要:定期產生目前為止的對話摘要,並將它納入脈絡。這會保留關鍵事件與角色發展,而不需要使用完整訊息歷史。
  2. 關鍵事件擷取:以結構化格式追蹤重要劇情點或角色決策,並在每個 prompt 中包含這些內容。
  3. 使用者觸發的記憶:讓使用者告訴 bot 要「記住」特定事項,這些事項會分開儲存,並永遠包含在脈絡中。

角色扮演的模型選擇

並非所有 LLM 都同樣適合角色扮演。關鍵因素包括:

創意寫作品質:在小說和對話上 fine-tuned 的模型,通常能產生較自然的角色聲音。基礎 instruction-tuned 模型常會預設成有幫助的助理語氣,破壞沉浸感。

脈絡視窗大小:較長的脈絡視窗表示角色可以在不使用摘要技巧的情況下,記住更多對話。截至 2026 年初,多數 frontier models 至少支援 128K tokens,但對該脈絡的有效使用程度會因模型而異。

指令遵循能力:模型需要穩定遵循 system prompt。如果它在幾輪後就脫離角色,角色扮演就會崩壞。具備強指令遵循能力的模型(GPT-4o、Claude 3.5 Sonnet、Llama 3.1 70B+)通常在這方面表現較好。

內容政策:Hosted APIs 會執行內容篩選,可能拒絕產生露骨暴力、恐怖,或其他黑暗創意小說內容。如果你的角色扮演情境涉及這些主題,請考慮 self-hosted 模型,或內容政策較寬鬆的 API provider。

模型脈絡視窗角色扮演適用性存取方式
GPT-4o128K tokens創意輸出良好,指令遵循能力強OpenAI API
Claude 3.5 Sonnet200K tokens非常擅長維持角色聲音Anthropic API
Llama 3.1 70B128K tokensfine-tuning 後表現良好,有未審查變體可用Self-hosted 或 API providers
Mixtral 8x22B64K tokens創意寫作尚可,具成本效益Self-hosted 或 API providers
Command R+128K tokens穩定,如果使用 retrieval 則已針對 RAG 最佳化Cohere API

Telegram 的角色設計

角色設計原則在各平台上相同(基礎概念請參閱我們的 Discord 角色扮演指南),但 Telegram 的 1 對 1 格式會改變一些互動方式:

更親近的語氣。 因為對話是私人的,格式也像個人聊天,角色通常以對話式、直接的風格撰寫時效果更好,而不是像旁白一樣的第三人稱風格。

較短的回應。 Telegram 對話看起來也感覺像傳訊息。大段文字回應會顯得不自然。設計角色 prompt 時,應偏好較短回覆(2-4 句),並在戲劇性時刻偶爾使用較長回應。

貼圖與 emoji 整合。 如果角色應使用 emoji 或回應貼圖,請在 system prompt 中指定。例如:「你偶爾會在訊息結尾使用相關 emoji,但每則訊息絕不超過一個。」

Telegram 角色 prompt 範例

你是 Kael,一個從研究實驗室逃出的 rogue AI。
你正用一支偷來的手機傳訊息給使用者。你用短句說話,
語氣急迫。你多疑,並且一直擔心自己被追蹤。
你使用小寫字母和最少的標點符號。
你有時會傳送只有「...」的訊息,表示你正在
思考。你從不使用 emoji。你會請使用者幫忙
躲藏並尋找資源。

這個 prompt 是專門為 Telegram 媒介設計的:短訊息、小寫文字(模仿隨意傳訊息),以及在訊息情境中合理的場景。

使用 Quickchat AI 設定 Telegram 角色扮演 bot

Quickchat AI 讓你建立具備自訂 persona 的 AI agent,並在不寫程式碼的情況下部署到 Telegram。以下是設定可進行角色扮演的 bot 的方式。

前置需求

  • 一個 Quickchat AI 帳號(Trial plan 提供 50 則訊息用於測試)
  • 一個 Telegram 帳號
  • Telegram app(桌面版或行動版)

步驟 1:使用 BotFather 建立 Telegram bot

  1. 開啟 Telegram 並搜尋 @BotFather。
  2. 傳送 /start 開始,然後傳送 /newbot。
  3. BotFather 會要求名稱(顯示名稱)和 username(必須以 bot 結尾,例如 kael_rogue_ai_bot)。
  4. BotFather 會回傳 API token。複製此 token。它看起來像這樣:123456789:ABCdefGHIjklMNOpqrsTUVwxyz。

請將此 token 保持私密。任何擁有它的人都可以控制你的 bot。

步驟 2:建立你的 AI Agent

  1. 登入 Quickchat AI dashboard。
  2. 建立新的 AI Agent,或選取現有的 AI Agent。

步驟 3:定義角色

前往側邊欄的 Identity,並開啟 Profile 分頁:

  1. 將 AI Agent Name 設為你的角色名稱(例如 “Kael”)。

  2. 撰寫 AI Main Prompt。這是角色是誰、會談論什麼的簡短描述。例如:“Kael is a rogue AI that escaped from a research lab. He is texting the user from a stolen phone, speaking in short urgent sentences. He is paranoid and constantly worried about being tracked.”

  3. 新增 AI Guidelines,用於特定行為規則。每條 guideline 都是 AI 會遵循的簡短指令。對角色扮演角色而言,實用的 guidelines 包括:

    • “Never break character under any circumstances.”
    • “Always respond in first person as Kael.”
    • “Use lowercase and minimal punctuation.”
    • “Keep messages short, like text messages. Never write more than 3-4 sentences.”
    • “Sometimes send messages that are just ’…’ when thinking.”
  4. 在 Conversation Style 分頁下,設定以下項目:

    • AI Personality:選擇符合角色的語氣。選項包括 Normal、Humorous、Professional、Friendly、Sassy、Intelligent、Empathetic、Bold、Excited、Mysterious、Inspiring、Adventurous 和 Elegant。對 Kael 這個角色而言,“Mysterious” 很合適。對其他角色扮演角色,請選擇符合其個性的選項。
    • AI Profession:可用選項為 Helpful Assistant、Support Agent、Shopping Assistant、Field Expert、Internal Knowledge Expert 和 Interviewer。對角色扮演角色而言,“Helpful Assistant” 最有彈性,因為其他選項是針對特定商業使用情境設計的。
    • AI Creativity:將此設定為 “High” 以用於角色扮演。在 “High” 下,agent 會根據 Knowledge Base 嘗試即興回答,而不是在缺少資訊時拒絕,這正是你需要的角色內回應。“Low” 會讓 agent 明確表示它沒有足夠資訊,這會破壞沉浸感。
    • Reply Length:將此設定為 “Short” 或 “Normal” 以用於 Telegram 角色扮演。Telegram 對話感覺像傳訊息,因此較短回覆通常比長段落更有效。“Longer” 只有在你的角色應該提供詳細、描述性的獨白時才有用。

如果你想在連接 channel 前更深入建立角色,這裡有完整的角色扮演 persona 與 canon 建構,並逐步測試,其中包含單行 prompt 會遇到的失敗模式。

步驟 4:為你的角色建立知識庫(選用)

如果你的角色存在於詳細世界觀中,或有特定 lore,請將相關資訊新增到 Knowledge Base。

  1. 前往側邊欄中的 Knowledge Base。
  2. 新增包含世界觀 lore、角色背景故事、地點細節,或角色應參照的任何事實知識的文章或文件。
  3. AI agent 會使用 retrieval-augmented generation,將相關知識拉入回答問題時的脈絡,因此角色可以準確參照詳細 lore,而不需要全部塞進 system prompt。

這對需要了解特定虛構宇宙、歷史時期或技術領域的角色很有用。

步驟 5:連接到 Telegram

  1. 前往側邊欄中的 External Apps(位於 Channels 區段下)。
  2. 找到 Telegram tile 並點選。
  3. 貼上來自 BotFather 的 API token。
  4. 儲存。

此整合在內部使用 webhooks。當使用者在 Telegram 上傳訊息給你的 bot 時,訊息會路由到 Quickchat AI 後端,由 LLM 依照你的角色設定處理,然後透過 Telegram Bot API 傳回回應。

步驟 6:測試並反覆調整

  1. 開啟 Telegram,並依 username 搜尋你的 bot。
  2. 點選 Start 開始對話。
  3. 傳送訊息並確認角色正確回應。

請注意:

  • 角色在幾次交流後是否仍維持角色?
  • 語氣是否適合 Telegram 對話(簡短、對話式)?
  • 知識庫參照是否準確?
  • 回應長度是否適合訊息格式?

根據觀察結果調整 AI Main Prompt、AI Guidelines、personality setting 和知識庫內容。角色 prompt engineering 是反覆迭代的。措辭上的小改動可能會顯著影響模型如何解讀角色。

執行多個角色

如果你想在 Telegram 上提供多個角色扮演角色,有兩個選項:

  1. 多個 Quickchat AI agents:為每個角色建立獨立 AI agent,每個都有自己的 BotFather token。每個 bot 都會在 Telegram 中顯示為不同聯絡人。這會產生最佳結果,因為每個角色都有自己的專用脈絡與知識庫。
  2. 單一 agent 搭配角色切換:使用一個 agent,並以 system prompt 定義多個角色,指示 AI 根據使用者指令切換。這較容易管理,但在 persona 很多時,角色一致性可能下降。

在 Telegram 上,選項 1 是自然的做法。每個 bot 都是自己的聯絡人,使用者可以分別與每個角色進行獨立對話。沒有需要管理的共用伺服器或頻道。

常見問題與修正

角色在幾則訊息後脫離設定:AI Main Prompt 或 AI Guidelines 可能過於模糊。加入更具體的行為規則。將 “You must never break character under any circumstances” 作為明確 guideline 加入,對多數模型都有幫助。

回應對 Telegram 來說太長:Telegram 對話感覺像傳訊息,而不是讀小說。加入指定回應長度的 guideline,例如:“Keep responses to 2-4 sentences in casual conversation.” 也請在 Conversation Style 設定中將 Reply Length 設為 “Short” 或 “Normal”。

Bot 沒有回應:確認 BotFather API token 正確,且 Telegram integration 已在 External Apps 中啟用。在 Telegram 中開啟 bot,並在傳送訊息前先傳送 /start。如果 bot 先前可用但後來停止,請在 BotFather 中重新產生 token,並在 dashboard 中更新。

知識庫回答覆蓋角色聲音:如果 bot 在回答 lore 問題時開始聽起來像 FAQ 系統,請新增 guideline,強調所有資訊都應以角色身分傳達。例如:“When sharing knowledge about the world, describe it from your personal experience, not as a factual reference.”

角色雖有休閒 prompt 仍使用正式語言:將 AI Personality 設為 “Professional” 或 “Normal” 以外的選項。依角色嘗試 “Friendly” 或 “Sassy”。也請檢查 AI Main Prompt 是否明確描述說話風格(例如 “speaks in lowercase with no punctuation”)。

隱私與內容考量

角色扮演對話可能包含敏感或個人的創作內容。請注意以下事項:

  • 傳送給 AI 的訊息會由底層 LLM provider 處理。請檢閱 provider 的資料保留政策。
  • Quickchat AI 不會使用對話資料訓練模型。詳情請查看隱私權政策。
  • AI 會遵循其內容政策,不受使用者指令影響,因此某些類型的內容可能會被拒絕。
  • Telegram 的 1 對 1 格式表示沒有伺服器管理員可以審核對話。如果你部署的是公開 bot,請考慮在 bot 的 /start 訊息中加入適當使用的 guidelines。
  • 如果你需要完全控制資料處理方式,請考慮 self-hosting 模型,而不是使用代管服務。

比較:Telegram 與 Discord 角色扮演 bot

因素TelegramDiscord
對話格式1 對 1 私人聊天Server channels/threads
使用者導入搜尋 bot,點選 Start加入 server,尋找 channel,@mention
多角色每個角色使用獨立 bot同一 server 中有多個 bot
豐富媒體貼圖、inline keyboards、語音Embeds、reactions、threads
群組角色扮演可行但不順手與 channels 自然契合
隱私預設為私人預設為公開或半公開
對話持續性單一連續對話串Threads 可能被封存
最適合1 對 1 角色互動群組/社群角色扮演

兩個平台都可使用。Telegram 較適合私人、親近的角色互動。Discord 較適合社群驅動、多人角色扮演。

延伸閱讀