Discord AI 角色扮演机器人:无代码设置指南

Jakub Swistak
发布日期 更新日期 阅读时间约 7 分钟
显示 AI 角色扮演对话的 Discord 聊天界面

AI 角色扮演机器人已经成为 Discord 上最活跃的使用场景之一。面向协作叙事、桌面角色扮演游戏活动和角色驱动对话的服务器,通常会运行能够维持持久人设、记住过去互动,并在长线程中生成符合角色设定回复的机器人。

本文介绍这些机器人的技术工作原理、在选择或构建机器人时需要考虑的事项,并分步说明如何使用 Quickchat AI 在你的 Discord 服务器上设置一个具备角色扮演能力的 AI 机器人。

AI 角色扮演机器人如何工作

在基础层面上,角色扮演机器人是一个 Discord 机器人,它会把用户消息连同定义角色的系统提示词一起发送给大型语言模型 (LLM)。系统提示词用于编码角色性格、背景故事、说话方式和行为规则。

一个典型的角色扮演角色系统提示词可能如下所示:

你是 Elara,一个中世纪奇幻世界中的流浪草药师。
你说话语气平静、克制。你把现代技术称为
“奇怪的装置”。你绝不跳出角色。你对虚构植物
和药剂有丰富知识。当被问及你的过去时,你会暗示
一场悲剧,但绝不直接透露细节。

LLM 会接收该提示词以及最近的对话历史,并生成与角色一致的回复。角色扮演质量取决于三点:

  1. 系统提示词质量:角色定义有多详细且一致
  2. 上下文窗口管理:模型能看到多少对话历史
  3. 模型能力:底层 LLM 在创造性生成和保持角色一致性方面表现如何

上下文窗口和对话记忆

角色扮演机器人最常见的技术限制是上下文窗口大小。当对话持续数百条消息时,模型无法一次性看到全部内容。机器人必须选择要包含哪些消息。

有几种方法:

策略工作方式取舍
滑动窗口包含最后 N 条消息简单,但角色会“忘记”早期事件
摘要定期总结较早消息并包含该摘要保留长期上下文,但摘要会丢失细微差别
RAG(检索)将所有消息存储在向量数据库中,检索相关消息召回效果最好,但会增加延迟和复杂度
混合方式滑动窗口 + 定期摘要 + 关键事件固定最稳健,但实现最复杂

对于 Discord 而言,基于线程的对话有助于自然限定上下文范围。当机器人在线程中回复时,对话被包含在该线程内,这比跨多个频道跟踪消息更容易管理上下文。同样的特性在角色扮演之外也有用:支持工单机器人会为每个问题打开一个私有线程,使每个问题都保留自己的上下文。

角色扮演的模型选择

并非所有 LLM 都同样适合角色扮演。关键因素包括:

创意写作质量:针对小说和对话微调的模型往往能生成更自然的角色语气。基础指令微调模型通常会默认采用有帮助的助手语气,从而破坏沉浸感。

上下文窗口大小:更长的上下文窗口意味着角色可以在不依赖摘要技巧的情况下记住更多对话。截至 2026 年初,大多数前沿模型至少支持 128K tokens,但不同模型对该上下文的有效利用程度不同。

指令遵循能力:模型需要持续遵循系统提示词。如果模型在几轮之后跳出角色,角色扮演就会失效。具备强指令遵循能力的模型(GPT-4o、Claude 3.5 Sonnet、Llama 3.1 70B+)通常在这方面表现更好。

内容政策:托管 API 会执行内容过滤,可能拒绝生成图形化暴力、恐怖或其他黑暗创意小说内容。如果你的角色扮演社区涉及这些主题,请考虑自托管模型,或使用内容政策更宽松的 API 提供商。

模型上下文窗口角色扮演适用性访问方式
GPT-4o128K tokens创意输出良好,指令遵循能力强OpenAI API
Claude 3.5 Sonnet200K tokens非常擅长保持角色语气Anthropic API
Llama 3.1 70B128K tokens微调后效果良好,有未审查变体可用自托管或 API 提供商
Mixtral 8x22B64K tokens创意写作尚可,成本效益高自托管或 API 提供商
Command R+128K tokens表现稳定,若使用检索则针对 RAG 优化Cohere API

使用 Quickchat AI 设置角色扮演机器人

Quickchat AI 允许你创建具有自定义人设的 AI agent,并将其部署到 Discord,无需编写代码。下面说明如何设置一个具备角色扮演能力的机器人。

前置条件

  • 一个 Quickchat AI 账户(Trial 计划提供 50 条消息用于测试)
  • 一个你拥有 Manage Server 权限的 Discord 服务器
  • 可选,你自己的 Discord 应用和机器人 token,仅当你想要自定义机器人名称和头像时需要(参见 Discord 机器人设置指南)

第 1 步:创建你的 AI Agent

  1. 登录 Quickchat AI dashboard。
  2. 创建新的 AI Agent,或选择现有的 AI Agent。

第 2 步:定义角色

