Commit Graph

129 Commits

Author SHA1 Message Date
LuiKlee
8f77465bc3 ruff 2025-12-13 16:39:25 +08:00
minecraft1024a
179b5b7222 feat(log): 添加日志广播系统以实时推送日志到多个订阅者 2025-12-12 21:56:25 +08:00
Windpicker-owo
0193913841 refactor: 移除兴趣计算器相关代码和配置,优化系统管理插件 2025-12-12 14:38:15 +08:00
Windpicker-owo
c008dd0ebd feat(mem_monitor): 添加内存监控阈值和详细数据采集逻辑 2025-12-09 13:54:25 +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
Windpicker-owo
071a160da9 feat(plugin): 禁用 hello_world_plugin 插件
refactor(prompt): 将日志级别从 info 调整为 debug
fix(mem_monitor): 启用内存监控并调整监控间隔至 2400s
feat(llm_models): 添加系统提示支持,优化请求策略
refactor(main): 更新内存监控启动日志信息
refactor(user_profile_tool): 将用户画像更新日志级别调整为 debug
refactor(exa_engine): 移除搜索引擎请求中的高亮片段选项
feat(system_prompt): 添加系统提示内容
2025-12-08 12:02:44 +08:00
Windpicker-owo
8f4b846630 feat(mem-monitor): 添加内存监控模块,支持内存使用追踪和日志记录 2025-12-02 12:20:21 +08:00
ikun-11451
c13bac894b 修了一点pyright错误喵~ 2025-11-29 19:17:40 +08:00
ikun-11451
8bdbadd7d5 更新了仓库地址喵 2025-11-29 00:05:43 +08:00
tt-P607
82fe115268 refactor(core): 提高配置访问安全性并优化记忆判断提示
此提交引入了若干关键改进,以增强应用程序的稳定性和智能性。

首先,通过在 `main.py` 和 `memory_graph/manager_singleton.py` 的关键初始化路径中为 `global_config` 及其嵌套属性添加全面的空值检查,增强了系统的稳健性。这可以防止在配置加载失败或不完整时出现潜在的 `AttributeError` 异常,使应用程序的启动过程更加可靠。

其次,在 `UnifiedMemoryManager` 中的“记忆判断”模型提示已大幅优化。新的提示提供了更严格的指导,避免在简单交互(如问候或闲聊)中进行不必要的长期记忆查询。这一优化通过使记忆检索过程更加高效和具上下文意识,提高了响应速度并降低了计算开销。

最后,新配置已在 Napcat 适配器中添加了选项,以更精细地控制消息处理,包括启用/禁用视频处理和配置自动@回复。
2025-11-28 10:57:01 +08:00
Windpicker-owo
369639a8f1 feat: 添加守护线程版本的队列监听器以避免阻塞退出,优化配置初始化逻辑,改进消息构建中的用户信息处理 2025-11-27 14:06:17 +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
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
Windpicker-owo
d30b0544b5 重构消息处理和信封转换
- 从代码库中移除了EnvelopeConverter类及其相关方法,因为它们已不再需要。
- 更新了主系统,使其能够直接处理MessageEnvelope对象,而无需将其转换为旧格式。
- 增强了MessageRuntime类,以支持多种消息类型并防止重复注册处理程序。
引入了一个新的MessageHandler类来管理消息处理,包括预处理和数据库存储。
- 改进了整个消息处理工作流程中的错误处理和日志记录。
- 更新了类型提示和数据模型,以确保消息结构的一致性和清晰度。
2025-11-24 22:36:33 +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
3e927f45bb chore: 更新启动信息中的项目地址 2025-11-21 21:28:57 +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
cf48d02ed3 feat: 重构记忆系统配置,移除三层记忆相关配置,优化全局记忆管理逻辑,支持批量生成文本向量 2025-11-19 19:16:27 +08:00
Windpicker-owo
dc3ad19809 feat: 采用三层内存系统实现统一内存管理器
- 添加了UnifiedMemoryManager,以整合感知层、短期记忆层和长期记忆层。
- 实现了初始化、消息添加和内存搜索功能。
- 引入了记忆从短期存储到长期存储的自动转移机制。
- 开发了用于结构化内存表示的内存格式化工具。
- 增强日志记录功能,以便在内存操作过程中更好地进行追踪。
2025-11-18 16:17:25 +08:00
Windpicker-owo
b5cfa41d36 feat:实现短期内存管理器和统一内存管理器
- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
2025-11-18 11:12:05 +08:00
Furina-1013-create
16db34af08 (你知道吗?阿范其实并不喜欢喜欢被切成臊子😡, 10) 2025-11-16 23:18:41 +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
6ef1829072 refactor(statistic): decouple statistics collection from report generation
Introduces a dedicated `HTMLReportGenerator` class in `report_generator.py` to handle all aspects of HTML and chart rendering. This decouples the report presentation logic from the data collection process within `StatisticOutputTask`.

