Commit Graph

193 Commits

Author SHA1 Message Date
Windpicker-owo
e44f238e53 feat:实现短期内存管理器和统一内存管理器
- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
2025-11-19 23:58:48 +08:00
Windpicker-owo
40709d95de rebase 清理 2025-11-19 23:45:47 +08:00
Windpicker-owo
16c14d194e 更新机器人配置模板,并添加路径扩展算法规范
- 将bot_config_template.toml中的版本号从7.6.7更新为7.6.8。
- 在bot_config_template.toml中添加了用于控制多个回复的配置选项。
- 引入了一份全面的路径扩展算法规范文档,详细介绍了算法概述、核心数据结构、算法流程、性能优化、接口定义和测试用例。
2025-11-19 23:37:35 +08:00
Windpicker-owo
40e7b3b514 feat: 添加路径评分扩展算法和内存去重工具
- 基于图路径传播,实现了一种路径评分扩展算法,以优化内存检索。
引入了内存去重工具,以识别和合并相似的内存,从而提高结果质量。
- 更新了路径扩展的配置选项,包括最大跳数、阻尼因子和剪枝阈值。
- 在路径扩展中增加了对首选节点类型的支持,以提高内存检索的相关性。
- 增强的日志记录功能,以便更好地跟踪路径扩展和去重过程。
2025-11-19 23:37:21 +08:00
Windpicker-owo
16be633dc2 feat(deduplicate_memories): 添加记忆去重工具,支持预览模式和相似度阈值设置 2025-11-19 23:35:30 +08:00
Windpicker-owo
f23f146d28 docs(memory-graph): 添加完整的使用文档
- 创建memory_graph_guide.md (完整使用指南)
- 创建memory_graph_README.md (快速开始)
- 更新TODO.md (标记记忆图系统完成)

文档内容:
- 系统概述和核心特性
- 配置说明 (35+配置项)
- LLM工具使用示例
- 代码使用示例
- 最佳实践建议
- 故障排除指南
- 迁移指南
- API参考

完成状态:
 Step 1-5 全部完成
 所有集成测试通过 (5/5)
 文档完整
2025-11-19 23:32:09 +08:00
Windpicker-owo
fc84afcf40 feat(memory-graph): 增强时间解析器,支持周/月/年和组合时间表达
- 新增周级别支持: X周前/后(如:2周前、3周后)
- 新增月级别支持: X个月前/后(如:1个月前、3月后)
- 新增年级别支持: X年前/后(如:1年前、2年后)
- 新增组合时间表达: 日期+时间段(如:今天下午、昨天晚上)
- 优化解析顺序,组合表达优先匹配
- 新增测试套件: 44种时间表达式全部通过
- 集成测试无'无法解析时间'警告

Changes:
- src/memory_graph/utils/time_parser.py: 增强 _parse_days_ago, 新增 _parse_combined_time
- tests/memory_graph/test_time_parser_enhanced.py: 完整测试套件(44个测试用例)
- docs/changelogs/time_parser_enhancement.md: 详细的增强说明文档
2025-11-19 23:32:06 +08:00
Windpicker-owo
6bb96bfa0f docs(memory-graph): 添加 Phase 1 完成总结文档 2025-11-19 23:32:05 +08:00
Windpicker-owo
dd58f5da20 feat(memory-graph): Phase 1 基础架构实现
- 定义核心数据模型 (MemoryNode, MemoryEdge, Memory)
- 实现配置管理系统 (MemoryGraphConfig)
- 实现向量存储层 (VectorStore with ChromaDB)
- 实现图存储层 (GraphStore with NetworkX)
- 创建设计文档大纲
- 添加基础测试并验证通过

