Commit Graph

44 Commits

Author SHA1 Message Date
minecraft1024a
6b7c9b5572 feat(proactive_thinking): 实现一半并重构主动思考功能
重构了主动思考插件的底层逻辑,将其拆分为两个独立的后台任务,以实现更精细和人性化的主动交互策略。

- **`ColdStartTask` (破冰任务)**:
  - 专门处理在私聊白名单中但从未有过交互的用户。
  - 任务启动时,会扫描白名单,为新用户主动创建聊天流并发起初次问候,实现“破冰”效果。
  - 解决了之前版本无法主动与全新用户建立联系的问题。

- **`ProactiveThinkingTask` (日常唤醒任务)**:
  - 负责维护现有聊天流的活跃度。
  - 采用动态间隔机制,结合基础间隔、随机扰动和每日不同时段的活跃度因子,模拟更自然的聊天发起时机。
  - 持续监控已建立的聊天,在对话冷却后适时地重新发起话题。

- **配置结构优化**:
  - 在 `bot_config_template.toml` 中新增了 `[proactive_thinking]` 配置节,统一管理所有相关配置。
  - 提供了更清晰的选项,如总开关、冷启动开关、白名单设置等,提升了易用性和可配置性。
  - 修正了 `config.py` 中错误的字段名 (`ProactiveThinking` -> `proactive_thinking`),确保与配置文件一致。
2025-10-02 11:04:45 +08:00
minecraft1024a
62d0498ea2 加入了尚未完成或者说根本就没做de主动思考 2025-10-01 22:00:26 +08:00
Windpicker-owo
ff24bd8148 Merge afc branch into dev, prioritizing afc changes and migrating database async modifications from dev 2025-09-27 23:37:40 +08:00
minecraft1024a
9c1a7ff123 ruff 2025-09-26 20:16:46 +08:00
Windpicker-owo
a2baec088e feat(chat): 实现动态消息分发系统和消息打断机制
添加基于focus_energy的动态消息分发周期调整功能,根据聊天流兴趣度智能调整检查间隔
实现消息打断系统,允许高优先级消息打断正在处理的任务
重构ChatStream类,引入动态兴趣度计算系统,包括消息兴趣度统计和用户关系评分
扩展数据库模型和配置系统以支持新功能,增加相关配置项
更新版本号至0.11.0-alpha-1以反映重大功能更新
2025-09-25 17:14:01 +08:00
minecraft1024a
a6b6acc1a6 feat(config): 自动移除更新中已废弃的配置项
在版本更新过程中,新增一个步骤来对比用户配置与最新的模板文件。

此变更会自动删除用户配置文件中所有在模板中不再存在的键,以保持配置的整洁性,并防止因过时的配置项导致潜在的兼容性问题或混淆。
2025-09-23 16:13:00 +08:00
Windpicker-owo
444f1ca315 ruff,私聊视为提及了bot 2025-09-20 22:34:22 +08:00
雅诺狐
898208f425 perf(methods): 通过移除不必要的 self 参数优化方法签名
在包括 chat、plugin_system、schedule 和 mais4u 在内的多个模块中,消除冗余的实例引用。此次改动将无需访问实例状态的实用函数转换为静态方法,从而提升了内存效率,并使方法依赖关系更加清晰。
2025-09-20 10:55:06 +08:00
Windpicker-owo
96e4dc2946 feat(affinity-flow): 重构亲和流配置系统
将硬编码的兴趣度评分参数迁移到集中式配置管理,新增AffinityFlowConfig配置类
- 从全局配置加载评分权重、阈值和计算参数
- 统一管理匹配奖励、关系分数和提及bot相关配置
- 更新配置文件模板包含完整的亲和流参数
- 确保各模块使用一致的配置值而非硬编码常量
2025-09-19 13:16:45 +08:00
雅诺狐
fc78ec88d5 refactor(config): 简化EULA验证并统一环境变量配置管理
- 重构EULA验证机制,从复杂的文件哈希验证改为简单的环境变量验证
- 统一host和port配置,优先从环境变量读取而非配置文件
- 移除ServerConfig配置类,简化配置结构
- 添加.env文件自动创建和管理功能
- 更新相关模板和文档注释
2025-09-14 10:35:14 +08:00
minecraft1024a
ebb575ec53 refactor(config): 移除.env依赖并引入服务器配置模型
将项目配置系统从依赖.env文件和环境变量迁移到使用Pydantic模型进行集中管理。此举通过移除`python-dotenv`库简化了环境设置,并提高了配置的类型安全性和可维护性。

