minecraft1024a
b7a255c4ae
feat(plugin-system): 引入插件权限节点声明式注册机制,解决了issue#24
...
重构了插件权限节点的注册方式,从原先在 `on_plugin_loaded` 钩子中调用 API 的命令式注册,改为通过在插件类中声明 `permission_nodes` 列表的声明式注册。
这一改进有以下优点:
- **简化插件开发**:插件开发者不再需要在代码中手动调用注册函数,只需在类属性中定义权限节点即可,更加直观和简洁。
- **提升核心健壮性**:权限节点的注册逻辑统一由插件管理器在加载时处理,减少了因插件实现不当导致注册失败或遗漏的风险。
- **增强可读性**:所有权限节点集中定义在插件类的顶部,方便快速了解插件所需的权限。
此变更涉及:
- 新增 `PermissionNodeField` 类型用于标准化权限节点定义。
- 在 `PluginBase` 中添加 `permission_nodes` 属性。
- 在 `PluginManager` 中实现插件加载时自动注册权限节点的逻辑。
- 更新 `maizone_refactored` 和 `permission_management` 插件以适应新的声明式注册方式。
2025-10-06 13:26:24 +08:00
sunbiz1024
8f4f7d19af
ruff
2025-10-06 09:38:16 +08:00
minecraft1024a
9d705463ce
ruff fix但指定了--unsafe-fixes
2025-10-05 21:48:32 +08:00
minecraft1024a
0b4e1f5b7b
feat(cross_context): 排除maizone专用上下文组
...
在获取互通上下文组时,增加了一个判断条件,以排除名为 "maizone_context_group" 的专用组。这可以防止该特定组的上下文信息被意外地泄露给其他不相关的聊天。
2025-10-05 21:44:34 +08:00
minecraft1024a
91034ea4de
refactor(cross_context): 提取互通组上下文获取逻辑为通用API
...
将原本在 `maizone` 插件中用于获取互通组聊天上下文的逻辑,提取并重构为一个更通用的 `cross_context_api.get_intercom_group_context_by_name` 函数。
这次重构提高了代码的模块化和复用性,使得其他需要跨聊天上下文功能的插件也能方便地调用此API,而无需重复实现相似的逻辑。`maizone` 插件现在直接调用这个新的API来获取上下文,简化了其内部实现。
2025-10-05 21:44:14 +08:00
minecraft1024a
7a7f737f71
ruff: 清理代码并规范导入顺序
...
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
2025-10-05 20:38:56 +08:00
subiz
d463d0a21a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 19:25:06 +08:00
subiz
43fe6046b4
没想到吧,我还是没测试()
...
feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力
新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。
更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器,
tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。
同步更新配置模型、模板与帮助文档。
2025-10-05 19:24:57 +08:00
tt-P607
9fee569848
是谁连续写了两遍 async def get_replyer(,我不说 🤪
2025-10-05 18:57:08 +08:00
Windpicker-owo
fbe35d1d01
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 18:31:56 +08:00
Windpicker-owo
3e37b7cef5
refactor(chat): 统一异步调用模式并修复循环依赖
...
- 将 chat_manager.get_stream() 调用改为异步
- 将 replyer_manager.get_replyer() 方法改为异步
- 在 generator_api 中使用动态导入避免循环依赖
- 在 action_manager 中添加待处理动作队列清理
- 更新所有相关调用点以支持异步模式
2025-10-05 18:30:16 +08:00
雅诺狐
efc4f7a13e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 17:50:13 +08:00
雅诺狐
86377d983f
Refactor replyer retrieval to async and add memory formatter
...
Changed get_replyer and related calls to async across multiple modules for proper coroutine handling. Added format_memories_bracket_style utility for memory formatting. Improved video analysis caching logic and type annotations. Updated error logging for message processing.
2025-10-05 17:48:28 +08:00
Windpicker-owo
c808d6a0ef
feat(chat): 实现批量动作存储并优化消息处理流程
...
新增批量动作记录存储功能,提升数据库写入性能。重构消息预处理逻辑,改进兴趣度计算和同步机制,优化用户信息和群组信息处理。添加配置选项控制批量存储开关,更新相关模板配置。
2025-10-05 17:45:44 +08:00
雅诺狐
f4404e09ef
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 16:35:59 +08:00
雅诺狐
29cf3e3fbc
Refactor memory metadata index to use Rust backend
...
Replaces the Python implementation of MemoryMetadataIndex with a Rust-accelerated version, removing legacy code and fallback logic. Updates search, add, and stats methods to delegate to the Rust backend. Also adds missing imports in llm_data_model.py and base_event.py for improved type support and event handling.
2025-10-05 16:35:31 +08:00
minecraft1024a
2c74b472ab
style: 统一代码风格并进行现代化改进
...
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-10-05 13:21:27 +08:00
Windpicker-owo
8e0d1e791b
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-05 01:29:48 +08:00
Windpicker-owo
624298e1b8
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
...
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
2025-10-05 01:25:52 +08:00
minecraft1024a
3764b3a8a6
refactor(plugin_system): 引入 PluginMetadata 替代 manifest.json
...
将插件元数据定义从外部 `_manifest.json` 文件迁移到插件 `__init__.py` 文件中的 `__plugin_meta__` 变量。此举简化了插件加载流程,减少了文件I/O,并使元数据与插件代码更紧密地耦合。
主要变更:
- 引入 `PluginMetadata` 数据类来标准化插件元数据。
- 插件基类 `PluginBase` 现在直接接收 `PluginMetadata` 对象,不再负责解析 JSON 文件。
- 插件管理器 `PluginManager` 调整加载逻辑,从插件模块的 `__plugin_meta__` 属性获取元数据。
- 删除了 `manifest_utils.py` 及其相关的验证和版本比较逻辑,简化了依赖关系。
- 更新了所有内置插件,以采用新的元数据定义方式,并删除了它们各自的 `_manifest.json` 文件。
BREAKING CHANGE: 插件加载机制已改变。所有插件必须在其 `__init__.py` 中定义一个 `__plugin_meta__` 变量,该变量是 `PluginMetadata` 类的实例,并移除旧的 `_manifest.json` 文件。
2025-10-04 16:17:03 +08:00
John Richard
047105e5e8
更改部分类型注解
2025-10-02 21:10:36 +08:00
John Richard
7923eafef3
re-style: 格式化代码
2025-10-02 20:26:01 +08:00
John Richard
ecb02cae31
style: 格式化代码
2025-10-02 19:38:39 +08:00
minecraft1024a
d5627b0661
refactor(chat): 将消息获取相关函数重构为异步
...
将 `chat_message_builder` 中的多个同步消息获取函数(如 `get_raw_msg_by_timestamp`)及其调用全部修改为异步函数。这统一了数据库查询的异步模式,提高了代码一致性和可维护性。
主要改动包括:
- 将 `chat_message_builder.py` 中的数据库查询函数标记为 `async` 并使用 `await`。
- 更新了 `message_api.py`、`mood_manager.py` 和 `qzone_service.py` 中对这些函数的调用,以适应异步接口。
- 调整了 `message_api.py` 中的函数签名和返回类型提示,以反映异步特性。
2025-10-02 17:32:02 +08:00
minecraft1024a
ab6149442e
Revert "refactor(plugin_system): 重构 send_command 以对接适配器专用命令接口"
...
This reverts commit ba5e0b0eaf .
2025-10-02 17:09:48 +08:00
tt-P607
ba5e0b0eaf
refactor(plugin_system): 重构 send_command 以对接适配器专用命令接口
...
BaseAction 中的 send_command 方法已重构,从使用通用的 `command_to_stream` API 切换到新的 `adapter_command_to_stream` API。
这一变更带来了以下改进:
- **接口统一**: 所有与平台适配器直接交互的命令现在都通过专用的接口,使得逻辑更清晰。
- **参数结构化**: 调用参数从旧的 `{"name": ..., "args": ...}` 格式更新为更明确的 `action`, `params` 和 `platform`。
- **健壮的响应处理**: 现在会解析 API 返回的结构化 JSON 响应(包含 status 和 message),以实现更精确的成功/失败判断和错误日志记录。
BREAKING CHANGE: `send_command` 调用的 `command_name` 现在需要与目标平台适配器定义的 `action` 名称完全匹配。例如,在 `social_toolkit_plugin` 中,`set_emoji_like` 已更新为 `set_msg_emoji_like`。所有使用此方法的插件可能需要更新其命令名称。
2025-10-01 23:49:44 +08:00
Windpicker-owo
3d59024c3c
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-10-01 04:56:41 +08:00
Windpicker-owo
dc39fd26c7
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-10-01 04:56:32 +08:00
雅诺狐
0f31a51097
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-30 22:40:14 +08:00
雅诺狐
7d3f418768
二步工具与action
2025-09-30 22:40:10 +08:00
minecraft1024a
04b5550aed
试图解决了call_action的类型报错
2025-09-30 22:30:32 +08:00
minecraft1024a
b7ce042528
加入了二走逻辑
2025-09-30 22:28:19 +08:00
Windpicker-owo
b30db43776
feat(memory): 实现增强记忆系统并完全替换原有架构
...
引入全新的增强记忆系统,彻底取代海马体记忆架构
删除旧版记忆系统相关模块,包括Hippocampus、异步包装器和优化器
重构消息处理流程,集成增强记忆系统的存储和检索功能
更新配置结构以支持增强记忆的各项参数设置
禁用原有定时任务,采用内置维护机制保证系统性能
2025-09-30 00:09:46 +08:00
Windpicker-owo
4570fd8b64
fix(chat): 增强消息查找功能并添加未读消息自动清理机制
...
- 重构 `_find_message_by_id` 方法,支持多种消息ID格式和模糊匹配
- 在动作执行后自动清理未读消息,防止消息堆积
- 为 `reply` 动作添加目标消息查找失败时的降级处理
- 将消息计数和关系查询方法改为异步调用以保持一致性
2025-09-29 10:47:43 +08:00
Windpicker-owo
28bce19d27
refactor(chat): 移除 ChatStream 的历史消息自动加载功能
...
移除 ChatStream 初始化时的 `_load_history_messages()` 调用,改为按需异步加载历史消息。这解决了启动时阻塞事件循环的问题,并提高了聊天流初始化的性能。
主要变更:
- 删除 `ChatStream._load_history_messages()` 方法及相关代码
- 将多个模块中的同步数据库查询函数改为异步版本
- 修复相关调用处的异步调用方式
- 优化图片描述查询的错误处理
BREAKING CHANGE: `get_raw_msg_before_timestamp_with_chat` 和相关消息查询函数现在改为异步操作,需要调用处使用 await
2025-09-28 21:31:49 +08:00
Windpicker-owo
fd76e36320
refactor(chat): 迁移数据库操作为异步模式并修复相关调用
...
将同步数据库操作全面迁移为异步模式,主要涉及:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 修复相关异步调用链,确保 await 正确传递
- 优化消息管理器、上下文管理器等核心组件的异步处理
- 移除同步的 person_id 获取方法,避免协程对象传递问题
修复 deepcopy 在 StreamContext 中的序列化问题,跳过不可序列化的 asyncio.Task 对象
删除无用的测试文件和废弃的插件清单文件
2025-09-28 20:40:46 +08:00
Windpicker-owo
08ef960947
refactor(database): 将同步数据库操作迁移为异步操作
...
将整个项目的数据库操作从同步模式迁移为异步模式,主要涉及以下修改:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 将同步的 SQLAlchemy 查询方法改为异步执行
- 更新相关的方法签名,添加 async/await 关键字
- 修复由于异步化导致的并发问题和性能问题
这些修改提高了数据库操作的并发性能,避免了阻塞主线程,提升了系统的整体响应能力。涉及修改的模块包括表情包管理、反提示注入统计、用户封禁管理、记忆系统、消息存储等多个核心组件。
BREAKING CHANGE: 所有涉及数据库操作的方法现在都需要使用异步调用,同步调用将不再工作
2025-09-28 15:42:30 +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
f968d134c7
fix(plugin): 移除插件配置同步调用并增强错误日志
...
在插件管理器中,移除了加载插件时对已废弃的配置同步方法的调用。
同时,为了更好地排查 `maizone` 插件发送动态失败的问题,增强了其命令的异常日志,现在会额外记录异常类型。
2025-09-27 14:05:05 +08:00
minecraft1024a
900b9af443
删除插件配置文件的双向迁移逻辑
2025-09-26 22:00:07 +08:00
minecraft1024a
9c1a7ff123
ruff
2025-09-26 20:16:46 +08:00
minecraft1024a
51a6094072
删除几个日志
2025-09-24 17:14:48 +08:00
minecraft1024a
62817a1a51
fix(plugin_system): 兼容从 'id' 字段获取消息 ID
2025-09-24 17:05:30 +08:00
minecraft1024a
62ba8c3bfb
我是打日志先人
2025-09-24 16:53:44 +08:00
Windpicker-owo
37f9b46bcf
feat(affinity_flow_chatter): 增强动作思考过程在回复生成中的集成
...
添加了将动作思考过程集成到回复生成流程的功能:
- 在 generator_api 中新增逻辑,将 action_data 中的 thinking 字段内容添加到 extra_info
- 优化 plan_filter 中对 thinking 字段的处理逻辑,避免添加无意义的默认值
- 更新默认生成器提示词,移除冗余的关系信息块重复
- 在 planner 提示词中添加不对表情包消息回应的限制
2025-09-24 13:53:54 +08:00
Windpicker-owo
ebc4feebd9
refactor(affinity_flow): 重构规划器架构并简化日志输出
...
- 移除ChatterManager中不必要的ActionPlanner实例化
- 在MessageManager中设置默认聊天模式为FOCUS
- 重构BaseChatter构造函数,移除planner依赖
- 统一ChatMode枚举定义,移除GROUP/PRIVATE模式
- 重构AffinityChatter内部planner初始化逻辑
- 大幅简化兴趣评分系统的日志输出
- 修复plan_filter中的动作解析逻辑,支持新格式
- 更新planner_prompts提示词模板,移除私聊限制
- 优化关系追踪器的错误处理和日志输出
2025-09-23 22:18:03 +08:00
tt-P607
a32759687b
feat(chat): 增加已读标记以聚焦未读消息
...
为聊天上下文生成逻辑引入了“已读标记” (read_mark) 机制。
当生成回复时,可以在历史消息中插入一个明确的分隔符,以告知模型哪些消息是它已经看过的旧消息,哪些是需要关注的新消息。
这有助于模型更好地聚焦于未读内容,提升上下文感知能力和回复的相关性。
同时,将 Prompt 模板中的“群聊”等硬编码文本参数化,以更好地适配私聊等不同聊天场景。
2025-09-23 15:24:28 +08:00
Windpicker-owo
68bf0972df
refactor(plugins): 将亲和力流模块重构为插件架构并移除旧代码
...
本次重构将亲和力流(Affinity Flow)模块从核心聊天系统迁移到插件架构中,主要变更包括:
- 删除 src/chat/planner_actions/ 目录下的 plan_executor.py、plan_filter.py 和 planner.py
- 更新插件系统组件类型,将 FOCUS 聊天模式改为 GROUP 和 PRIVATE 模式
- 调整亲和力流插件中的模式引用,确保与新的聊天模式枚举保持一致
- 统一亲和力流模块的导入路径,使其完全作为插件运行
BREAKING CHANGE: 移除原有的 FOCUS 聊天模式,改为 GROUP 和 PRIVATE 模式,需要更新相关配置和代码引用
2025-09-23 14:13:41 +08:00
minecraft1024a
b6792149f9
fix(permission): 将权限管理器初始化改为异步
...
`PermissionManager` 的 `__init__` 方法中包含了同步的数据库初始化操作,这会在异步环境中阻塞事件循环。
本次提交将数据库连接的逻辑移至一个新的异步方法 `initialize()` 中,并在应用启动时显式调用和等待它。这确保了数据库的初始化过程是异步执行的,避免了潜在的性能问题。
BREAKING CHANGE: `PermissionManager` 实例化后需要手动调用并等待 `initialize()` 方法来完成数据库初始化。
2025-09-23 14:08:54 +08:00
Windpicker-owo
31d3ec45d0
refactor(plugins): 重构亲和力流模块的导入路径
...
将 chatter 模块重命名为 affinity_flow_chatter 以明确功能区分,
更新 main.py、base_chatter.py、affinity_chatter.py 和 planner.py
中的相关导入语句,确保模块引用正确性。
2025-09-23 13:18:23 +08:00