feat(KFC): 为私人聊天实现主动思考

此提交为 Kokoro Flow Chatter(KFC)引入了主动思考机制,使其在私人聊天中在一段时间沉默后主动发起对话。此功能旨在通过模拟一个会主动思考并联系用户的角色,创造更自然和有趣的互动。

此功能的关键组成部分包括:
- **主动思考回调**:`chatter.py` 中新增的回调处理整个主动思考流程,从上下文构建、提示生成到调用 LLM 和执行操作。
- **调度器集成**:`kfc_scheduler_adapter.py` 现在向 `UnifiedScheduler` 注册了一个定期任务,用于检查符合主动思考条件的会话。
- **触发条件**:主动思考的触发基于多个因素的组合,包括沉默时间、关系评分、概率检查以及“安静时间”,以避免打扰用户,系统现在获取全局关系分数以进行更准确的评估。- **专用提示**:`prompt_generator.py` 中的新提示专为此场景设计。它鼓励大语言模型决定是否发起联系,并将“不要打扰”作为一个有效且谨慎的选择。- **配置**:在 `bot_config_template.toml` 中添加了新设置以控制主动思维功能,包括静默阈值、最低亲和力和安静时间。- **AFC 集成**:通用的 `affinity_flow_chatter` 现在会检查 KFC 的主动思维是否在私人聊天中启用,并将控制权交给该功能,从而防止重复发送主动消息。
This commit is contained in:
tt-P607
2025-11-29 17:20:00 +08:00
parent 49db3bd138
commit b2a0196398
7 changed files with 531 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
[inner]
version = "7.9.2"
version = "7.9.3"
#----以下是给开发人员阅读的如果你只是部署了MoFox-Bot不需要阅读----
#如果你想要修改配置文件请递增version的值
@@ -655,6 +655,8 @@ enable_continuous_thinking = true # 是否在等待期间启用心理活动更
# --- 私聊专属主动思考配置 ---
# 注意这是KFC专属的主动思考配置只有当KFC启用时才生效。
# 它旨在模拟更真实、情感驱动的互动,而非简单的定时任务。
# 「主动思考」是「想一想要不要联系对方」,不是「到时间就发消息」。
# 她可能决定说些什么,也可能决定「算了,不打扰了」。
[kokoro_flow_chatter.proactive_thinking]
enabled = true # 是否启用KFC的私聊主动思考。
@@ -667,6 +669,7 @@ min_affinity_for_proactive = 0.3 # 需要达到最低好感度,她才会开始
# 3. 频率呼吸:为了避免打扰,她的关心总是有间隔的。
min_interval_between_proactive = 1800 # 两次主动思考之间的最小间隔默认30分钟
# 4. 自然问候:在特定的时间,她会像朋友一样送上问候
enable_morning_greeting = true # 是否启用早安问候 (例如: 8:00 - 9:00)
enable_night_greeting = true # 是否启用晚安问候 (例如: 22:00 - 23:00)。
# 4. 勿扰时段:在这个时间范围内,不会触发主动思考(避免深夜打扰用户)
# 格式为 "HH:MM"使用24小时制。如果 start > end表示跨越午夜如 23:00 到 07:00
quiet_hours_start = "23:00" # 勿扰开始时间
quiet_hours_end = "07:00" # 勿扰结束时间