Commit Graph

1893 Commits

Author SHA1 Message Date
Windpicker-owo
310256e24d feat(attention): 添加注意力优化器以增强提示词多样性和防止注意力退化
refactor(prompt): 使用 asyncio.gather 替代 as_completed 以提升并发性能
refactor(config): 添加注意力优化配置选项
refactor(prompt_params): 增加注意力优化开关
2025-11-12 22:37:35 +08:00
Windpicker-owo
c1cda89d65 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-12 21:19:27 +08:00
Windpicker-owo
17abfc74ae refactor(prompt): 优化任务并发执行逻辑,使用 as_completed 提升性能和错误处理 2025-11-12 21:19:19 +08:00
minecraft1024a
6ef1829072 refactor(statistic): decouple statistics collection from report generation
Introduces a dedicated `HTMLReportGenerator` class in `report_generator.py` to handle all aspects of HTML and chart rendering. This decouples the report presentation logic from the data collection process within `StatisticOutputTask`.

Key changes include:
- Migrated all HTML and JavaScript generation into the new `HTMLReportGenerator`.
- Extracted all statistic key constants into a separate `statistic_keys.py` file for improved organization.
- Renamed `_generate_chart_data` to `_collect_chart_data` to better reflect its purpose.
- Improved data handling robustness by using `.get()` for dictionary access and safely handling database query results.
2025-11-12 20:34:36 +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
edce9ff496 refactor(replyer): 优化用户ID获取逻辑,简化自我回复判断 2025-11-12 17:36:12 +08:00
Windpicker-owo
09db6c0c88 refactor: 移除对机器人自身用户ID的特殊处理,统一使用QQ号进行比较 2025-11-12 17:33:51 +08:00
Windpicker-owo
62c3732200 refactor(action_manager): 简化回复处理逻辑,移除多余的参与者信息获取 2025-11-12 16:23:39 +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
a6c2820dd9 fix(prompt): 通过延迟导入解决循环依赖问题
将 `global_prompt_manager` 的导入操作从模块顶部移动到具体使用它的方法内部。

此举旨在解决 `prompt_component_manager` 和 `prompt` 模块之间潜在的循环导入问题,确保在应用初始化时模块加载顺序的稳定性,避免可能因此引发的 `ImportError`。
2025-11-12 13:24:13 +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
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
minecraft1024a
623cebf728 docs(prompt): 为 PromptComponentManager 植入详尽的代码文档与注释
为了让提示词注入系统的核心 `PromptComponentManager` 变得更加透明和易于理解,本次提交对代码进行了全面的文档化。此举旨在降低新接手者的认知门槛,并为未来的维护工作铺平道路。

具体而言,我们为类和所有公开方法添加了详细的文档字符串,阐明了其设计哲学、职责边界和参数约定。同时,在关键代码块(如规则数据结构、内容提供者闭包、并发锁的使用)旁增加了内联注释,揭示了其背后的实现考量和工作机制。
2025-11-12 12:46:07 +08:00
minecraft1024a
c76e1ff0e6 fix(prompt): 修复 PromptComponentManager 的方法定义在类外部的问题
将多个本应属于 `PromptComponentManager` 的实例方法(如 `get_injections_for_prompt`, `get_rules_for_target` 等)移回正确的类定义内。

这些方法之前因缩进错误被意外地定义在了类外部,导致它们无法作为实例方法被正确调用。本次提交修正了这个问题,确保了类的封装性和方法的正确作用域。
2025-11-12 12:39:51 +08:00
minecraft1024a
ebc74f2fe7 feat(prompt): 新增按目标和组件查询注入规则的功能
为了提供更灵活的注入规则审查和调试能力,本次提交重构了规则查询接口。

新增了两个功能更强大的查询方法:
- `get_rules_for_target`: 允许查询所有注入到特定核心提示词的规则。
- `get_rules_by_component`: 允许查询由特定注入组件定义的所有规则,无论其目标为何。

BREAKING CHANGE: 移除了原有的 `get_dynamic_rule` 方法,该方法只能通过组件和目标联合查询单个规则,使用场景有限。请根据查询需求,改用新增的 `get_rules_for_target` 或 `get_rules_by_component` 方法。
2025-11-12 12:35:14 +08:00
minecraft1024a
6438539412 feat(prompt): 为提示词注入系统添加预览和详情查询功能
新增了对提示词注入过程进行预览和详细查询的能力,极大地增强了开发和调试的便利性。

- 新增 `preview_prompt_injections` 方法,允许在不修改任何状态的情况下,模拟并预览应用所有注入规则后的最终提示词模板。
- 增强 `get_injections_for_prompt` 方法,使其返回更丰富的注入信息,包括注入来源、类型和具体内容,提高了系统的可观测性。
- 新增 `get_dynamic_rule` 辅助方法,用于查询单条动态注入规则。

BREAKING CHANGE: `get_injections_for_prompt` 方法的返回结构已更改,现包含更详细的注入信息。移除了 `get_full_injection_map` 方法,并重命名 `get_registered_prompt_components` 为 `get_registered_prompt_component_info`。
2025-11-12 12:33:44 +08:00
minecraft1024a
626114c593 feat(prompt): 重构提示词管理器为动态可观测的注入中心
本次提交对 `PromptComponentManager` 进行了彻底的重构,将其从一个无状态的、按需计算的工具转变为一个有状态的、支持动态配置和实时观测的统一管理中心。

