Commit Graph

32 Commits

Author SHA1 Message Date
Windpicker-owo
2e2fd90497 feat(plugin-system): 添加事件触发和订阅的白名单机制
为事件系统添加权限控制功能,包括:
- 在BaseEvent中新增allowed_subscribers和allowed_triggers白名单字段
- 事件管理器触发和订阅时进行白名单验证
- 为所有系统默认事件设置仅允许SYSTEM插件触发
- 在所有事件触发调用处显式传递plugin_name="SYSTEM"参数

确保只有授权插件可以触发特定事件和订阅处理器,增强系统安全性。
2025-08-28 18:25:33 +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
5076410a00 Reapply "【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询..."
This reverts commit 3d93bc4079.
2025-08-27 17:58:18 +08:00
Windpicker-owo
3d93bc4079 Revert "【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询..."
This reverts commit 80ab0c687c.
2025-08-27 12:46:00 +08:00
Windpicker-owo
80ab0c687c 【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询... 2025-08-27 11:04:20 +08:00
Windpicker-owo
38fba02e36 修复双引号问题 2025-08-26 20:20:25 +08:00
tt-P607
3117aa58b9 feat(config): 优化视频分析并引入可配置的提示词
将视频分析的提示词从硬编码字符串修改为从全局配置中读取,提高了灵活性和可维护性。同时,在生成回复时注入了新的引导语,使AI能以第一人称分享观后感,优化了用户体验。
2025-08-25 19:59:30 +08:00
tt-P607
469e0f38a5 Merge branch 'master' of https://github.com/MaiBot-Plus/MaiMbot-Pro-Max 2025-08-25 19:23:25 +08:00
tt-P607
0b237bcab1 修改了提示词,现在bot不会认为自己看的是视频分析,而是自己看的了 2025-08-25 19:22:28 +08:00
Windpicker-owo
38c5ceddb8 Merge branch 'master' of https://github.com/MaiBot-Plus/MaiMbot-Pro-Max 2025-08-25 19:12:31 +08:00
Windpicker-owo
272f48299a 修复post_llm,以及event使用说明 2025-08-25 19:12:26 +08:00
tt-P607
75b878d692 refactor(chat): 统一事件触发器中的stream_id来源
将`cycle_processor`中事件触发的`stream_id`来源从`self.chat_stream.stream_id`更改为`self.context.stream_id`,以保持代码库中的一致性。

