Commit Graph

7770 Commits

Author SHA1 Message Date
Windpicker-owo
8dc754e562 fix(config): 更新 MMC_VERSION 至 0.13.0-alpha.2 2025-11-20 18:40:07 +08:00
Windpicker-owo
bd4e36b1cf feat(replyer): 添加最近消息支持以构建记忆块和查询文本 2025-11-20 18:06:23 +08:00
Windpicker-owo
e46a900f10 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-20 16:48:50 +08:00
Windpicker-owo
6ecf5a36f2 增强聊天管理器和数据库API,添加自动注册和异步清理功能,优化模型转换为字典的逻辑 2025-11-20 16:48:18 +08:00
tt-P607
bf4f9bf353 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-20 14:39:40 +08:00
tt-P607
5a93867417 fix(config): 临时修复 master_users 加载失败问题
问题描述:
由于未明原因,配置文件(bot_config.toml)中的 `permission.master_users` 字段在加载过程中被意外清空,导致权限系统无法正确识别 Master 用户。初步排查指向复杂的配置版本自动更新与迁移逻辑。

解决方案:
在 `config.py` 的 `load_config` 函数中,于 Pydantic 模型验证完成后,增加了一段临时修复代码。该代码会从 `tomlkit` 解析出的原始配置数据中,重新读取 `master_users` 的值,并将其强制赋给最终的 `config` 对象。

具体实现:
1.  使用 `config_data.unwrap()` 将 `tomlkit` 对象安全地转换为标准 Python 字典。
2.  从字典中提取 `permission.master_users` 的值。
3.  将提取到的值直接赋给 `config.permission.master_users`。
4.  添加了详细的日志,以便追踪此修复操作的执行情况。

影响:
-   **正面**:立即恢复了 Master 用户的识别功能,解决了权限检查失效的核心问题。
-   **注意**:这是一个临时性的解决方案(workaround),并未从根本上解决配置更新逻辑中可能存在的缺陷。后续仍需对该逻辑进行深入排查和重构。
2025-11-20 14:39:27 +08:00
LuiKlee
fe0dcbc369 是的,这是关于一键部署的文档
一键部署看这里~
2025-11-20 12:29:07 +08:00
Windpicker-owo
03c80a08fb 优化缓存条目大小估算,添加向量存储标记,清理待处理消息逻辑 2025-11-20 12:17:43 +08:00
Windpicker-owo
6f69df9225 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-20 11:45:36 +08:00
LuiKlee
a462cc1d22 移除技术群群号
Removed link to the technical department QQ group.
2025-11-20 09:49:10 +08:00
拾风
0da349e73b Merge pull request #1 from LuisKlee/patch-1
移除技术部群号
2025-11-20 09:47:41 +08:00
LuiKlee
c73bebee19 移除技术部群号 2025-11-20 09:43:48 +08:00
tt-P607
5374c26732 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-20 00:59:34 +08:00
Windpicker-owo
e398e297be Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox-Core into dev 2025-11-20 00:13:27 +08:00
LuiKlee
e7064f8baa 修改配置要求
实际测试时,完整部署需要至少需要3.2G的可用空间
2025-11-19 23:58:52 +08:00
LuiKlee
37fa234ac1 Add initial documentation for OneKey-Plus
准备放关于一键包的文档
2025-11-19 23:58:52 +08:00
Furina-1013-create
937f6a81ec 与MaiBot开发团队交流了一下并进一步改了Readme,增加了几处强调是Fork项目的说明
>> 补要拷打我当时真的不是我把之前的都init的😭😭😭
2025-11-19 23:58:52 +08:00
Furina-1013-create
5bef909a2e 与MaiBot开发团队交流了一下并进一步改了Readme,增加了几处强调是Fork项目的说明
补要拷打我当时真的不是我把之前的都init的😭😭😭
2025-11-19 23:58:52 +08:00
tt-P607
fa59ad7ce9 feat(config): 为清晰起见添加 use_anti_truncation 别名
在 `ModelInfo` Pydantic 模型的 `anti_truncation` 字段中添加了别名 `use_anti_truncation`。

此更改提高了配置文件的可读性和明确性,使其更清楚地表明这是一个用于启用该功能的布尔标志,同时不改变内部属性名称。
2025-11-19 23:58:52 +08:00
Furina-1013-create
0739a1a06e (你知道吗?阿范其实并不喜欢喜欢被切成臊子😡, 10) 2025-11-19 23:58:52 +08:00
tt-P607
75c0cb8d0e feat(prompt): 指示模型使用更自然的用户昵称
在核心聊天提示中添加了一条新规则,以改善对用户的称呼方式。

