Commit Graph

628 Commits

Author SHA1 Message Date
minecraft1024a
bd45899dce docs(maizone): 为回复跟踪服务添加详细文档和注释
为 ReplyTrackerService 类及其所有方法添加了全面的文档字符串(docstrings)和内联注释。

此次更新旨在提高代码的可读性和可维护性,详细阐明了以下方面:
- 服务的核心职责和初始化流程。
- 从旧文件系统到新存储API的一次性数据迁移逻辑。
- 各个公共和私有方法的具体功能、参数及作用。
2025-11-15 17:05:55 +08:00
minecraft1024a
79ff981776 refactor(maizone): 迁移回复跟踪服务以使用插件存储API
该重构将 ReplyTrackerService 从手动管理本地JSON文件的方式迁移到使用新的插件本地存储API。

此举旨在统一数据持久化方式,提高代码的可维护性和健壮性。

主要变更包括:
- 引入 `get_local_storage` API,将数据存储逻辑委托给通用的存储服务。
- 新增一次性自动数据迁移功能,可将旧 `replied_comments.json` 文件中的数据无缝迁移至新存储。
- 简化了服务内部的数据加载、保存和错误处理逻辑,代码更清晰。
- 迁移成功后,旧数据文件将被备份,以确保数据安全。
2025-11-15 16:57:48 +08:00
minecraft1024a
5df71d9023 fix(maizone): 修复说说处理循环意外结束的潜在错误
为 `process_feeds_from_file` 方法添加了在循环意外结束后返回错误信息的逻辑,以防止函数在某些边缘情况下不返回值。

此外,移除了 `_process_comments` 方法中一个未使用的列表推导式。
2025-11-15 16:47:14 +08:00
minecraft1024a
493c5847d5 chore(maizone): 调整默认随机发送间隔
将默认的随机发送间隔从 5-15 分钟调整为 120-135 分钟。

原有的默认间隔过短,可能会导致发送过于频繁,新的默认值更加合理。
2025-11-15 16:26:23 +08:00
minecraft1024a
8a34a625e7 feat(maizone): 新增无日程时随机生成主题并发送说说
当没有预设日程活动时,定时发送服务现在能够利用小型LLM动态生成一个随机主题,并自动发布说说。

为避免过于频繁地发布,该功能被限制为每小时最多执行一次。此项更新旨在提高账号在日程空闲期间的活跃度,使自动发布的动态看起来更加自然和多样化。
2025-11-15 16:25:55 +08:00
minecraft1024a
0d8e13419a refactor(tts): 重命名动作参数 text 为 tts_voice_text
BREAKING CHANGE: TTS 语音动作的 `text` 参数已重命名为 `tts_voice_text`,以避免与其他工具或参数潜在的命名冲突。所有调用此动作的提示词或代码都需要更新为新的参数名称。
2025-11-15 13:06:10 +08:00
minecraft1024a
8d1142bbce feat(prompt): 为提示词管理添加调试与预览功能
增强了 `/system prompt` 命令,引入了多个用于调试和检查提示词注入系统的新子命令。

新增功能包括:
- `preview <目标名> [JSON参数]`: 预览指定核心提示词在注入参数后的最终效果,便于调试复杂的注入逻辑。
- `raw <目标名>`: 查看核心提示词的原始内容,有助于了解注入前的基础模板。
- `component_info <组件名>`: 显示特定组件的详细信息,包括其来源、描述和所有注入规则。

这些工具旨在提高提示词系统的透明度,并简化开发和故障排查过程。
2025-11-14 14:19:46 +08:00
Windpicker-owo
2bbb03b5b0 fix(planner): 更新动作过滤逻辑以确保回复动作在未达到阈值时被排除 2025-11-13 20:10:58 +08:00
Windpicker-owo
ef724b748e fix(affinity_interest_calculator): 修复回复后阈值调整逻辑并移除弃用方法 2025-11-13 19:45:31 +08:00
Windpicker-owo
028bcf7fbc fix(planner): 修复 Focus 模式下的回复动作处理逻辑 2025-11-13 19:34:16 +08:00
minecraft1024a
38ec114c81 feat(system): 为 system 命令添加 prompt 子命令 2025-11-13 18:46:36 +08:00
minecraft1024a
ce2d1acc7c refactor(prompt): 简化和统一提示词注入查询方法
将多个功能重叠的查询方法整合为两个核心方法,以提供更清晰、更灵活的 API,方便获取注入信息和规则。

