Commit Graph

709 Commits

Author SHA1 Message Date
Windpicker-owo
8fc4cd4c3b 重构:移除过时的napcat_adapter_plugin组件
- 从napcat_adapter_plugin中删除了stream_router.py、utils.py、video_handler.py、websocket_manager.py和todo.md文件。
- 在napcat_cache.json中为组和成员信息引入了一种新的缓存结构。
- 通过移除未使用的模块和整合功能,简化了插件的架构。
2025-11-26 16:40:31 +08:00
Windpicker-owo
8a6b141017 重构代码以使用 mofox_wire 替代 mofox_bus,更新相关文档和示例 2025-11-25 22:45:57 +08:00
Windpicker-owo
b6de9b5a9c 重构聊天系统中的消息发送与处理
- 更新了`uni_message_sender.py`,使用`MessageEnvelope`来发送消息,取代了之前的`MessageSending`结构。
- 引入了`send_envelope`函数,通过改进日志记录和错误处理来简化消息发送流程。
- 修改了`HeartFCSender`以直接处理`MessageEnvelope`,确保与新消息结构的兼容性。
- 重构了`default_generator.py`,以构建`MessageEnvelope`而不是`MessageSending`,从而增强了消息构建逻辑。
- 调整了`utils.py`中的效用函数,以使用`DatabaseUserInfo`来处理用户信息。
- 更新了`send_api.py`以构建和发送`MessageEnvelope`,从而改进了消息分发逻辑。
- 从插件系统中移除了已弃用的`MaiMessages`类,清理了未使用的代码。
- 增强了`napcat_adapter_plugin`以适应新的消息结构,确保消息的正确处理和发送。
- 对代码进行整体清理和整理,以提高可维护性和可读性。
2025-11-25 21:54:27 +08:00
Windpicker-owo
6b3b2a8245 重构并增强Napcat适配器的功能
- 更新了`BaseAdapter`以简化子进程处理。
- 对`AdapterManager`进行了重构,以便根据适配器的`run_in_subprocess`属性来管理适配器。
- 增强了`NapcatAdapter`,以利用新的`CoreSinkManager`实现更优的进程管理。
- 在`utils.py`中实现了针对群组和成员信息的缓存机制。
- 改进了`message_handler.py`中的消息处理,以支持各种消息类型和格式。
- 已将插件配置版本更新至7.8.3。
2025-11-25 19:55:36 +08:00
Windpicker-owo
1ebdc37b22 重构ChatStream和StreamContext:移除context_manager引用
- 在ChatStream及相关类中,将所有context_manager的实例替换为直接上下文访问。
- 更新方法,利用新的上下文结构来管理聊天状态和消息。
- 增强的StreamContext,增加了用于消息处理、统计和历史管理的方法。
- 在重构过程中改进了错误处理和日志记录。
2025-11-25 12:01:26 +08:00
tt-P607
714bef7c2b feat(chatter): 优化主动聊天的决策和话题生成
优化主动聊天的提示,以提高决策质量。

- 为“do_nothing”选项添加了高优先级规则,以防止机器人在最后一次发送消息后再次发言。
- 引入了结构化的“三级方法”来生成新话题,确保话题与最近的对话相关,并且感觉更自然、更像人类。
2025-11-24 15:58:52 +08:00
Windpicker-owo
36fce6ca98 feat: 添加带有消息处理和路由功能的NEW_napcat_adapter插件
- 为NEW_napcat_adapter插件实现了核心模块,包括消息处理、事件处理和路由。
- 创建了MessageHandler、MetaEventHandler和NoticeHandler来处理收到的消息和事件。
- 开发了SendHandler,用于向Napcat发送回消息。
引入了StreamRouter来管理多个聊天流,确保消息的顺序和高效处理。
- 增加了对各种消息类型和格式的支持,包括文本、图像和通知。
- 建立了一个用于监控和调试的日志系统。
2025-11-24 13:24:55 +08:00
tt-P607
690d4e4fca Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-23 19:30:09 +08:00
tt-P607
8f1dc4c70b feat(napcat):增加 websocket 连接重试次数
此更改将建立 websocket 连接的最大重试次数从 3 次提高到 10 次。此调整有助于提高适配器的稳定性,以及在网络不稳定的环境中建立连接的能力。
2025-11-23 19:30:03 +08:00
minecraft1024a
33c6ddc6dd style(log): 统一日志格式,使用文本标签替代emoji前缀
将日志消息中的 emoji 前缀(如 , , ⚠️)替换为更清晰、更易于解析的文本标签(如 [成功], [错误], [警告])。

