Commit Graph

1990 Commits

Author SHA1 Message Date
minecraft1024a
7a6e9c3dcd chore(hello_world): 默认禁用 hello_world 插件 2025-11-15 17:30:05 +08:00
minecraft1024a
6f62073630 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-15 17:12:46 +08:00
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
5167b990d5 refactor(prompt): 将注意力优化与内容混淆统一为扰动流程
将原有的 `_AttentionOptimizer` 类重构并入 `_PromptProcessor` 类,以集中管理所有与提示词相关的预处理逻辑。

本次重构的主要变更包括:
- 引入 "提示词扰动" (Prompt Perturbation) 的统一概念,取代了之前分散的 "注意力优化" 和 "内容混淆" 术语。
- 创建新的核心方法 `_apply_prompt_perturbation`,它将语义变体、空白噪声和随机字符串注入整合为一个有序的处理流水线。
- 简化了 `prepare_prompt` 中的调用逻辑,使其更清晰、更易于维护。

此次重构显著提高了代码的可读性和模块化程度,使未来的扩展和调整更加方便。
2025-11-15 13:08:46 +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
f980a6f9f4 refactor(prompt): 将注意力和内容混淆统一为提示词扰动
本次提交重构了提示词修改逻辑,将之前独立的“注意力优化”和“内容混淆”功能合并为一个统一的概念:“提示词扰动”(Prompt Perturbation)。

主要变更包括:
- 在模型配置中引入新的统一选项:`enable_prompt_perturbation`, `perturbation_strength` 和 `enable_semantic_variants`。
- 将原 `AttentionOptimizer` 中的噪声注入和语义变体逻辑迁移到 `llm_models` 模块中,作为扰动策略的一部分。
- 简化 `attention_optimizer.py`,使其专注于提示词块重排 (`BlockShuffler`)。
- 更新 `_PromptProcessor` 以根据新的统一配置来协调不同的扰动技术。

此项更改为用户简化了配置,并通过集中化相关逻辑,提供了一个更清晰、更易于维护的实现。

BREAKING CHANGE: 内容混淆的相关配置已被替换。`enable_content_obfuscation` 和 `obfuscation_intensity` 配置项已移除。用户需更新配置以使用新的 `enable_prompt_perturbation` 和 `perturbation_strength`。
2025-11-14 20:14:19 +08:00
minecraft1024a
58bc8e9867 feat(config): 将内容混淆设置移至模型级别
内容混淆功能的相关配置项(`enable_content_obfuscation` 和 `obfuscation_intensity`)已从 API Provider 级别迁移到单个模型级别。

这一调整提供了更精细的控制能力,允许用户为特定模型独立启用或配置内容混淆,而不是统一应用于同一API下的所有模型。这对于处理来自同一提供商但审查策略不同的模型非常有用。

BREAKING CHANGE: `enable_content_obfuscation` 和 `obfuscation_intensity` 配置项已从 `[[api_providers]]` 部分移除。请将这些配置项迁移到需要此功能的 `[[models]]` 部分下。
2025-11-14 16:20:37 +08:00
minecraft1024a
36b1b72e25 refactor(prompt): 移除注意力优化功能
注意力优化功能(通过添加随机空白字符或语义变体)被证明效果不佳且可能引入不稳定性。

为了简化代码库、减少用户配置的复杂性并提高系统的稳定性,决定移除此实验性功能。这使得提示词构建过程更加直接和可预测。

BREAKING CHANGE: 移除了注意力优化功能及其所有相关配置。用户需要从配置文件中移除 `[attention_optimization]` 部分。
2025-11-14 16:15:42 +08:00
minecraft1024a
8d1142bbce feat(prompt): 为提示词管理添加调试与预览功能
增强了 `/system prompt` 命令,引入了多个用于调试和检查提示词注入系统的新子命令。

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

这些工具旨在提高提示词系统的透明度,并简化开发和故障排查过程。
2025-11-14 14:19:46 +08:00
minecraft1024a
d12c6d9b3a feat(prompt): 支持为组件添加新的注入规则
新增 `add_rule_for_component` 方法,允许为一个已存在的提示词组件添加一条新的注入规则。

