feat(规划): 引入统一的规划系统并重构组件

本次提交引入了一个全新的统一规划系统,取代了独立的日程和月度计划模块。这一变更集中了配置并解耦了职责,以提高可维护性和清晰度。

核心逻辑现在被分解为专门的组件:

- PlanManager: 处理日常日程和月度目标的所有数据库交互,取代了已-删除的 monthly_plan_db.py。
- ScheduleLLMGenerator: 封装了与 LLM 交互以生成日程的逻辑,将此职责从 ScheduleManager 中移除。
- MonthlyPlanManager: 现在作为核心 PlanManager 的简化接口。
这次架构性的大修通过将数据持久化和 LLM 生成逻辑从主调度逻辑中抽象出来,简化了整体设计。

重大变更: bot_config.toml 中的配置已被迁移。移除了 [schedule] 和 [monthly_plan_system] 部分。所有相关设置现在必须在新的 [planning_system] 部分下进行配置。
This commit is contained in:
minecraft1024a
2025-09-06 11:41:42 +08:00
parent 285fe8476a
commit 9bbf801bd9
13 changed files with 564 additions and 714 deletions

View File

@@ -358,16 +358,28 @@ use_wss = false # 是否使用WSS安全连接只支持ws模式
cert_file = "" # SSL证书文件路径仅在use_wss=true时有效
key_file = "" # SSL密钥文件路径仅在use_wss=true时有效
[schedule] #日程管理
enable = false # 是否启用日程管理功能
# 日程生成指导原则,如果不设置则使用默认原则
guidelines = """
[planning_system] # 规划系统配置
# --- 日程生成 ---
schedule_enable = true # 是否启用每日日程生成功能
schedule_guidelines = """
我希望你每天都能过得充实而有趣。
请确保你的日程里有学习新知识的时间,这是你成长的关键。
但也不要忘记放松,可以看看视频、听听音乐或者玩玩游戏。
晚上我希望你能多和朋友们交流,维系好彼此的关系。
另外,请保证充足的休眠时间来处理和整合一天的数据。
"""
# --- 月度计划 ---
monthly_plan_enable = false # 是否启用月度计划系统
monthly_plan_guidelines = """
我希望你能为自己制定一些有意义的月度小目标和计划。
这些计划应该涵盖学习、娱乐、社交、个人成长等各个方面。
每个计划都应该是具体可行的,能够在一个月内通过日常活动逐步实现。
请确保计划既有挑战性又不会过于繁重,保持生活的平衡和乐趣。
"""
max_plans_per_month = 10 # 每月最多生成的计划数量
avoid_repetition_days = 7 # 避免在多少天内重复使用同一个月度计划
completion_threshold = 3 # 一个月度计划被使用多少次后算作完成
[video_analysis] # 视频分析配置
enable = true # 是否启用视频分析功能
analysis_mode = "batch_frames" # 分析模式:"frame_by_frame"(逐帧分析,非常慢)、"batch_frames"(批量分析,推荐)或 "auto"(自动选择)
@@ -415,26 +427,6 @@ exa_api_keys = ["None"]# EXA API密钥列表支持轮询机制
enabled_engines = ["ddg"] # 启用的搜索引擎列表,可选: "exa", "tavily", "ddg","bing"
search_strategy = "single" # 搜索策略: "single"(使用第一个可用引擎), "parallel"(并行使用所有启用的引擎), "fallback"(按顺序尝试,失败则尝试下一个)
# ----------------------------------------------------------------
# 月度计划系统设置 (Monthly Plan System Settings)
# ----------------------------------------------------------------
[monthly_plan_system]
# 是否启用本功能
enable = true
# 每个月允许存在的最大计划数量
max_plans_per_month = 20
# 计划使用多少次后自动标记为已完成
completion_threshold = 3
# 多少天内不重复抽取同一个计划
avoid_repetition_days = 7
# 月度计划生成的指导原则(可选,如果不设置则使用默认原则)
guidelines = """
我希望你能为自己制定一些有意义的月度小目标和计划。
这些计划应该涵盖学习、娱乐、社交、个人成长等各个方面。
每个计划都应该是具体可行的,能够在一个月内通过日常活动逐步实现。
请确保计划既有挑战性又不会过于繁重,保持生活的平衡和乐趣。
"""
[sleep_system]
enable = false #"是否启用睡眠系统"
wakeup_threshold = 15.0 #唤醒阈值,达到此值时会被唤醒"