转到侧边栏中的 Identity,并打开 Profile 选项卡:

  1. 将 AI Agent Name 设置为角色名称(例如,“Elara the Herbalist”)。

  2. 编写 AI Main Prompt。这是对角色是谁以及他们谈论什么内容的简短描述。例如:“Elara is a wandering herbalist in a medieval fantasy world. She speaks in a calm, measured tone and has extensive knowledge of fictional plants and potions.”

  3. 添加 AI Guidelines,用于指定具体行为规则。每条 guideline 都是 AI 遵循的一条简短命令。对于角色扮演角色,有用的 guideline 包括:

    • “在任何情况下都绝不跳出角色。”
    • “始终以 Elara 的第一人称回复。”
    • “把现代技术称为‘奇怪的装置’。”
    • “当被问及你的过去时,暗示一场悲剧,但绝不直接透露细节。”
  4. 在 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”适合随意的来回对话。

如需更深入地处理人设本身,包括能防止角色打破第四面墙的精确提示词规则,以及按正典结构组织的知识库,请参阅如何构建保持角色一致的角色扮演 AI 聊天机器人。

第 3 步:为你的角色构建知识库

如果你的角色存在于一个详细世界中(桌面 RPG 活动、共享小说宇宙、游戏设定),请将相关背景设定添加到 Knowledge Base。

  1. 转到侧边栏中的 Knowledge Base。
  2. 添加包含世界背景设定、角色背景故事、派系描述、地点细节和物品目录的文章或文档。
  3. AI agent 使用检索增强生成,将相关知识拉入其回答问题时的上下文,因此角色可以准确引用设定,而无需把所有内容都塞进系统提示词。

这对于桌面 RPG 机器人尤其有用,游戏主持人希望机器人了解活动世界、NPC 和规则。

第 4 步:连接到 Discord

  1. 转到侧边栏中的 External Apps,并选择 Discord。
  2. 在 Connect 下,点击 Add to your Discord server,授权共享的 Quickchat AI 应用,并选择你的服务器。你需要在该服务器上拥有 Manage Server 权限。

机器人会在你的 Discord 服务器中上线。默认情况下,当用户 @mention 它时,它会在频道中回复。请在 Reply in 设置中选择 Thread,以将每个角色扮演对话保持在各自的线程中。

如需自定义机器人名称和头像,请改用 Use your own Discord app 选项,并使用机器人 token 连接你自己的 Discord 应用,具体说明见前置条件中链接的设置指南。

第 5 步:测试并迭代

打开你的 Discord 服务器并 mention 机器人,开始角色扮演对话。注意以下事项:

  • 角色在几轮交流后是否仍保持角色设定?
  • 语气是否与你在系统提示词中定义的一致?
  • 知识库引用是否准确?
  • 回复长度是否适合对话风格?

根据观察结果调整系统提示词、创造性设置和知识库内容。角色提示词工程是一个迭代过程。措辞上的小改动可能显著影响模型如何理解角色。

在一个服务器上运行多个角色

如果你的服务器需要多个角色扮演角色(例如,一场活动中的不同 NPC),你有两个选择:

  1. 多个 Quickchat AI agent:为每个角色创建一个单独的 AI agent,每个 agent 都有自己的 Discord bot token 和应用。每个机器人在 Discord 中显示为不同用户。
  2. 使用单个 agent 切换角色:使用一个 agent,并通过系统提示词定义多个角色,同时指示 AI 根据上下文或命令切换。这种方式更易管理,但在角色较多时,角色一致性可能下降。

对于大多数角色扮演服务器,选项 1 会产生更好的结果,因为每个角色都有自己的专用上下文和知识库。

常见问题和修复方法

角色在几条消息后跳出设定:系统提示词可能过于模糊。添加更具体的行为规则和示例对话。加入“You must never break character under any circumstances”这样的明确指令,对大多数模型都有帮助。

回复过短或过长:调整系统提示词以指定回复长度偏好。例如:“Your responses should be 2-4 sentences in casual conversation, and 1-2 paragraphs during dramatic scenes.”

机器人回复了它本应忽略的消息:在 Discord 上,Quickchat AI 机器人会在被 @mentioned 时回复。用户可以在线程内继续对话,而无需再次 mention 机器人。如果你希望机器人只在特定频道回复,请通过 Discord 的频道权限进行管理,限制机器人可以读取消息的位置。

知识库答案覆盖了角色语气:如果机器人在回答背景设定问题时开始听起来像 FAQ 系统,请调整系统提示词,强调所有信息都应以角色身份传达。例如:“When sharing knowledge about the world, describe it from your personal experience, not as a factual reference.”

隐私和内容注意事项

角色扮演对话可能包含敏感或个人创作内容。需要注意以下几点:

  • 发送给 AI 的消息会由底层 LLM 提供商处理。请查看该提供商的数据保留政策。
  • Quickchat AI 不会使用对话数据训练模型。详情请查看隐私政策。
  • 设置明确的服务器规则,说明允许哪些类型的角色扮演内容。无论用户如何指示,AI 都会遵循其内容政策,因此某些类型的内容可能会被拒绝。
  • 如果你需要完全控制数据处理,请考虑自托管模型,而不是使用托管服务。

延伸阅读