Skip to content

角色与预设 ​

字数
3718 字
阅读时间
14 分钟

TIP

预设决定「它以什么人格说话」,伪装决定「它在群里看起来是谁、过着什么样的生活」。两者可以分开使用,也可以组合成一套完整的角色。

ChatLuna 把角色塑造拆成两层:

  • 预设:一段提示词与人格设定,决定模型收到的系统提示,也就是角色的语气、习惯和身份。
  • 伪装:由角色引擎提供的能力层。除了语气,它还管理心情、好感度、作息、近期记忆、互动动作和思考方式。伪装引擎以一份「角色预设」作为人格基础。

只配置普通预设时,机器人仍是一个口吻固定的助手;把角色预设交给伪装引擎后,它会记住每个人的称呼与好感,深夜按时睡觉,高兴时发贴图,还能察觉群聊气氛主动接话。

预设页 · 人格预设列表

预设页 ​

在控制台侧边栏点击「配置」→「预设」,这里列出当前实例的所有预设,支持按名称搜索和按类型筛选。预设有三种来源:

  • 本地预设文件:保存在数据目录中,可以编辑、重命名、复制和导出。
  • 插件内置预设:只读,可以查看或复制成副本再修改。
  • 导入获得的预设:从旧版本迁移或从其他实例导入的预设。

点击任意预设进入编辑区:左侧是源码编辑器,右侧是实时装配预览。

