Commit Graph

98 Commits

Author SHA1 Message Date
雅诺狐
95fc44e067 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-09-13 23:20:45 +08:00
minecraft1024a
9f084338dc refactor(core): 延迟初始化知识库并优化导入结构
将LPMM知识库的初始化逻辑封装到`initialize_lpmm_knowledge`函数中,并将其调用移至`main.py`,以实现延迟加载并改善启动流程。

为了解决循环导入问题,将`component_registry`的导入移至`BaseAction.call`方法内部。
2025-09-12 21:12:13 +08:00
tt-P607
1c7053b2f0 Merge branch 'dev' 2025-09-09 09:46:36 +08:00
Windpicker-owo
02a636a8ce plugin_name改为permission_group 2025-09-07 19:03:42 +08:00
Windpicker-owo
028e4d1d21 Merge pull request #2 from MoFox-Studio/dev
merge Dev
2025-09-07 16:15:55 +08:00
雅诺狐
415b972c48 遥测 2025-09-07 12:20:49 +08:00
雅诺狐
c1cb7aafea 更新遥测 2025-09-07 12:16:11 +08:00
Windpicker-owo
742b47c099 fix:修复插件组件无法正确获取插件配置的问题 2025-09-06 20:39:59 +08:00
minecraft1024a
9bbf801bd9 feat(规划): 引入统一的规划系统并重构组件
本次提交引入了一个全新的统一规划系统,取代了独立的日程和月度计划模块。这一变更集中了配置并解耦了职责,以提高可维护性和清晰度。

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

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

重大变更: bot_config.toml 中的配置已被迁移。移除了 [schedule] 和 [monthly_plan_system] 部分。所有相关设置现在必须在新的 [planning_system] 部分下进行配置。
2025-09-06 11:41:42 +08:00
minecraft1024a
513757a8ee chore: format code and remove redundant blank lines
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-09-05 20:58:03 +08:00
minecraft1024a
57e5244b1f refactor(main): 移除多余的ImportError异常处理 2025-09-05 17:52:27 +08:00
minecraft1024a
42088670b3 refactor(memory): 使用模拟对象替代条件判断来处理禁用的内存系统
通过引入一个`MockHippocampusManager`类,当内存系统在配置中被禁用时,它将提供一个与真实管理器接口相同的模拟对象。这消除了在代码中散布的多个`if global_config.memory.enable_memory:`条件检查。

这种重构简化了`MainSystem`类中的初始化和任务调度逻辑,使得代码更加清晰和易于维护,因为现在可以无条件地调用内存系统的方法,而不用担心它是否被启用。
2025-09-05 17:51:11 +08:00
Windpicker-owo
53e72ecbdb 迁移:1f91967(remove:移除willing系统,移除reply2,移除能量值,移除reply_to改为message) 2025-09-03 21:27:28 +08:00
Windpicker-owo
30e66d5938 Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-31 20:56:35 +08:00
Windpicker-owo
8149731925 修复代码格式和文件名大小写问题 2025-08-31 20:50:17 +08:00
minecraft1024a
e2a2d102e0 refactor(schedule): 优化月度计划与日程的生成逻辑
将月度计划和每日日程的生成流程从异步非阻塞任务改为同步阻塞模式。这确保了在需要计划数据时,生成过程会先完成,从而避免了因数据未及时生成而导致的潜在问题。

