人格与状态¶
人格分两层:配置写定的稳定人设(bot.toml [personality]),以及随互动持续漂移的状态——
按人记录的好感度、全局的精力与心情。本页说明状态的变化规则、对表达的影响与查看入口。
默认状态:整套系统默认运行。精力可用 bot.toml schedule.energy_enabled 关闭,好感度与心情没有总开关;
可调项为漂移速率与提示词素材。
好感度:按人漂移¶
- 每个人物(主人与各位群友)各有一条好感度,范围 0~100。主人初值 12;群友首次互动时建档,初值同为 12。
- 上升途径:每完成一个实际开口的回合,对在场人物 +0.35×权重(群聊权重见下节); 回复中输出的 favor 事件(单次限 ±3)产生额外加成,按 1.2×权重计入。
- 下降途径:回复中输出负向 favor;此外仅主人的好感度随时间缓慢回落(每天 -0.6,不足一小时不结算), 群友好感度不随时间变化,仅随互动事件变化。
- 好感度不以数值进入提示词,而是折算为关系深度文案:初识(20 以下)、熟悉、信任、重要、深厚(88 以上), 写入系统提示词的关系块。与主人的相识时长一并注入(仅对主人注入)。
- 生效时机:回合内的事件增量在回合结束时落库;时间衰减在下一回合开始时结算。
精力与心情:全局取值,不按人¶
- 全局各一个值,范围 0~100,初始精力 80、心情 50。
- 对话对精力的影响:每个实际完成的回复回合消耗
0.3×会话权重×动态系数。 系数为80÷(80+近期聊天负载):负载按完成回合的权重累积,按 24 小时时间常数连续衰减, 停聊一天后剩约 37%。所有群聊、私聊与桌面共用负载,午夜不清零,重启后继续计算。 聊天少时保留正常开口成本,持续高频聊天时降低单回合成本;突然比平时多聊仍会增加总消耗。 以群聊权重 0.8、每天在 16 小时内均匀聊天为例,适应稳定后 100/200/500 回合的日扣费约为 12/16/20 点。这不是每日硬上限;首次启用从零负载开始,前几天消耗会高一些。 回复中输出的 energy 事件(单次限 ±3)仍按 1×会话权重计入,不乘动态系数。 回合消耗另行叠加在日程活动、事件修正与精力回归之上,不调整好感度收益。 - 日程活动是精力的主要来源:活动模型给每段活动一个节奏值,按下列速率每小时计入—— 睡眠:节奏 2 为 +4,节奏 3 为 +6.5;休息:节奏 1 为 -1.5,节奏 2 为 -0.75; 清醒:节奏 1 为 0,节奏 0 为 -1.5,-1 为 -3.5,-2 为 -5.5,-3 为 -7.5。 只有睡眠回精力;休息不回精力,只是比清醒掉得慢。日程服务未运行时,全部时间按清醒节奏 -1(每小时 -3.5)计。
- 结算方式:距上次结算满一小时才结算。活动按时间逐段累加,每段结束时截到 0~100,越界部分作废、 不带到下一段;之后精力整体向基线 65 回归一次,时间常数 48 小时(一天约回归 39%)。
- 心情变化:主要由日程活动的心情节奏推动(每小时 2×节奏值,节奏值 -3~3),并持续向基线 50 回归 (时间常数约 6 小时);回复中的 energy/favor 事件不直接改变心情。
- 对表达的影响:数值本身不进入提示词,而是折算为一句行为约束并入时间上下文—— 精力低于 20 提示「精疲力尽」,低于 45 提示「有点累」,高于 85 提示「精神很好」; 心情高于 65 提示「心情不错」,低于 35 提示「心情低落」。中间区间不提示。 睡着或休息时不给精力提示,睡着时也不给心情提示。
- 不影响「是否回复」的判定;精力与主人好感仅影响桌面主动搭话的兴趣累积速率(越低累积越慢)。
- 每天首次状态会存档一份快照;前一日结束时的精力与心情会作为次日日程生成的规划约束。
- 关闭
schedule.energy_enabled后,精力冻结在当前值,上述精力变化与精力提示全部停止, 也不再影响主动搭话;心情与好感度照常变化。近期聊天负载仍记录实际回合,重新开启时沿用, 不补扣关闭期间的回合消耗。
群聊人格增量的低倍率折算¶
群聊以一句一答为主,消耗远小于面对面长聊,因此全部人格增量(回合的好感与精力结算、亲昵事件的加成)
均乘以 group_chat.persona_weight,初始配置 0.8。私聊与桌面恒为 1.0。
折算效果:初始权重 0.8 下,群聊单回合的好感收益与事件增量为私聊的 80%; 固定开口成本还会乘上述动态系数,不能再按回合数直接等比换算。置 0 则群聊完全不产生人格漂移 (好感不上升、精力不消耗)。
稳定人设:提示词素材¶
bot.toml [personality] 六个键仅从配置进入提示词:
personality:稳定身份、经历、外表与性格,置于身份块开头。birthday:格式 YYYY-MM-DD;填写后派生年龄,生日当天追加当日提示。reply_style:句长、语气、排版与收尾习惯,进入「说话风格」区。engage_style:什么时候开口、回应谁、哪些情况不接话;只进决定动作那一次调用的规则段, 在这两件事上优先于内置的通用口径,写正文那一次调用看不到。tone_probability与tone_variants:每次开口前按概率从候选中独立抽取至多一条 临时语调,普通回复与主动搭话都适用;未命中时使用常规说话方式,不沿用上次结果。 同次回复拆出的多个气泡共用本次语调。新装配置预填两条候选、概率 0.1;缺键时概率按 0 处理。- 新装配置按月璃本人的设定预填
personality、birthday、reply_style、engage_style与临时语调; 对主人的称呼与关系不预填。 bot段的user_nickname与relationship仅对主人注入,群聊中不可见。
面板上的查看入口¶
- 「人物与关系」页(
/persons):列表支持按好感度排序,详情页展示好感度数值与该人物名下的生效事实。 - 面板首页观察区:精力与心情数值条、当前状态标签(睡着、刚醒、休息中等); 每回合的状态增量可在回合追踪中查看。
好感度、精力心情与每日快照均保存在数据目录的 memory.db 中,备份数据库即备份这些状态;
清库后所有人物以初始值重新建档。
调整方式与停用影响¶
- 调整漂移速率:
group_chat.persona_weight(0~1)。置 0 等于关闭群聊的人格漂移; 私聊与桌面的漂移无开关,恒为全速。 - 调整表达素材:修改
[personality]五个键,保存后热生效。 - 精力可用
schedule.energy_enabled关闭(见日程与睡眠);好感度与心情无总开关, 属于提示词与行为节奏的基础组件。不提供将状态清零的手段。
实现细节见开发手册·core/agent 与记忆系统。