这条规则指示模型避免直接重复复杂或含有符号的用户名。相反,它鼓励使用更自然的昵称或缩写,使对话感觉更像人与人之间的交流。
2025-11-19 23:58:52 +08:00
Windpicker-owo
4c30388f18 feat: 强制注册长期记忆目标ID,支持中文描述作为ID映射 2025-11-19 23:58:51 +08:00
Windpicker-owo
ff3d2f5ef3 feat: 更新长期记忆管理器文档,添加ID引用规则和临时ID使用说明 2025-11-19 23:58:51 +08:00
Windpicker-owo
47a062a738 feat: 移除记忆图系统插件,优化记忆管理器的初始化和数据目录配置 2025-11-19 23:58:51 +08:00
Windpicker-owo
d9caee13ab feat: 更新模型配置,替换短期记忆构建和决策模型,调整长期记忆构建模型 2025-11-19 23:58:51 +08:00
Windpicker-owo
e70779347a feat: 重构记忆系统配置,移除三层记忆相关配置,优化全局记忆管理逻辑,支持批量生成文本向量 2025-11-19 23:58:51 +08:00
Windpicker-owo
8f7b695b74 feat: 优化长期记忆转移间隔和最大延迟,增强短期记忆清理逻辑,改进三级记忆系统属性处理 2025-11-19 23:58:50 +08:00
Windpicker-owo
fb112ada2f feat: 批量生成文本embedding,优化兴趣匹配计算逻辑,支持消息兴趣值的批量更新 2025-11-19 23:58:50 +08:00
Windpicker-owo
ea164ca74e feat: 添加三级记忆系统提示词格式化器,优化记忆块和短期记忆的格式化逻辑 2025-11-19 23:58:49 +08:00
Windpicker-owo
f685ea9fa8 feat: 添加历史消息长度限制,优化上下文管理和消息处理逻辑 2025-11-19 23:58:49 +08:00
Windpicker-owo
4c7bc1928e feat: 优化长期记忆检索和合并操作,支持图结构扩展和智能合并 2025-11-19 23:58:49 +08:00
Windpicker-owo
f3ea6a692e feat: 添加工具调用状态缓存和标准化工具历史记录管理器 2025-11-19 23:58:49 +08:00
Windpicker-owo
8c6242026d feat: 优化事件管理,添加事件处理超时和并发限制功能 2025-11-19 23:58:49 +08:00
Windpicker-owo
22d43ede8c feat: 添加不区分大小写/别名查找功能到图操作类型枚举 2025-11-19 23:58:49 +08:00
Windpicker-owo
ab4fcfb6b6 feat: 重构统一记忆管理器,整合聊天历史上下文并优化记忆块转移逻辑 2025-11-19 23:58:49 +08:00
Windpicker-owo
5798d11066 feat: 采用三层内存系统实现统一内存管理器
- 添加了UnifiedMemoryManager,以整合感知层、短期记忆层和长期记忆层。
- 实现了初始化、消息添加和内存搜索功能。
- 引入了记忆从短期存储到长期存储的自动转移机制。
- 开发了用于结构化内存表示的内存格式化工具。
- 增强日志记录功能,以便在内存操作过程中更好地进行追踪。
2025-11-19 23:58:49 +08:00
Windpicker-owo
e44f238e53 feat:实现短期内存管理器和统一内存管理器
- 添加了ShortTermMemoryManager来管理短期记忆,包括提取、决策和记忆操作。
- 集成大型语言模型(LLM),用于结构化记忆提取和决策过程。
- 基于重要性阈值,实现了从短期到长期的内存转移逻辑。
- 创建了UnifiedMemoryManager,通过统一接口整合感知记忆、短期记忆和长期记忆的管理。
- 通过法官模型评估来增强记忆提取过程的充分性。
- 增加了自动和手动内存传输功能。
- 包含内存管理操作和决策的全面日志记录。
2025-11-19 23:58:48 +08:00
minecraft1024a
7490064238 build(deps): 添加 slowapi 依赖 2025-11-19 23:58:48 +08:00
minecraft1024a
17b1ae0f26 refactor(config): 移除配置文件模板中的 [security] 部分
在最近的安全相关重构之后,独立的 [security] 配置部分已不再需要。
此提交将其从模板文件中移除以简化配置结构,并相应地更新了版本号。
2025-11-19 23:58:48 +08:00
minecraft1024a
334df4d87f refactor(plugin_system): 移除路由级认证,引入端点级安全依赖
之前的插件路由认证机制通过在 `RouterInfo` 中设置 `auth_required` 标志,对整个路由组件统一应用API密钥验证。这种方式缺乏灵活性,无法对单个端点进行细粒度的安全控制。

本次重构移除了 `auth_required` 机制,转而引入一个可重用的 FastAPI 依赖项 `VerifiedDep`。插件开发者现在可以按需将其应用到需要保护的特定端点上,从而实现更灵活、更精确的访问控制。

`hello_world_plugin` 已更新,以演示新的认证方式。

