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_minutes 与 max_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_mode 的 signal 用注意力信号;
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 上带桌宠。