主要变更:
- `ScheduleManager`: 在加载日程失败或数据不存在时,直接调用并等待日程生成,而不是创建一个后台任务。
- `ScheduleManager`: 当日程生成过程中发现月度计划不足时,会直接调用并等待月度计划生成完成,然后再继续。
- `MonthlyPlanManager`: 简化了生成逻辑,移除了原有的非阻塞触发方法 `trigger_generate_monthly_plans`,统一为同步执行的 `generate_monthly_plans`。
- `monthly_plan_db`: 在查询月度计划时增加了按创建时间降序排序,以支持更可靠地删除多余计划。
- `main.py`: 移除了对已不存在的 `ImportError` 的处理。
2025-08-31 13:06:06 +08:00
Windpicker-owo
2e2fd90497 feat(plugin-system): 添加事件触发和订阅的白名单机制
为事件系统添加权限控制功能,包括:
- 在BaseEvent中新增allowed_subscribers和allowed_triggers白名单字段
- 事件管理器触发和订阅时进行白名单验证
- 为所有系统默认事件设置仅允许SYSTEM插件触发
- 在所有事件触发调用处显式传递plugin_name="SYSTEM"参数

确保只有授权插件可以触发特定事件和订阅处理器,增强系统安全性。
2025-08-28 18:25:33 +08:00
tt-P607
ff1007049d Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot 2025-08-27 20:00:18 +08:00
tt-P607
00dc0ce5a8 refactor: rename project from MaiMbot-Pro-Max to MoFox_Bot
This commit renames the project from "MaiMbot-Pro-Max" to "MoFox_Bot" across the entire codebase. The change reflects the new project identity and ownership under the MoFox-Studio organization.

Key changes include updating:
- EULA and README documentation
- Project URLs and repository links
- Startup messages and display names
- Plugin manifest metadata
2025-08-27 19:59:10 +08:00
minecraft1024a
d06cfe3a36 refactor(schedule): 重构日程与月度计划管理模块
将 `schedule_manager` 和 `monthly_plan_manager` 从 `src/manager` 移动到 `src/schedule` 目录,以更好地组织与日程和计划相关的功能。

主要变更:
- 将 `schedule_manager` 和 `monthly_plan_manager` 移动到新的 `src/schedule` 目录。
- 更新了所有对这两个模块的导入路径,以反映新的文件位置。
- 删除了旧的 `src/manager` 目录下的模块文件。
- `monthly_plan_manager` 内部实现被重构,取代了原有的 `plan_generator.py`,简化了计划生成逻辑。
2025-08-27 19:46:01 +08:00
minecraft1024a
cbd115efdb feat(monthly_plan): 增强月度计划系统,引入状态管理和智能抽取
对月度计划系统进行了全面的重构和功能增强,以提供更智能、更可持续的计划管理体验。

主要变更包括:
- **引入状态生命周期**: 废弃了原有的 `is_deleted` 软删除标记,引入了更明确的 `status` 字段 (`active`, `completed`, `archived`),用于管理计划的整个生命周期。
- **增加使用统计与自动完成**: 新增 `usage_count` 和 `last_used_date` 字段来跟踪计划的使用情况。当计划使用次数达到可配置的阈值后,会自动标记为 `completed`。
- **实现智能计划抽取**: 为每日日程生成实现了新的智能抽取算法。该算法会优先选择使用次数较少且近期未被使用的计划,以增加计划的多样性并避免重复。
- **更新配置选项**: 移除了旧的概率删除相关配置,增加了 `completion_threshold`、`avoid_repetition_days` 等新选项以支持新逻辑。
- **数据库模型更新**: 更新了 `MonthlyPlan` 的数据库模型和索引,以支持新功能并优化查询性能。保留 `is_deleted` 字段以兼容旧数据。
2025-08-26 19:19:53 +08:00
Windpicker-owo
5a6415b5fd Merge branch 'master' into migrate-windpicker-changes 2025-08-25 17:47:50 +08:00
Windpicker-owo
cbf9a21c1f event重构暂时完成,待测试 2025-08-25 17:46:23 +08:00
雅诺狐
0bcc0ba8b5 feat: 添加视频处理多线程优化和消息切片重组功能
- 新增视频帧提取的线程池支持,提升大视频文件处理性能
- 集成消息切片重组器,支持长消息的自动重组处理
- 优化视频帧提取算法,使用numpy进行数值计算优化
- 重构权限管理插件,修复属性访问和方法签名问题
- 清理未使用的导入和代码,提升代码质量
- 默认启用插件管理功能
2025-08-25 16:16:33 +08:00
雅诺狐
f308adcf5b refactor: 清理代码质量和移除未使用文件
- 移除未使用的导入语句和变量
- 修复代码风格问题(空格、格式化等)
- 删除备份文件和测试文件
- 改进异常处理链式调用
- 添加权限系统数据库模型和配置
- 更新版本号至6.4.4
- 优化SQL查询使用正确的布尔表达式
2025-08-24 22:11:20 +08:00
Furina-1013-create
980221d589 异步记忆系统优化 & Action组件修复
主要改进:
1. 异步记忆系统优化 - 解决记忆操作阻塞主程序问题
   - 新增异步记忆队列管理器 (async_memory_optimizer.py)
   - 新增异步瞬时记忆包装器 (async_instant_memory_wrapper.py)
   - 优化主程序记忆构建任务为后台非阻塞执行
   - 优化消息处理器记忆调用,增加超时保护和回退机制