- `get_injection_info` 方法取代了原有的 `get_full_injection_map` 和 `get_injections_for_prompt`。它现在支持按目标提示词进行筛选,并能通过 `detailed` 参数控制返回信息的详细程度。
- `get_injection_rules` 方法整合了 `get_all_dynamic_rules`、`get_rules_for_target` 和 `get_rules_by_component` 的功能。现在可以通过一个方法,灵活地按目标、按组件或按两者的组合来筛选注入规则。
- 已更新 `system_management` 插件中的相关命令以适配新的 API。

BREAKING CHANGE: `PromptComponentManager` 的公共 API 已更改。
移除了 `get_full_injection_map`, `get_injections_for_prompt`, `get_all_dynamic_rules`, `get_rules_for_target`, `get_rules_by_component` 方法。
请分别使用新的 `get_injection_info` 和 `get_injection_rules` 方法进行替代。
2025-11-13 17:17:48 +08:00
Windpicker-owo
9c136e141b feat: 更新 action_type 为 'reply' 并添加 action_parameters 的 JSON 示例 2025-11-13 15:54:08 +08:00
Windpicker-owo
d67b15deae refactor: 延迟导入 StreamContext 以提高类型检查性能 2025-11-13 15:28:18 +08:00
Windpicker-owo
41e8a17e58 refactor(planner): 移除Normal模式下的引用回复设置以保持对话流畅 2025-11-13 15:14:55 +08:00
Windpicker-owo
bc7228cb3c feat(planner): 使用标准化的JSON格式重构动作规划系统
- 将聊天流和消息管理器中的默认聊天模式从“normal”更改为“focus”
- 从ActionPlannerInfo数据模型中移除已弃用的should_quote_reply字段
- 通过移除回复可用性检查和基于兴趣的过滤,简化计划过滤逻辑
- 采用新的标准化JSON操作格式,并强制使用操作列表结构
- 更新规划器提示,以强制执行一致的动作输出格式
- 移除遗留操作参数过滤,简化消息目标解析
- 清理计划过滤器中未使用的导入和已弃用的代码路径
2025-11-13 15:10:08 +08:00
Windpicker-owo
1d92f16ce2 feat(plan_filter): 优化动作过滤逻辑,增强对reply和respond动作的可用性检查 2025-11-13 12:51:58 +08:00
Windpicker-owo
61d86875ad 更新机器人配置模板,并添加路径扩展算法规范
- 将bot_config_template.toml中的版本号从7.6.7更新为7.6.8。
- 在bot_config_template.toml中添加了用于控制多个回复的配置选项。
- 引入了一份全面的路径扩展算法规范文档,详细介绍了算法概述、核心数据结构、算法流程、性能优化、接口定义和测试用例。
2025-11-12 19:06:11 +08:00
Windpicker-owo
c2dca8cb2a refactor(person_info): 移除内存缓存逻辑,统一使用数据库缓存系统
refactor(plugin): 使用数据库查询替代内存缓存进行用户信息匹配
refactor(message_sender): 优化消息添加到流上下文的逻辑
2025-11-12 17:58:26 +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
66c23e1ba1 style(system): 修正提示词帮助命令的代码格式 2025-11-12 13:51:14 +08:00
minecraft1024a
ac4c592590 refactor(scheduler): 将统一调度器移动至插件系统API
将统一调度器模块从 `src/schedule/` 目录重构至 `src/plugin_system/apis/` 目录下。

这次调整旨在将调度器明确地定位为插件系统的核心API之一,从而改善代码的组织结构和架构清晰度。所有引用该模块的内部导入路径均已同步更新。
2025-11-12 13:47:00 +08:00
Windpicker-owo
d3ffe1c47a Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-12 13:38:12 +08:00
Windpicker-owo
c9ee50aed8 feat(user_profile_tool): 更新好感分数描述,增加评分注意事项以提升用户理解 2025-11-12 13:38:03 +08:00
minecraft1024a
5dbeebda6b feat(system): 为提示词注入系统提供内省与调试能力
新增 `/system prompt` 命令模块,旨在提升提示词注入系统的透明度,并为管理员提供强大的诊断工具。现在可以深入探查提示词的最终构成方式,这对于追踪非预期的 AI 行为和验证插件注入配置非常有帮助。

