LuiKlee
8f77465bc3
ruff
2025-12-13 16:39:25 +08:00
minecraft1024a
8924f75945
feat(expression): 移除手动触发学习和清理过期表达方式功能
2025-12-13 13:07:43 +08:00
minecraft1024a
7c0df3c4ba
feat(dependency): 移除依赖配置模块,整合虚拟环境检测功能到依赖管理器
2025-12-13 12:56:34 +08:00
minecraft1024a
1cd1454289
feat(expression): 添加聊天ID解析功能,支持哈希值和platform:raw_id:type格式
2025-12-13 12:05:33 +08:00
minecraft1024a
7d8ce8b246
feat(expression): 添加表达方式管理API,包括查询、创建、更新和删除功能
2025-12-13 11:39:20 +08:00
Windpicker-owo
0193913841
refactor: 移除兴趣计算器相关代码和配置,优化系统管理插件
2025-12-12 14:38:15 +08:00
Windpicker-owo
9d01b81cef
feat: 通过FastScorer与批处理功能增强关联兴趣计算器
...
- 集成FastScorer用于优化评分,绕过sklearn以提升性能。
- 新增批量处理功能,以应对高频聊天场景。
- 实现了一个全局线程池以避免重复创建执行器。
- 将评分操作的超时时间缩短至2秒。
- 重构了ChatterActionPlanner以利用新的利息计算器。
- 引入了一个基准测试脚本,用于比较原始sklearn与FastScorer之间的性能差异。
开发了一款优化后的评分器,具备权重剪枝和异步评分等功能。
2025-12-12 12:14:21 +08:00
tt-P607
46bbf89f20
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev
2025-12-09 22:55:03 +08:00
tt-P607
44f85c40bf
refactor(profile,llm): 提高用户资料的准确性和系统的稳健性。本次提交引入了多项针对用户资料管理和大语言模型交互的优化,目标是实现更高的准确性、更严格的数据验证以及提升系统可靠性。
...
- **用户资料管理(`user_profile_tool.py`):**
- `UserProfileTool` 的描述进行了大幅更新,明确定义了严格的使用场景和绝对禁止的行为,防止误用。
- 对 `preference_keywords` 和 `key_info` 的值实施了更严格的过滤,确保只记录具体、客观的事实和真实兴趣。
- 减少了用于上下文的最近聊天消息数量,以更关注相关性更高的近期交互。
- 修改了好感度计算逻辑,使其更加保守,不容易因日常小互动而改变,需要更有意义的交流才会产生变化。
- 印象生成提示已更新,严格禁止猜测。
并强调记录事实观察到的特征。- **关系信息显示(`relationship_fetcher.py`):** - 通过过滤掉一般交互术语来增强用户偏好显示,仅展示真实的爱好和兴趣。- 暂时注释了“关键事实”的显示,以防呈现潜在不准确或推测性的信息。- **大型语言模型交互稳定性(`base_action.py`):** - 在 `should_activate` 方法中引入了 7 秒超时的 LLM 判断调用。- 如果 LLM 判断超时,动作现在默认为“激活”,以防止系统阻塞并确保持续运行。
2025-12-09 22:52:36 +08:00
Windpicker-owo
39582bee41
refactor(permission): 移除权限不足时的消息发送逻辑
2025-12-08 22:48:28 +08:00
Windpicker-owo
01bcfb491a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev
2025-12-08 17:19:33 +08:00
Windpicker-owo
a1d60ab026
启用数据库预加载器,清理日志
2025-12-08 17:17:53 +08:00
雅诺狐
3edcc9d169
ruff
2025-12-08 15:48:40 +08:00
minecraft1024a
2235920908
fix(plugin): 检查组件可用性时增加对其所属插件状态的判断
...
在 `is_component_enabled` 方法中,增加了对组件所属插件启用状态的检查。
此前,该方法仅检查组件自身的全局或局部状态,这可能导致一个已禁用插件下的组件仍然被错误地判断为“可用”,从而引发非预期行为。
本次修改确保在检查组件自身状态前,先验证其所属插件是否已启用。这使得组件的生命周期与其所属插件的状态保持一致,提高了系统的健壮性。
2025-12-06 19:03:32 +08:00
minecraft1024a
af59966d8b
feat(plugin): 防止禁用最后一个启用的 Chatter 组件
...
为了确保系统的核心对话功能始终可用,在禁用插件时增加了保护机制。
该机制会检查目标插件是否包含 Chatter 组件。如果是,它会进一步判断禁用该插件是否会导致系统中没有任何已启用的 Chatter 组件。如果出现这种情况,禁用操作将被阻止并返回失败,从而避免因误操作导致系统核心功能失效。
2025-12-06 18:40:02 +08:00
minecraft1024a
b1e7b6972d
feat(plugin): 添加动态加载插件的 API
...
新增 `load_plugin` 函数,允许在运行时加载一个已注册但未加载的插件。
这为更灵活的插件管理(例如热加载)提供了基础支持。
2025-12-06 18:32:15 +08:00
minecraft1024a
b8bbd7228f
feat(plugin): 调整插件路由前缀以避免组件冲突
...
将插件组件的路由前缀从 `/plugins/{plugin_name}` 修改为 `/plugins/{plugin_name}/{component_name}`。
此项更改旨在解决单个插件注册多个路由组件时可能出现的路径冲突问题,确保每个组件都拥有唯一的 API 端点。
此外,为了支持新的前端开发环境,已将端口 11451 和 3001 添加到 CORS 允许源列表中。
BREAKING CHANGE: 插件 API 的 URL 结构已发生变更。所有对插件接口的调用都需要更新为新的 `/plugins/{plugin_name}/{component_name}` 格式。
2025-12-05 19:15:14 +08:00
Windpicker-owo
06a45b3639
refactor: 移除对 MySQL 的支持,更新文档和配置以仅支持 SQLite 和 PostgreSQL
2025-12-04 23:30:43 +08:00
tt-P607
22767ce234
feat(context): 为大语言模型提供过去网页搜索的上下文记忆
...
此更改使聊天机器人能够记住并引用过去网页搜索的相关信息,从而显著提高响应质量和连贯性。
系统不再将每个查询视为孤立事件,而是在生成新响应之前,对之前的 `web_search` 结果缓存进行向量相似度搜索。如果发现过去的相关信息,会自动作为“相关历史搜索结果”注入到大语言模型的提示中。
这使模型能够立即访问相关背景信息,避免对已经讨论过的主题重复搜索。
为了支持这一新功能:
- 对 `web_search` 工具的提示进行了改写,以通过确保结果被高效缓存和调用,鼓励大语言模型更频繁地使用它。
- 重要工具结果(如网页搜索)的预览长度已增加
2025-12-04 04:12:36 +08:00
tt-P607
cba6d34197
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev
2025-12-03 17:02:39 +08:00
tt-P607
39c52490d9
feat(chatter): 整合工具使用并增强主聊天流程中的上下文
...
此提交为聊天系统引入了若干重大增强,以提高回应质量、上下文感知能力和角色一致性。
**Kokoro 流程中的工具整合:**
- 在主聊天提示中新增了一个 `tool_info` 上下文块。
- `KFCContextBuilder` 现在通过 `ToolExecutor` 执行工具后再生成回复,使聊天模型能够感知实时信息和操作。
**以角色为驱动的用户画像:**
- `update_user_profile` 工具被重构为两阶段过程。工具使用模型提供一个简单的“印象提示”,专门的 `relationship_tracker` 模型将其扩展为丰富且符合角色的一致印象。
- 工具使用提示已更新,明确指示模型在生成工具参数时保持机器人的角色。
**记忆系统改进:**
- 记忆检索判定提示已更新,更加主动地获取长期记忆,目标是为了提供更丰富的上下文。- 记忆查询现在从最近的一组消息中生成,而不是单条消息,从而提高检索的相关性。**其他更改:** - 在上下文构建过程中添加了性能时间日志,以识别瓶颈。- 在响应过滤中进行了小修复,以清理特定前缀,如“,说:”。
2025-12-03 14:04:29 +08:00
Windpicker-owo
1acead1f9d
feat(cache): 添加 LRU 淘汰机制和缓存大小限制以优化内存使用
2025-12-03 11:42:38 +08:00
Windpicker-owo
943c2a6566
feat(data-models): 使用 __slots__ 优化内存占用和属性访问性能,更新多个数据模型
2025-12-01 19:57:33 +08:00
拾风
28c54dbec6
Merge branch 'dev' into feature/kfc
2025-12-01 16:06:47 +08:00
Windpicker-owo
c68bf4ad4f
重构Kokoro Flow Chatter:移除已弃用的响应后处理器和会话管理器
...
- 删除了`response_post_processor.py`和`session_manager.py`,因为它们已不再需要。
- 更新了`__init__.py`文件,移除了对`ActionExecutor`的引用。
- 删除了`action_executor.py`,并将动作执行直接集成到`chatter.py`和`proactive_thinker.py`中。
- 在`KokoroFlowChatterV2`中重构了动作执行逻辑,以直接使用`ChatterActionManager`。
- 增强了主动思考逻辑,以简化操作执行,而无需依赖已移除的`ActionExecutor`。
2025-11-30 13:40:59 +08:00
minecraft1024a
ad0f495911
feat(permission_api): 增强权限API文档,添加详细注释和示例
...
fix(system_management): 修复系统命令执行时缺失用户信息的错误处理
2025-11-29 20:20:59 +08:00
minecraft1024a
02ffef92cc
refactor(plugin_system): 将插件管理API拆分为更专注的模块
...
`plugin_manage_api` 模块的职责过于宽泛,混合了插件生命周期、组件状态管理和信息查询等多种功能。为了提高代码的可维护性和清晰度,遵循单一职责原则,现将其进行拆分。
- 新增 `component_state_api.py` 模块,专门负责处理组件的启用/禁用状态管理,包括全局和局部作用域。
- 新增 `plugin_info_api.py` 模块,用于提供插件和组件的信息查询、报告生成和状态统计功能。
- `plugin_manage_api.py` 现在专注于插件的生命周期管理,如加载、重载、启用/禁用和卸载。
- 更新了内部调用方(例如 system_management 插件)以使用新的、职责更明确的API。
BREAKING CHANGE: 原 `plugin_manage_api` 中的大量函数已被移动。组件状态管理相关函数移至 `component_state_api`,信息查询和报告相关函数移至 `plugin_info_api`。
2025-11-29 19:45:00 +08:00
minecraft1024a
251a7fcbfb
fix(plugin_system): 禁止启用或禁用适配器类型组件
...
适配器(Adapter)作为核心连接组件,其状态不应由用户直接启用或禁用,以防止核心功能中断。
本次修改在启用和禁用逻辑中加入了对适配器类型的检查,以确保系统稳定性。
2025-11-29 19:26:06 +08:00
minecraft1024a
b2dadfa418
refactor(plugin_system): 将组件状态管理逻辑提取到专职类中
...
将原先分散在 `ComponentRegistry` 中的组件状态管理逻辑(包括全局启用/禁用和基于会话的局部状态覆盖)重构并迁移到一个新的 `ComponentStateManager` 类中。
`ComponentRegistry` 现在通过持有一个 `ComponentStateManager` 实例,将所有状态相关的操作(如 `enable_component`, `disable_component`, `is_component_available`)委托给该类处理。
此次重构的主要目的:
- **关注点分离**: `ComponentRegistry` 的职责更加清晰,专注于组件的注册和查询。
- **提升内聚性**: 所有状态管理的复杂逻辑都集中在 `ComponentStateManager` 中,便于维护和扩展。
- **简化代码**: `ComponentRegistry` 的代码变得更加简洁易懂。
2025-11-29 19:24:25 +08:00
minecraft1024a
7638dde6f3
refactor(plugin_system): 整合插件状态管理至主管理API
...
将 `plugin_state_api.py` 模块的功能完全合并到 `plugin_manage_api.py` 中,并删除了前者。
此更改旨在简化插件系统的API结构,减少不必要的模块拆分。通过将所有插件生命周期、状态管理和信息查询的逻辑集中在单一的 `plugin_manage_api.py` 模块中,提高了代码的内聚性和可维护性。
主要变更:
- 删除了 `src/plugin_system/apis/plugin_state_api.py` 文件。
- 将其所有功能(如插件和组件的启用/禁用、状态查询等)直接实现在 `plugin_manage_api.py` 中,移除了原有的包装层。
- 对 `plugin_manage_api.py` 的内部结构进行了重新组织,按功能划分为更清晰的区域。
2025-11-29 19:09:36 +08:00
minecraft1024a
d4d6922a4c
refactor(plugin_system): 重构插件API,分离状态管理逻辑
...
将插件和组件的状态管理逻辑从 `plugin_manage_api.py` 迁移至一个新的专用模块 `plugin_state_api.py`。
`plugin_manage_api.py` 现在作为面向下层开发者的主要API入口,其实现转为对 `plugin_state_api` 的包装调用。
此次重构旨在实现关注点分离,使API层与核心状态管理逻辑解耦,提高了代码的可维护性,并为未来在API层添加权限检查等功能提供了便利。
2025-11-29 09:16:28 +08:00
minecraft1024a
ff98187c54
refactor(plugin_system): overhaul ComponentRegistry for clarity and add local state management
...
The `ComponentRegistry` class has been extensively refactored to improve its structure, maintainability, and functionality. This overhaul simplifies core logic and introduces a new capability for session-level component control.
Key improvements include:
- **Structural Reorganization**: The class is now divided into logical sections (Initialization, Registration, State Management, etc.) for better readability.
- **Simplified Registration**: The main `register_component` method now uses a dictionary-based handler dispatch, replacing a large `match-case` block and improving extensibility.
- **Local State Management**: Introduced a new feature for session-level (stream-specific) component state. This allows temporary enabling/disabling of components within a single conversation via `set_local_component_state` and `is_component_available`.
- **Consistent Methods**: Internal registration, removal, and state-change methods have been streamlined for consistency and robustness.
- **Enhanced Querying**: Component query methods now correctly factor in both global and local (session) availability states.
- **Code Quality**: Improved docstrings, type hints, and general code simplification throughout the module.
2025-11-29 08:55:31 +08:00
minecraft1024a
722c8bc5a9
feat(context): 新增面向单一用户的跨上下文构建API
...
新增 `build_cross_context_for_user` 函数,提供一个简化的接口来构建指定用户的跨聊天上下文。
该函数会优先获取用户与机器人的私聊记录,然后聚合用户在其他群聊中的近期发言。通过整合这些信息,可以为需要了解用户近期跨聊天活动的插件提供一个便捷的数据来源。
2025-11-28 21:15:28 +08:00
minecraft1024a
a8f899a22f
refactor(context): 简化跨上下文功能,移除通用共享组模式
...
移除了基于白名单/黑名单的通用上下文共享组(ContextGroup)功能。此模式实现复杂且与S4U模式功能重叠,移除后可大幅简化配置项和内部逻辑。
主要变更:
- 从配置中删除了 `ContextGroup` 模型和 `cross_context.groups` 列表。
- 删除了 `build_cross_context_normal` 和 `get_context_group` 函数。
- 保留并增强了S4U(Search for User)模式,为其增加了更详细的日志和健壮性检查。
- `get_intercom_group_context` 函数被调整为专门服务于 `maizone_context_group`。
BREAKING CHANGE: 移除了 `cross_context.groups` 配置项及相关的通用上下文共享组功能。请迁移至S4U模式以实现跨上下文需求。
2025-11-28 20:39:16 +08:00
tt-P607
da4f40ebb1
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev
2025-11-28 15:24:16 +08:00
tt-P607
103a6edaf3
feat(emoji): 增强消息上下文下的表情选择并修复存储用户信息的问题
...
该提交对表情操作及相关消息发送 API 进行了重大改进。
现在,表情选择逻辑更加具备上下文感知能力。LLM 提示现在包括机器人的待发送回复内容,使其能够根据对话历史和自身回复选择更合适的表情。用于上下文的近期聊天记录也有所增加。
此外,修复了插件发送 API (`send_api`) 中的一个错误。之前,当机器人发送消息时,消息在数据库中存储的是接收者的用户信息,而非机器人的信息。本次提交通过显式传递并使用机器人的用户信息进行存储,确保消息历史准确反映发送者。
其他更改包括:
- 重构表情操作的激活逻辑以提高清晰度。
- 改进 LLM 选择的表情描述匹配算法。- 为配置访问添加必要的类型安全检查。
2025-11-28 15:24:08 +08:00
Windpicker-owo
6c808d1052
feat(event_manager): 添加 ON_NOTICE_RECEIVED 事件到默认事件列表
2025-11-28 13:54:57 +08:00
tt-P607
655e535d96
Revert "feat(chat): 通过动作参数实现专用的 @用户 功能"
...
This reverts commit e5117720c6 .
2025-11-28 08:21:06 +08:00
tt-P607
e5117720c6
feat(chat): 通过动作参数实现专用的 @用户 功能
...
此提交引入了一种在回复中提及(@)用户的稳健机制。此功能不再由 LLM 直接生成“@”文本,而是通过 `reply` 和 `respond` 动作中新增加的 `at_user_id` 参数来处理。
主要变化包括:
- **核心动作:** 在 `ReplyAction` 和 `RespondAction` 中添加可选的 `at_user_id` 参数,用于指定要提及的用户。
- **提示工程:** 更新了 `default_generator` 提示,以指导 LLM 如何使用新的 `at_user_id` 参数,而不是生成“@”文本。
- **动作管理器:** `ChatterActionManager` 现在会检查动作数据中的 `at_user_id`。如果存在,它会使用新的 `SEND_AT_MESSAGE` 命令,确保提及格式正确并发送。
- **发送 API:** 在 `send_api` 中引入新的 `at_user_to_stream` 函数,用于处理发送独立的 `@` 段落。
- **类型安全与重构:** 改进了类型提示跨多个文件(`mofox_wire` 类型、`cast` 等)进行了修改,并增加了对 `global_config` 是否存在的检查,以防止运行时可能出现的 `NoneType` 错误,从而提高了整体代码的稳定性。
2025-11-28 02:54:47 +08:00
Windpicker-owo
a06510b9b6
feat: 添加通知消息处理功能,支持戳一戳、禁言等事件,并更新相关逻辑
2025-11-27 22:54:58 +08:00
Windpicker-owo
369639a8f1
feat: 添加守护线程版本的队列监听器以避免阻塞退出,优化配置初始化逻辑,改进消息构建中的用户信息处理
2025-11-27 14:06:17 +08:00
Windpicker-owo
4af6a5ec0c
fix: 修复组件移除时的错误处理逻辑,确保日志记录和返回值一致
2025-11-26 23:17:27 +08:00
Windpicker-owo
9f82671972
Merge branch 'dev' into mofox-bus
2025-11-26 22:25:39 +08:00
Windpicker-owo
0908fb50a0
优化日志
2025-11-26 21:16:16 +08:00
Windpicker-owo
d28ba27f26
重构:统一平台字段命名,更新相关数据模型和消息处理逻辑
2025-11-26 17:34:25 +08:00
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
c268ea2fb2
修复ChatStream循环导入问题
2025-11-25 20:29:48 +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