主要变更包括:
- 移除`bot.py`中的.env加载逻辑。
- 新增`ServerConfig`模型来管理服务器的主机和端口。
- 更新`src/common/server.py`和`src/common/message/api.py`以从全局配置对象获取服务器设置,取代了`os.environ`。
- 从配置中移除了已废弃的`MaizoneIntercomConfig`。
- 在`bot_config_template.toml`中添加了新的`[server]`配置部分。
2025-09-12 19:04:27 +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
Windpicker-owo
18a57d0a74 更新版本 2025-09-03 21:37:04 +08:00
Windpicker-owo
ee15f45559 typing和防炸 2025-09-03 21:36:22 +08:00
Windpicker-owo
8149731925 修复代码格式和文件名大小写问题 2025-08-31 20:50:17 +08:00
minecraft1024a
7cb5c3844e refactor(plugin): 优化插件配置加载与同步机制
- 移除全局插件配置开关 `plugins.centralized_config`。
- 简化 `PluginBase` 的配置加载逻辑,不再使用模板文件,而是直接在中央配置目录生成默认配置。
- 在 `PluginManager` 中增加配置同步逻辑,在加载插件时,实现插件目录与中央配置目录之间的双向同步,确保配置一致性。
- 更新 `bot_config_template.toml`,移除已废弃的 `[plugins]` 配置项并提升版本号。
2025-08-30 11:21:26 +08:00
minecraft1024a
a485aaf4ad refactor(config): rename wakeup_system to sleep_system for clarity
This commit refactors the entire "wakeup system" to be named "sleep system". This change provides a more intuitive and accurate name for the functionality, which manages the AI's sleep cycles, sleep pressure, and related behaviors like insomnia and flexible sleep schedules.

The renaming has been applied consistently across all relevant files, including:
- Configuration models (`WakeUpSystemConfig` -> `SleepSystemConfig`)
- Configuration files (`bot_config_template.toml`)
- Core application logic that references these configurations.

Additionally, flexible sleep and pre-sleep notification settings have been moved from the `ScheduleConfig` to the new `SleepSystemConfig` to centralize all sleep-related parameters.
2025-08-29 13:56:24 +08:00
tt-P607
d072cde01b fix(config): 为实验性功能配置添加默认值
为 `experimental` 配置项设置 `default_factory`,确保在配置文件中未提供该项时,程序能够正常初始化并使用默认配置,避免因缺少配置而引发的启动错误。
2025-08-27 23:31:46 +08:00
雅诺狐
1d48478e79 Add PlusCommand enhanced command system
Introduces the PlusCommand system for simplified command development, including new base classes, argument parsing utilities, and registration logic. Updates the plugin system, component registry, and bot message handling to support PlusCommand components alongside traditional commands. Adds documentation and configuration for command prefixes, and provides a developer guide for the new system.
2025-08-27 22:21:03 +08:00
minecraft1024a
2db42292d2 refactor(config): 整合搜索服务配置并移除废弃选项
将原先独立的 Exa 和 Tavily 搜索引擎配置项合并到 `web_search` 配置块中,以实现更统一的管理。同时,移除了已废弃的 `Telemetry` 和部分 `Experimental` 功能配置,简化了整体配置文件结构。

主要变更:
-   `ExaConfig` 和 `TavilyConfig` 被移除,其 API 密钥设置已迁移至 `WebSearchConfig`。
-   删除了 `TelemetryConfig` 及其在主配置中的引用。
-   简化了 `planner` 的自定义提示词逻辑,现在仅通过内容是否为空来判断是否启用。
-   更新了配置文件模板,以反映上述结构调整并移除过时的注释和配置项。
2025-08-26 21:10:06 +08:00
minecraft1024a
1e037e5ce9 feat(maizone): 新增QQ空间互通组功能,根据聊天上下文生成说说
引入了全新的“QQ空间互通组”功能。用户可以配置多个群聊为一个互通组。
在通过指令发布说说时,系统会自动获取这些群聊的近期聊天记录作为上下文,从而生成与当前讨论话题更相关的说说内容。

- 在 `config.toml` 中新增了 `[maizone_intercom]` 配置项用于定义互通组。
- 重构并增强了动态(说说)的拉取逻辑,提高了对不同数据格式的兼容性和解析的稳定性。
- 对项目中的多个文件进行了代码清理,移除了未使用的导入,使代码更加整洁。
2025-08-26 20:20:54 +08:00
雅诺狐
f308adcf5b refactor: 清理代码质量和移除未使用文件
- 移除未使用的导入语句和变量
- 修复代码风格问题(空格、格式化等)
- 删除备份文件和测试文件
- 改进异常处理链式调用
- 添加权限系统数据库模型和配置
- 更新版本号至6.4.4
- 优化SQL查询使用正确的布尔表达式
2025-08-24 22:11:20 +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
雅诺狐
6facc51e7f 更新版本号为alpha 2025-08-22 09:19:47 +08:00
minecraft1024a
4f7836ae0c feat(sleep): 引入休眠阶段消息唤醒机制与愤怒情绪模式
- 扩展日程休眠逻辑,支持在睡眠时段通过@/私聊唤醒
- 新增 WakeUpManager 持续追踪唤醒阈值并触发愤怒状态
- MoodManager 中追加“被吵醒”情绪标识与愤怒提示模板
- HeartFChat 主循环集成唤醒处理管线,兼容原逻辑
- 配置中心开放阈值、衰减、持续时间等可调参数

