Windpicker-owo
742b47c099
fix:修复插件组件无法正确获取插件配置的问题
2025-09-06 20:39:59 +08:00
minecraft1024a
657b12015b
忘更新配置文件版本号了()
2025-09-06 17:18:36 +08:00
minecraft1024a
e5247eba96
feat(config): 为小脑(sub-planner)新增独立模型和尺寸配置
...
为“小脑”(sub-planner)引入了独立的模型配置`planner_small`,使其可以与主planner(大脑)使用不同的、更轻量的模型,以提升并行处理性能。
同时,新增了`planner_size`配置项,用于控制每个小脑处理的action数量,允许用户根据需求调整并行度和单个小脑的上下文窗口。
- 在`model_config.toml`中添加`planner_small`任务配置
- 在`bot_config.toml`中添加`planner_size`参数
- 更新代码以使用新的配置项,并移除了相关的硬编码和TODO注释
2025-09-06 17:14:32 +08:00
minecraft1024a
a0ddd525b3
refactor(chat): 重构planner为大脑/小脑并行架构以提升性能和可扩展性(别管能不能用先插进来再说)
...
将原有的单体`plan`方法重构为一个多智能体架构,包含一个"大脑"和多个并行的"小脑"。
大脑 (`plan`方法) 专注于决定是否进行聊天回复 (`reply`),并负责调度和整合所有决策。
小脑 (`sub_plan`方法) 并行处理具体的、独立的action判断。每个小脑接收一部分action,使用轻量级模型进行快速评估,从而实现并行化处理,减少了单一LLM调用的延迟。
这种新架构的主要优势包括:
- **性能提升**:通过并行化action判断,显著减少了规划器的总响应时间。
- **可扩展性**:添加新的action变得更加容易,因为它们可以被分配到不同的小脑中,而不会增加主规划流程的复杂性。
- **鲁棒性**:将复杂的规划任务分解为更小的、独立的单元,降低了单个点失败导致整个规划失败的风险。
- **成本效益**:允许为小脑配置更轻量、更快速的模型,优化了资源使用。
2025-09-06 17:13:58 +08:00
minecraft1024a
268dbcca5e
refactor(api): 优化撤回消息的函数调用
...
将 `adapter_command_to_stream` 的直接调用重构为使用更通用的 `command_to_stream` 函数。
此更改统一了命令分发逻辑,提高了代码的可维护性。
2025-09-06 16:55:24 +08:00
minecraft1024a
9ec0b6977b
fix(api): 处理列表类型的 content 输入
...
在 `process_human_text` 函数中,增加了对 `content` 参数的类型检查。如果 `content` 是一个列表,它会被自动转换成字符串,以防止后续处理中出现 `ValueError`。这增强了函数的健壮性,使其能够处理更多样化的输入格式。
2025-09-06 16:40:46 +08:00
minecraft1024a
59985cb905
fix(chat): 修复 kaomoji 恢复函数的参数类型
...
在之前的重构中,`recover_kaomoji` 函数的调用被简化,但在此处调用时忘记移除数组包裹,导致传递了错误的参数类型。此提交删除了多余的方括号,确保将字符串直接传递给 `recover_kaomoji` 函数。
2025-09-06 16:29:00 +08:00
minecraft1024a
bf29407538
refactor(chat): 简化 kaomoji 恢复函数的参数传递
...
将 `recover_kaomoji` 函数的调用从传递列表 `[s["..."]]` 改为直接传递字符串 `s["..."]`。此更改简化了代码,并与函数预期的输入类型保持一致,提高了代码的可读性和健壮性。
2025-09-06 16:24:31 +08:00
minecraft1024a
4e639249c3
fix(chat): 修复错别字修正功能中的 kaomoji 恢复逻辑
...
在处理类型为 "typo" 的句子时,`recover_kaomoji` 函数的调用方式有误。原先代码将 `s["correction"]` 包装在列表中 (`[s["correction"]]`) 进行传递,这与函数的预期输入不符,可能导致在修正错别字时无法正确恢复 kaomoji 表情。
本次提交移除了不必要的列表包装,确保将 `s["correction"]` 直接传递给 `recover_kaomoji` 函数,从而修正了该问题。
2025-09-06 16:23:07 +08:00
minecraft1024a
76ad927919
fix(chat): 修复动作列表不为空时获取动作类型的问题(废物哈吉米替换了十次)
2025-09-06 16:10:45 +08:00
minecraft1024a
d16df808ef
fix(chat): 处理响应数据为列表时的情况
...
当响应内容`data`是一个列表时,将其所有元素连接成一个字符串,以避免在后续处理中因类型不匹配而引发的错误。
2025-09-06 16:03:52 +08:00
minecraft1024a
a3d0588e7e
docs(core): 为核心模块添加日志记录和文档字符串
...
为 `cycle_processor`, `response_handler`, `generator_api`, 和 `send_api` 等核心代码文件补充了日志记录器和详细的文档字符串(docstrings)。
本次更新旨在提高代码的可读性和可维护性,通过清晰的文档注释和日志输出,使其他开发者能更容易地理解代码逻辑和功能,并为未来的调试和功能扩展提供便利。
2025-09-06 15:52:21 +08:00
minecraft1024a
fd5d951501
feat(chat): 实现发送错别字后自动撤回修正的功能
...
引入了一个新的聊天交互机制:当机器人发送了包含“错别字”的消息后,会在短暂延迟后自动撤回该消息,并发送正确的版本。此功能旨在模拟更真实的人类打字行为,增加交互的趣味性和拟人化程度。
主要变更:
- **错别字处理流程**:
- `ResponseHandler`现在会识别出带有错别字的消息,并在发送后创建一个异步任务来处理后续的修正。
- 新增`handle_typo_correction`方法,该方法会随机延迟2-4秒,然后调用新的`recall_message` API撤回原消息,并重新发送修正后的内容。
- **API扩展**:
- `send_api`中增加了`recall_message`函数,用于调用适配器执行消息撤回操作。
- `send_response`的返回值从单个字符串`reply_text`变更为元组`(reply_text, sent_messages)`,以便将已发送的消息信息(包括ID和类型)传递给上层调用者。
- **数据结构调整**:
- `process_llm_response`的返回类型从`list[str]`调整为`list[dict[str, str]]`,以支持更复杂的响应类型,如包含原文、错别字和修正建议的`typo`类型。
- **代码优化与重构**:
- 对`ChineseTypoGenerator`进行了大量的代码清理、注释补充和逻辑优化,使其代码更清晰、更易于维护。
- 修复了多处代码中的类型注解和潜在的空指针问题,提高了代码的健壮性。
2025-09-06 15:44:52 +08:00
minecraft1024a
8f12dfd93c
feat(sleep): 引入弹性睡眠机制
...
根据睡眠压力动态调整入睡延迟时间。
- 新增`enable_flexible_sleep`配置项,用于启用或禁用此功能。
- 当启用时,系统会检查当前的睡眠压力值。
- 如果睡眠压力低于预设阈值,将根据压力差计算出一个延迟入睡的时间,压力越低,延迟越长。
- 增加了当日总延迟时间的上限,避免无限期推迟睡眠。
- 如果睡眠压力高于阈值,或当日延迟额度已用完,则会进入一个较短的准备阶段后入睡。
- 如果无法获取睡眠压力,系统将回退到旧的随机延迟逻辑。
- 将`_total_delayed_minutes_today`的数据类型从`int`修改为`float`以支持更精确的计算。
2025-09-06 14:48:12 +08:00
Windpicker-owo
578ecd93df
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-06 13:56:13 +08:00
Windpicker-owo
e5cba92617
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-06 13:55:57 +08:00
minecraft1024a
614f8064ba
feat(sleep): 引入多样化的失眠触发机制
...
重构了失眠系统,引入了两种新的失眠触发机制:
1. **低睡眠压力失眠**:当睡后检查时睡眠压力低于设定阈值,将触发失眠。
2. **随机失眠**:在睡眠压力正常的情况下,仍有一定概率随机触发失眠。
同时,移除了原有的 `post_sleep_insomnia` 特定情绪,并调整了相关配置项,使失眠原因的传递和处理更加灵活。
2025-09-06 13:55:57 +08:00
Windpicker-owo
d3f0b9d600
template
2025-09-06 13:54:38 +08:00
minecraft1024a
0b1d365fce
docs(core): 完善睡眠与主动思考模块的文档注释
...
为 `ProactiveThinker`, `SleepManager`, 和 `SleepState` 核心类及其方法添加了详尽的中文文档字符串和内联注释。
本次更新旨在提高代码的可读性和可维护性,详细解释了以下关键组件的职责和工作流程:
- **ProactiveThinker**: 阐明了其作为主动事件处理中心的角色,以及如何与规划器和生成器协作。
- **SleepManager**: 详细描述了其作为睡眠状态机的核心逻辑,包括状态转换的条件和处理流程。
- **SleepState**: 解释了各个睡眠状态的含义以及序列化器的作用,确保状态持久化。
此外,对配置文件 `bot_config_template.toml` 中的相关配置项也补充了更清晰的注释。
2025-09-06 13:44:38 +08:00
minecraft1024a
36b9eae6c8
refactor(sleep): 重构睡眠系统以实现睡后失眠机制
...
重构了原有的睡眠管理状态机,将睡前失眠逻辑调整为更真实的“睡后失眠”模式。现在系统会在角色入睡一段时间后,根据当前的睡眠压力判断是否触发失眠状态。
主要变更:
- **状态机调整**: 移除了入睡前的失眠检查,改为在进入`SLEEPING`状态后,延迟一段时间再根据睡眠压力触发`INSOMNIA`状态。
- **通知系统重构**: `NotificationSender`被简化,现在通过触发主动思考事件 (`goodnight`, `post_sleep_insomnia`) 来发送通知,而不是直接调用生成器API。
- **配置更新**: 将固定的失眠持续时间改为一个随机范围,并增加了触发失眠判定的延迟时间配置。
- **代码解耦**: `EnergyManager`现在直接依赖新的`SleepManager`,不再通过旧的`schedule_manager`。
2025-09-06 13:34:53 +08:00
minecraft1024a
11ada53b0d
rrrrrrrrrrrrrrrrruuuuuuuuuuuufffffffffffffffffffffffffffffffff x2
2025-09-06 12:25:36 +08:00
minecraft1024a
8e21502c31
refactor(sleep): 重构睡眠管理系统,移除桥接模式
...
将 `SleepManager` 从 `schedule_bridge` 中独立出来,使其成为一个自包含的组件。现在由 `HeartFChatting` 和 `ScheduleManager` 直接实例化和使用 `SleepManager`,移除了原有的全局单例桥接器。
主要变更:
- 删除了 `schedule_bridge.py`,其功能被直接整合到 `SleepManager` 和调用方中。
- `SleepManager` 内部逻辑被拆分为更小的模块,如 `TimeChecker`、`NotificationSender` 和 `SleepStateSerializer`,以提高内聚性和可测试性。
- `HeartFChatting` 现在直接创建并管理 `SleepManager` 实例,并通过 `HfcContext` 传递给其他需要的组件(如 `WakeUpManager`)。
- `ScheduleManager` 也创建自己的 `SleepManager` 实例来更新日程,简化了依赖关系。
- 简化了 `WakeUpManager` 中获取睡眠状态和重置状态的逻辑,直接通过上下文访问 `SleepManager`。
2025-09-06 12:16:11 +08:00
minecraft1024a
9bbf801bd9
feat(规划): 引入统一的规划系统并重构组件
...
本次提交引入了一个全新的统一规划系统,取代了独立的日程和月度计划模块。这一变更集中了配置并解耦了职责,以提高可维护性和清晰度。
核心逻辑现在被分解为专门的组件:
- PlanManager: 处理日常日程和月度目标的所有数据库交互,取代了已-删除的 monthly_plan_db.py。
- ScheduleLLMGenerator: 封装了与 LLM 交互以生成日程的逻辑,将此职责从 ScheduleManager 中移除。
- MonthlyPlanManager: 现在作为核心 PlanManager 的简化接口。
这次架构性的大修通过将数据持久化和 LLM 生成逻辑从主调度逻辑中抽象出来,简化了整体设计。
重大变更: bot_config.toml 中的配置已被迁移。移除了 [schedule] 和 [monthly_plan_system] 部分。所有相关设置现在必须在新的 [planning_system] 部分下进行配置。
2025-09-06 11:41:42 +08:00
minecraft1024a
285fe8476a
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-06 10:43:10 +08:00
minecraft1024a
f9b95c8881
refactor(sleep): 解耦ScheduleManager与SleepManager,引入桥接模式
...
为了降低模块间的耦合度并提升代码的可维护性,对睡眠管理系统进行了重构。
引入了`schedule_sleep_bridge`作为`ScheduleManager`和`SleepManager`之间的桥梁。`ScheduleManager`不再直接持有`SleepManager`的实例,而是通过桥接器更新其日程数据。`SleepManager`则通过桥接器获取所需的日程信息,实现了二者的解耦。
- **`ScheduleManager`**: 移除了所有与`SleepManager`直接交互的代码,现在只负责生成日程并通过桥接器发布。
- **`SleepManager`**: 构造函数和内部逻辑修改为依赖桥接器接口,而不是`ScheduleManager`实例。
- **`HeartFChatting`**: 更新了所有对睡眠状态管理的调用,使其通过新的`schedule_sleep_bridge`进行。
- **`DefaultReplyer`**: 采用了延迟导入的方式获取`schedule_manager`,减少了不必要的模块加载。
2025-09-06 10:08:31 +08:00
Windpicker-owo
41dc58d4fb
继续尝试迁移,但是组件获取插件配置存在问题
2025-09-06 05:45:00 +08:00
Windpicker-owo
6c042cc73f
迁移napcat插件至built_in
2025-09-06 03:38:43 +08:00
Windpicker-owo
d05e2f9ee4
修复一堆新prompt的bug
2025-09-06 01:36:00 +08:00
Windpicker-owo
90cbd5773e
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-06 00:11:31 +08:00
Windpicker-owo
c9b712d8fa
refactor(prompt): 重构并统一提示词系统
...
- 删除旧的智能提示词系统(smart_prompt.py)和相关参数模块(prompt_parameters.py)
- 将 prompt_builder.py 重命名为 prompt.py 并精简功能
- 更新所有模块的导入路径从 `src.chat.utils.prompt_builder` 到 `src.chat.utils.prompt`
- 统一提示词构建接口,使用新的 PromptContext 替代 SmartPromptParameters
- 移除重复和冗余代码,简化系统架构
BREAKING CHANGE: 旧的 SmartPrompt 系统已被完全移除,所有相关模块需要改用新的统一 Prompt 系统
2025-09-06 00:10:54 +08:00
minecraft1024a
cb8a9e33fc
docs(chat): 为HeartFChatting模块添加详细的函数文档
...
为 `_handle_proactive_monitor_completion`, `_proactive_monitor_loop`, `_should_enable_proactive_thinking`, `_get_dynamic_thinking_interval`, 和 `_format_duration` 等关键函数补充了详细的文档字符串。
这些文档字符串解释了每个函数的功能、参数和返回值,以提高代码的可读性和可维护性。
2025-09-05 21:57:13 +08:00
minecraft1024a
8074a1b082
refactor(sleep): 将睡眠和唤醒管理逻辑重构到独立的sleep_manager模块
...
将原先分散在 `chat/chat_loop` 和 `schedule` 目录下的 `WakeUpManager` 和 `SleepManager` 相关逻辑,统一移动并整合到新的 `src/chat/chat_loop/sleep_manager` 模块中。
这次重构旨在提高代码的模块化和内聚性,使睡眠相关的功能更加集中和易于管理。同时更新了所有相关的导入路径,以反映新的文件结构。
2025-09-05 21:51:55 +08:00
minecraft1024a
4b256721d3
refactor(chat): 重构聊天循环逻辑,简化CycleProcessor职责
...
将`no_reply`计数器管理、睡眠压力增加等逻辑从`CycleProcessor`上移至`HeartFChatting`主循环中,使其职责更清晰。`CycleProcessor.observe`现在直接返回执行的动作类型,简化了其内部状态管理。
主要变更:
- `CycleProcessor`不再处理回复生成、并行任务和最终循环信息的构建,这些复杂的逻辑被移除,极大地简化了该类。
- `HeartFChatting`现在负责根据`observe`返回的动作类型来管理`no_reply`计数器和睡眠压力。
- 删除了`CycleProcessor.execute_plan`方法,主动思考的回复流程被重构,直接调用`generator_api`和`response_handler.send_response`。
- 移除了`response_handler`中已废弃的`generate_response`方法。
2025-09-05 21:40:42 +08:00
minecraft1024a
e1fbdaad8c
rrrrrrrrrrrrrruuuuuuuuuuuuuuuuuuuuffffffffffffffffffffffffff
2025-09-05 21:01:32 +08:00
minecraft1024a
513757a8ee
chore: format code and remove redundant blank lines
...
This commit applies automated code formatting across the project. The changes primarily involve removing unnecessary blank lines and ensuring consistent code style, improving readability and maintainability without altering functionality.
2025-09-05 20:58:03 +08:00
minecraft1024a
488e959577
refactor(chat): 重构主动思考逻辑并将其集成到主聊天循环
...
将原有的 `ProactiveThinker` 类中的逻辑直接整合进 `HeartFChatting` 类中。此举简化了整体架构,减少了类之间的耦合,并使得主动思考的触发机制与主聊天循环的状态管理更加统一。
主要变更:
- 删除了独立的 `proactive_thinker.py` 文件。
- 将主动思考的监控循环、条件检查、动态间隔计算等功能实现为 `HeartFChatting` 的私有方法。
- 引入了 `ProactiveTriggerEvent` 事件,使触发源更加明确。
- 调整了相关模块的导入路径和配置项的调用方式,以适应新的结构。
2025-09-05 20:30:35 +08:00
minecraft1024a
fc68958c8f
feat(cross_context): 实现按互通组名称获取聊天记录
...
新增 `get_chat_history_by_group_name` API,允许插件按名称获取指定互通组的聊天记录。此功能增强了插件的上下文感知能力,使其能够利用跨群聊的对话历史。
主要变更:
- 在 `cross_context_api.py` 中添加了 `get_chat_history_by_group_name` 函数。
- Maizone 插件现在利用此 API 来获取跨群聊的上下文,以生成更相关的说说内容。
- 调整了配置文件模板,以反映新的互通组配置方式。
2025-09-05 19:51:33 +08:00
minecraft1024a
55abedfbf0
Merge remote-tracking branch 'origin/master' into dev
2025-09-05 19:34:47 +08:00
minecraft1024a
e3d1209d14
feat(cross_context): 支持私聊和群聊混合的上下文共享
...
本次更新扩展了跨上下文共享功能,使其不再局限于群聊之间,现在可以支持群聊与私聊的混合共享。
主要变更:
- 将 `cross_context.groups` 的 `chat_ids` 配置格式从一维字符串列表(仅群号)更新为二维列表 `[["type", "id"], ...]`,其中 `type` 可以是 "group" 或 "private"。
- 更新了 `cross_context_api` 以正确处理新的配置格式,使其能够识别并获取私聊和群聊的消息历史。
- 相应地更新了配置文件模板 `bot_config_template.toml` 以反映新的配置格式和功能。
BREAKING CHANGE: `cross_context.groups` 的 `chat_ids` 配置格式已更改。旧的一维群号列表格式不再受支持,用户需要按照 `[["type", "id"], ...]` 的新格式更新其配置文件才能使用此功能。
2025-09-05 19:30:06 +08:00
minecraft1024a
5bae2fa8f8
refactor(chat): 抽象化跨群聊上下文构建逻辑
...
将 `build_cross_context` 方法的实现委托给 `cross_context_api`。
这简化了 `prompt_utils` 中的代码,将复杂的上下文构建逻辑(包括获取其他群聊、根据模式获取和格式化消息)封装到专用的API中,提高了代码的模块化和可维护性。
2025-09-05 19:11:21 +08:00
minecraft1024a
420a7f0bef
refactor(chat): 简化响应处理逻辑
...
- 移除 `send_response` 方法中多余的 `reply_to_str` 参数
- 调整 `text_to_stream` 调用,不再传递消息数据作为回复目标
- 确保 `handle_message_storage` 的 `reason` 参数始终为字符串
2025-09-05 18:36:49 +08:00
minecraft1024a
57e5244b1f
refactor(main): 移除多余的ImportError异常处理
2025-09-05 17:52:27 +08:00
minecraft1024a
42088670b3
refactor(memory): 使用模拟对象替代条件判断来处理禁用的内存系统
...
通过引入一个`MockHippocampusManager`类,当内存系统在配置中被禁用时,它将提供一个与真实管理器接口相同的模拟对象。这消除了在代码中散布的多个`if global_config.memory.enable_memory:`条件检查。
这种重构简化了`MainSystem`类中的初始化和任务调度逻辑,使得代码更加清晰和易于维护,因为现在可以无条件地调用内存系统的方法,而不用担心它是否被启用。
2025-09-05 17:51:11 +08:00
Furina-1013-create
ac1253acc5
fix: 修复 graph_nodes 表 weight 字段缺失问题
...
- 在 GraphNodes 模型中添加 weight 字段,设置默认值为 1.0
- 修复 Hippocampus.py 中插入 GraphNodes 时缺少 weight 字段的问题
- 解决 sqlite3.IntegrityError: NOT NULL constraint failed: graph_nodes.weight 错误
2025-09-04 20:57:59 +08:00
tt-P607
7b537e96d0
fix(qzone): 修复子评论回复逻辑
...
移除手动构造的@提醒内容,改为通过传递 `parent_tid` 参数来正确指定父评论。
这利用了平台原生的回复机制,可以更可靠地实现回复和提醒功能。
2025-09-04 14:44:35 +08:00
tt-P607
4d03a2fafe
fix(api): 修复 reply_to_platform_id 可能未定义的问题
2025-09-04 14:24:25 +08:00
Windpicker-owo
f4b8bf5904
加入breaking启用配置
2025-09-04 00:09:43 +08:00
Windpicker-owo
498b57de13
删除无用函数
2025-09-03 23:56:03 +08:00
Windpicker-owo
391517df0a
修复模板deepseek baseurl不正确的问题
2025-09-03 22:57:05 +08:00
Windpicker-owo
5592ed6fce
修复导入问题
2025-09-03 22:56:12 +08:00