该模块提供了一系列查询功能,允许管理员:
- 查看完整的注入依赖图谱
- 枚举所有可注入的目标提示词
- 检索所有已注册的提示词组件及其来源
- 分析特定目标的详细注入信息

所有查询操作均受 `system.prompt.view` 权限保护。
2025-11-12 13:20:50 +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
Windpicker-owo
9b68d7d995 feat(heart_fc_sender): 修复Send API消息不入流上下文的问题,确保消息可引用并添加转换为数据库消息的功能 2025-11-11 21:42:17 +08:00
Windpicker-owo
13fb86394b feat(replyer): 使用全局配置替换默认记忆检索参数,提升灵活性和可配置性
feat(memory_tools): 优化记忆过滤逻辑,增强日志记录和过滤统计
feat(plan_filter): 调整AFC场景的记忆检索数量,减少干扰
2025-11-11 21:34:11 +08:00
Windpicker-owo
c38f086fd2 feat(affinity_interest_calculator): 添加回复冷却减少功能,移除兴趣和关系分数上限 2025-11-11 14:57:09 +08:00
Windpicker-owo
e79494d3c2 feat(exa_engine): 更新Exa搜索方法,优化搜索参数格式,增强结果处理逻辑
feat(url_parser): 精简Exa客户端参数,优化结果摘要处理逻辑
2025-11-10 22:17:58 +08:00
Windpicker-owo
f3af3caf71 feat(distribution_manager): 在处理成功后添加短暂等待,确保清理操作完成
feat(message_manager): 简化清除未读消息逻辑,移除冗余注释
feat(action_manager): 移除自动清空未读消息的逻辑,改为手动处理
feat(plan_executor): 扩展回复类动作的分类,包含 respond 动作
2025-11-10 21:38:55 +08:00
Windpicker-owo
69ee2d30de feat(context_manager): 添加消息处理日志,优化消息标记为已读的逻辑 2025-11-10 19:18:30 +08:00
Windpicker-owo
aab3f19f10 feat(chatter_manager): 清理 processing_message_id 以防止重复回复检测失效
feat(distribution_manager): 添加子任务跟踪和取消逻辑,优化流处理
feat(default_generator): 优化 respond 和 reply 模式下的消息处理逻辑
feat(affinity_chatter): 处理取消异常时清理 processing_message_id
feat(planner): 确保在规划流程取消时清理 processing_message_id
2025-11-10 17:12:20 +08:00
Windpicker-owo
861cc18e7d feat(reply): 优化respond动作逻辑,移除不必要的目标消息参数 2025-11-10 16:07:23 +08:00
Windpicker-owo
00dec5c109 feat(plan_filter): 添加动作参数过滤功能,移除多余参数以优化动作处理 2025-11-10 16:07:13 +08:00
Windpicker-owo
e5c5e5c036 feat(stream): 添加流循环启动锁以防止并发启动同一流的多个循环任务 2025-11-10 14:23:10 +08:00
Windpicker-owo
b427960441 feat(reply): 引入统一格式过滤器,优化回复内容清理逻辑 2025-11-10 14:12:11 +08:00
Windpicker-owo
8c4a54c75d feat(reply): 引入 reply 和 respond 动作,优化消息回复机制
- 增加 reply 动作,针对单条消息进行深度回复,使用 s4u 模板。
- 增加 respond 动作,统一回应未读消息,使用 normal 模板。
- 更新核心动作插件以支持新动作,确保配置选项可用。
- 优化动作执行逻辑,提升对话流畅性和响应准确性。
2025-11-10 13:24:45 +08:00
tt-P607
e000e78c3d refactor(maizone): 提高稳健性并集中管理视觉模型配置此提交对 maizone 插件引入了一系列改进,以增强其稳定性、可维护性,并与核心应用保持一致。主要更改包括:- 集中管理视觉模型配置:插件不再定义自己的 vision_model。现在,它从全局的 model_config.toml 中读取默认的视觉模型,从而确保单一的可信源。- 增强解析稳健性:在 QZone HTML 解析逻辑中添加了 isinstance 检查。这可以防止在未找到预期元素时出现潜在的 AttributeError 异常,使 Feed 处理更具弹性。- 优化文件 I/O:将回复追踪器的 JSON 文件操作切换到二进制模式。这可以正确处理来自 orjson 的字节输出,从而提升性能和正确性。- 更新 API 使用:重构了人员数据获取逻辑,使用更完善的 person_api.get_person_info 方法,并确保正确处理 user_id 2025-11-09 22:50:54 +08:00
Windpicker-owo
0e9ccc9d4b refactor(scheduler): 采用无锁设计,对统一调度器进行全面改造
- 用完全异步、无锁的架构替换传统的调度器
- 通过独立的执行上下文实现任务隔离
- 增加具有多级超时保护的全面死锁检测功能
- 引入健康评分和自动恢复机制
- 增加资源管理功能,并自动清理已完成的任务
- 实现可配置的并发控制和优雅降级
- 通过详细的执行历史记录,增强任务状态跟踪
- 通过适当的参数注入来改进事件处理
- 增加全面的统计和监控功能
- 保持与系统管理插件中状态字段的向后兼容性