待完成:
- 持久化管理
- 节点去重逻辑
- 记忆构建器
- 记忆检索器
2025-11-19 23:32:05 +08:00
Windpicker-owo
959143155f refactor: 将流循环管理器替换为调度器分发器以处理消息
- 引入SchedulerDispatcher以通过统一调度器管理消息分发。
- 更新了MessageManager以使用新的调度器,移除了旧的流循环管理功能。
- 增强了 add_message 方法,以便在接收消息时通知调度器。
- 已移除废弃的中断处理方法,将其逻辑整合至调度器中。
- 修改了action_manager,改为等待数据库操作而非使用asyncio.create_task以实现更精细的控制。
- 优化了统一调度器,支持并发任务执行及运行中任务的取消。
- 为重构流程和新架构添加了全面的文档说明。
2025-11-19 23:32:01 +08:00
Windpicker-owo
5e6e56454d feat(affinity-flow): 通过标签扩展与提及分类增强兴趣匹配
- 实施扩展标签描述以实现更精确的语义匹配
- 增加强/弱提及分类,并附带独立的兴趣评分
- 重构机器人兴趣管理器,采用动态嵌入生成与缓存机制
- 通过增强的@提及处理功能优化消息处理
- 更新配置以支持回帖提升机制
- 将亲和力流量聊天重新组织为模块化结构,包含核心、规划器、主动响应和工具子模块
- 移除已弃用的规划器组件并整合功能
- 为napcat适配器插件添加数据库表初始化功能
- 修复元事件处理器中的心跳监控
2025-11-19 23:31:58 +08:00
Windpicker-owo
ecef8edd28 feat(cache): 提升内存管理与监控能力
- 在CacheManager中添加健康监控系统,并提供详细的内存统计信息
- 使用新的memory_utils模块实现精确的内存估算
- 添加基于大小的缓存条目限制,以防止过大项目
- 通过去重内存计算优化缓存统计
- 在MultiLevelCache中添加过期条目的自动清理功能
- 增强批处理调度器缓存功能,支持LRU驱逐策略和内存追踪
- 更新配置以支持最大项目大小限制
- 添加全面的内存分析文档和工具

重大变更:CacheManager 的默认 TTL 参数现改为 None 而非 3600。数据库兼容层默认禁用缓存,以防止旧版代码过度使用缓存。
2025-11-19 23:31:55 +08:00
Windpicker-owo
0e024d30c2 refactor(json_parser): 统一 LLM 响应的 JSON 解析逻辑,简化代码并提高解析成功率 2025-11-19 23:31:52 +08:00
Windpicker-owo
c549cd09c6 refactor: 迁移PersonInfo和关系查询到优化后的API
PersonInfo查询优化 (person_info.py):
- get_value: 添加10分钟缓存,使用CRUDBase替代直接查询
- get_values: 添加10分钟缓存,批量字段查询优化
- is_person_known: 添加5分钟缓存
- has_one_field: 添加5分钟缓存
- update_one_field: 使用CRUD更新,自动使相关缓存失效

关系查询优化 (relationship_fetcher.py):
- UserRelationships: 使用get_user_relationship(5分钟缓存)
- ChatStreams: 使用get_or_create_chat_stream(5分钟缓存)

性能提升:
- PersonInfo查询减少90%+数据库访问
- 关系查询减少80%+数据库访问
- 高峰期连接池压力降低80%+

文档:
- 添加database_api_migration_checklist.md迁移清单
2025-11-19 23:31:03 +08:00
Windpicker-owo
d163d71505 docs: 添加数据库缓存系统使用指南
- 详细说明多级缓存架构(L1/L2)
- 提供@cached装饰器使用示例
- 说明手动缓存管理和缓存失效方法
- 列出已缓存的查询和性能数据
- 包含最佳实践和故障排除指南
2025-11-19 23:31:02 +08:00
Windpicker-owo
c50f00366c docs: 添加数据库重构完成总结文档
- 记录重构的完整过程和成果
- 测试结果: 26/26 (100%) 通过
- 导入更新: 37个文件, 67处修改
- 6个旧文件已归档到 old/ 目录
- 8次提交完成整个重构工作
- 文档包含后续优化建议和参考资料
2025-11-19 23:30:54 +08:00
Windpicker-owo
c0db312df5 docs(database): 添加重构测试报告
测试结果: 19/21通过 (90.5%)

