tt-P607
8bd7e44297
fix(config): 为实验性功能配置添加默认值
...
为 `experimental` 配置项设置 `default_factory`,确保在配置文件中未提供该项时,程序能够正常初始化并使用默认配置,避免因缺少配置而引发的启动错误。
2025-11-19 22:49:05 +08:00
雅诺狐
e21ba338ed
更新 bot_config_template.toml
2025-11-19 22:49:01 +08:00
tt-P607
ed720c1218
feat(monthly_plan): 增加月度计划数量上限并自动清理
...
style: 优化月度计划相关日志输出
- 在数据库模块中新增物理删除月度计划的函数 `delete_plans_by_ids`
- 在月度计划管理器中引入 `max_plans_per_month` 配置,用于限制每月计划数量
- 当检测到计划数量超出上限时,自动按创建时间删除最旧的计划以维持数量限制
- 优化了标记计划完成和删除计划时的日志记录,使其输出更详细的计划内容
- 调整了检查现有计划时的日志信息,使其更清晰
2025-11-19 22:48:58 +08:00
tt-P607
4754478070
某个狐狸又忘记改版本号了
2025-11-19 22:48:56 +08:00
雅诺狐
4a7cfaf272
Update bot_config_template.toml
2025-11-19 22:48:55 +08:00
minecraft1024a
134116401c
refactor(memory): 重构向量记忆清理逻辑以提高稳定性
...
原有的清理逻辑直接使用 delete 和 where 条件(timestamp: {"$lt": ...})来删除过期记录。然而,ChromaDB 对元数据中复杂的查询操作符(如 $lt)的支持并不可靠。
为确保过期记录能被稳定地清除,本次提交将清理策略修改为更稳健的“获取-过滤-删除”模式:
1. 为向量数据库抽象层新增 `get` 方法,并为 ChromaDB 提供具体实现。
2. 在 `VectorInstantMemoryV2` 中,先获取指定聊天的所有记录。
3. 在应用代码中根据时间戳筛选出过期的记录ID。
4. 最后根据ID列表精确删除过期记录,确保了清理操作的准确性。
2025-11-19 22:48:54 +08:00
minecraft1024a
ef630cd6c3
feat(expression): 重构表达学习配置,引入基于规则的结构化定义
...
本次更新旨在提高表达学习配置的可读性和灵活性。旧的基于列表的 `expression_learning` 和 `expression_groups` 配置方式难以理解且容易出错。
通过引入新的 `ExpressionRule` Pydantic模型,我们将所有相关设置(如聊天流ID、是否学习、学习强度、共享组等)整合到一个统一的、自描述的结构中。现在,所有规则都在一个新的 `[[expression.rules]]` 表中进行配置,使得逻辑更加清晰和易于维护。
相关模块,如 `ExpressionSelector`,已更新以适配新的配置结构。同时,数据库中的 `Expression` 模型也已更新为现代的 SQLAlchemy 2.0 风格。
BREAKING CHANGE: 表达学习的配置文件格式已完全改变。旧的 `expression_learning` 和 `expression_groups` 配置不再受支持,用户需要根据新的 `bot_config_template.toml` 文件迁移到 `[[expression.rules]]` 格式。
2025-11-19 22:48:53 +08:00
minecraft1024a
d0bb520869
紧急补了一下配置文件
2025-11-19 22:48:52 +08:00
minecraft1024a
fbd5f4325c
feat(chat): implement sleep pressure and insomnia system
...
This commit introduces a new sleep pressure and insomnia system to simulate more realistic character behavior.
Key features include:
- **Sleep Pressure**: A new metric that accumulates with each action the bot takes and decreases during scheduled sleep times.
- **Insomnia Mechanic**: When a sleep period begins, the system checks the current sleep pressure. Low pressure can lead to a higher chance of "insomnia," causing the bot to stay awake. There is also a small chance for random insomnia.
- **Insomnia State**: During insomnia, the bot enters a special state for a configurable duration. It can trigger unique proactive thoughts related to being unable to sleep, and its mood is adjusted accordingly.
- **Configuration**: All parameters, such as insomnia probability, duration, and pressure thresholds, are fully configurable.
2025-11-19 22:48:51 +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
雅诺狐
0616623e71
修复权限系统
2025-11-19 22:48:44 +08:00
minecraft1024a
3948fbacbe
refactor(schedule): 重构日程与月度计划管理模块
...
将 `schedule_manager` 和 `monthly_plan_manager` 从 `src/manager` 移动到 `src/schedule` 目录,以更好地组织与日程和计划相关的功能。
主要变更:
- 将 `schedule_manager` 和 `monthly_plan_manager` 移动到新的 `src/schedule` 目录。
- 更新了所有对这两个模块的导入路径,以反映新的文件位置。
- 删除了旧的 `src/manager` 目录下的模块文件。
- `monthly_plan_manager` 内部实现被重构,取代了原有的 `plan_generator.py`,简化了计划生成逻辑。
2025-11-19 22:48:42 +08:00
tt-P607
e362615d6d
refactor: rename project from MaiMbot-Pro-Max to MoFox_Bot
...
This commit renames the project from "MaiMbot-Pro-Max" to "MoFox_Bot" across the entire codebase. The change reflects the new project identity and ownership under the MoFox-Studio organization.
Key changes include updating:
- EULA and README documentation
- Project URLs and repository links
- Startup messages and display names
- Plugin manifest metadata
2025-11-19 22:48:40 +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
tt-P607
12bcde800e
chore(chat): 增加临时表情缓存上限
2025-11-19 22:48:36 +08:00
minecraft1024a
2c3ebedc96
ruff这一块
2025-11-19 22:48:35 +08:00
minecraft1024a
5b32bd730c
fix(memory_system): 修复即时记忆的 orjson 编码与解码问题
...
`orjson.dumps` 返回 `bytes` 类型,在存入数据库前需要解码为 `str`。
同时,将关键词的反序列化库从标准 `json` 统一为 `orjson`,以保持序列化和反序列化操作的一致性。
2025-11-19 22:48:33 +08:00
minecraft1024a
e7fa3d79ff
Reapply "【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询..."
...
This reverts commit 3d93bc4079 .
2025-11-19 22:48:31 +08:00
Windpicker-owo
313c7eec17
修复空回复检测,同时修复tool_call
2025-11-19 22:48:29 +08:00
tt-P607
700c8dfa6f
fix(chat): 处理截断消息时message为None的情况
...
在 `truncate_message` 函数中,如果传入的 `message` 参数为 `None`,会导致 `len(message)` 抛出 `TypeError`。本次提交增加了对 `None` 值的检查,确保在处理 `None` 时函数能正常返回空字符串,从而提高代码的健壮性。
2025-11-19 22:48:27 +08:00
Furina-1013-create
1f800be3d1
feat(plugin_system): 增加工具执行日志记录
...
feat(plugin_system): 增加工具执行日志记录
在工具执行前添加一行日志,用于记录正在调用的工具名称和参数,方便调试和追踪。
2025-11-19 22:48:25 +08:00
雅诺狐
1f5412d3a9
Update instant_memory.py
2025-11-19 22:48:25 +08:00
Windpicker-owo
e068663ef9
Revert "【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询..."
...
This reverts commit 80ab0c687c .
2025-11-19 22:48:24 +08:00
Windpicker-owo
adfacd883c
【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询...
2025-11-19 22:48:23 +08:00
Furina-1013-create
7cc9d37a4e
chore(deps): 导入 json 模块
2025-11-19 22:48:19 +08:00
minecraft1024a
5f9c752e81
chore(llm_models): 在 LLMRequest 初始化中定义 model_name 变量,來修复某些神秘的bug
2025-11-19 22:48:18 +08:00
minecraft1024a
d21b403405
refactor(config): 移除主动思考提示词模板以简化配置
...
主动思考的提示词 (`proactive_thinking_prompt_template`) 已从配置文件中移除。此举旨在简化用户的配置过程,现在该提示词将由内部动态管理,以确保更佳的适应性和效果。
此外,为支持未来的功能扩展,本次更新在日志系统中为多个新模块(如计划生成器、权限管理、网页搜索插件、反注入系统等)添加了颜色和别名配置,提高了日志输出的可读性。
BREAKING CHANGE: 配置项 `proactive_thinking_prompt_template` 已被废弃并移除。请从您的配置文件中删除此项,主动思考功能将自动使用新的内部提示词逻辑。
2025-11-19 22:48:15 +08:00
minecraft1024a
d52c37f683
refactor(llm_models): 移除官方Gemini客户端并改用aiohttp实现
...
官方的 `google-generativeai` 库存在一些问题且似乎已不再积极维护,导致依赖关系和稳定性方面存在风险。
为提高稳定性和可维护性,现已移除基于该官方库的 `gemini_client.py` 实现。相应地,在配置文件模板中,`client_type` 已从 "gemini" 更新为 "aiohttp_gemini",以引导用户使用新的、基于 `aiohttp` 的异步客户端。
2025-11-19 22:48:14 +08:00
minecraft1024a
36021284da
refactor(config): 整合搜索服务配置并移除废弃选项
...
将原先独立的 Exa 和 Tavily 搜索引擎配置项合并到 `web_search` 配置块中,以实现更统一的管理。同时,移除了已废弃的 `Telemetry` 和部分 `Experimental` 功能配置,简化了整体配置文件结构。
主要变更:
- `ExaConfig` 和 `TavilyConfig` 被移除,其 API 密钥设置已迁移至 `WebSearchConfig`。
- 删除了 `TelemetryConfig` 及其在主配置中的引用。
- 简化了 `planner` 的自定义提示词逻辑,现在仅通过内容是否为空来判断是否启用。
- 更新了配置文件模板,以反映上述结构调整并移除过时的注释和配置项。
2025-11-19 22:48:12 +08:00
Windpicker-owo
2e79f538f2
修复双引号问题
2025-11-19 22:48:07 +08:00
minecraft1024a
38bfdfd7a0
refactor(config): 将反截断设置移至模型配置 #真的能算refactor吗
...
反截断(anti-truncation)功能与特定模型的行为和能力更为相关,而不是任务本身的属性。
此更改将该设置从 `TaskConfig` 移动到 `ModelInfo`,以实现更合理的配置分组和更精细的控制。代码逻辑和配置文件模板也已相应更新。
BREAKING CHANGE: `anti_truncation` 配置项已从 `[model_task_config]` 部分移动到 `[[models]]` 下的具体模型配置中。用户需要更新其配置文件以适配新结构。
2025-11-19 22:48:05 +08:00
minecraft1024a
dd9aecea14
feat(maizone): 新增QQ空间互通组功能,根据聊天上下文生成说说
...
引入了全新的“QQ空间互通组”功能。用户可以配置多个群聊为一个互通组。
在通过指令发布说说时,系统会自动获取这些群聊的近期聊天记录作为上下文,从而生成与当前讨论话题更相关的说说内容。
- 在 `config.toml` 中新增了 `[maizone_intercom]` 配置项用于定义互通组。
- 重构并增强了动态(说说)的拉取逻辑,提高了对不同数据格式的兼容性和解析的稳定性。
- 对项目中的多个文件进行了代码清理,移除了未使用的导入,使代码更加整洁。
2025-11-19 22:48:02 +08:00
minecraft1024a
74c83fdc01
feat(monthly_plan): 增强月度计划系统,引入状态管理和智能抽取
...
对月度计划系统进行了全面的重构和功能增强,以提供更智能、更可持续的计划管理体验。
主要变更包括:
- **引入状态生命周期**: 废弃了原有的 `is_deleted` 软删除标记,引入了更明确的 `status` 字段 (`active`, `completed`, `archived`),用于管理计划的整个生命周期。
- **增加使用统计与自动完成**: 新增 `usage_count` 和 `last_used_date` 字段来跟踪计划的使用情况。当计划使用次数达到可配置的阈值后,会自动标记为 `completed`。
- **实现智能计划抽取**: 为每日日程生成实现了新的智能抽取算法。该算法会优先选择使用次数较少且近期未被使用的计划,以增加计划的多样性并避免重复。
- **更新配置选项**: 移除了旧的概率删除相关配置,增加了 `completion_threshold`、`avoid_repetition_days` 等新选项以支持新逻辑。
- **数据库模型更新**: 更新了 `MonthlyPlan` 的数据库模型和索引,以支持新功能并优化查询性能。保留 `is_deleted` 字段以兼容旧数据。
2025-11-19 22:47:58 +08:00
雅诺狐
ec25bb6cd4
Update README.md
2025-11-19 22:47:54 +08:00
雅诺狐
3af985222b
Update README.md
2025-11-19 22:47:53 +08:00
雅诺狐
7bffe01b98
精简readme
2025-11-19 22:47:51 +08:00
ikun两年半
50c625aa08
更新了文档中机器人的名字喵~
2025-11-19 22:47:49 +08:00
ikun两年半
32e2e9d240
更改了文档中机器人的名字喵~
2025-11-19 22:47:47 +08:00
ikun两年半
570d80d7e3
更改了文档中机器人的名字喵~
2025-11-19 22:47:45 +08:00
ikun两年半
3e9463e37a
更改了文档中机器人的名字喵~
2025-11-19 22:47:43 +08:00
tt-P607
0dae3153d2
fix(maizone_refactored): 修复获取cookie时响应为空导致的错误
2025-11-19 22:47:42 +08:00
tt-P607
6532c30d5d
fix(chat): 修复关键词非列表形式时导致的解析错误
...
在处理记忆关键词时,旧代码使用 `ast.literal_eval` 来解析存储为字符串的关键词列表。当关键词字段为空或格式不正确时,这会引发 `ValueError` 或 `SyntaxError`。
本次修改将解析方式更换为 `json.loads`,并增加了 `try-except` 块来处理可能的 `json.JSONDecodeError`。同时,在添加记忆时,使用 `json.dumps` 来确保关键词列表被正确地序列化为 JSON 字符串,从而保证了数据存储和读取的健壮性和一致性。
2025-11-19 22:47:38 +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