2. Action组件修复 - 解决'未找到Action组件: no_reply'问题
   - 修复no_reply动作激活类型配置错误
   - 新增reply回退动作 (reply.py)
   - 增强planner.py动作选择回退机制
   - 增强cycle_processor.py动作创建回退机制
2025-08-22 13:16:19 +08:00
minecraft1024a
74ec33580a fix:修复了某人加提示忘了加,的问题 #你加的提示出语法问题来了😡😡😡😡😡😡😡 2025-08-21 15:42:23 +08:00
雅诺狐
249ca4592a 添加提示内容 2025-08-21 15:36:47 +08:00
Furina-1013-create
8670fd15f8 移除昨天晚上那两个混提交的入写的注释,并修正下面一个彩蛋的错别字 模 -> 摸 2025-08-21 13:35:53 +08:00
Furina-1013-create
37099d6f85 不知道写什么了
总之就是改用科学计算库来替代之前的算法以提高速度,然后解决了一个conflict后我文件暂存区多了一堆文件,看了一下好像就是前面两个commit的修改
2025-08-21 13:21:49 +08:00
Furina-1013-create
fca9f5191b 改用科学计算库来替代之前的算法以提高速度
不知道写什么了 总之就是改用科学计算库来替代之前的算法以提高速度,然后解决了>一个conflict后我文件暂存区多了一堆文件,看了一下好像就是前面两个commit的修改#
2025-08-21 13:18:50 +08:00
minecraft1024a
b1b08c1814 feat:添加了月度计划 # 我要混提交 2025-08-21 12:32:48 +08:00
ikun两年半
2c374cadf0 有一个人也混了一个提交喵~ 2025-08-21 00:02:57 +08:00
Furina-1013-create
91037c01bd 不行我今天必须混一个提交() 2025-08-20 23:55:41 +08:00
ikun-11451
473e7b3f28 修改了版本号喵~ 2025-08-20 03:10:15 +08:00
minecraft1024a
717b7e783f ~~哎呀,主人,你又在乱改代码了。这次的修改还真是……微妙呢。算了,看在你这么努力的份上,本小姐就帮你写个像样点的 commit message 吧。拿去用,不谢。~~
refactor(easter_egg): 简化彩蛋实现并移除未使用的选项

- 移除了 `bot.py` 中 `easter_egg` 函数内的加权随机选择逻辑,现在固定显示一个彩蛋。
- 删除了两个未被使用的彩蛋文本。
- 在 `src/main.py` 中为 `zip` 函数调用添加了 `strict=True` 参数,以增强代码的健壮性,确保彩蛋文本和权重列表长度严格匹配。
2025-08-19 12:33:01 +08:00
minecraft1024a
1b2c5393e5 refactor(utils): 移除自定义加权随机函数并改用 random.choices
将原先在 `bot.py` 中实现的 `weighted_choice` 函数移除,并在 `src/main.py` 中改用 Python 内置的 `random.choices` 函数来实现启动时彩蛋的加权随机选择。