Key changes include:
- Migrated all HTML and JavaScript generation into the new `HTMLReportGenerator`.
- Extracted all statistic key constants into a separate `statistic_keys.py` file for improved organization.
- Renamed `_generate_chart_data` to `_collect_chart_data` to better reflect its purpose.
- Improved data handling robustness by using `.get()` for dictionary access and safely handling database query results.
2025-11-12 20:34:36 +08:00
minecraft1024a
ac4c592590 refactor(scheduler): 将统一调度器移动至插件系统API
将统一调度器模块从 `src/schedule/` 目录重构至 `src/plugin_system/apis/` 目录下。

这次调整旨在将调度器明确地定位为插件系统的核心API之一,从而改善代码的组织结构和架构清晰度。所有引用该模块的内部导入路径均已同步更新。
2025-11-12 13:47:00 +08:00
minecraft1024a
077628930b refactor(server): 将记忆可视化工具和统计功能整合进主服务
将原先独立的记忆可视化工具(Memory Visualizer)和LLM使用统计逻辑深度整合到项目主服务中。

主要变更包括:
- **移除独立的可视化工具**: 删除了 `tools/memory_visualizer` 目录下的所有独立服务器、脚本和文档,清理了项目结构。
- **API路由整合**: 在主 FastAPI 应用中注册了记忆可视化工具的路由,使其成为核心功能的一部分,可通过 `/visualizer` 访问。
- **统计逻辑重构**: 将LLM使用统计的计算逻辑从API路由层 `statistic_router.py` 中剥离,迁移到 `src/chat/utils/statistic.py` 中,实现了逻辑的解耦和复用。API路由现在直接调用重构后的统计任务。
- **依赖清理与添加**: 添加了 `jinja2` 作为模板渲染的依赖,并清除了与独立可视化工具相关的旧依赖。

此次重构简化了项目的维护和部署,将原本分散的功能统一管理,提升了代码的内聚性和可维护性。
2025-11-07 21:12:11 +08:00
Windpicker-owo
f87e8627e5 feat(memory): 移除传统内存系统并优化内存图谱
- 移除整个传统内存系统,包括内存系统模块及所有相关组件
- 删除弃用的内存组件:增强型内存激活器、海马体采样器、内存构建器、内存块、内存遗忘引擎、内存格式器、内存融合器、内存管理器、内存元数据索引、内存查询规划器、内存系统、消息集合处理器、消息集合存储、向量内存存储_v2
- 更新内存图配置,采用增强型检索设置
- 优化内存管理器查询功能,以分析完整对话上下文
- 更新机器人配置模板版本至7.6.1,新增内存图表检索参数

重大变更:旧版内存系统已被完全移除。所有内存功能现依赖于内存图系统。请更新配置以包含新的内存图检索参数。
2025-11-06 09:18:59 +08:00
Windpicker-owo
faca0d3d1b feat: 重构聊天系统的内存处理与格式化功能
- 更新了DefaultReplyer,采用新的内存格式化工具以提供更优质的内存描述。
- 已移除 Config 类中已弃用的内存配置。
- 在主系统中增强内存系统初始化检查,确保配置正确。
- 优化了MemoryManager,使其可直接使用全局配置进行内存设置。
- 新增了一个内存格式化工具,用于将内存对象转换为自然语言描述。
- 更新了内存工具,提供了更清晰的内存创建与管理指南。
- 精炼插件工具与使用提示,提升用户交互体验与记忆准确性。
- 根据内存系统结构的变化调整了机器人配置模板。
2025-11-06 08:47:18 +08:00
明天好像没什么
30658afdb4 ruff归零 2025-11-01 21:32:41 +08:00
明天好像没什么
cb97b2d8d3 rufffffff 2025-11-01 21:10:01 +08:00
tt-P607
c672f198ed fix(core): 优化应用关闭流程,确保数据库最后关闭
将数据库服务的停止操作移至所有清理任务执行完毕后,以防止其他组件在关闭时因无法访问数据库而产生异常。