该方法会自动查找并复用该组件已有的内容提供者 (content_provider) 和来源 (source),从而简化了为同一组件动态添加多个注入目标的操作。
2025-11-14 13:49:18 +08:00
minecraft1024a
ecf1714baa feat(prompt): 支持按组件名称批量移除注入规则
新增 `remove_all_rules_by_component_name` 方法,用于一次性移除指定提示词组件在所有目标上的注入规则。

此功能简化了组件的停用和清理流程,特别是在动态管理和热插拔组件的场景下,无需再手动遍历所有可能的目标提示词来逐一移除规则。
2025-11-14 13:34:36 +08:00
minecraft1024a
0d2234ca02 feat(prompt): 增强提示词组件信息获取,使其包含动态注入的组件
重构 `get_registered_prompt_component_info` 方法,以准确反映系统完整的提示词组件状态,包括静态注册和动态注入的组件。

此前的实现仅能返回静态注册的组件,无法展示通过动态规则注入的纯动态组件,导致信息不完整。

新的实现:
- 合并静态注册的组件和因动态注入规则而存在的组件。
- 为纯动态组件即时创建 `PromptInfo` 实例。
- 实时重建每个组件的 `injection_rules` 列表,以反映当前的注入配置。

这确保了前端或API调用方能够获取到所有可用提示词的最新、最准确的信息。
2025-11-14 13:10:25 +08:00
minecraft1024a
80210cfb58 feat(prompt): 增强 get_core_prompt_contents 方法以支持获取单个提示词
为 `get_core_prompt_contents` 方法添加了可选的 `prompt_name` 参数。
当指定 `prompt_name` 时,该方法现在只返回对应提示词模板的内容。如果未指定,则返回所有核心提示词。

BREAKING CHANGE: `get_core_prompt_contents` 方法的返回类型从 `dict[str, str]` 更改为 `list[list[str]]`,以统一处理单个和多个提示词的返回结果,确保接口行为的一致性。
2025-11-14 13:01:05 +08:00
minecraft1024a
14d37160c5 feat(api): 整合消息统计接口并增加来源筛选
将 `/messages/bot_stats_by_chat` 的功能合并到 `/messages/stats_by_chat` 接口中,以减少冗余并统一API。

- 为 `/messages/stats_by_chat` 接口新增 `source` 查询参数,允许按 'user' (用户) 或 'bot' (机器人) 筛选消息来源。
- `group_by_user` 参数现在仅在 `source='user'` 时生效。
- 对内部逻辑进行了重构,以支持新的筛选功能并提升代码可读性。

BREAKING CHANGE: 移除了 `/messages/bot_stats_by_chat` 接口。其功能已整合到 `/messages/stats_by_chat` 接口中,可通过设置查询参数 `source='bot'` 来实现。
2025-11-14 13:00:44 +08:00
minecraft1024a
ec1ce9db8e feat(statistic): 为供应商统计增加平均耗时和标准差指标
- 为按供应商分类的统计数据新增了平均请求耗时和耗时标准差的计算与展示。
- 重构了统计数据计算逻辑,统一使用 `defaultdict` 的直接索引访问替代 `.get()` 方法,使代码更简洁并提高了健壮性。
- 标准化了与耗时相关的统计键名,以提高代码的一致性和可读性。
2025-11-14 12:23:38 +08:00
Windpicker-owo
7ff9edd35a 删除不再使用的清理记忆数据脚本和时间解析器测试文件 2025-11-14 10:29:17 +08:00
Windpicker-owo
8024dc27eb Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 23:14:48 +08:00
Windpicker-owo
4449c9550b 增强 ModuleColoredConsoleRenderer,支持 Rich 标记语言解析,改进消息内容着色逻辑 2025-11-13 23:14:38 +08:00
Windpicker-owo
a2f2b28bf7 优化 build_chat_stream_impression 方法,增加对现有 ChatStream 记录的查询,改进平台信息获取逻辑 2025-11-13 23:08:05 +08:00
拾风
032c5a7a2d Merge branch 'master' into dev 2025-11-13 22:13:56 +08:00
Windpicker-owo
611baae432 调整配置文件,优化消息缓存、打断系统及主动思考功能的参数设置 2025-11-13 22:05:08 +08:00
Windpicker-owo
90a8c472b4 优化 Windows 平台的文件替换操作,增加安全的原子写入功能,改进备份文件清理机制 2025-11-13 21:42:46 +08:00
Windpicker-owo
c47678fa12 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 21:28:00 +08:00
Windpicker-owo
1f0e807606 更新 changelog.md,发布 MoFox_Bot v0.12.0 正式版,包含架构重构、性能优化及新功能介绍 2025-11-13 21:27:54 +08:00
拾风
0cb51674b0 Potential fix for code scanning alert no. 26: Use of a broken or weak cryptographic hashing algorithm on sensitive data
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-13 21:04:02 +08:00
Windpicker-owo
a5f813b3aa Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 21:01:49 +08:00
Windpicker-owo
2cb4add39c 更新版本号 2025-11-13 21:01:41 +08:00
拾风
589256aff5 Potential fix for code scanning alert no. 15: Use of a broken or weak cryptographic hashing algorithm on sensitive data
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-11-13 20:54:42 +08:00
tt-P607
a7e188f67c Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 20:39:14 +08:00
tt-P607
dcc8f6477e refactor(chat): 简化括号内容过滤
将用于过滤 `[表情包:...]` 和 `[图片:...]` 等内容的多个特定正则表达式模式替换为一个更通用的 `[.*?]` 模式。