这一更改简化了代码,提高了可读性,并利用了标准库的优化实现。同时调整了彩蛋文本和对应的权重。
2025-08-19 12:15:24 +08:00
雅诺狐
5e91f9ef5f Remove unused imports across multiple modules
Cleaned up various files by removing unused or redundant import statements to improve code readability and reduce potential confusion. No functional changes were made.
2025-08-19 11:55:24 +08:00
minecraft1024a
51c0d2a1e8 refactor(cache): 重构缓存系统为分层语义缓存
将原有的基于文件的 `ToolCache` 替换为全新的 `CacheManager`,引入了更复杂和高效的分层语义缓存机制。

新系统特性:
- **分层缓存**:
  - L1 缓存: 内存字典 (KV) + FAISS (向量),用于极速访问。
  - L2 缓存: SQLite (KV) + ChromaDB (向量),用于持久化存储。
- **语义缓存**: 利用嵌入模型 (Embedding) 对查询进行向量化,实现基于语义相似度的缓存命中,显著提高了缓存命中率。
- **自动失效**: 缓存键包含工具源代码的哈希值,当工具代码更新时,相关缓存会自动失效,避免了脏数据问题。
- **异步支持**: 缓存的 `get` 和 `set` 方法现在是异步的,以适应项目中异步化的工具调用流程。

`web_search_tool` 已更新以使用新的 `CacheManager`,在调用缓存时传递 `tool_class` 和 `semantic_query` 以充分利用新功能。

Co-Authored-By: tt-P607 <68868379+tt-P607@users.noreply.github.com>
2025-08-17 22:18:26 +08:00
minecraft1024a
4dcb7fbecf feat(core): 启动时增加随机小贴士
在系统初始化完成后的启动信息中,增加了一个随机显示的小贴士(彩蛋)功能。
每次启动时会从预设的短语列表中随机选择一条进行展示,增加趣味性。
2025-08-17 19:31:02 +08:00
minecraft1024a
4512b3f9f1 feat(schedule): 新增每日零点自动生成日程任务
新增一个后台异步任务,用于在每日零点自动为新的一天生成日程表。
此功能通过 `AsyncTask` 实现,在程序启动时初始化并启动一个循环任务。该任务会计算到下一个零点的时间并等待,然后在零点触发新的日程生成和保存流程,确保日程表能够每日自动更新。
2025-08-17 15:38:07 +08:00
雅诺狐
78417e254a 移除遥测 2025-08-17 14:17:41 +08:00
雅诺狐
0400804056 移除了MCP 2025-08-14 23:13:11 +08:00
雅诺狐
d5777c2980 添加了MCP SEE支持
能不能用我不知道,先加进来。主要我没有服务,无法测试
2025-08-14 17:22:07 +08:00
minecraft1024a
5f7f68f640 重构日程管理模块,将原有的schedule_manager模块迁移至manager目录,并更新相关引用。同时优化了定时任务管理逻辑,确保基于日程的发送功能正常运作,改进了日志记录和活动处理机制(OK兄弟们全体目光向我看齐,看我看我,我是个sb) 2025-08-14 12:40:58 +08:00
minecraft1024a
f2af81bb4e 在系统初始化完成时,添加了MaiMbot-Pro-Max的相关信息和项目链接,更新了欢迎信息以包含社区改版的说明。 2025-08-13 11:16:43 +08:00
minecraft1024a
3bbb6de450 feat: 添加日程管理功能,包括日程模型、配置和初始化逻辑,增强聊天回复中对当前活动的动态反馈。 2025-08-12 16:59:21 +08:00
雅诺狐
2d4745cd58 初始化 2025-08-11 19:34:18 +08:00