核心层 (4/4):
-  引擎单例、会话工厂、数据库迁移、模型CRUD全部通过
-  25个表结构完整,WAL模式优化启用

优化层:
-  缓存 (5/5): L1/L2两级缓存, LRU淘汰, TTL过期正常
  * 写入: 196k ops/s, 读取: 1.6k ops/s
-  预加载 (3/3): 访问追踪, 数据预取, 关联识别正常
-  批处理 (4/5): 生命周期, 优先级, 自适应参数正常
  * 1个超时问题,不影响核心功能

集成测试:
-  缓存+预加载协同工作正常
-  全栈查询测试超时(优化中)

性能指标:
- 缓存写入: 195,996 ops/s
- 缓存读取: 1,680 ops/s (可优化)
- 连接池复用: 正常
- 批处理自适应: 10-100批次,50-200ms等待

结论: 重构成功,功能稳定,可进入阶段四(API层)
建议: 并行优化批处理超时问题
2025-11-19 23:30:43 +08:00
Windpicker-owo
fcc408e2d9 refactor(database): 阶段一 - 创建新架构基础
- 创建分层目录结构 (core/api/optimization/config/utils)
- 实现核心层: engine.py, session.py
- 实现配置层: database_config.py
- 实现工具层: exceptions.py
- 迁移连接池管理器到优化层
- 添加详细的重构计划文档
2025-11-19 23:30:41 +08:00
Windpicker-owo
82f2b68293 feat(scheduler): 添加统一调度器集成支持
- 在系统启动和关闭流程中集成统一调度器
- 为事件管理器添加调度器回调注册机制
- 调整兴趣评分系统阈值配置
- 增强系统模块化架构,支持调度器事件通知
2025-11-19 23:27:06 +08:00
明天好像没什么
37e16690bc revert(mcp): 移除MCP SSE客户端及工具集成支持 2025-11-19 23:25:15 +08:00
明天好像没什么
7395edf5b4 revert(mcp): 移除MCP SSE客户端支持 2025-11-19 23:25:13 +08:00
Windpicker-owo
1ff266237d refactor(notice): 移除硬编码的notice作用域判定逻辑
- 重构notice系统,作用域完全由additional_config中的is_public_notice字段决定
- 移除_determine_notice_scope方法中的硬编码notice类型检查
- 提供更灵活和可控的notice管理方式,支持显式配置公共notice
- 更新相关文档说明新的使用方式

BREAKING CHANGE: 之前依赖特定notice类型自动成为公共notice的插件需要显式设置is_public_notice=true
2025-11-19 23:23:59 +08:00
Windpicker-owo
963bcd19e1 feat(action): 重构 Action 激活机制并添加 go_activate() 方法
引入新的 Action 激活机制,允许通过重写 go_activate() 方法来自定义激活逻辑。提供了三个工具函数:
- _random_activation(): 随机概率激活
- _keyword_match(): 关键词匹配激活
- _llm_judge_activation(): LLM 智能判断激活

主要变更:
- 在 BaseAction 中添加 go_activate() 抽象方法和相关工具函数
- 更新 ActionModifier 使用新的激活判断逻辑
- 在 hello_world_plugin 中添加新的激活方式示例
- 更新文档说明新的激活机制
- 保持向后兼容,旧的激活类型配置仍然可用

BREAKING CHANGE: Action 激活判断现在通过 go_activate() 方法进行,旧的激活类型字段已标记为废弃但仍然兼容
2025-11-19 23:22:46 +08:00
minecraft1024a
cca07bd16e refactor: 将项目名称从 MaiBot 重命名为 MoFox-Bot
本次更新在整个代码库范围内将项目名称 "MaiBot" 及其相关变体(如 "maibot")统一重命名为 "MoFox-Bot"。

