minecraft1024a
|
69f132a12e
|
feat(prompt): 为提示词组件提供注入目标上下文
为了让单个提示词组件在注入到不同目标时能够有不同的行为,现在向组件的执行上下文中传递当前注入的目标提示词名称 (`target_prompt_name`)。
这使得组件可以根据注入点动态调整其生成的内容。例如,一个工具列表组件在注入到 planner prompt 和 reflection prompt 时可以提供不同详尽程度的列表。
主要变更:
- `BasePrompt` 初始化时接收 `target_prompt_name`。
- `PromptComponentManager` 在应用注入规则时会传递此参数。
- `add_injection_rule` 方法现在支持批量添加规则,以简化注册流程。
BREAKING CHANGE: `PromptComponentManager.add_injection_rule` 中 `content_provider` 的函数签名已更改,现在需要接受第二个参数 `target_prompt_name: str`。
旧签名: `async def provider(params: PromptParameters) -> str`
新签名: `async def provider(params: PromptParameters, target_prompt_name: str) -> str
|
2025-11-13 18:18:15 +08:00 |
|
minecraft1024a
|
fe65ba6df6
|
refactor(mood_api): 为情绪API函数增加布尔返回值和错误处理
此重构修改了 `set_mood`, `lock_mood`, 和 `unlock_mood` 函数,使其返回布尔值以明确指示操作是否成功。
- 为 `set_mood` 和 `lock_mood` 添加了 `try...except` 块,以捕获异常并在失败时返回 `False`。
- `unlock_mood` 现在会在情绪本未锁定的情况下返回 `False`,提供了更清晰的状态反馈。
这些更改提高了API的健壮性,使插件等调用方能够更可靠地处理操作结果。
BREAKING CHANGE: `set_mood`, `lock_mood`, 和 `unlock_mood` 函数现在返回一个布尔值来表示操作是否成功,而不再是隐式地返回 `None`。
|
2025-11-13 16:01:40 +08:00 |
|
minecraft1024a
|
271b4a5285
|
feat(plugin_system): 新增 mood_api 插件接口
|
2025-11-13 15:12:01 +08:00 |
|
Windpicker-owo
|
09db6c0c88
|
refactor: 移除对机器人自身用户ID的特殊处理,统一使用QQ号进行比较
|
2025-11-12 17:33:51 +08:00 |
|
Windpicker-owo
|
80736a0deb
|
refactor(distribution_manager): 优化流循环管理逻辑,减少重复代码并改进异常处理
refactor(action_manager): 将异步存储操作改为非阻塞任务,提升性能
refactor(default_generator): 简化回复生成器中的消息处理逻辑
refactor(generator_api): 更新类型提示,增强代码可读性
refactor(affinity_chatter): 清理异常处理中的冗余代码,确保处理标记的正确清理
refactor(affinity_interest_calculator): 重命名阈值调整方法,提升代码一致性
refactor(plan_executor): 移除冗余的已读消息处理逻辑
refactor(planner): 优化规划器中的异常处理,确保正常模式的退出检查
|
2025-11-12 16:08:52 +08:00 |
|
minecraft1024a
|
ac4c592590
|
refactor(scheduler): 将统一调度器移动至插件系统API
将统一调度器模块从 `src/schedule/` 目录重构至 `src/plugin_system/apis/` 目录下。
这次调整旨在将调度器明确地定位为插件系统的核心API之一,从而改善代码的组织结构和架构清晰度。所有引用该模块的内部导入路径均已同步更新。
|
2025-11-12 13:47:00 +08:00 |
|
minecraft1024a
|
0e1e9935b2
|
style: 统一代码风格并采用现代化类型注解
对整个代码库进行了一次全面的代码风格清理和现代化改造,主要包括:
- 移除了所有文件中多余的行尾空格。
- 将类型提示更新为 PEP 585 和 PEP 604 引入的现代语法(例如,使用 `list` 代替 `List`,使用 `|` 代替 `Optional`)。
- 清理了多个模块中未被使用的导入语句。
- 移除了不含插值变量的冗余 f-string。
- 调整了部分 `__init__.py` 文件中的 `__all__` 导出顺序,以保持一致性。
这些改动旨在提升代码的可读性和可维护性,使其与现代 Python 最佳实践保持一致,但未修改任何核心逻辑。
|
2025-11-12 12:49:40 +08:00 |
|
minecraft1024a
|
daf8ea7e6a
|
refactor: 清理冗余代码并现代化导入语句
- 将 `typing.Awaitable` 和 `typing.Callable` 的导入更新为 `collections.abc`,以遵循 Python 3.9+ 的最佳实践。
- 移除了 `sorted()` 函数中不必要的 `set` 到 `list` 的转换。
- 清理了 `plugin_system/__init__.py` 中不再需要公开的 `__all__` 条目。
|
2025-11-12 12:47:55 +08:00 |
|
Windpicker-owo
|
8c4a54c75d
|
feat(reply): 引入 reply 和 respond 动作,优化消息回复机制
- 增加 reply 动作,针对单条消息进行深度回复,使用 s4u 模板。
- 增加 respond 动作,统一回应未读消息,使用 normal 模板。
- 更新核心动作插件以支持新动作,确保配置选项可用。
- 优化动作执行逻辑,提升对话流畅性和响应准确性。
|
2025-11-10 13:24:45 +08:00 |
|
明天好像没什么
|
6a5648ba07
|
创建了新的反注入
|
2025-11-09 12:31:38 +08:00 |
|
明天好像没什么
|
626dbfe998
|
权限已修复
|
2025-11-09 11:10:08 +08:00 |
|
明天好像没什么
|
6c00e41ef7
|
权限
|
2025-11-09 09:13:09 +08:00 |
|
tt-P607
|
130a0fdb31
|
refactor(core): 简化回复清理并加强 API 调用此次提交彻底重构了回复清理逻辑,以提升可维护性,并在发送 API 中引入了多项防御性检查,以防止常见的运行时错误。通过将复杂的迭代清理算法替换为单一且更高效的正则表达式,回复生成过程得到了简化。这不仅提高了去除模型生成的头信息的可靠性,还显著降低了代码复杂性。在发送 API 中,实现了多个安全措施:- 修正了异步处理错误,通过移除同步字典操作上无效的 await,防止出现 TypeError。- 添加了预检验证,以确保文件上传有定义的目标,并且临时流指定了平台。- 现在一致将机器人用户 ID 转换为字符串,以消除潜在的类型相关不一致。最后,为了清晰起见,机器人的行为原则术语也进行了调整。
|
2025-11-09 00:50:23 +08:00 |
|
Windpicker-owo
|
fdeccc07c5
|
feat(event-manager): 引入asyncio库以支持异步事件处理
|
2025-11-08 18:40:26 +08:00 |
|
Windpicker-owo
|
98bfa05b96
|
feat(scheduler): 新增死锁检测器,改进任务取消机制,优化异步通知
|
2025-11-08 18:20:00 +08:00 |
|
明天好像没什么
|
c8d7c09625
|
ruff
|
2025-11-07 21:01:45 +08:00 |
|
Windpicker-owo
|
ffdd4c6b9c
|
feat(tool_history): 实现流工具历史管理器,以增强工具调用跟踪和缓存- 添加了 StreamToolHistoryManager,用于管理聊天流级别的工具调用历史。- 引入了 ToolCallRecord,用于详细记录工具调用,包括执行时间和缓存命中情况。- 集成了内存缓存和全局缓存系统,以高效检索结果。- 更新了 ToolExecutor,以使用新的历史管理器记录和获取工具调用。- 增强了 ExaSearchEngine,以限制返回结果数量并提升答案质量。- 重构了 CacheManager 中的缓存管理,以包括工具调用统计和性能指标。
|
2025-11-06 14:22:59 +08:00 |
|
Windpicker-owo
|
17c1d4b4f9
|
feat: 将 JSON 处理库从 json 更改为 orjson,以提高性能和兼容性
|
2025-11-06 12:47:56 +08:00 |
|
Windpicker-owo
|
faca0d3d1b
|
feat: 重构聊天系统的内存处理与格式化功能
- 更新了DefaultReplyer,采用新的内存格式化工具以提供更优质的内存描述。
- 已移除 Config 类中已弃用的内存配置。
- 在主系统中增强内存系统初始化检查,确保配置正确。
- 优化了MemoryManager,使其可直接使用全局配置进行内存设置。
- 新增了一个内存格式化工具,用于将内存对象转换为自然语言描述。
- 更新了内存工具,提供了更清晰的内存创建与管理指南。
- 精炼插件工具与使用提示,提升用户交互体验与记忆准确性。
- 根据内存系统结构的变化调整了机器人配置模板。
|
2025-11-06 08:47:18 +08:00 |
|
Windpicker-owo
|
f01de48d30
|
refactor(tool_use): 添加工具调用历史记录功能,优化工具执行器的提示词和历史管理
refactor(chat_stream_impression_tool): 简化聊天流印象更新逻辑,直接使用传入参数更新
refactor(user_profile_tool): 优化用户画像更新逻辑,直接覆盖更新并移除二步调用机制
|
2025-11-02 12:43:44 +08:00 |
|
明天好像没什么
|
30658afdb4
|
ruff归零
|
2025-11-01 21:32:41 +08:00 |
|
明天好像没什么
|
ce9727bdb0
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-11-01 21:11:39 +08:00 |
|
明天好像没什么
|
cb97b2d8d3
|
rufffffff
|
2025-11-01 21:10:01 +08:00 |
|
minecraft1024a
|
64efe2e690
|
refactor(plugin_system): 统一事件和处理器相关方法的类型注解
将事件管理器中多个方法的类型注解从 `type[BaseEventHandler]` 调整为 `BaseEventHandler`,以反映其处理的是处理器实例而非类本身。同时,优化了事件名称的处理逻辑,确保在整个系统中对 `EventType` 枚举和字符串类型名称的处理保持一致性。
- 将 `_event_handlers` 的类型注解从 `dict[str, type[BaseEventHandler]]` 修改为 `dict[str, BaseEventHandler]`
- 相应地更新了 `get_event_handler` 和 `get_all_event_handlers` 方法的返回类型注解
- 在多个方法内部增加了对 `EventType` 枚举的处理,使其能够接受枚举成员作为参数,提高了类型安全性和代码可读性
|
2025-11-01 21:06:47 +08:00 |
|
minecraft1024a
|
3c847ec304
|
fix(plugin_system): 踹死几个类型错误
|
2025-11-01 21:03:16 +08:00 |
|
minecraft1024a
|
f91acbb202
|
fix(plugin_system): 修复两步工具定义中的类型注解错误
将 `definitions` 的类型注解从 `ClassVar` 移除,因为它是一个在方法内部构建并返回的局部变量,而不是一个类变量。这修正了潜在的类型检查错误,并使代码意图更加清晰。
|
2025-11-01 19:36:20 +08:00 |
|
拾风
|
c358386a53
|
Merge pull request #56 from MoFox-Studio/feature/database-refactoring
重构数据库系统,优化数据库性能
|
2025-11-01 17:38:18 +08:00 |
|
minecraft1024a
|
7b36bde49b
|
refactor(plugin_system): 移除静态PlusCommandAdapter并优化命令注册逻辑
移除了不再需要的静态`PlusCommandAdapter`类,该类最初用于将`PlusCommand`适配到旧的`BaseCommand`系统。
随着插件系统重构,所有命令(包括旧版命令)现在都统一通过动态创建的适配器在`ComponentRegistry`中转换为`PlusCommand`进行注册和处理。此更改简化了`plus_command.py`模块,消除了冗余代码,并使命令注册流程更加清晰和一致。
主要变更:
- 从`plus_command.py`中删除了`PlusCommandAdapter`类。
- 调整了`ComponentRegistry`中的日志记录逻辑,现在所有旧版命令都会被明确标记并适配,无需之前的条件检查。
- 相应地更新了相关模块的导入语句。
|
2025-11-01 17:14:37 +08:00 |
|
minecraft1024a
|
af5d75b463
|
回复器你不许传dict
|
2025-11-01 16:56:44 +08:00 |
|
minecraft1024a
|
444c458986
|
refactor(core): 统一消息对象类型并增强代码健壮性
本次提交对多个核心模块进行了重构和修复,主要目标是统一内部消息对象的类型为 `DatabaseMessages`,并增加多处空值检查和类型注解,以提升代码的健壮性和可维护性。
- **统一消息类型**: 在 `action_manager` 中,将 `action_message` 和 `target_message` 的类型注解和处理逻辑统一为 `DatabaseMessages`,消除了对 `dict` 类型的兼容代码,使逻辑更清晰。
- **增强健壮性**:
- 在 `permission_api` 中,为所有对外方法增加了对 `_permission_manager` 未初始化时的空值检查,防止在管理器未就绪时调用引发异常。
- 在 `chat_api` 和 `cross_context_api` 中,增加了对 `stream.user_info` 的存在性检查,避免在私聊场景下 `user_info` 为空时导致 `AttributeError`。
- **类型修复**: 修正了 `action_modifier` 和 `plugin_base` 中的类型注解错误,并解决了 `action_modifier` 中因 `chat_stream` 未初始化可能导致的潜在问题。
- **代码简化**: 移除了 `action_manager` 中因兼容 `dict` 类型而产生的冗余代码分支,使逻辑更直接。
|
2025-11-01 16:51:04 +08:00 |
|
minecraft1024a
|
01ab7ff151
|
perf(storage): 降低插件存储的延迟写入时间
将插件存储的 `save_delay` 从 5 秒调整为 2 秒,以更快地将数据持久化到磁盘,减少因意外关闭导致数据丢失的风险,同时在可接受的范围内平衡了性能开销。
|
2025-11-01 16:44:49 +08:00 |
|
minecraft1024a
|
14f6a31810
|
feat(storage): 引入插件存储延迟写入与退出时强制保存机制
对插件本地存储API进行了重要优化,引入了延迟写入(de-bouncing)机制,以减少频繁的磁盘I/O操作,提升性能。现在,对存储的修改会在一个短暂的延迟后批量写入,而不是每次操作都立即写入。
此外,增加了程序退出时的钩子(atexit hook),确保在主程序关闭前,所有插件缓存中未保存的数据都会被强制写入磁盘,防止数据丢失。
同时,此提交包含了一些小的修复:
- 修复了 `cross_context_api` 在私聊场景下 `user_info` 为空时可能出现的逻辑问题。
- 清理了 `plugin_base` 中不必要的 `ClassVar` 类型提示。
|
2025-11-01 16:41:37 +08:00 |
|
minecraft1024a
|
0033de2d32
|
refactor(plugin): 引入旧版Command兼容层并重构基类
为了平滑过渡到新的`PlusCommand`插件架构,本次重构引入了一个兼容层。
`BaseCommand`现在继承自`PlusCommand`,并剥离了大部分重复的功能实现(如消息发送、配置获取等),转而依赖`PlusCommand`的基类实现。这大大简化了`BaseCommand`,使其专注于作为旧版插件的兼容适配器。
在组件注册流程中,增加了对旧版`BaseCommand`的识别。当检测到旧版命令时,会自动使用`create_legacy_command_adapter`工厂函数将其包装成一个标准的`PlusCommand`实例。这使得旧插件无需修改代码即可在新架构下运行,同时会在启动时打印警告,鼓励开发者迁移。
|
2025-11-01 16:12:02 +08:00 |
|
Windpicker-owo
|
ce1c3288fd
|
fix: 修复数据库导入错误
- 修复12处从错误位置导入get_db_session/get_engine的问题
- 函数应从core导入,模型应从core.models导入
- 修复bot.py使用check_and_migrate_database代替不存在的initialize_database
影响文件:
- bot.py: 使用正确的初始化函数
- schedule_manager.py: 修复get_db_session导入
- relationship_service.py: 修复get_db_session导入
- schedule_api.py: 修复get_db_session导入
- utils.py (llm_models): 修复get_db_session导入
- utils_image.py: 修复get_db_session导入
- utils_video.py: 修复get_db_session导入
- user_ban.py: 修复get_db_session导入
- statistics.py: 修复get_db_session导入
- storage.py: 修复get_db_session导入
- anti_injector.py: 修复2处get_db_session导入
- permission_manager.py: 修复get_engine导入
|
2025-11-01 14:44:13 +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
|
5e7f17ebf9
|
refactor(api): 合并兴趣度API和关系API,以及扩展关系API
|
2025-11-01 11:38:12 +08:00 |
|
tt-P607
|
4936a6d65c
|
refactor(permission): 优化权限装饰器逻辑并增强健壮性
对权限系统进行了一系列重构和加固,主要包括:
- **增强健壮性**:在 `require_permission` 和 `require_master` 装饰器中增加了对 `user_info` 和 `user_id` 的存在性检查。当无法获取用户信息时,会记录警告日志并安全退出,防止因用户信息缺失导致程序崩溃。
- **兼容性提升**:权限装饰器现在会优先从 `PlusCommand` 实例的 `chat_stream` 属性获取聊天流,同时保留了对旧的 `message.chat_stream` 属性的兼容性支持,使代码更具前瞻性。
- **异步改造**:将 `is_master` 方法从同步改为异步,以统一权限检查的调用方式,并为未来可能引入的异步权限源做好准备。
- **代码简化**:移除了部分冗余注释,使代码更加清晰。
|
2025-11-01 02:32:15 +08:00 |
|
明天好像没什么
|
0e129d385e
|
refactor: 统一类型注解风格并优化代码结构
- 将裸 except 改为显式 Exception 捕获
- 用列表推导式替换冗余 for 循环
- 为类属性添加 ClassVar 注解
- 统一 Union/Optional 写法为 |
- 移除未使用的导入
- 修复 SQLAlchemy 空值比较语法
- 优化字符串拼接与字典更新逻辑
- 补充缺失的 noqa 注释与异常链
BREAKING CHANGE: 所有插件基类的类级字段现要求显式 ClassVar 注解,自定义插件需同步更新
|
2025-10-31 22:42:39 +08:00 |
|
明天好像没什么
|
e051955c05
|
调整一下目录结构
|
2025-10-31 21:32:06 +08:00 |
|
明天好像没什么
|
5bbe037367
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-31 21:11:20 +08:00 |
|
明天好像没什么
|
7835c1b349
|
支持一下stdio
顺便说一下猫猫真的很可爱,拾风真的很好rua
,狐狐真的很可爱
|
2025-10-31 21:10:52 +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
|
371041c9db
|
重构消息处理并用DatabaseMessages替换MessageRecv
-更新PlusCommand以使用DatabaseMessages而不是MessageRecv。
-将消息处理逻辑重构到一个新模块message_processor.py中,以处理消息段并从消息字典中创建DatabaseMessages。
-删除了已弃用的MessageRecv类及其相关逻辑。
-调整了各种插件以适应新的DatabaseMessages结构。
-增强了消息处理功能中的错误处理和日志记录。
|
2025-10-31 19:24:58 +08:00 |
|
Windpicker-owo
|
2c3895ef97
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-30 17:35:29 +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
|
cfa642cf0a
|
feat(expression): 增强表达学习与选择系统的健壮性和智能匹配
- 改进表达学习器的提示词格式规范,增强LLM输出解析的容错性
- 优化表达选择器的模型预测模式,添加情境提取和模糊匹配机制
- 增强StyleLearner的错误处理和日志记录,提高训练和预测的稳定性
- 改进流循环管理器的日志输出,避免重复信息刷屏
- 扩展SendAPI的消息查找功能,支持DatabaseMessages对象兼容
- 添加智能回退机制,当模型预测失败时自动切换到经典模式
- 优化数据库查询逻辑,支持跨聊天流的表达方式共享
BREAKING CHANGE: 表达选择器的模型预测模式现在需要情境提取器配合使用,旧版本配置可能需要更新依赖关系
|
2025-10-30 11:16:30 +08:00 |
|
Windpicker-owo
|
f6349f278d
|
feat(expression): 添加表达方式选择模式支持与DatabaseMessages兼容性改进
- 新增统一的表达方式选择入口,支持classic和exp_model两种模式
- 添加StyleLearner模型预测模式,可基于机器学习模型选择表达风格
- 改进多个模块对DatabaseMessages数据模型的兼容性处理
- 优化消息处理逻辑,统一处理字典和DatabaseMessages对象
- 在配置中添加expression.mode字段控制表达选择模式
|
2025-10-29 22:52:32 +08:00 |
|
tt-P607
|
21b5e378ea
|
feat(chat): 增强回复功能,支持通过字符串指定并显示用户ID
为了让插件能更灵活地构造回复消息,而无需依赖完整的原始消息对象,本次提交引入了新的回复机制。
- `send_api` 新增 `reply_to` 参数,允许使用 `昵称(ID)` 格式的字符串直接指定回复目标。
- 统一更新了回复消息的显示格式,在回复引文中一并展示用户昵称和ID,避免因昵称重复造成混淆。
|
2025-10-29 16:58:50 +08:00 |
|
Windpicker-owo
|
033e1fecb4
|
feat(scheduler): 添加统一调度器集成支持
- 在系统启动和关闭流程中集成统一调度器
- 为事件管理器添加调度器回调注册机制
- 调整兴趣评分系统阈值配置
- 增强系统模块化架构,支持调度器事件通知
|
2025-10-28 12:41:29 +08:00 |
|
tt-P607
|
d9c83c2cab
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-27 00:39:35 +08:00 |
|