这一改动有以下好处:
- 提高了在不同终端和环境下的日志可读性与一致性。
- 避免了 emoji 字符可能导致的渲染问题。
- 使日志更易于被自动化工具进行筛选和分析。
2025-11-23 14:40:34 +08:00
minecraft1024a
787b8f01f3 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-23 14:26:48 +08:00
minecraft1024a
7f74fc473e style(log): 移除日志输出中的 emoji 符号
为了在不同终端和环境中保持日志输出的整洁与一致性,统一移除了日志信息中的 emoji 符号。

此举旨在避免潜在的渲染问题,并使日志更易于程序化解析和人工阅读。同时,对部分代码进行了微小的类型标注优化。
2025-11-23 14:26:44 +08:00
tt-P607
9d1ebba373 feat(proactive_thinking): 优化主动思考功能,实现场景化响应
本次更新针对主动思考(Proactive Thinking)功能进行了多项重要优化,旨在提升其智能化、灵活性和稳定性。

主要变更:

1.  **新增聊天场景区分**:
    *   在 `proactive_thinking_executor.py` 中增加了对群聊(group)和私聊(private)场景的判断逻辑。
    *   为两种场景分别创建了独立的、更具针对性的决策和回复提示词模板(`_group` 和 `_private` 后缀),使主动发言更贴合不同聊天氛围。

2.  **上下文长度配置化**:
    *   移除了原先在代码中硬编码的上下文长度(`limit=40`)。
    *   现在,功能会直接读取 `bot_config.toml` 中 `[chat]` 部分的 `max_context_size` 配置,实现了与全局配置的统一,增强了灵活性。

3.  **优化触发机制,减少跳过**:
    *   针对群聊等繁忙场景下,因 `chatter` 正在处理消息而导致主动思考被频繁跳过的问题,增加了一个短暂的等待和重试机制。
    *   现在,当检测到 `chatter` 忙碌时,会等待3秒后再次检查,提高了主动思考的成功触发率。

