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 线程,Telegram Bot 对话对每个用户来说都是一个单一、连续的线程。用户可以几天后回来,从上次离开的地方继续。
丰富的媒体支持。 Telegram Bot 可以发送和接收图片、贴纸、语音消息和格式化文本(粗体、斜体、代码块等)。这支持更丰富的角色扮演交互,例如 Bot 可以用格式化文本描述场景,或回应用户发送的图片。
用户无需设置服务器。 用户不需要创建 Discord 服务器、配置角色或管理权限。他们只需找到 Bot 并开始聊天。这大幅降低了使用门槛。
内联键盘和命令。 Telegram Bot 可以展示内联按钮菜单,这对角色选择、场景选择,或类游戏角色扮演场景中的行动选项很有用。
技术上如何工作
在基础层面,Telegram 角色扮演 Bot 会把用户消息连同定义角色的系统提示词发送给大语言模型(LLM)。系统提示词用于编码角色性格、背景故事、说话方式和行为规则。
一个典型的角色扮演角色系统提示词可能如下:
你是 Kael,一个从研究实验室逃出的流氓 AI。
你正在用一部偷来的手机给用户发消息。你说话简短,
语气紧迫。你很多疑,总是担心自己被追踪。
你使用小写字母和最少的标点。
你有时会发送只有“...”的消息,表示你正在
思考。你从不使用 emoji。你会请求用户帮助你
藏身并寻找资源。
LLM 会接收这个提示词以及最近的对话历史,并生成符合角色设定的回应。角色扮演质量取决于三件事:
- 系统提示词质量:角色定义的详细程度和一致性
- 上下文窗口管理:模型能看到多少对话历史
- 模型能力:底层 LLM 在创意生成和保持角色一致性方面的表现
Telegram Bot API
Telegram Bot 通过 @BotFather 创建,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
→ 后端接收消息
→ 检索该用户的对话历史
→ 构造提示词:系统提示词 + 历史记录 + 新消息
→ 发送到 LLM API
→ 接收回应
→ 通过 Telegram Bot API 发回回应
→ 用户看到回复
每个 Telegram 用户都有唯一的 chat_id。后端使用它来维护独立的对话历史。使用 Quickchat AI 这类托管平台时,所有这些都会自动处理。
上下文窗口和对话记忆
Telegram 角色扮演对话可能会在数天或数周内持续数百条消息。最常见的技术限制是上下文窗口大小。当对话这么长时,模型无法一次看到所有消息。Bot 必须选择要包含哪些消息。
有几种方法:
| 策略 | 工作方式 | 取舍 |
|---|---|---|
| 滑动窗口 | 包含最近 N 条消息 | 简单,但角色会“忘记”更早发生的事件 |
| 摘要 | 定期总结较早的消息并包含摘要 | 保留长期上下文,但摘要会丢失细节 |
| RAG(检索) | 将所有消息存储在向量数据库中,检索相关消息 | 召回效果最好,但增加延迟和复杂性 |
| 混合方案 | 滑动窗口 + 定期摘要 + 关键事件固定 | 最稳健,但实现最复杂 |
与 Discord 相比,Telegram 的 1 对 1 形式让上下文管理稍微更简单。每个用户只有一个对话线程,因此不存在判断哪些消息属于哪个对话的歧义。也没有需要跨频道或线程跟踪的内容。
Quickchat AI 通过维护最近消息的滑动窗口自动处理上下文管理。对于更长期的记忆,知识库作为持久引用,AI 可以不受对话长度影响进行查询。
如果你正在构建自定义方案,可以考虑实现:
- 对话摘要:定期生成到目前为止的对话摘要,并将其包含为上下文。这可以保留关键事件和角色发展,而无需使用完整消息历史。
- 关键事件提取:以结构化格式跟踪重要剧情点或角色决策,并在每次提示词中包含这些内容。
- 用户触发的记忆:允许用户让 Bot “remember” 特定事项,这些内容会单独存储,并始终包含在上下文中。
角色扮演的模型选择
并非所有 LLM 都同样适合角色扮演。关键因素包括:
创意写作质量:在小说和对话上微调的模型往往能生成更自然的角色声音。基础指令微调模型通常会默认使用有帮助的助手语气,这会破坏沉浸感。
上下文窗口大小:更长的上下文窗口意味着角色无需摘要技巧就能记住更多对话。截至 2026 年初,大多数前沿模型至少支持 128K token,但对该上下文的有效使用因模型而异。
遵循指令能力:模型需要稳定遵循系统提示词。如果几轮后就脱离角色,角色扮演就会崩坏。具备强指令遵循能力的模型(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 |
面向 Telegram 的角色设计
角色设计原则在不同平台上相同(基础内容见我们的 Discord 角色扮演指南),但 Telegram 的 1 对 1 形式会改变一些动态:
更亲密的语气。 由于对话是私密的,并且格式类似个人聊天,角色通常更适合使用对话式、直接的风格,而不是类似叙述者的第三人称风格。
更短的回应。 Telegram 对话看起来和感觉上都像发消息。大段文字回应会显得不自然。设计角色提示词时,应倾向于较短回复(2-4 句),只在戏剧性时刻偶尔使用较长回应。
贴纸和 emoji 集成。 如果角色应使用 emoji 或回应贴纸,请在系统提示词中说明。例如:“你偶尔会在消息末尾使用相关 emoji,但每条消息最多一个。”
Telegram 的角色提示词示例
你是 Kael,一个从研究实验室逃出的流氓 AI。
你正在用一部偷来的手机给用户发消息。你说话简短,
语气紧迫。你很多疑,总是担心自己被追踪。
你使用小写字母和最少的标点。
你有时会发送只有“...”的消息,表示你正在
思考。你从不使用 emoji。你会请求用户帮助你
藏身并寻找资源。
这个提示词专门为 Telegram 媒介设计:短消息、小写文本(模仿随意发消息),以及一个在消息场景中合理的设定。
使用 Quickchat AI 设置 Telegram 角色扮演 Bot
Quickchat AI 允许你创建带有自定义人设的 AI Agent,并将其部署到 Telegram,无需编写代码。下面是设置一个支持角色扮演的 Bot 的方法。
前提条件
- 一个 Quickchat AI 账户(Trial 计划提供 50 条消息用于测试)
- 一个 Telegram 账户
- Telegram 应用(桌面端或移动端)
第 1 步:使用 BotFather 创建 Telegram Bot
- 打开 Telegram,搜索 @BotFather。
- 发送
/start开始,然后发送/newbot。 - BotFather 会要求输入名称(显示名称)和用户名(必须以
bot结尾,例如kael_rogue_ai_bot)。 - BotFather 会返回一个 API token。复制该 token。它看起来像:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz。
请保管好这个 token。任何拥有它的人都可以控制你的 Bot。
第 2 步:创建你的 AI Agent
- 登录 Quickchat AI dashboard。
- 创建一个新的 AI Agent,或选择一个现有的 AI Agent。
第 3 步:定义角色
在侧边栏中进入 Identity,并打开 Profile 标签页:
-
将 AI Agent Name 设置为你的角色名称(例如“Kael”)。
-
编写 AI Main Prompt。这是对角色身份以及角色谈论内容的简短描述。例如:“Kael 是一个从研究实验室逃出的流氓 AI。他正在用一部偷来的手机给用户发消息,说话简短而紧迫。他很多疑,总是担心自己被追踪。”
-
添加 AI Guidelines,用于指定具体行为规则。每条 guideline 都是 AI 会遵循的一条简短命令。对于角色扮演角色,有用的 guidelines 包括:
- “在任何情况下都不要脱离角色。”
- “始终以 Kael 的第一人称回应。”
- “使用小写字母和最少的标点。”
- “保持消息简短,像短信一样。不要写超过 3-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” 只有在你的角色需要给出详细、描述性的独白时才有用。
如果你想在接入频道前进一步完善角色,可以阅读一份完整的角色扮演人设和 canon 构建指南,并经过逐步测试,其中包含单行提示词会遇到的失败模式。
第 4 步:为你的角色构建知识库(可选)
如果你的角色存在于一个详细的世界中,或有特定设定,请将相关信息添加到 Knowledge Base。
- 在侧边栏中进入 Knowledge Base。
- 添加包含世界设定、角色背景故事、地点细节,或角色应引用的任何事实知识的文章或文档。
- AI Agent 使用检索增强生成,将相关知识拉入回答时的上下文,因此角色可以准确引用详细设定,而不必把所有内容都塞进系统提示词。
这对需要了解特定虚构宇宙、历史时期或技术领域的角色很有用。
第 5 步:连接到 Telegram
- 在侧边栏中进入 External Apps(位于 Channels 部分下)。
- 找到 Telegram 卡片并点击它。
- 粘贴来自 BotFather 的 API token。
- 保存。
该集成在内部使用 webhooks。当用户在 Telegram 上给你的 Bot 发送消息时,该消息会路由到 Quickchat AI 后端,由 LLM 按照你的角色配置进行处理,然后通过 Telegram Bot API 发回回应。
第 6 步:测试并迭代
- 打开 Telegram,并按用户名搜索你的 Bot。
- 点击 Start 开始对话。
- 发送一条消息,确认角色能正确回应。
请注意:
- 角色在多轮交流后是否仍保持角色?
- 语气是否适合 Telegram 对话(简短、对话式)?
- 知识库引用是否准确?
- 回应长度是否适合消息格式?
根据观察结果调整 AI Main Prompt、AI Guidelines、personality 设置和知识库内容。角色提示词工程是迭代式的。对措辞的小改动可能会显著影响模型如何解释角色。
运行多个角色
如果你想在 Telegram 上提供多个角色扮演角色,有两个选项:
- 多个 Quickchat AI agents:为每个角色创建单独的 AI Agent,每个都有自己的 BotFather token。每个 Bot 在 Telegram 中显示为不同联系人。这能产生最佳结果,因为每个角色都有自己的专用上下文和知识库。
- 单个 Agent 加角色切换:使用一个 Agent,通过系统提示词定义多个角色,并指示 AI 根据用户命令切换。这种方式更容易管理,但当人设很多时,角色一致性可能下降。
在 Telegram 上,选项 1 是自然匹配。每个 Bot 都是自己的联系人,用户可以分别与每个角色进行单独对话。不需要管理共享服务器或频道。
常见问题与修复方法
几条消息后角色崩坏:AI Main Prompt 或 AI Guidelines 可能过于模糊。添加更具体的行为规则。添加“在任何情况下都绝不能脱离角色”作为明确 guideline,对大多数模型都有帮助。
回应对 Telegram 来说太长:Telegram 对话感觉像发消息,而不是阅读小说。添加一条指定回应长度的 guideline,例如:“在日常对话中,将回应控制在 2-4 句。”同时在 Conversation Style 设置中将 Reply Length 设置为“Short”或“Normal”。
Bot 不回应:确认 BotFather API token 正确,并且 Telegram 集成已在 External Apps 中启用。打开 Telegram 中的 Bot,并在发送消息前发送 /start。如果 Bot 之前正常工作但后来停止,请在 BotFather 中重新生成 token,并在 dashboard 中更新。
知识库答案覆盖角色声音:如果 Bot 在回答设定问题时开始听起来像 FAQ 系统,请添加一条 guideline,强调所有信息都应以角色身份传达。例如:“分享世界相关知识时,从你的个人经历出发描述,而不是作为事实参考。”
角色使用正式语言,尽管提示词要求随意:将 AI Personality 设置为除“Professional”或“Normal”以外的选项。根据角色尝试“Friendly”或“Sassy”。同时检查 AI Main Prompt 是否明确描述了说话风格(例如“使用小写字母且不使用标点”)。
隐私和内容注意事项
角色扮演对话可能包含敏感或个人化的创意内容。需要记住几点:
- 发送给 AI 的消息由底层 LLM 提供商处理。请查看该提供商的数据保留政策。
- Quickchat AI 不会使用对话数据训练模型。详情请查看隐私政策。
- AI 会遵循其内容政策,不受用户指令影响,因此某些类型的内容可能会被拒绝。
- Telegram 的 1 对 1 形式意味着没有服务器管理员来审核对话。如果你正在部署公共 Bot,可以考虑在 Bot 的
/start消息中添加有关适当使用的 guidelines。 - 如果你需要完全控制数据处理,可以考虑自托管模型,而不是使用托管服务。
对比:Telegram 与 Discord 角色扮演 Bot
| 因素 | Telegram | Discord |
|---|---|---|
| 对话形式 | 1 对 1 私密聊天 | 服务器频道/线程 |
| 用户引导 | 搜索 Bot,点击 Start | 加入服务器,查找频道,@mention |
| 多角色 | 每个角色一个单独 Bot | 同一服务器中多个 Bot |
| 丰富媒体 | 贴纸、内联键盘、语音 | Embeds、reactions、threads |
| 群组角色扮演 | 可以,但不太自然 | 与频道天然适配 |
| 隐私 | 默认私密 | 默认公开或半公开 |
| 对话持久性 | 单一连续线程 | 线程可能被归档 |
| 最适合 | 1 对 1 角色互动 | 群组/社区角色扮演 |
两个平台都可行。Telegram 更适合私密、亲近的角色互动。Discord 更适合社区驱动的多人角色扮演。
延伸阅读
- 如何为 Telegram 创建 AI Chatbot:基础 Telegram Bot 设置
- 如何构建 AI Telegram Bot 来管理你的群组:用自然语言发布公告、置顶和审核
- 用于角色扮演的 Discord AI Chatbot:在 Discord 上进行角色扮演
- 2026 年最佳 AI Discord Bots:AI Bot 对比