BREAKING CHANGE: 移除了 `RouterInfo` 中的 `auth_required` 属性。所有依赖此属性进行认证的插件路由都需要更新,改为在需要保护的端点上使用 `VerifiedDep` 依赖项。
2025-11-19 23:58:48 +08:00
minecraft1024a
c2e05a8257 refactor(api): 移除内存可视化路由的 API 密钥依赖
该路由旨在用于本地调试和可视化,不再需要进行 API 密钥认证。

BREAKING CHANGE: 内存可视化路由现在是公开访问的,不再需要 API 密钥。
2025-11-19 23:58:48 +08:00
minecraft1024a
717d4ba555 feat(plugin_system): 引入插件HTTP端点系统
引入了全新的 `BaseRouterComponent` 组件类型,允许插件开发者通过继承并实现 `register_endpoints` 方法来创建 FastAPI 路由。

- 插件系统现在可以自动发现并注册这些路由组件,并将它们挂载到主 FastAPI 应用的 `/plugins/<plugin_name>` 前缀下。
- 新增了全局配置 `[plugin_http_system]`,提供了总开关、API 速率限制和 API 密钥认证 (`X-API-Key`) 等功能,以确保端点的安全性和稳定性。
- 更新了 `hello_world_plugin` 插件,增加了一个简单的 `/greet` 端点作为实现示例。
2025-11-19 23:58:48 +08:00
tt-P607
fea007b429 refactor(maizone): 重构数据迁移以尽早关闭文件句柄
数据迁移逻辑已更新为先将整个文件读入内存,然后立即关闭文件句柄。

这可以防止旧数据文件在随后的 JSON 解析、验证和写入新存储的过程中保持打开状态,从而提高迁移过程的稳健性。
2025-11-19 23:58:48 +08:00
minecraft1024a
07a70e1dd5 fix(prompt): 修复抗审查指令被无条件添加的问题
在之前的提交中,抗审查指令被错误地设置为无条件添加。本次提交修正了此逻辑,将其与 `enable_prompt_perturbation` 开关关联,确保只有在启用提示词扰动时才会添加该指令,恢复了预期的行为。

此外,还简化了反截断指令的条件判断,直接访问 `model_info.anti_truncation` 属性以提高代码的可读性。
2025-11-19 23:58:47 +08:00
minecraft1024a
fb3f42640d feat(prompt): 默认启用抗审查指令并简化配置
为了简化用户配置并默认提高模型的抗审查能力,本次更新移除了 `prepend_noise_instruction` 配置选项。

现在,抗审查指令将作为默认行为,在处理所有提示词时自动添加,不再需要用户手动开启。同时,更新了模板文件中的注释,使其更清晰易懂。
2025-11-19 23:58:47 +08:00
Windpicker-owo
43bd9ca497 feat(napcat_adapter): 添加服务器地址和端口配置选项,优先使用插件配置
feat(tts_plugin): 优化TTS处理逻辑,支持生成回复并处理文本格式
2025-11-19 23:58:47 +08:00
tt-P607
efa5464ca9 feat(chatter): 支持按聊天类型和模式灵活过滤操作
`ChatterPlanGenerator` 中的操作过滤逻辑得到了增强,以支持更灵活的操作配置。现在,操作可以通过提供列表来启用多个聊天类型或模式,或者使用 `ChatType.ALL` 和 `ChatMode.ALL` 来启用所有类型/模式。

为此,`ChatterPlanGenerator` 被重构为通过依赖注入接受 `ActionManager` 实例,从而提高了解耦性并使组件更易于测试。
2025-11-19 23:58:47 +08:00
minecraft1024a
0c1edb40bf feat(prompt): 为提示词注入添加占位符保护机制
为防止注入规则(特别是使用宽泛正则表达式的 REMOVE 或 REPLACE 类型)意外修改或删除核心的 "{...}" 占位符,引入了一套新的占位符保护机制。

该机制通过以下步骤确保注入过程的安全性:
1.  **保护**:在应用任何规则之前,模板中的所有占位符都会被替换为唯一的临时标记。
2.  **预检与警告**:系统会检查所有危险规则(REMOVE/REPLACE),如果其目标内容可能匹配到被保护的占位符,则会记录一条警告日志。
3.  **安全应用**:所有注入规则在已保护的模板上按优先级顺序执行。
4.  **恢复**:完成所有注入后,临时标记被恢复为原始的占位符。

此项更改显著提升了提示词系统的鲁棒性,确保了核心模板的完整性不会被插件或动态规则无意中破坏。
2025-11-19 23:58:47 +08:00
minecraft1024a
67b3643e29 chore(hello_world): 默认禁用 hello_world 插件 2025-11-19 23:58:47 +08:00
minecraft1024a
d12e384cc2 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-19 23:58:47 +08:00