核心改进包括:
- **统一规则存储**: 引入 `_dynamic_rules` 作为唯一的真实来源。系统启动时会加载所有组件的静态 `injection_rules` 作为默认配置,后续可动态修改。
- **动态API**: 新增 `add_injection_rule` 和 `remove_injection_rule` 方法,允许在运行时动态地添加、更新和移除注入规则,极大地提升了灵活性。
- **可观测性**: 提供了一套完整的状态查询API(如 `get_full_injection_map`, `get_injections_for_prompt`),使系统当前的注入状态完全透明,便于调试和监控。
- **性能优化**: `apply_injections` 流程被极大简化,它现在直接从预加载的规则集中获取内容并应用注入,避免了每次调用都重新扫描和实例化组件的开销。
2025-11-12 12:23:20 +08:00
minecraft1024a
2edc049524 style(schedule): 统一调度器代码格式与风格
对 `unified_scheduler.py` 文件进行全面的代码格式化。

唉,真是的,之前的代码格式简直乱七八糟,到处都是多余的空行和不一致的换行,看着就让人头大。

本次改动包括:
- 移除类定义、函数定义和逻辑块之间不必要的空行,使代码更紧凑。
- 统一函数调用和实例化的参数换行风格,增强可读性。
- 调整了注释的间距,使其更加清晰。

哼,这次可没有改动任何核心逻辑哦,纯粹是代码美容,主人你可别搞错了。
2025-11-12 11:13:20 +08:00
Windpicker-owo
e12114c797 feat(memory_tools): 优化多角度查询生成策略,精简查询内容,去除冗余信息 2025-11-12 00:39:24 +08:00
Windpicker-owo
1fc8d5091c feat: 添加路径评分扩展算法和内存去重工具
- 基于图路径传播,实现了一种路径评分扩展算法,以优化内存检索。
引入了内存去重工具,以识别和合并相似的内存,从而提高结果质量。
- 更新了路径扩展的配置选项,包括最大跳数、阻尼因子和剪枝阈值。
- 在路径扩展中增加了对首选节点类型的支持,以提高内存检索的相关性。
- 增强的日志记录功能,以便更好地跟踪路径扩展和去重过程。
2025-11-12 00:33:05 +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
19cfa37097 feat(memory_manager): 增强配置日志记录,添加搜索权重和阈值过滤支持 2025-11-11 19:47:31 +08:00
Windpicker-owo
e2236f5bc1 feat:增强记忆节点的嵌入生成和日志记录- 在 MemoryBuilder 中为 SUBJECT 和 VALUE 节点类型添加了嵌入生成,确保仅为内容足够的节点创建嵌入。- 改进了 MemoryTools 的日志记录,在初始向量搜索期间提供详细见解,包括低召回情况的警告。- 调整了不同记忆类型的评分权重,以强调相似性和重要性,提高记忆检索的质量。- 将向量搜索限制从 2 倍提高到 5 倍,以改善初始召回率。- 引入了一个新脚本,用于为现有节点生成缺失的嵌入,支持批量处理并改进索引。 2025-11-11 19:25:03 +08:00
Windpicker-owo
28c0f764ea feat(memory_tools): 添加优先节点类型支持,优化多查询生成与记忆扩展逻辑 2025-11-11 16:03:29 +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
4b71cb4a88 feat(main): 移除数据库连接初始化方法,简化异步初始化流程 2025-11-10 22:04:24 +08:00
Windpicker-owo
6203fca5f2 feat(main): 移除知识库初始化,简化主系统启动流程 2025-11-10 21:57:35 +08:00
Windpicker-owo
1b93cc3d63 feat(context_manager): 移除消息添加和标记已读的日志记录,简化代码 2025-11-10 21:55:16 +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
c46df81bca feat(stream_loop_manager): 优化流循环管理,增强日志记录和错误处理,添加并发保护机制 2025-11-10 20:03:01 +08:00
Windpicker-owo
80819ad150 feat(message_manager): 增强清除未读消息逻辑,添加兜底保护以确保所有未读消息被标记为已读 2025-11-10 19:31:08 +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
dea45b083d feat(stream): 优化未读消息处理逻辑,避免无效的 chatter 调用 2025-11-10 15:18:40 +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
259a744a3b feat(action): 将回复处理逻辑封装为异步函数,优化代码结构和可读性 2025-11-10 13:44:52 +08:00
Windpicker-owo
882f93c886 feat(reply): 引入增强的格式过滤器,优化回复内容清理逻辑 2025-11-10 13:36:17 +08:00
Windpicker-owo
8c4a54c75d feat(reply): 引入 reply 和 respond 动作,优化消息回复机制
- 增加 reply 动作,针对单条消息进行深度回复,使用 s4u 模板。
- 增加 respond 动作,统一回应未读消息,使用 normal 模板。
- 更新核心动作插件以支持新动作,确保配置选项可用。
- 优化动作执行逻辑,提升对话流畅性和响应准确性。
2025-11-10 13:24:45 +08:00
Windpicker-owo
c07e1641cf Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-10 09:53:33 +08:00