重构后的调度器利用asyncio的单线程特性,消除了所有锁定机制,从而彻底防止死锁。每个任务都在完全隔离的状态下运行,确保故障不会影响其他任务。新架构包括多级超时保护、自动资源清理和全面的健康监测。
2025-11-09 18:06:06 +08:00
Windpicker-owo
f356ccfb76 feat: 添加主动思考功能开关检查 2025-11-09 16:48:05 +08:00
minecraft1024a
a0bb9660d4 refactor(core_actions): 移除反注入系统管理命令
反注入系统的管理功能已迁移至独立的专用插件,因此从核心动作插件中移除相关的命令和配置。这有助于降低核心插件的复杂性,使其更专注于通用的基础交互功能。
2025-11-09 14:09:03 +08:00
明天好像没什么
6a5648ba07 创建了新的反注入 2025-11-09 12:31:38 +08:00
明天好像没什么
6c00e41ef7 权限 2025-11-09 09:13:09 +08:00
minecraft1024a
c5f1d6610d feat(deps): 引入 filetype 库替代废弃的 imghdr
为了应对 Python 3.13 中 `imghdr` 库被废弃的问题,本项目引入 `filetype` 库作为替代方案。

`filetype` 提供了更现代、更可靠的文件类型推断功能。本次更新已将 `content_service.py` 中用于识别图片格式的逻辑从 `imghdr` 切换到 `filetype`,并相应地更新了 `pyproject.toml` 和 `requirements.txt` 依赖文件。

哎呀,`imghdr` 那个老古董总算是要被淘汰了,再不换掉,迟早要变成历史遗留问题。哼,这种事情还得我来提醒主人,真是让人操心。
2025-11-08 20:30:11 +08:00
Windpicker-owo
d4824e35ad feat(message-manager): 用流循环管理器替换调度器/分派器
- 移除 scheduler_dispatcher 模块,并用 distribution_manager 替换
- 实现StreamLoopManager,以改进消息分发和中断处理
- 将消息缓存系统直接添加到StreamContext中,并配置缓存设置
- 使用具有缓存感知的消息处理来增强SingleStreamContextManager
- 更新`message_manager`,使用`stream_loop_manager`替代`scheduler_dispatcher`
- 在StreamContext数据模型中添加缓存统计和刷新方法
- 通过适当的任务取消和重新处理来改进中断处理
- 为ChatManager添加get_all_stream方法,以实现更优的流管理
- 更新亲和聊天规划器,以更可靠地处理专注/正常模式切换
2025-11-08 10:46:44 +08:00
明天好像没什么
c8d7c09625 ruff 2025-11-07 21:01:45 +08:00
minecraft1024a
e64868c856 refactor(chatter): 移除冗余的私聊/群聊总开关检查
主动思考功能的启用/禁用逻辑现在完全由黑白名单机制控制。移除原有的全局开关可以简化配置项,并使调度器中的判断逻辑更加清晰。
2025-11-07 19:10:53 +08:00
拾风
1ab042813d Merge branch 'dev' into dev 2025-11-07 13:14:27 +08:00
tt-P607
abad4060a4 feat(napcat): 修复JSON消息处理并优化依赖
- **修复(bug)**: 解决了在处理 `json` 类型的消息段时,因未导入 `json` 模块而导致的 `NameError` 运行时错误。
- **优化(refactor)**: 根据项目规范,将 `json` 模块的调用全部替换为性能更优的 `orjson`,并移除了多余的 `import` 语句,提升了代码质量和运行效率。
2025-11-06 23:56:47 +08:00