此举允许机器人即便在“睡觉”时也能被重要消息强行“闹醒”,并以生气口吻做出回应,提升拟人化交互体验。
2025-08-21 16:19:34 +08:00
minecraft1024a
b1b08c1814 feat:添加了月度计划 # 我要混提交 2025-08-21 12:32:48 +08:00
雅诺狐
3dfb138d2c 修复硬编码错误 2025-08-19 18:00:41 +08:00
tt-P607
7dabc4273d 修复AttributeError异常**:
- 在ChatConfig中添加get_current_talk_frequency()方法
   - 在ExpressionConfig中添加get_expression_config_for_chat()方法,但是模型配置文件依旧被架空力😭😭😭我解决不了,帮帮我!雅诺狐姐姐!😭😭😭
2025-08-19 17:35:47 +08:00
雅诺狐
1405b50d5a Refactor config system to use Pydantic validation
Refactored configuration classes to inherit from a new ValidatedConfigBase using Pydantic for robust validation and error reporting. Updated api_ada_configs.py, config.py, config_base.py, and official_configs.py to replace dataclasses with Pydantic models, add field validation, and improve error messages. This change enhances configuration reliability and developer feedback for misconfigurations. Also includes minor code cleanups and removal of unused variables in other modules.
2025-08-19 15:33:43 +08:00
雅诺狐
f3958ef484 Merge branch 'master' of https://github.com/MaiBot-Plus/MaiMbot-Pro-Max 2025-08-18 17:29:32 +08:00
雅诺狐
689aface9d Add LLM anti-prompt injection system
Introduces a comprehensive anti-prompt injection system for LLMs, including rule-based and LLM-based detection, user ban/whitelist management, message shielding, and statistics tracking. Adds new modules under src/chat/antipromptinjector, integrates anti-injection checks into the message receive flow, updates configuration and database models, and provides test scripts. Also updates templates and logger aliases to support the new system.
2025-08-18 17:27:59 +08:00
minecraft1024a
3b3eb080da feat(plugin): 实现插件配置集中化管理
将插件配置文件从各自的插件目录迁移至项目根目录下的 `config/plugins/` 文件夹中,方便用户统一管理和修改。

主要变更:
- 新增 `plugins.centralized_config` 总开关,用于控制是否启用此功能。
- 修改插件加载逻辑,现在会从 `config/plugins/<plugin_name>/` 目录读取用户配置。
- 如果用户配置不存在,会自动从插件目录下的模板配置文件复制一份。
- 保留了原有的配置版本检查和自动迁移功能,现在作用于用户配置文件。
2025-08-18 13:00:13 +08:00
minecraft1024a
cd3ccba8ad refactor(core): 调整数据库初始化时机
将数据库的初始化、表结构创建和自动迁移逻辑从配置文件加载时移动到主程序 `raw_main` 函数中。

这一改动旨在解决循环导入问题,并确保数据库在所有配置和核心模块加载完毕后才进行初始化,提高了程序的启动鲁棒性和模块独立性。
2025-08-17 15:59:56 +08:00
雅诺狐
0400804056 移除了MCP 2025-08-14 23:13:11 +08:00
雅诺狐
d5777c2980 添加了MCP SEE支持
能不能用我不知道,先加进来。主要我没有服务,无法测试
2025-08-14 17:22:07 +08:00
Furina-1013-create
8ea87764d0 修复了联网插件的一个小问题,蒽,对🤤 2025-08-14 11:04:15 +08:00
Furina-1013-create
9d29228784 我靠我我视频识别怎么又给我炸了
--已重新修复......
2025-08-14 00:45:19 +08:00
minecraft1024a
a9f3ab70d0 添加EXA搜索引擎和联网搜索组件的配置类(这个故事告诉我们下次改配置文件的时候记得加配置类) 2025-08-13 17:00:20 +08:00
minecraft1024a
97351ce1ae 新增插件Python依赖管理系统,支持自动检查和安装依赖,优化依赖配置和错误处理,更新相关文档和示例代码。 2025-08-13 12:32:07 +08:00
雅诺狐
fe97d897ef 优化项目结构,格式化代码 2025-08-13 09:49:39 +08:00
Furina-1013-create
32feae137e 增加视频识别板块
采用抽帧的方式识别视频,可以自己配置详细参数 -详细请看bot_config最底下
更改了template模板
多bb一句:我真的是被这个炸服了,改完这里那里就又炸了,但是总之现在没问题了
2025-08-13 01:58:43 +08:00
minecraft1024a
3bbb6de450 feat: 添加日程管理功能,包括日程模型、配置和初始化逻辑,增强聊天回复中对当前活动的动态反馈。 2025-08-12 16:59:21 +08:00
雅诺狐
2d4745cd58 初始化 2025-08-11 19:34:18 +08:00