主要变更包括:
- 修改配置文件、模板和日志输出中的项目名称。
- 更新文档、注释和用户可见的字符串,以反映新的品牌名称。
- 调整插件元数据和描述。
2025-11-19 23:21:44 +08:00
Windpicker-owo
e65ab14f94 afc文档 2025-11-19 23:19:44 +08:00
subiz
781b7f92a9 没想到吧,我还是没测试()
feat(mcp): 集成MCP SSE协议支持并扩展工具调用能力

新增MCP客户端类型(mcp_ssd),支持通过Model Context Protocol连接外部工具服务器。
更新文档和配置模板,提供完整的MCP接入指南;主程序启动时自动初始化MCP工具提供器,
tool_api 与 tool_use 核心链路新增对MCP工具的检测与调用,实现与既有插件工具的无缝兼容。
同步更新配置模型、模板与帮助文档。
2025-11-19 23:19:01 +08:00
subiz
e02519b80e 我没测试,炸了就让一闪修,实在不行就revert()
feat(deps): 集成 MCP SSE 支持

引入 mcp>=0.9.0 与 sse-starlette>=2.2.1,完成 MCP SSE 协议客户端接入,
并在模块初始化中按需加载对应客户端。标记 TODO 清单中相关功能为已实现。
2025-11-19 23:18:31 +08:00
Windpicker-owo
3e30180b04 更新event doc 2025-11-19 23:01:07 +08:00
minecraft1024a
6f337a9d3f docs:新增了一份部署指南但是暂时不完整,等我们的文档仓库生出来再说 2025-11-19 22:49:51 +08:00
minecraft1024a
c807d79d64 docs: 更新模型配置指南
- 新增 `gemini` 客户端类型
- 更新 Google API 的 `base_url`
- 移除 `extra_params` 对 `gemini` 客户端的无效说明
- 新增 `anti_truncation` 参数说明
- 增加多个新的模型任务配置示例
- 将文档中的 `MaiBot` 统一为 `MoFox_Bot
2025-11-19 22:49:49 +08:00
minecraft1024a
11ecbf0a25 docs: remove outdated and unused documentation files
A significant number of documentation files, including design documents, user guides, and old images, have been removed to clean up the repository and eliminate outdated information. This reduces clutter and ensures that the documentation accurately reflects the current state of the project.

Key removals include:
- `memory_system_design_v3.md`
- `model_configuration_guide.md`
- `PERMISSION_SYSTEM.md`
- `CONTRIBUTE.md`
- `vector_db_usage_guide.md
2025-11-19 22:49:49 +08:00
minecraft1024a
6ca85ebc7f docs(plugins): remove outdated tool documentation
Removes the `tool-components.md` and `tool_caching_guide.md` files as they are no longer relevant after recent refactoring of the tool and caching systems. This cleanup ensures the documentation stays current with the codebase.
2025-11-19 22:49:47 +08:00
minecraft1024a
a645e766ca refactor(cache): 重构工具缓存机制并优化LLM请求重试逻辑
将工具缓存的实现从`ToolExecutor`的装饰器模式重构为直接集成。缓存逻辑被移出`cache_manager.py`并整合进`ToolExecutor.execute_tool_call`方法中,简化了代码结构并使其更易于维护。

主要变更:
- 从`cache_manager.py`中移除了`wrap_tool_executor`函数。
- 在`tool_use.py`中,`execute_tool_call`现在包含完整的缓存检查和设置逻辑。
- 调整了`llm_models/utils_model.py`中的LLM请求逻辑,为模型生成的空回复或截断响应增加了内部重试机制,增强了稳定性。
- 清理了项目中未使用的导入和过时的文档文件,以保持代码库的整洁。
2025-11-19 22:49:46 +08:00
minecraft1024a
1e5a0ef328 替换名字 2025-11-19 22:49:21 +08:00
雅诺狐
a2873a71ef 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-11-19 22:48:49 +08:00
minecraft1024a
864272ab8f feat(core): 集成统一向量数据库服务并重构相关模块
本次提交引入了一个统一的、可扩展的向量数据库服务层,旨在解决代码重复、实现分散以及数据库实例泛滥的问题。