此外,为数据库关闭操作增加了超时处理,增强了系统关闭时的健壮性。

- chore(config): 将模板配置文件中的默认模型由 DeepSeek-V3.1 全面升级至 DeepSeek-V3.2-Exp,以提升默认性能。
2025-11-01 19:00:59 +08:00
Windpicker-owo
5690778d03 feat: 实现消息批量写入机制优化数据库连接池
优化内容:
- 新增MessageStorageBatcher消息存储批处理器
- 默认缓存5秒或50条消息后批量写入数据库
- 显著减少数据库连接池压力,提升高并发性能
- store_message新增use_batch参数(默认True)
- 在主程序启动/停止时自动管理批处理器生命周期

性能提升:
- 高频消息场景下减少90%+的数据库连接
- 批量insert性能比单条insert快5-10倍
- 连接池溢出问题得到根本性解决

配置参数:
- batch_size: 50(达到此数量立即写入)
- flush_interval: 5.0秒(定时自动刷新)

影响文件:
- src/chat/message_receive/storage.py: 新增批处理器
- src/main.py: 启动和停止批处理器
2025-11-01 15:23:08 +08:00
Windpicker-owo
a1dc03cacc refactor: 完成数据库重构 - 批量更新导入路径
- 更新35个文件的导入路径 (共65处修改)
- sqlalchemy_models  core.models (模型类)
- sqlalchemy_database_api  compatibility (兼容函数)
- database.database  core (初始化/关闭函数)
- 添加自动化导入更新工具 (scripts/update_database_imports.py)
- 所有兼容性层测试通过 (26/26)
- 数据库核心功能测试通过 (18/21)
2025-11-01 14:22:54 +08:00
minecraft1024a
a29be48091 refactor(core): 优化类型提示与代码风格
本次提交对项目代码进行了广泛的重构,主要集中在以下几个方面:

1.  **类型提示现代化**:
    -   将 `typing` 模块中的 `Optional[T]`、`List[T]`、`Dict[K, V]` 等旧式类型提示更新为现代的 `T | None`、`list[T]`、`dict[K, V]` 语法。
    -   这提高了代码的可读性,并与较新 Python 版本的风格保持一致。

2.  **代码风格统一**:
    -   移除了多余的空行和不必要的空格,使代码更加紧凑和规范。
    -   统一了部分日志输出的格式,增强了日志的可读性。

3.  **导入语句优化**:
    -   调整了部分模块的 `import` 语句顺序,使其符合 PEP 8 规范。

这些更改不涉及任何功能性变动,旨在提升代码库的整体质量、可维护性和开发体验。
2025-10-31 20:56:17 +08:00
Windpicker-owo
246a15daae refactor(proactive):将主动性消息整合到统一调度框架中
- 将主动思考能力直接整合进亲和力交流流程中
- 以可配置的动态调度系统替换传统间隔系统
- 通过白名单/黑名单过滤实现细粒度控制
- 增加基于时间的频率调制和冷却周期管理功能
- 移除独立的proactive_thinker插件,采用集成化方案替代
- 更新配置架构,增加增强型主动消息参数
2025-10-31 12:27:01 +08:00
Windpicker-owo
ea7c1f22f9 feat(relationship): 重构关系信息提取系统并集成聊天流印象
- 在 RelationshipFetcher 中添加 build_chat_stream_impression 方法,支持聊天流印象信息构建
- 扩展数据库模型,为 ChatStreams 表添加聊天流印象相关字段(stream_impression_text、stream_chat_style、stream_topic_keywords、stream_interest_score)
- 为 UserRelationships 表添加用户别名和偏好关键词字段(user_aliases、preference_keywords)
- 在 DefaultReplyer、Prompt 和 S4U PromptBuilder 中集成用户关系信息和聊天流印象的组合输出
- 重构工具系统,为 BaseTool 添加 chat_stream 参数支持上下文感知
- 移除旧的 ChatterRelationshipTracker 及相关关系追踪逻辑,统一使用评分API
- 在 AffinityChatterPlugin 中添加 UserProfileTool 和 ChatStreamImpressionTool 支持
- 优化计划执行器,移除关系追踪相关代码并改进错误处理

