refactor(proactive):将主动性消息整合到统一调度框架中

- 将主动思考能力直接整合进亲和力交流流程中
- 以可配置的动态调度系统替换传统间隔系统
- 通过白名单/黑名单过滤实现细粒度控制
- 增加基于时间的频率调制和冷却周期管理功能
- 移除独立的proactive_thinker插件,采用集成化方案替代
- 更新配置架构,增加增强型主动消息参数
This commit is contained in:
Windpicker-owo
2025-10-31 12:27:01 +08:00
parent 4dbc8b5d15
commit 246a15daae
14 changed files with 1336 additions and 963 deletions

View File

@@ -1,5 +1,5 @@
[inner]
version = "7.5.2"
version = "7.5.3"
#----以下是给开发人员阅读的如果你只是部署了MoFox-Bot不需要阅读----
#如果你想要修改配置文件请递增version的值
@@ -568,30 +568,67 @@ relationship_tracking_interval_min = 300 # 关系追踪最小间隔时间(秒
relationship_tracking_cooldown_hours = 1.0 # 同一用户关系追踪冷却时间(小时)
[proactive_thinking] # 主动思考(主动发起对话)功能配置
# --- 总开关 ---
enable = true # 是否启用主动发起对话功能
# 详细配置说明请参考docs/proactive_thinking_config_guide.md
# --- 触发时机 ---
# 基础触发间隔AI会围绕这个时间点主动发起对话
interval = 1500 # 默认25分钟
# 间隔随机化标准差让触发时间更自然。设为0则为固定间隔。
interval_sigma = 120
# 每日活跃度调整,格式:[["", "HH:MM,factor", ...], ["stream_id", ...]]
# factor > 1.0 会缩短思考间隔更活跃factor < 1.0 会延长间隔。
talk_frequency_adjust = [["", "8:00,1", "12:00,1.2", "18:00,1.5", "01:00,0.6"]]
# --- 总开关 ---
enable = false # 是否启用主动发起对话功能
# --- 间隔配置 ---
base_interval = 1800 # 基础触发间隔默认30分钟
min_interval = 600 # 最小触发间隔默认10分钟
max_interval = 7200 # 最大触发间隔默认2小时
# 动态调整配置
use_interest_score = true # 是否根据兴趣分数动态调整间隔
interest_score_factor = 2.0 # 兴趣分数影响因子1.0-3.0
# 公式: interval = base_interval * (interest_score_factor - interest_score)
# 例如: interest_score=0.8, factor=2.0 -> interval = 1800 * 1.2 = 2160秒(36分钟)
# --- 黑白名单配置 ---
whitelist_mode = false # 是否启用白名单模式(启用后只对白名单中的聊天流生效)
blacklist_mode = false # 是否启用黑名单模式(启用后排除黑名单中的聊天流)
# 白名单配置(示例格式)
whitelist_private = [] # 私聊白名单,格式: ["qq:12345:private"]
whitelist_group = [] # 群聊白名单,格式: ["qq:123456:group"]
# 黑名单配置(示例格式)
blacklist_private = [] # 私聊黑名单,格式: ["qq:12345:private"]
blacklist_group = [] # 群聊黑名单,格式: ["qq:999999:group"]
# --- 作用范围 ---
enable_in_private = true # 是否允许在私聊中主动发起对话
enable_in_group = true # 是否允许在群聊中主动发起对话
# 私聊白名单,为空则对所有私聊生效
# 格式: ["platform:user_id", ...] e.g., ["qq:123456"]
enabled_private_chats = []
# 群聊白名单,为空则对所有群聊生效
# 格式: ["platform:group_id", ...] e.g., ["qq:7891011"]
enabled_group_chats = []
# --- 冷启动配置 (针对私聊) ---
# 对于白名单中不活跃的私聊,是否允许进行一次“冷启动”问候
enable_cold_start = true
# 冷启动后,该私聊的下一次主动思考需要等待的最小时间(秒)
cold_start_cooldown = 86400 # 默认24小时
# --- 兴趣分数阈值 ---
min_interest_score = 0.0 # 最低兴趣分数阈值,低于此值不会主动思考
max_interest_score = 1.0 # 最高兴趣分数阈值,高于此值不会主动思考
# --- 时间策略配置 ---
enable_time_strategy = false # 是否启用时间策略(根据时段调整频率)
quiet_hours_start = "00:00" # 安静时段开始时间,格式: "HH:MM"
quiet_hours_end = "07:00" # 安静时段结束时间,格式: "HH:MM"
active_hours_multiplier = 0.7 # 活跃时段间隔倍数,<1表示更频繁>1表示更稀疏
# --- 冷却与限制 ---
reply_reset_enabled = true # bot回复后是否重置定时器避免回复后立即又主动发言
topic_throw_cooldown = 3600 # 抛出话题后的冷却时间(秒),期间暂停主动思考
max_daily_proactive = 0 # 每个聊天流每天最多主动发言次数0表示不限制
# --- 决策权重配置 ---
do_nothing_weight = 0.4 # do_nothing动作的基础权重
simple_bubble_weight = 0.3 # simple_bubble动作的基础权重
throw_topic_weight = 0.3 # throw_topic动作的基础权重
# --- 调试与监控 ---
enable_statistics = true # 是否启用统计功能(记录触发次数、决策分布等)
log_decisions = false # 是否记录每次决策的详细日志(用于调试)
# --- 兼容旧配置(已废弃,建议删除) ---
interval = 1800 # [已废弃] 请使用 base_interval
interval_sigma = 120 # [已废弃] 随机化功能已移除
talk_frequency_adjust = [] # [已废弃] 请使用 enable_time_strategy 和相关配置
enabled_private_chats = [] # [已废弃] 请使用 whitelist_private
enabled_group_chats = [] # [已废弃] 请使用 whitelist_group
enable_cold_start = false # [已废弃] 冷启动功能已移除
cold_start_cooldown = 86400 # [已废弃] 冷启动功能已移除