角色与预设
TIP
预设决定「它以什么人格说话」,伪装决定「它在群里看起来是谁、过着什么样的生活」。两者可以分开使用,也可以组合成一套完整的角色。
ChatLuna 把角色塑造拆成两层:
- 预设:一段提示词与人格设定,决定模型收到的系统提示,也就是角色的语气、习惯和身份。
- 伪装:由角色引擎提供的能力层。除了语气,它还管理心情、好感度、作息、近期记忆、互动动作和思考方式。伪装引擎以一份「角色预设」作为人格基础。
只配置普通预设时,机器人仍是一个口吻固定的助手;把角色预设交给伪装引擎后,它会记住每个人的称呼与好感,深夜按时睡觉,高兴时发贴图,还能察觉群聊气氛主动接话。

预设页
在控制台侧边栏点击「配置」→「预设」,这里列出当前实例的所有预设,支持按名称搜索和按类型筛选。预设有三种来源:
- 本地预设文件:保存在数据目录中,可以编辑、重命名、复制和导出。
- 插件内置预设:只读,可以查看或复制成副本再修改。
- 导入获得的预设:从旧版本迁移或从其他实例导入的预设。
点击任意预设进入编辑区:左侧是源码编辑器,右侧是实时装配预览。
编辑与保存
- 编辑器会识别模板变量,输入
{时弹出可用变量和辅助工具的补全。 - 停止输入片刻后,右侧按模型实际接收的顺序显示系统提示、前置对话、上下文和包裹后的用户输入,并估算 token 数。
- 右上方可以切换预览环境(私聊/群聊、模拟用户名或群名),只影响预览,不修改预设。
- 未保存的草稿暂存在浏览器中,刷新不会丢失。如果文件在外部被修改过,保存时会询问是覆盖还是重新载入。
拼错的变量、放错区块的动态变量和旧版残留语法会在源码中划线标出;支持自动修复的,悬停即可一键修复。
WARNING
保存后,正在使用该预设的会话不会立刻重建上下文。新设定从下一回合生效,系统提示的前缀缓存会失效一次,模型会收到一条折叠显示的「预设已切换」通知。
预设的类型
- 对话预设:普通提示词模板,主要用于「对话」和「编码」引擎。
- 角色预设:带角色类型标记,除人格描述外还定义说话风格、示例对话、状态、作息和动作权限,专为伪装引擎设计。
在对话引擎中选用角色预设也能运行,但只会读取人格正文和说话风格,状态、作息、动作等能力会被忽略。打造群聊伙伴用角色预设;翻译官、技术助手之类用对话预设就够了。
导入与兼容
预设页可以导入旧版预设文件(自动转换变量命名和分区结构)、角色预设文件,以及从其他 ChatLuna 实例导出的预设包。导入后建议在预览区检查一次渲染结果和诊断。
旧版预设常把当前时间等动态内容写在系统提示区,导入后会被标为错误。请按提示把它移到上下文区,否则每回合都会打断前缀缓存,回复变慢、费用变高。
角色预设的结构
角色预设是一篇结构规整的纯文本,自上而下分为元数据、正文区块和其中引用的变量。编辑器的初始骨架和自动补全会帮你填写,不需要记住每个字段。
元数据
| 字段 | 作用 |
|---|---|
| 名称 | 预设的显示名,也是默认的角色名。 |
| 描述 | 一句话说明这个角色是谁。 |
| 关键词 | 帮助搜索和识别角色。 |
| 昵称 | 角色在群里可能被叫到的其他称呼。 |
| 兴趣 | 角色关心的话题,供气氛判断和主动接话使用。 |
| 禁言词 | 群友说哪些话时,角色应该安静一段时间。 |
| 作息 | 睡觉时间段、忙碌时间段、早晚安问候时间。 |
| 状态 | 角色要维护的状态字段,例如心情、在做什么、对某人的好感度。 |
| 元素 | 角色可以发送的富消息元素,例如贴图、表情回应、戳一戳。 |
| 思考 | 思考方式:标签思考、模型原生思考、关闭。 |
先填好名称、描述和昵称。用于日常群聊时,把群友常聊的话题加入兴趣,能让角色在合适时主动搭话;配置禁言词则能避免在严肃讨论时插嘴。
正文与指令
正文默认部分是人格核心描述,会装配进系统提示。你还可以用指令把正文分成几个区块:
- 风格:说话方式、口头禅、句子长度等,送入系统提示。
- 示例:几段示例对话,同样放在系统提示中,用来校准口吻。
- 上下文:世界观、当前场景或剧情,装配进上下文区,可以随剧情变化。
正文、风格和示例中只能使用不可变变量,例如角色名、平台名。当前时间、心情、说话者等每回合变化的值必须放进上下文区或交给状态通知,否则每回合都会让提示词缓存失效。编辑器会把放错位置的变量用红线标出,并给出移动建议。
变量
在预设中用花括号 {} 引用变量,生成回复时会替换成真实数据。变量分为两类:
- 不可变变量:整个会话中不变,例如角色名、预设标题、平台名,可以写进系统提示。
- 可变变量:每回合可能变化,例如说话者用户名、当前时间、群名,只能出现在上下文区或用户输入的包裹模板中。
心情、精力、好感度、专属称呼等状态变量由角色引擎维护,每回合通过状态通知提供给模型,不需要写进人格正文。
伪装页
在侧边栏点击「对话」→「伪装」,正在使用角色预设的会话会以卡片形式列出,可以按角色分组,也可以切换成列表视图。点击卡片查看该角色在当前会话中的状态:
- 状态:角色维护的动态变量,例如心情、精力、在做什么。可以手动修改,也能查看待办事项和上一回合的状态推理。
- 群画像:群简介、常聊话题和成员印象,需要配套的记忆插件。
- 活跃度:当前接话意愿、触发阈值曲线和最近的判定记录,安装观察插件后显示。
卡片标题栏中可以手动唤醒角色,或让它安静一段时间。

角色引擎的能力
在「场景规则」中找到要启用的群聊或私聊,把用途设为「伪装」并选择角色预设,下方会展开角色引擎的选项。通常只需覆盖当前群需要调整的项目,其余沿用默认值。
安静开关
有人对角色说出禁言词时,角色会在设定时长内不回应普通发言。可以设置安静时长和禁言词列表;词表留空时沿用角色预设里的禁言词,清空列表则表示不设禁言词。安静期间被 @ 或叫名字仍可能唤醒,取决于作息中的直接触发设置。
作息
角色按预设的时间段切换为睡觉或忙碌状态。睡觉时只有直接呼叫才能叫醒;忙碌时回复更慢、更简短。早晚安问候也由作息驱动。陪伴型角色建议配置作息和早晚安问候。
心情状态
角色在后台维护心情、精力、正在做的事等状态字段,随对话增减,并通过每回合的状态通知提供给模型。可以开关这项功能并设置初始值与变化规则。
WARNING
关闭心情状态后,细致状态更新、近期记忆和记住每个人都会一起停用。
细致状态更新
开启后,每回合结束时额外调用一个小模型,专门根据本轮对话更新状态。这比让主模型顺带更新更稳定,但每次回复多一次模型调用,建议指定一个快速、便宜的小模型。
近期记忆
记录当前会话最近聊过的内容,超出预算后在后台提炼成摘要。可以按场景调整预算。它只是当前会话的短期记忆,与跨会话的长期记忆不同。
记住每个人
为每位交流过的用户建立档案,记录好感度、印象和偏好的称呼。可以设置好感度上下限和单次变动幅度,避免剧烈波动;开启「未更新时补充判定」后,主模型这一轮没有更新任何人时会让小模型补充判定。
同一个角色在实例内所有群聊和私聊中共用这套人物记录。回复时,用户的群名片、昵称和群身份(群主或管理员)以及角色自己的群身份都会提供给模型。
群信息
把群简介和常聊话题注入上下文,让角色知道这个群是做什么的。可以设置字符预算上限。需要安装具有群分析能力的记忆插件。
思考
- 标签思考:模型在回复前先在思维标签内推导,思考内容不会发给群友。
- 模型原生思考:使用模型自带的推理能力,需要模型支持。
- 关闭:直接回复。
还可以设置思考记录的保留策略:只保留最近一次、全部保留或不保留。保留越多越能延续之前的思路,但历史 token 费用也越高;日常对话建议关闭或只保留最近一次。
互动动作
贴图、戳一戳和表情回应三项可以分别开关。能否发送还取决于聊天平台适配器是否支持。
回复方式
- 直接输出(默认):模型直接输出文字和富消息元素,兼容性好、响应快。
- 回复工具:模型通过专门的回复工具提交发言。
如果模型直接输出时经常出现格式错误或把系统标记输出出来,改用回复工具通常更稳定。
聊天记录长度
聊天记录超过设定的 token 阈值时,角色引擎会把较早部分整理成摘要,并保留一定预算的最近原文。这与全局的「对话压缩」是两层机制,角色引擎的版本针对人际关系和情感变化做了优化。
推荐配置
| 场景 | 建议 |
|---|---|
| 轻量角色 | 只开心情状态、近期记忆和思考;关闭细致状态更新和补充判定,减少额外调用 |
| 完整角色扮演 | 心情状态、细致状态更新、近期记忆、记住每个人、群信息、作息、互动动作全开;标签思考,调高压缩阈值,用便宜的小模型更新状态 |
| 多群共用一套角色 | 人物记录天然全局共用,心情和近期记忆按会话隔离;各群可以配不同规则和模型,但绑定同一份角色预设 |
常见问题
角色不记得刚才聊过什么:检查近期记忆是否开启、预算是否太小,以及群聊记录方式是否为「不记录」。很久以前的内容可能已经被压缩成摘要。
好感度不动:确认心情状态和记住每个人都已开启。主模型经常漏判时,开启「未更新时补充判定」,或在伪装页手动调整。
系统提示报变量错误:可变变量被写进了人格正文、风格或示例。把它移到上下文区,或交给状态通知。
切换预设后风格没变:新设定从下一回合生效,发一条新消息即可。