跳转至

bot.toml:身份、关系与会话策略

真实文件是 config/bot.toml,也可在「月璃设置」选择它编辑。 逐字段范围见完整模板。 本篇按配置段说明组合关系;修改后保存并重启后端。

名称、别名与用户关系

[bot]name 同时影响显示名、提示词身份和群聊点名。 aliases 是额外点名词,不能留空项、重复或与主名字相同。 名称匹配采用不区分大小写的包含判断,过短的别名可能导致普通文本误匹配。 修改名称无需修改 QQ 登录号;显示身份与协议端账号分别配置。

user_nickname 是对用户的称呼偏好,relationship 是预设关系。 留空表示不预设称呼和关系,不影响启动校验。 QQ 的本人身份由适配器 owner.qq 绑定,修改昵称不能替代 QQ 身份绑定。 这两个文本字段不会将群成员识别为用户本人。

人格提示词与临时语调

[personality]personality 放稳定身份、经历与性格, reply_style 放句长、语气和排版习惯,避免互相写出矛盾要求。 多行人设可在 TOML 的三引号字符串中填写。 生日使用 YYYY-MM-DD,不能晚于今天;留空不派生年龄和生日提示。

tone_probability 控制新会话抽取临时语调的概率, tone_variants 提供候选,每次新会话至多抽取一条。 默认概率为 0,即使填了候选也不会自动抽取。 临时语调按会话固定,不能期待每条消息都重新抽签。 表达习惯不在此段追加旧字段;填了已退休字段会收到迁移提示。

日程与睡眠

[schedule] sleep_enabled = true 允许活动选择睡眠,不会立即切换到睡眠状态。 关闭后仍可选择休息活动,休息可以正常回应。 fallback_theme 是每日方向生成失败时采用的主题, generation_retry_interval_minutes 决定失败后多久再次尝试。 它们不更改模型鉴权或超时;持续失败先检查模型调用记录。

工作记忆、摘要与事实抽取

[conversation] 默认最近消息窗口为 40 条,系统提示词不计入该数量。 待摘要消息达到 48 条后,每批处理其中最早的 16 条。 三项参数须满足以下约束:

摘要批次 < 摘要触发数
摘要触发数 - 摘要批次 <= 工作记忆窗口

只增大触发数可能让未摘要部分超出窗口,配置加载会拒绝这种组合。 增大工作窗口会增加每轮输入量,调整时需综合考虑调用成本与上下文细节保留需求。 事实抽取另按默认 32 条触发、每批 12 条执行,批次也必须小于触发数。 调摘要频率不会同步改变事实抽取频率。

session_gap_minutes 初始配置 120,超过该空闲时间算新会话并重新考虑临时语调。 它不会删除数据库里的旧消息。 fact_recall_limit = 0 停止每轮事实召回,不是清空已保存事实。 相关情节和最近情节分别取候选,去重后还受 episode_context_limit 总量限制。 因此,提高两个候选上限不会使提示词中的情节数量直接增加至两者之和。

private_facts_in_group 默认关闭,私聊来源的人物事实不会因此自动出现在群聊提示词中。 开启会放宽事实可见范围,与屏幕感知出口是两套控制。 长期记忆原理见开发手册:记忆系统

群聊触发与参与程度

[group_chat] 只管已通过适配器白名单的群;不能用它放行名单外群。 at_mention_must_reply 必须显式写出,开启时真实协议 @ 优先于睡眠和回复窗口。 名字与别名提及只是参与机会;自然接话也可能产生候选,见QQ 接入总览

name_mention_probability 提供群聊参与基础概率,presence_decay_strength 抑制高占比发言。 概率设成 1 不能保证每个候选都说话,仍有睡眠、动作选择和模型调用等条件。 reply_window_minutesmax_replies_in_window 限制无人点名时的自发参与。 直接点名类信号可越过该次数上限,只有必回 @ 会越过睡眠。 当前请保持次数上限为正数:虽然模板注释写 0 不限,运行时会拒绝 0。

persona_weight 折算群聊的人格增量,不是回复概率。 reactions_enabled 控制贴表情动作,pokes_enabled 控制主动戳人。 默认贴表情开启、戳人关闭;协议端还需支持对应动作。 self_started_topics 允许行动核心选择自发话题,不绕过频率限制。 scene_refresh_messages 控制后台群场景更新,设 0 关闭该观察。

行动模式与调用成本

[conversation_agent] mode 初始配置为 enabled;置 off 可退回普通对话路径。 shadow 记录行动决策,实际发言仍走原路径,因此会增加观察调用。 selected_streams 仅对指定会话启用,enabled 对全部真实候选启用。 指定会话应填写当前会话的外部标识,不得使用人物 ID 替代。

split_replyer 开启后,行动决策与回复生成分别调用模型,会增加首字等待时间。 tool_calling 依赖拆分回复,决策模型还必须支持工具调用。 max_cognitive_rounds 当前范围为 0~4,增加它会允许更多认知调用。 trigger_modesignal 用注意力信号; frequency 用消息积累,reply_necessity 用必要性评分产生候选。 后两者只有行动模式覆盖该会话时才扩展触发,不保证候选最终发言。

打字、追问与表情库

[typing] 决定正文切成几条气泡,以及气泡间的发送等待。 bubble_target_chars 是合并目标,max_bubbles_per_say 才限制一段正文的条数。 关闭 delay_enabled 后,多条气泡连续发送,但不会合并为单条消息。 max_delay_seconds 限制等待上限;表情包另用 emoji_pick_seconds

[typing.follow_up] 在本人或联系人私聊沉默后产生一次追问决策机会, 需要行动模式已覆盖该会话;达到时间阈值不保证实际发送。 [typing.nudge] 结合总静默时长与对方输入状态产生催促机会。 只有实际选择回复并成功投递才消耗该次静默期的发送额度。

[emoji][emoji.cleanup] 都属于本文件。 前者管收集、容量、审查和冷条目淘汰,后者管磁盘孤儿文件保留与清理。 两种删除对象不同,关闭容量淘汰不会自动关闭孤儿清理。 操作关系见功能配置中的表情库说明

桌宠开关

[desktop_pet] enabled 默认关闭,开启后 Python 尝试启动桌面外壳。 从 Python 入口关闭桌宠时,外壳及托盘均不启动;QQ 和面板继续运行。 该开关与视觉开关独立,开启桌宠不会同时允许截图。 安装条件、托盘和退出行为见 Windows 上带桌宠