BREAKING CHANGE: 移除了 ChatterRelationshipTracker 类及相关的关系追踪功能,现在统一使用 scoring_api 进行关系管理。BaseTool 构造函数现在需要 chat_stream 参数。
2025-10-30 16:58:26 +08:00
Windpicker-owo
033e1fecb4 feat(scheduler): 添加统一调度器集成支持
- 在系统启动和关闭流程中集成统一调度器
- 为事件管理器添加调度器回调注册机制
- 调整兴趣评分系统阈值配置
- 增强系统模块化架构,支持调度器事件通知
2025-10-28 12:41:29 +08:00
明天好像没什么
7b80d7c0b3 feat(plugin): 集成 MCP 协议支持并优化代码风格
- 新增 fastmcp 依赖,支持通过 Streamable HTTP 连接外部工具服务器
- 在 component_registry 与 tool_api 中实现 MCP 工具加载、注册及调用链路
- 补充 README 中的 MCP 特性说明
- 统一修复多处 import 顺序、空行、引号及类型注解,提升代码整洁度
- 在 pyproject.toml 中忽略 PERF203 规则,允许循环内异常处理
- 优化语音缓存与本地 ASR 调用逻辑,减少冗余代码
2025-10-26 13:10:31 +08:00
tt-P607
162cb8dba6 fix(memory): 修复记忆系统初始化逻辑,确保单例唯一性
先前,记忆系统的初始化流程存在问题,可能导致在不同位置获取到未初始化或多个不同的 MemorySystem 实例,引发潜在的运行时错误。

本次修改统一了应用的启动逻辑,在 main.py 中明确调用 `initialize_memory_system` 来初始化全局唯一的记忆系统实例。

此外,在记忆系统的关键生命周期节点(创建、初始化、获取)添加了详细的日志记录,以便于追踪实例ID,从而在未来能更好地诊断类似问题。
2025-10-25 21:23:44 +08:00
minecraft1024a
0737f84fd4 refactor(plugin): 优化插件加载与应用关闭逻辑
在插件加载流程中,增加了对兴趣计算器类型的检查,确保只有 `BaseInterestCalculator` 的有效子类才会被实例化,增强了系统的健壮性。

同时,简化了应用关闭逻辑,移除了对已废弃 `shutdown` 方法的调用,统一使用 `stop` 方法来停止应用。
2025-10-25 20:25:51 +08:00
明天好像没什么
0381320859 revert(mcp): 移除MCP SSE客户端及工具集成支持 2025-10-25 16:16:23 +08:00
minecraft1024a
fa58b0e999 feat(api): 增加 LLM 统计路由
将 LLM 使用情况统计的 API 路由注册到主应用程序中,以便通过 `/api/statistic` 路径访问相关统计数据。
2025-10-25 14:27:08 +08:00
minecraft1024a
83602b181b refactor(core): 移除睡眠系统
由于睡眠系统存在设计缺陷、实现复杂且维护成本高,并且实际使用效果不佳,常常导致非预期的行为(如错过重要消息或在不应睡眠时睡眠),现决定将其从核心代码中完全移除。

移除内容包括:
- 删除了整个 `sleep_system` 模块及其所有相关逻辑、状态管理和定时任务。
- 清理了配置文件 `config.py` 和 `official_configs.py` 中的 `SleepSystemConfig`。
- 移除了 `main.py` 中关于睡眠系统的初始化调用。
- 清理了 `message_manager` 和 `proactive_thinker` 中对睡眠状态的检查。
- 更新了 `bot_config_template.toml` 模板文件,移除了所有睡眠系统相关的配置项。

此举旨在简化项目架构,提高系统的稳定性和可预测性。未来的相关功能可能会以更健壮、更模块化的插件形式重新实现。
2025-10-25 10:00:56 +08:00
minecraft1024a
8c97774465 ruff ci 2025-10-18 11:11:05 +08:00
minecraft1024a
02a54fd3c9 feat(chat): 引入睡眠系统,在睡眠状态下拦截消息
在消息处理的最前端 (`MessageManager`) 增加了对睡眠状态的检查。当系统处于 `SLEEPING` 状态时,将直接拦截所有新消息,不再进行后续处理。

同时,为了配合睡眠系统的正常运作:
- 将睡眠系统的定时任务初始化移至 `main.py`,确保其在应用启动时正确加载。
- 在主动思维插件 (`proactive_thinker`) 的定时任务(冷启动和日常唤醒)中增加了睡眠状态检查,避免在睡眠期间触发主动行为。
2025-10-17 19:55:11 +08:00