此更改简化了代码,并通过处理方括号内的任何内容(包括未处理的格式如 `[at=...]`)提高了过滤的稳健性。
2025-11-13 20:38:59 +08:00
Windpicker-owo
295eb63496 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 20:30:06 +08:00
Windpicker-owo
2bbb03b5b0 fix(planner): 更新动作过滤逻辑以确保回复动作在未达到阈值时被排除 2025-11-13 20:10:58 +08:00
minecraft1024a
19f51c1e96 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 19:47:48 +08:00
minecraft1024a
718584a7da fix(statistic): 增强统计数据处理的健壮性
此前的统计处理逻辑在某些统计项(如模型调用、消息数)在特定周期内未产生数据时,会因为直接访问字典键而引发 `KeyError`,导致统计任务失败。

本次提交通过以下方式解决了该问题:
- 在访问统计字典时,全面使用 `dict.get()` 并提供默认值,避免因键不存在而崩溃。
- 使用 `setdefault` 来确保在计算平均耗时等指标前,相关的数据结构已被初始化。
- 简化并重构了历史总览数据的合并逻辑,使其在处理不完整数据时更加稳健。
2025-11-13 19:47:44 +08:00
Windpicker-owo
60b33211bf Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 19:45:39 +08:00
Windpicker-owo
ef724b748e fix(affinity_interest_calculator): 修复回复后阈值调整逻辑并移除弃用方法 2025-11-13 19:45:31 +08:00
tt-P607
9a4ce76584 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 19:43:18 +08:00
tt-P607
6bc71b0d3f feat(visualizer): 在图上实现内存搜索和节点高亮显示
这增强了内存可视化工具,使其具有强大的搜索和高亮功能。

后端 API(`/api/search`)现在会返回搜索结果中与每个内存相关的节点 ID。错误响应也已改进,以确保前端数据结构的一致性。

前端逻辑已进行了重大更新:
- 搜索时,现在会直观地高亮显示对应的节点及其连接的边。
- 不匹配的元素会被调暗,以将用户的注意力集中在搜索结果上。
- 智能处理结果不在当前视图中的情况(由于分页/聚类)或使用没有节点 ID 的旧数据时,为用户提供提示信息。
2025-11-13 19:42:26 +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
2f46794a64 feat(statistic): 支持按 provider 统计请求 2025-11-13 18:38:47 +08:00
minecraft1024a
2b55bd7ac5 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 18:18:24 +08:00
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
Windpicker-owo
cf38106480 Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev 2025-11-13 17:27:14 +08:00
Windpicker-owo
84013783ca feat(visualizer): 增加可渲染节点和边的最大限制,提高图形处理能力 2025-11-13 17:26:45 +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