在`default_generator.py`中初始化了`llm_response`变量,以避免潜在的引用前赋值错误。
2025-08-25 19:09:04 +08:00
Windpicker-owo
cbf9a21c1f event重构暂时完成,待测试 2025-08-25 17:46:23 +08:00
tt-P607
71e607fb67 refactor(prompt): 优化prompt,增强回复多样性
统一并加强了关于避免重复回复的指令,将原有描述更新为“不要复读你前面发过的内容,意思相近也不行”,以提升生成回复的多样性。(其实是不知道干什么就随便来混个提交了(叉掉),不不不不能叫混,算是一个小小小小小小问题吧😋
2025-08-22 16:03:50 +08:00
minecraft1024a
5c7bdfb069 refactor(chat): 优化跨群聊上下文构建与代码格式
对 `default_generator.py` 进行了多项重构和优化:
- 将跨群聊上下文的构建逻辑移入独立的 `_build_cross_context_block` 方法,并在主流程中异步并行执行,提高了代码的模块化和执行效率。
- 全面清理了代码中的多余空行和不一致的间距,提升了代码的可读性和一致性。
- 调整了 `NoReplyAction` 和 `ReplyAction` 的 `mode_enable` 配置,使其行为更符合预期。
2025-08-22 13:37:59 +08:00
minecraft1024a
365411dc53 Merge branch 'master' of https://github.com/MaiBot-Plus/MaiMbot-Pro-Max 2025-08-22 13:24:27 +08:00
minecraft1024a
2b8ed74a78 feat(chat): 引入跨群聊上下文共享功能
该功能允许在不同但相关的群聊之间共享对话上下文,从而提供更连贯和情境感知的回复。

主要实现方式:
- 在配置文件中引入 `cross_context` 部分,允许用户定义“共享组”,将多个群聊ID(原始ID)归入一组。
- 新增 `_build_cross_context_block` 方法,用于构建并注入到Prompt中。
- 支持两种上下文获取模式:
  - `normal` 模式:获取共享组内其他群聊的最新消息。
  - `s4u` 模式:获取当前发言用户在共享组内其他群聊的近期发言记录。
- 更新了Prompt模板以包含新的 `cross_context_block`。
- 提供了相应的配置模板和版本号更新。
2025-08-22 13:24:23 +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
4f7836ae0c feat(sleep): 引入休眠阶段消息唤醒机制与愤怒情绪模式
- 扩展日程休眠逻辑,支持在睡眠时段通过@/私聊唤醒
- 新增 WakeUpManager 持续追踪唤醒阈值并触发愤怒状态
- MoodManager 中追加“被吵醒”情绪标识与愤怒提示模板
- HeartFChat 主循环集成唤醒处理管线,兼容原逻辑
- 配置中心开放阈值、衰减、持续时间等可调参数

此举允许机器人即便在“睡觉”时也能被重要消息强行“闹醒”,并以生气口吻做出回应,提升拟人化交互体验。
2025-08-21 16:19:34 +08:00
minecraft1024a
0364c38152 refactor(memory): 移除混合记忆模型,全面转向向量化瞬时记忆
删除了 `HybridInstantMemory` 模块及其复杂的策略判断、同步和检索逻辑。此举旨在简化记忆系统的架构,统一采用 `VectorInstantMemoryV2` 作为唯一的瞬时记忆解决方案。(虽然我也不知道效果好不好反正先转了再说,因为基于大模型的瞬时记忆有那么一点点慢)
2025-08-19 20:15:42 +08:00
minecraft1024a
f2c46d0d1d refactor(memory): 重构瞬时记忆为全量向量化存储模型
新系统采用“全量存储,定时清理”的设计理念,将所有聊天消息向量化并存入ChromaDB。通过后台线程定时清理过期消息,取代了之前基于“重要性模式”判断是否记忆的复杂逻辑。

主要变更:
- **全量存储**: 不再进行前置判断,所有消息均被向量化存储,简化了记忆创建流程。
- **定时清理**: 引入基于`threading`的后台任务,根据设定的`retention_hours`自动清理过期记忆,确保系统轻量高效。
- **简化检索**: 检索逻辑更新为直接查询相似消息,并增加了相似度阈值过滤和时间差格式化,提高了上下文的准确性和可读性。

在 `DefaultReplyer` 中,已切换至新的 `HybridInstantMemory`(其底层实现为V2),并优化了记忆上下文的构建逻辑,使其能更稳定地处理不同类型的记忆返回结果。
2025-08-19 19:56:56 +08:00
minecraft1024a
ac542f1e71 feat(memory): 引入基于向量的瞬时记忆系统
用基于 ChromaDB 和向量相似度的新瞬时记忆系统取代了原有的实现。此更改旨在提高记忆创建和检索的准确性和相关性。

主要变更:
- **向量化重要性判断**: 放弃了原有的 LLM 判断方法,通过将聊天记录与预定义的“重要性模式”进行向量相似度比较,来决定是否创建记忆。
- **高效去重**: 在存储新记忆之前,通过向量相似度检查,有效避免了内容重复。
- **精准检索**: 利用向量搜索,根据用户当前输入检索最相关的记忆,提高了上下文的连贯性。
- **双重存储**: 为了保持系统兼容性,记忆同时存储在 ChromaDB 向量数据库和现有的 SQLAlchemy 数据库中。
- **代码集成**: 在 `DefaultReplyer` 中将 `InstantMemory` 的实现切换为新的 `VectorInstantMemory`。
2025-08-19 18:48:10 +08:00
minecraft1024a
5ef9a42f78 refactor(chat): 禁用工具执行器的缓存功能(因为这玩意真的没几次命中过的) 2025-08-19 12:06:00 +08:00
minecraft1024a
5f7f68f640 重构日程管理模块,将原有的schedule_manager模块迁移至manager目录,并更新相关引用。同时优化了定时任务管理逻辑,确保基于日程的发送功能正常运作,改进了日志记录和活动处理机制(OK兄弟们全体目光向我看齐,看我看我,我是个sb) 2025-08-14 12:40:58 +08:00
minecraft1024a
36e937a57a 更新时间戳显示模式,在消息回复和规划器规划时:消息将显示完整日期 (如: 2024-01-15 14:30:22) 2025-08-13 21:19:30 +08:00
minecraft1024a
8a538cd0c0 更新聊天响应逻辑,优化消息针对性判断,避免无意义参与;同时在提示中增加针对性分析规则以提升对话质量。 2025-08-13 20:55:51 +08:00
雅诺狐
a42be7b5ae 格式化了一下代码 2025-08-13 18:38:06 +08:00
minecraft1024a
15562db2d6 将日志级别从info更改为debug,以减少日志输出的冗余,优化调试信息的记录。 2025-08-13 10:43:42 +08:00
minecraft1024a
bc50bb35b5 新增0.9之前的Prompt模板,支持选择Prompt模式(s4u或normal),并更新相关配置文件以适应新功能。 2025-08-13 10:40:08 +08:00
minecraft1024a
3bbb6de450 feat: 添加日程管理功能,包括日程模型、配置和初始化逻辑,增强聊天回复中对当前活动的动态反馈。 2025-08-12 16:59:21 +08:00
minecraft1024a
df9ca109c6 fix;优化Web搜索工具和URL解析工具的API Key处理逻辑,确保API Key为有效字符串并添加相应的警告日志。同时,增强URL输入处理,支持字符串和列表格式,确保有效URL的提取和验证。(同时改了一点reply提示词) 2025-08-12 16:23:16 +08:00
雅诺狐
2d4745cd58 初始化 2025-08-11 19:34:18 +08:00