编辑与保存 ​

  • 编辑器会识别模板变量,输入 { 时弹出可用变量和辅助工具的补全。
  • 停止输入片刻后,右侧按模型实际接收的顺序显示系统提示、前置对话、上下文和包裹后的用户输入,并估算 token 数。
  • 右上方可以切换预览环境(私聊/群聊、模拟用户名或群名),只影响预览,不修改预设。
  • 未保存的草稿暂存在浏览器中,刷新不会丢失。如果文件在外部被修改过,保存时会询问是覆盖还是重新载入。

拼错的变量、放错区块的动态变量和旧版残留语法会在源码中划线标出;支持自动修复的,悬停即可一键修复。

WARNING

保存后,正在使用该预设的会话不会立刻重建上下文。新设定从下一回合生效,系统提示的前缀缓存会失效一次,模型会收到一条折叠显示的「预设已切换」通知。

预设的类型 ​

  • 对话预设:普通提示词模板,主要用于「对话」和「编码」引擎。
  • 角色预设:带角色类型标记,除人格描述外还定义说话风格、示例对话、状态、作息和动作权限,专为伪装引擎设计。

在对话引擎中选用角色预设也能运行,但只会读取人格正文和说话风格,状态、作息、动作等能力会被忽略。打造群聊伙伴用角色预设;翻译官、技术助手之类用对话预设就够了。

导入与兼容 ​

预设页可以导入旧版预设文件(自动转换变量命名和分区结构)、角色预设文件,以及从其他 ChatLuna 实例导出的预设包。导入后建议在预览区检查一次渲染结果和诊断。

旧版预设常把当前时间等动态内容写在系统提示区,导入后会被标为错误。请按提示把它移到上下文区,否则每回合都会打断前缀缓存,回复变慢、费用变高。

角色预设的结构 ​

角色预设是一篇结构规整的纯文本,自上而下分为元数据、正文区块和其中引用的变量。编辑器的初始骨架和自动补全会帮你填写,不需要记住每个字段。

元数据 ​

字段作用
名称预设的显示名,也是默认的角色名。
描述一句话说明这个角色是谁。
关键词帮助搜索和识别角色。
昵称角色在群里可能被叫到的其他称呼。
兴趣角色关心的话题,供气氛判断和主动接话使用。
禁言词群友说哪些话时,角色应该安静一段时间。
作息睡觉时间段、忙碌时间段、早晚安问候时间。
状态角色要维护的状态字段,例如心情、在做什么、对某人的好感度。
元素角色可以发送的富消息元素,例如贴图、表情回应、戳一戳。
思考思考方式:标签思考、模型原生思考、关闭。

先填好名称、描述和昵称。用于日常群聊时,把群友常聊的话题加入兴趣,能让角色在合适时主动搭话;配置禁言词则能避免在严肃讨论时插嘴。

正文与指令 ​

正文默认部分是人格核心描述,会装配进系统提示。你还可以用指令把正文分成几个区块:

  • 风格:说话方式、口头禅、句子长度等,送入系统提示。
  • 示例:几段示例对话,同样放在系统提示中,用来校准口吻。
  • 上下文:世界观、当前场景或剧情,装配进上下文区,可以随剧情变化。

正文、风格和示例中只能使用不可变变量,例如角色名、平台名。当前时间、心情、说话者等每回合变化的值必须放进上下文区或交给状态通知,否则每回合都会让提示词缓存失效。编辑器会把放错位置的变量用红线标出,并给出移动建议。

变量 ​

在预设中用花括号 {} 引用变量,生成回复时会替换成真实数据。变量分为两类:

  • 不可变变量:整个会话中不变,例如角色名、预设标题、平台名,可以写进系统提示。
  • 可变变量:每回合可能变化,例如说话者用户名、当前时间、群名,只能出现在上下文区或用户输入的包裹模板中。

心情、精力、好感度、专属称呼等状态变量由角色引擎维护,每回合通过状态通知提供给模型,不需要写进人格正文。

伪装页 ​

在侧边栏点击「对话」→「伪装」,正在使用角色预设的会话会以卡片形式列出,可以按角色分组,也可以切换成列表视图。点击卡片查看该角色在当前会话中的状态:

  • 状态:角色维护的动态变量,例如心情、精力、在做什么。可以手动修改,也能查看待办事项和上一回合的状态推理。
  • 群画像:群简介、常聊话题和成员印象,需要配套的记忆插件。
  • 活跃度:当前接话意愿、触发阈值曲线和最近的判定记录,安装观察插件后显示。

卡片标题栏中可以手动唤醒角色,或让它安静一段时间。

伪装页 · 角色卡片与状态

角色引擎的能力 ​

在「场景规则」中找到要启用的群聊或私聊,把用途设为「伪装」并选择角色预设,下方会展开角色引擎的选项。通常只需覆盖当前群需要调整的项目,其余沿用默认值。

安静开关 ​

有人对角色说出禁言词时,角色会在设定时长内不回应普通发言。可以设置安静时长和禁言词列表;词表留空时沿用角色预设里的禁言词,清空列表则表示不设禁言词。安静期间被 @ 或叫名字仍可能唤醒,取决于作息中的直接触发设置。

作息 ​

角色按预设的时间段切换为睡觉或忙碌状态。睡觉时只有直接呼叫才能叫醒;忙碌时回复更慢、更简短。早晚安问候也由作息驱动。陪伴型角色建议配置作息和早晚安问候。

心情状态 ​

角色在后台维护心情、精力、正在做的事等状态字段,随对话增减,并通过每回合的状态通知提供给模型。可以开关这项功能并设置初始值与变化规则。

WARNING

关闭心情状态后,细致状态更新、近期记忆和记住每个人都会一起停用。

细致状态更新 ​

开启后,每回合结束时额外调用一个小模型,专门根据本轮对话更新状态。这比让主模型顺带更新更稳定,但每次回复多一次模型调用,建议指定一个快速、便宜的小模型。

近期记忆 ​

记录当前会话最近聊过的内容,超出预算后在后台提炼成摘要。可以按场景调整预算。它只是当前会话的短期记忆,与跨会话的长期记忆不同。

记住每个人 ​

为每位交流过的用户建立档案,记录好感度、印象和偏好的称呼。可以设置好感度上下限和单次变动幅度,避免剧烈波动;开启「未更新时补充判定」后,主模型这一轮没有更新任何人时会让小模型补充判定。

同一个角色在实例内所有群聊和私聊中共用这套人物记录。回复时,用户的群名片、昵称和群身份(群主或管理员)以及角色自己的群身份都会提供给模型。

群信息 ​

把群简介和常聊话题注入上下文,让角色知道这个群是做什么的。可以设置字符预算上限。需要安装具有群分析能力的记忆插件。

思考 ​

  • 标签思考:模型在回复前先在思维标签内推导,思考内容不会发给群友。
  • 模型原生思考:使用模型自带的推理能力,需要模型支持。
  • 关闭:直接回复。

还可以设置思考记录的保留策略:只保留最近一次、全部保留或不保留。保留越多越能延续之前的思路,但历史 token 费用也越高;日常对话建议关闭或只保留最近一次。

互动动作 ​

贴图、戳一戳和表情回应三项可以分别开关。能否发送还取决于聊天平台适配器是否支持。

回复方式 ​

  • 直接输出(默认):模型直接输出文字和富消息元素,兼容性好、响应快。
  • 回复工具:模型通过专门的回复工具提交发言。

如果模型直接输出时经常出现格式错误或把系统标记输出出来,改用回复工具通常更稳定。

聊天记录长度 ​

聊天记录超过设定的 token 阈值时,角色引擎会把较早部分整理成摘要,并保留一定预算的最近原文。这与全局的「对话压缩」是两层机制,角色引擎的版本针对人际关系和情感变化做了优化。

推荐配置 ​

场景建议
轻量角色只开心情状态、近期记忆和思考;关闭细致状态更新和补充判定,减少额外调用
完整角色扮演心情状态、细致状态更新、近期记忆、记住每个人、群信息、作息、互动动作全开;标签思考,调高压缩阈值,用便宜的小模型更新状态
多群共用一套角色人物记录天然全局共用,心情和近期记忆按会话隔离;各群可以配不同规则和模型,但绑定同一份角色预设

常见问题 ​

角色不记得刚才聊过什么:检查近期记忆是否开启、预算是否太小,以及群聊记录方式是否为「不记录」。很久以前的内容可能已经被压缩成摘要。

好感度不动:确认心情状态和记住每个人都已开启。主模型经常漏判时,开启「未更新时补充判定」,或在伪装页手动调整。

系统提示报变量错误:可变变量被写进了人格正文、风格或示例。把它移到上下文区,或交给状态通知。

切换预设后风格没变:新设定从下一回合生效,发一条新消息即可。

下一步 ​

页面历史

在 CC-BY-SA-4.0 许可下发布