此次修改使得主动思考功能更加智能、可配置,并能更好地适应复杂的聊天环境。
```
2025-11-23 10:53:06 +08:00
tt-P607
19fefeb284 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-23 02:24:35 +08:00
tt-P607
f464befe66 fix(planner): 当缺少 target_id 时确保设置动作消息
当 LLM 规划器没有为某个动作指定 `target_message_id` 时,系统现在将默认使用上下文中的最新消息。这确保了需要消息上下文的动作(如引用或回复)有一个有效的 `action_message` 对象,从而防止潜在的 `None` 引用错误。
2025-11-23 02:24:23 +08:00
minecraft1024a
725df21215 feat(plugin): 简化局部组件管理命令,自动检测组件类型
移除了 `enable_local` 和 `disable_local` 命令中的组件类型参数,改为通过组件名称自动搜索。这简化了用户操作,无需记忆组件的具体类型。

- 当找到多个同名组件时,将提示用户并中止操作,避免歧义。
- 新增保护机制,防止用户局部禁用路由、提示词等核心类型的组件,以增强系统稳定性。
2025-11-22 21:29:08 +08:00
minecraft1024a
4a4175c246 feat(plugin_system): 实现组件的局部启用与禁用功能
新增了 `/system plugin enable_local` 和 `/system plugin disable_local` 命令,允许管理员在指定的会话(群聊或私聊)中动态地启用或禁用插件组件。

- 通过 stream_id 对组件状态进行局部覆盖,提供了更精细的控制粒度。
- 引入新的 `plugin.manage.local` 权限节点以控制此高级功能。
- 在 API 层面增加了对组件存在性的检查,增强了系统的健壮性。
2025-11-22 20:22:46 +08:00
Windpicker-owo
7c579e6ee4 重构适配器系统并增强插件架构
- 在mofox_bus中,将BaseAdapter重命名为AdapterBase以提高清晰度。
- 引入了AdapterInfo类来封装适配器组件信息。
- 增强的PluginManager,支持核心消息接收器配置和适配器注册。
- 实现了EnvelopeConverter,用于将MessageEnvelope转换为内部消息格式。
- 创建了BaseAdapter类来管理插件的生命周期、配置和健康检查。
- 开发了AdapterManager,用于管理适配器实例和子流程。
- 添加了一个示例适配器插件,以展示与新适配器系统的集成。
- 删除了过时的Phi插件文档。
2025-11-22 12:49:37 +08:00
minecraft1024a
515d6ee62b refactor(maizone): 移除调度器中的随机主题生成逻辑
移除 `SchedulerService` 中直接调用LLM生成随机说说主题的功能。

现在,当没有日程安排时,调度器会发送一个通用的指令(“随意发挥”),将具体内容的生成职责完全委托给 `QzoneService`。
这一改动简化了调度器的职责,使其专注于任务调度,提高了模块的内聚性。
2025-11-21 21:27:13 +08:00
minecraft1024a
a0618fb3c4 feat(plugin_system): 引入组件局部状态管理并重构插件API
引入了基于 `stream_id` 的组件局部状态管理机制。这允许在不修改全局配置的情况下,为特定会话临时启用或禁用组件,提供了更高的灵活性。

全面重构了 `plugin_manage_api`,提供了更强大和稳定的插件管理功能:
- 新增 `reload_all_plugins` 和 `get_system_report` API,方便进行批量重载和系统状态诊断。
- 增强了组件卸载逻辑,确保在插件移除时能更彻底地清理资源,特别是对 `EventHandler` 的订阅。
- 重写了内置的 `/system plugin` 命令,以利用新的API,并为相关操作添加了权限控制。

组件注册中心(ComponentRegistry)中的多个 `get_enabled_*` 方法现在可以接受 `stream_id`,以正确反映局部状态。

BREAKING CHANGE: `plugin_manage_api` 中的多个函数已被移除或替换。例如 `list_loaded_plugins` 和 `remove_plugin` 已被移除,加载插件的逻辑已整合到 `register_plugin_from_file` 中。内置的 `/system plugin` 命令的子命令也已更改。
2025-11-21 21:05:02 +08:00
Windpicker-owo
fee7611e99 feat: 实现消息编解码器和消息处理模型
- 添加编解码器,用于序列化和反序列化MessageEnvelope对象。
- 创建消息模型,包括分段(Seg)、群组信息(GroupInfo)、用户信息(UserInfo)、格式信息(FormatInfo)、模板信息(TemplateInfo)、基础消息信息(BaseMessageInfo)和消息基础(MessageBase)。
引入路由器以管理消息路由和连接。
- 实现运行时机制,通过钩子和路由来处理消息处理。
- 使用HTTP和WebSocket客户端和服务器开发传输层,以进行消息传输。
- 为消息内容和信封定义类型,以标准化消息结构。
2025-11-21 18:40:51 +08:00
Windpicker-owo
80c1464ba7 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-19 20:19:10 +08:00
Windpicker-owo
14133410e6 feat: 批量生成文本embedding,优化兴趣匹配计算逻辑,支持消息兴趣值的批量更新 2025-11-19 16:30:44 +08:00
Windpicker-owo
d227e37a98 feat: 优化事件管理,添加事件处理超时和并发限制功能 2025-11-19 01:26:23 +08:00
Furina-1013-create
5873467d9c 与MaiBot开发团队交流了一下并进一步改了Readme,增加了几处强调是Fork项目的说明
补要拷打我当时真的不是我把之前的都init的😭😭😭
2025-11-18 13:12:36 +08:00
Windpicker-owo
b5cfa41d36 feat:实现短期内存管理器和统一内存管理器
- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
2025-11-18 11:12:05 +08:00
Windpicker-owo
50acb70131 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-16 21:18:30 +08:00
Windpicker-owo
d6b5842d06 feat(napcat_adapter): 添加服务器地址和端口配置选项,优先使用插件配置
feat(tts_plugin): 优化TTS处理逻辑,支持生成回复并处理文本格式
2025-11-16 15:34:59 +08:00
tt-P607
aba7af4396 refactor(maizone): 重构数据迁移以尽早关闭文件句柄
数据迁移逻辑已更新为先将整个文件读入内存,然后立即关闭文件句柄。

这可以防止旧数据文件在随后的 JSON 解析、验证和写入新存储的过程中保持打开状态,从而提高迁移过程的稳健性。
2025-11-15 20:07:48 +08:00
tt-P607
35c3f18f5d feat(chatter): 支持按聊天类型和模式灵活过滤操作
`ChatterPlanGenerator` 中的操作过滤逻辑得到了增强,以支持更灵活的操作配置。现在,操作可以通过提供列表来启用多个聊天类型或模式,或者使用 `ChatType.ALL` 和 `ChatMode.ALL` 来启用所有类型/模式。

为此,`ChatterPlanGenerator` 被重构为通过依赖注入接受 `ActionManager` 实例,从而提高了解耦性并使组件更易于测试。
2025-11-15 18:01:43 +08:00
minecraft1024a
6f62073630 chore: perform widespread code cleanup and formatting
Perform a comprehensive code cleanup across multiple modules to improve code quality, consistency, and maintainability.

Key changes include:
- Removing numerous unused imports.
- Standardizing import order.
- Eliminating trailing whitespace and inconsistent newlines.
- Updating legacy type hints to modern syntax (e.g., `List` -> `list`).
- Making minor improvements for code robustness and style.
2025-11-15 17:12:46 +08:00
minecraft1024a
bd45899dce docs(maizone): 为回复跟踪服务添加详细文档和注释
为 ReplyTrackerService 类及其所有方法添加了全面的文档字符串(docstrings)和内联注释。

此次更新旨在提高代码的可读性和可维护性,详细阐明了以下方面:
- 服务的核心职责和初始化流程。
- 从旧文件系统到新存储API的一次性数据迁移逻辑。
- 各个公共和私有方法的具体功能、参数及作用。
2025-11-15 17:05:55 +08:00
minecraft1024a
79ff981776 refactor(maizone): 迁移回复跟踪服务以使用插件存储API
该重构将 ReplyTrackerService 从手动管理本地JSON文件的方式迁移到使用新的插件本地存储API。

此举旨在统一数据持久化方式,提高代码的可维护性和健壮性。

主要变更包括:
- 引入 `get_local_storage` API,将数据存储逻辑委托给通用的存储服务。
- 新增一次性自动数据迁移功能,可将旧 `replied_comments.json` 文件中的数据无缝迁移至新存储。
- 简化了服务内部的数据加载、保存和错误处理逻辑,代码更清晰。
- 迁移成功后,旧数据文件将被备份,以确保数据安全。
2025-11-15 16:57:48 +08:00
minecraft1024a
5df71d9023 fix(maizone): 修复说说处理循环意外结束的潜在错误
为 `process_feeds_from_file` 方法添加了在循环意外结束后返回错误信息的逻辑,以防止函数在某些边缘情况下不返回值。

此外,移除了 `_process_comments` 方法中一个未使用的列表推导式。
2025-11-15 16:47:14 +08:00
minecraft1024a
493c5847d5 chore(maizone): 调整默认随机发送间隔
将默认的随机发送间隔从 5-15 分钟调整为 120-135 分钟。

原有的默认间隔过短,可能会导致发送过于频繁,新的默认值更加合理。
2025-11-15 16:26:23 +08:00
minecraft1024a
8a34a625e7 feat(maizone): 新增无日程时随机生成主题并发送说说
当没有预设日程活动时,定时发送服务现在能够利用小型LLM动态生成一个随机主题,并自动发布说说。

为避免过于频繁地发布,该功能被限制为每小时最多执行一次。此项更新旨在提高账号在日程空闲期间的活跃度,使自动发布的动态看起来更加自然和多样化。
2025-11-15 16:25:55 +08:00
minecraft1024a
0d8e13419a refactor(tts): 重命名动作参数 text 为 tts_voice_text
BREAKING CHANGE: TTS 语音动作的 `text` 参数已重命名为 `tts_voice_text`,以避免与其他工具或参数潜在的命名冲突。所有调用此动作的提示词或代码都需要更新为新的参数名称。
2025-11-15 13:06:10 +08:00
minecraft1024a
8d1142bbce feat(prompt): 为提示词管理添加调试与预览功能
增强了 `/system prompt` 命令,引入了多个用于调试和检查提示词注入系统的新子命令。

新增功能包括:
- `preview <目标名> [JSON参数]`: 预览指定核心提示词在注入参数后的最终效果,便于调试复杂的注入逻辑。
- `raw <目标名>`: 查看核心提示词的原始内容,有助于了解注入前的基础模板。
- `component_info <组件名>`: 显示特定组件的详细信息,包括其来源、描述和所有注入规则。

这些工具旨在提高提示词系统的透明度,并简化开发和故障排查过程。
2025-11-14 14:19:46 +08:00
Windpicker-owo
2bbb03b5b0 fix(planner): 更新动作过滤逻辑以确保回复动作在未达到阈值时被排除 2025-11-13 20:10:58 +08:00
Windpicker-owo
ef724b748e fix(affinity_interest_calculator): 修复回复后阈值调整逻辑并移除弃用方法 2025-11-13 19:45:31 +08:00
Windpicker-owo
028bcf7fbc fix(planner): 修复 Focus 模式下的回复动作处理逻辑 2025-11-13 19:34:16 +08:00
minecraft1024a
38ec114c81 feat(system): 为 system 命令添加 prompt 子命令 2025-11-13 18:46:36 +08:00
minecraft1024a
ce2d1acc7c refactor(prompt): 简化和统一提示词注入查询方法
将多个功能重叠的查询方法整合为两个核心方法,以提供更清晰、更灵活的 API,方便获取注入信息和规则。

- `get_injection_info` 方法取代了原有的 `get_full_injection_map` 和 `get_injections_for_prompt`。它现在支持按目标提示词进行筛选,并能通过 `detailed` 参数控制返回信息的详细程度。
- `get_injection_rules` 方法整合了 `get_all_dynamic_rules`、`get_rules_for_target` 和 `get_rules_by_component` 的功能。现在可以通过一个方法,灵活地按目标、按组件或按两者的组合来筛选注入规则。
- 已更新 `system_management` 插件中的相关命令以适配新的 API。

BREAKING CHANGE: `PromptComponentManager` 的公共 API 已更改。
移除了 `get_full_injection_map`, `get_injections_for_prompt`, `get_all_dynamic_rules`, `get_rules_for_target`, `get_rules_by_component` 方法。
请分别使用新的 `get_injection_info` 和 `get_injection_rules` 方法进行替代。
2025-11-13 17:17:48 +08:00
Windpicker-owo
9c136e141b feat: 更新 action_type 为 'reply' 并添加 action_parameters 的 JSON 示例 2025-11-13 15:54:08 +08:00
Windpicker-owo
d67b15deae refactor: 延迟导入 StreamContext 以提高类型检查性能 2025-11-13 15:28:18 +08:00
Windpicker-owo
41e8a17e58 refactor(planner): 移除Normal模式下的引用回复设置以保持对话流畅 2025-11-13 15:14:55 +08:00
Windpicker-owo
bc7228cb3c feat(planner): 使用标准化的JSON格式重构动作规划系统
- 将聊天流和消息管理器中的默认聊天模式从“normal”更改为“focus”
- 从ActionPlannerInfo数据模型中移除已弃用的should_quote_reply字段
- 通过移除回复可用性检查和基于兴趣的过滤,简化计划过滤逻辑
- 采用新的标准化JSON操作格式,并强制使用操作列表结构
- 更新规划器提示,以强制执行一致的动作输出格式
- 移除遗留操作参数过滤,简化消息目标解析
- 清理计划过滤器中未使用的导入和已弃用的代码路径
2025-11-13 15:10:08 +08:00
Windpicker-owo
1d92f16ce2 feat(plan_filter): 优化动作过滤逻辑,增强对reply和respond动作的可用性检查 2025-11-13 12:51:58 +08:00
Windpicker-owo
61d86875ad 更新机器人配置模板,并添加路径扩展算法规范
- 将bot_config_template.toml中的版本号从7.6.7更新为7.6.8。
- 在bot_config_template.toml中添加了用于控制多个回复的配置选项。
- 引入了一份全面的路径扩展算法规范文档,详细介绍了算法概述、核心数据结构、算法流程、性能优化、接口定义和测试用例。
2025-11-12 19:06:11 +08:00
Windpicker-owo
c2dca8cb2a refactor(person_info): 移除内存缓存逻辑,统一使用数据库缓存系统
refactor(plugin): 使用数据库查询替代内存缓存进行用户信息匹配
refactor(message_sender): 优化消息添加到流上下文的逻辑
2025-11-12 17:58:26 +08:00