主要变更:

新增向量数据库抽象层:

在 src/common/vector_db/ 目录下创建了 VectorDBBase 抽象基类,定义了标准化的数据库操作接口。
创建了 ChromaDBImpl 作为具体的实现,并采用单例模式确保全局只有一个数据库客户端实例。
重构语义缓存 (CacheManager):

移除了对 chromadb 库的直接依赖。
改为调用统一的 vector_db_service 来进行向量的添加和查询操作。
重构瞬时记忆 (VectorInstantMemoryV2):

彻底解决了为每个 chat_id 创建独立数据库实例的问题。
现在所有记忆数据都存储在统一的 instant_memory 集合中,并通过 metadata 中的 chat_id 进行数据隔离和查询。
新增使用文档:

在 docs/ 目录下添加了 vector_db_usage_guide.md,详细说明了如何使用新的 vector_db_service 代码接口。
带来的好处:

高内聚,低耦合: 业务代码与具体的向量数据库实现解耦。
易于维护和扩展: 未来可以轻松替换或添加新的向量数据库支持。
性能与资源优化: 整个应用共享一个数据库连接,显著减少了文件句柄和内存占用
2025-11-19 22:48:39 +08:00
minecraft1024a
6b53560a7e feat(tool_system): implement declarative caching for tools
This commit refactors the tool caching system to be more robust, configurable, and easier to use. The caching logic is centralized within the `wrap_tool_executor`, removing the need for boilerplate code within individual tool implementations.

Key changes:
- Adds `enable_cache`, `cache_ttl`, and `semantic_cache_query_key` attributes to `BaseTool` for declarative cache configuration.
- Moves caching logic from a simple history-based lookup and individual tools into a unified handling process in `wrap_tool_executor`.
- The new system leverages the central `tool_cache` manager for both exact and semantic caching based on tool configuration.
- Refactors `WebSurfingTool` and `URLParserTool` to utilize the new declarative caching mechanism, simplifying their code.
2025-11-19 22:48:37 +08:00
ikun两年半
fc3412a2fa 更改了文档中机器人的名字喵~ 2025-11-19 22:47:36 +08:00
ikun两年半
a1f5753a58 笨蛋猫猫又有几个地方没改喵…… 2025-11-19 22:47:35 +08:00
ikun两年半
c6f242e31d 笨蛋猫猫又有几个地方忘记改了喵…… 2025-11-19 22:47:32 +08:00
ikun两年半
68cd87e7d1 更改了文档中机器人的名字喵 2025-11-19 22:47:31 +08:00
ikun两年半
dfa088473c 更改了文档中机器人的名字喵~ 2025-11-19 22:47:29 +08:00
ikun两年半
897ec0ac10 更改了文档中机器人的名字喵~ 2025-11-19 22:47:25 +08:00
ikun两年半
7298cfbb30 笨蛋猫猫又有一点忘改了喵…… 2025-11-19 22:47:24 +08:00
ikun两年半
df77fb962a 更改了文档中机器人的名字喵~ 2025-11-19 22:47:23 +08:00
ikun两年半
4456125a62 更新了文档中机器人的名字喵~ 2025-11-19 22:47:22 +08:00
ikun两年半
da27da20ae 更新了文档中机器人的名字喵~ 2025-11-19 22:47:22 +08:00
ikun两年半
3fa80f3f0f 更改了文档中机器人的名字喵~ 2025-11-19 22:47:21 +08:00
ikun两年半
ec0678f72a 更改了文档中机器人的名字喵~ 2025-11-19 22:47:20 +08:00
ikun两年半
f64b7dcd09 笨蛋猫娘发现顶上忘改了喵…… 2025-11-19 22:47:20 +08:00