Windpicker-owo
99f77135c1
feat(memory): 重构记忆系统检索机制并优化召回率
...
- 实现五阶段检索流程:元数据过滤→向量搜索→语义重排序→上下文过滤→增强重排序
- 添加回退机制保障检索健壮性,当主检索失败时自动降级到文本匹配
- 优化向量相似度阈值配置,提升记忆召回率
- 新增记忆融合候选收集机制,避免重复记忆存储
- 改进记忆格式化器,支持多种展示格式
- 增强向量存储加载和重建逻辑,确保数据持久化
- 优化记忆存储时机,移至回复生成完成后异步执行
- 添加详细的检索调试日志,便于问题排查
- 简化查询规划器提示模板,提升生成效率
2025-10-01 15:02:38 +08:00
Windpicker-owo
dc39fd26c7
feat(memory): 重构记忆系统并移除插件热重载
...
重构记忆系统核心模块,引入全局记忆作用域、记忆指纹去重机制和查询规划器,优化多阶段检索性能。移除插件热重载系统及其相关依赖。
主要变更:
- 引入全局记忆作用域,简化记忆管理
- 实现记忆指纹去重,避免重复记忆存储
- 新增查询规划器,支持语义查询规划和记忆类型过滤
- 优化多阶段检索,增加语义重排和权重配置
- 改进向量存储,支持嵌入维度自动解析和查询向量生成
- 增强元数据索引,支持主体索引和更新操作
- 记忆构建器支持多主体和自然语言展示
- 移除watchdog依赖和插件热重载模块
- 更新配置模板,简化记忆配置项
BREAKING CHANGE: 移除插件热重载系统,相关API和命令不再可用。记忆系统接口有较大调整,使用该系统的模块需要适配新接口。
2025-10-01 04:56:32 +08:00
tt-P607
136496c883
feat(config): 新增最大并发分发数配置项
...
在 `ChatConfig` 中引入了 `max_concurrent_distributions` 配置,允许用户自定义最大并发处理的消息流数量。
此举旨在提供更灵活的性能调优选项,帮助用户根据服务器负载和API速率限制来控制资源消耗,防止系统过载。该配置的默认值为10。
2025-09-30 20:04:04 +08:00
Windpicker-owo
33be072f04
修改一下默认afc参数
2025-09-29 12:57:52 +08:00
Windpicker-owo
a2baec088e
feat(chat): 实现动态消息分发系统和消息打断机制
...
添加基于focus_energy的动态消息分发周期调整功能,根据聊天流兴趣度智能调整检查间隔
实现消息打断系统,允许高优先级消息打断正在处理的任务
重构ChatStream类,引入动态兴趣度计算系统,包括消息兴趣度统计和用户关系评分
扩展数据库模型和配置系统以支持新功能,增加相关配置项
更新版本号至0.11.0-alpha-1以反映重大功能更新
2025-09-25 17:14:01 +08:00
Windpicker-owo
96e4dc2946
feat(affinity-flow): 重构亲和流配置系统
...
将硬编码的兴趣度评分参数迁移到集中式配置管理,新增AffinityFlowConfig配置类
- 从全局配置加载评分权重、阈值和计算参数
- 统一管理匹配奖励、关系分数和提及bot相关配置
- 更新配置文件模板包含完整的亲和流参数
- 确保各模块使用一致的配置值而非硬编码常量
2025-09-19 13:16:45 +08:00
minecraft1024a
9b5eab9024
如果我不更新配置版本号,那我就会被其他开发草飞
2025-09-12 21:42:39 +08:00
minecraft1024a
46b3e795bc
feat(emoji): 新增表情选择模式并重构选择逻辑
...
引入了两种表情选择模式,允许用户通过配置决定表情选择的行为:
- **emotion**: 基于情感标签进行选择,利用LLM根据对话上下文挑选最合适的情感。
- **description**: 基于表情的详细描述进行选择,让LLM从描述列表中挑选最匹配的表情。
此项重构将原有的单一选择逻辑拆分为两种独立的模式,并为每种模式优化了相应的提示词(Prompt)和处理流程,提高了表情选择的灵活性和准确性。同时,在配置文件中添加了`emoji_selection_mode`选项以支持此新功能。
2025-09-12 21:41:38 +08:00
minecraft1024a
cd19e89528
refactor(config): 移除睡前消息群组配置
...
移除了 `pre_sleep_notification_groups` 配置项,因为该功能已通过新的插件事件和动作机制实现,不再需要硬编码的群组列表。现在可以通过插件来灵活地处理睡前通知的发送逻辑。
2025-09-12 20:47:52 +08:00
minecraft1024a
51643eb53a
feat(config): 更改默认服务器端口为8000
...
将默认的服务器端口从8080更改为8000,以避免与其他常用应用程序的潜在端口冲突。
2025-09-12 20:43:51 +08:00
tt-P607
c996bd28df
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
2025-09-12 20:36:20 +08:00
tt-P607
5f4fea8358
feat(prompt): 添加背景故事与安全准则
...
本次提交在人设配置中引入了“背景故事”和“安全准则”两个新字段,旨在增强 Bot 的角色深度和互动安全性。
- **背景故事 (`background_story`)**: 允许用户定义详细的世界观或角色背景。这部分内容将作为背景知识注入 Prompt,指导模型在不直接复述的情况下理解和运用,从而塑造更丰富的角色。
- **安全准则 (`safety_guidelines`)**: 用户可以明确定义 Bot 必须遵守的行为红线。这些准则会被整合进系统指令,为模型处理不当或敏感请求提供清晰的、可配置的指导方针,提升了交互的安全性。
2025-09-12 20:34:39 +08:00
minecraft1024a
ebb575ec53
refactor(config): 移除.env依赖并引入服务器配置模型
...
将项目配置系统从依赖.env文件和环境变量迁移到使用Pydantic模型进行集中管理。此举通过移除`python-dotenv`库简化了环境设置,并提高了配置的类型安全性和可维护性。
主要变更包括:
- 移除`bot.py`中的.env加载逻辑。
- 新增`ServerConfig`模型来管理服务器的主机和端口。
- 更新`src/common/server.py`和`src/common/message/api.py`以从全局配置对象获取服务器设置,取代了`os.environ`。
- 从配置中移除了已废弃的`MaizoneIntercomConfig`。
- 在`bot_config_template.toml`中添加了新的`[server]`配置部分。
2025-09-12 19:04:27 +08:00
tt-P607
de90d452cc
feat(emoji): 优化表情选择逻辑并引入上下文数量限制
...
重构了内置插件中的表情发送逻辑,以提高选择的准确性和效率。
旧的机制依赖于预设的情感标签,这可能不准确或缺失。新的实现改为让 LLM 直接从一部分随机抽样的表情包描述中进行选择,这使得决策更贴近上下文。
主要变更:
- 将基于情感标签的选择改为基于表情包描述的选择,使表情推荐更精准。
- 新增 `max_context_emojis` 配置项,用于控制每次传递给 LLM 的表情包候选项数量,从而减少 token 消耗并提高响应速度。
2025-09-11 17:29:42 +08:00
tt-P607
0cb2fa3373
feat(chat): 为回复分割器添加 llm 与 punctuation 模式
...
本次更新重构了回复分割功能,引入了 `split_mode` 配置项,允许用户在两种分割模式之间进行选择,提供了更大的灵活性。
- **`llm` 模式**: 延续了由大语言模型通过 `[SPLIT]` 标记决定断句的功能。此模式下的提示词(Prompt)已进一步优化,以引导模型做出更自然的分割。
- **`punctuation` 模式**: 恢复了传统的基于标点符号的分割逻辑。这已设为新的默认模式,确保用户更新后行为与旧版本保持一致。
此外,`at_user` 插件也进行了适配,以正确处理由 `llm` 模式可能产生的多段消息。
2025-09-11 17:12:01 +08:00
BuildTools
bb1563afab
fix(chat): 防止机器人回复自身消息
...
添加配置选项 `allow_reply_self` 控制是否允许机器人回复自己发送的消息
当此选项为 false 时,在回复动作执行前检查目标用户 ID,如果是机器人自身则跳过回复
同时删除无用的测试文件 `test_planner_personality.py
2025-09-11 13:24:53 +08:00
tt-P607
8f65953b9d
feat(chat): 引入专注模式安静群组功能
...
新增 `focus_mode_quiet_groups` 配置项,允许用户指定在专注模式下需要保持安静的群组列表。
在此列表中的群组,机器人只有在被明确提及(艾特)时才会做出回应。这有助于在某些活跃度高但不需要机器人持续参与的群组中减少打扰。
该功能兼容了不同QQ适配器(如 `qq` 和 `napcat`)的平台名称。
2025-09-11 08:50:05 +08:00
tt-P607
2a82dfb703
refactor(planner): 采用统一的多动作决策模型取代大脑/小脑架构
...
本次更新彻底重构了动作规划器(Planner)的核心架构,废弃了原有的“大脑/小脑”并行决策模型,转而采用一个更简洁、高效的统一决策模型。
主要变更:
- **统一决策**: 单个LLM调用现在可以一次性决策出所有需要执行的动作,并以JSON列表的形式返回。
- **架构简化**: 完全移除了 `sub_plan`(小脑)逻辑、`planner_small` 模型以及相关的并行处理和结果合并代码,大幅降低了复杂性。
- **配置精简**: 从配置文件中删除了与小脑相关的 `planner_size` 和 `include_personality` 选项,简化了用户配置。
- **提示词更新**: 更新了规划器的Prompt,明确指示LLM返回一个动作列表,即使只有一个动作或没有动作。
带来的好处:
- **性能提升**: 减少了LLM API的调用次数,显著降低了单次规划的延迟和成本。
- **可维护性**: 代码逻辑更清晰、线性,易于理解和后续维护。
- **稳定性**: 减少了多路并发带来的不确定性和潜在的竞态问题。
BREAKING CHANGE: 移除了大脑/小脑规划器架构。
用户需要从 `model_config.toml` 中移除 `[model_task_config.planner_small]` 配置节,并从 `bot_config.toml` 中移除 `planner_size` 和 `include_personality` 配置项。
2025-09-09 09:25:25 +08:00
Furina-1013-create
cb41a98fc2
为小脑决策加上角色人设提示词以避免决策时出现的人设ooc的情况
...
可以在配置文件里面关闭
2025-09-08 13:19:40 +08:00
Furina-1013-create
12b64955f6
是谁改模板配置文件不改版本号我不说()
2025-09-07 16:35:47 +08:00
雅诺狐
2f290bd272
更新配置文件
2025-09-07 08:46:27 +08:00
tt-P607
d826bc2391
feat(config): 为睡眠系统添加计划任务支持及相关配置
...
在模板配置中增加定时睡觉/起床参数,新增根据日程表自动睡眠开关、固定作息
时间设置以及唤醒后重新入睡延迟,以便更灵活地控制机器人的睡眠行为。
2025-09-07 00:21:33 +08:00
minecraft1024a
db3c3ebd63
feat(chat): 新增私聊强制回复功能
...
当在私聊场景下,如果大脑决策为“no_reply”,此功能会将其强制修改为“reply”,以确保机器人总能响应私聊消息。
该功能通过新的配置项 `force_reply_private` 控制,默认为关闭状态。同时,原配置项 `force_focus_private` 已被重命名为 `force_reply_private` 以更准确地反映其功能。
2025-09-06 21:44:37 +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
614f8064ba
feat(sleep): 引入多样化的失眠触发机制
...
重构了失眠系统,引入了两种新的失眠触发机制:
1. **低睡眠压力失眠**:当睡后检查时睡眠压力低于设定阈值,将触发失眠。
2. **随机失眠**:在睡眠压力正常的情况下,仍有一定概率随机触发失眠。
同时,移除了原有的 `post_sleep_insomnia` 特定情绪,并调整了相关配置项,使失眠原因的传递和处理更加灵活。
2025-09-06 13:55:57 +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
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
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
Windpicker-owo
f4b8bf5904
加入breaking启用配置
2025-09-04 00:09:43 +08:00
Windpicker-owo
e29e9e563a
迁移:4b59eda(feat:修改focus value的用途)
2025-09-02 21:14:30 +08:00
minecraft1024a
7cb5c3844e
refactor(plugin): 优化插件配置加载与同步机制
...
- 移除全局插件配置开关 `plugins.centralized_config`。
- 简化 `PluginBase` 的配置加载逻辑,不再使用模板文件,而是直接在中央配置目录生成默认配置。
- 在 `PluginManager` 中增加配置同步逻辑,在加载插件时,实现插件目录与中央配置目录之间的双向同步,确保配置一致性。
- 更新 `bot_config_template.toml`,移除已废弃的 `[plugins]` 配置项并提升版本号。
2025-08-30 11:21:26 +08:00
雅诺狐
16a1568f65
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-29 19:15:04 +08:00
雅诺狐
0a647376f7
Remove rust-video keyframe extraction API and related files
...
Deleted the entire src/chat/utils/rust-video directory, including Rust and Python source files, configuration, and documentation. Updated utils_video.py, official_configs.py, and bot_config_template.toml to remove or adjust references to the removed rust-video module. This cleans up the codebase by removing the integrated Rust-based keyframe extraction API and its supporting infrastructure.
2025-08-29 19:13:42 +08:00
minecraft1024a
74863fb914
chore(config): update bot_config_template version and remove unused option
...
- Bumps the config version from 6.5.7 to 6.5.8.
- Removes the `prompt_before_install` option which was not implemented.
2025-08-29 13:59:34 +08:00
minecraft1024a
a485aaf4ad
refactor(config): rename wakeup_system to sleep_system for clarity
...
This commit refactors the entire "wakeup system" to be named "sleep system". This change provides a more intuitive and accurate name for the functionality, which manages the AI's sleep cycles, sleep pressure, and related behaviors like insomnia and flexible sleep schedules.
The renaming has been applied consistently across all relevant files, including:
- Configuration models (`WakeUpSystemConfig` -> `SleepSystemConfig`)
- Configuration files (`bot_config_template.toml`)
- Core application logic that references these configurations.
Additionally, flexible sleep and pre-sleep notification settings have been moved from the `ScheduleConfig` to the new `SleepSystemConfig` to centralize all sleep-related parameters.
2025-08-29 13:56:24 +08:00
minecraft1024a
5153d8f60f
Merge branch 'master' of https://github.com/MoFox-Studio/MoFox_Bot
2025-08-28 17:59:46 +08:00
minecraft1024a
41e862281d
替换名字
2025-08-28 17:58:08 +08:00
tt-P607
f34be9728a
feat(schedule): 引入弹性睡眠与睡前通知机制
...
新增了弹性睡眠功能,使AI的入睡行为更加自然。AI现在会根据睡眠压力决定是否延迟入睡,而不是严格按日程表时间立即休眠。
主要更新包括:
- **弹性睡眠逻辑**: 在进入理论睡眠时间时,会有一段5-10分钟的准备缓冲期。如果睡眠压力低于阈值,AI会推迟入睡,以增加互动时间。
- **睡前通知**: 在决定入睡后,AI可以自动向指定群组发送晚安消息。
- **配置选项**: 在配置文件中增加了相关选项,允许用户启用/禁用这些功能,并自定义睡眠压力阈值、最大延迟时间、通知群组和提示词。
- **代码重构**: 对 `is_sleeping` 方法进行了重构,将其拆分为理论睡眠时间判断和核心弹性逻辑,提高了代码的可读性和可维护性。
2025-08-28 00:45:30 +08:00
雅诺狐
963087f778
更新 bot_config_template.toml
2025-08-27 22:45:07 +08:00
tt-P607
35157a1521
某个狐狸又忘记改版本号了
2025-08-27 22:44:26 +08:00
雅诺狐
57c16bae38
Update bot_config_template.toml
2025-08-27 22:24:23 +08:00
minecraft1024a
eb469240d4
feat(expression): 重构表达学习配置,引入基于规则的结构化定义
...
本次更新旨在提高表达学习配置的可读性和灵活性。旧的基于列表的 `expression_learning` 和 `expression_groups` 配置方式难以理解且容易出错。
通过引入新的 `ExpressionRule` Pydantic模型,我们将所有相关设置(如聊天流ID、是否学习、学习强度、共享组等)整合到一个统一的、自描述的结构中。现在,所有规则都在一个新的 `[[expression.rules]]` 表中进行配置,使得逻辑更加清晰和易于维护。
相关模块,如 `ExpressionSelector`,已更新以适配新的配置结构。同时,数据库中的 `Expression` 模型也已更新为现代的 SQLAlchemy 2.0 风格。
BREAKING CHANGE: 表达学习的配置文件格式已完全改变。旧的 `expression_learning` 和 `expression_groups` 配置不再受支持,用户需要根据新的 `bot_config_template.toml` 文件迁移到 `[[expression.rules]]` 格式。
2025-08-27 21:24:12 +08:00
minecraft1024a
17e8755e66
紧急补了一下配置文件
2025-08-27 21:08:38 +08:00
minecraft1024a
ecf2df27fa
feat(chat): implement sleep pressure and insomnia system
...
This commit introduces a new sleep pressure and insomnia system to simulate more realistic character behavior.
Key features include:
- **Sleep Pressure**: A new metric that accumulates with each action the bot takes and decreases during scheduled sleep times.
- **Insomnia Mechanic**: When a sleep period begins, the system checks the current sleep pressure. Low pressure can lead to a higher chance of "insomnia," causing the bot to stay awake. There is also a small chance for random insomnia.
- **Insomnia State**: During insomnia, the bot enters a special state for a configurable duration. It can trigger unique proactive thoughts related to being unable to sleep, and its mood is adjusted accordingly.
- **Configuration**: All parameters, such as insomnia probability, duration, and pressure thresholds, are fully configurable.
2025-08-27 21:02:21 +08:00
minecraft1024a
5076410a00
Reapply "【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询..."
...
This reverts commit 3d93bc4079 .
2025-08-27 17:58:18 +08:00
Windpicker-owo
3d93bc4079
Revert "【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询..."
...
This reverts commit 80ab0c687c .
2025-08-27 12:46:00 +08:00
Windpicker-owo
80ab0c687c
【迁移】工具系统再完善:工具缓存、ttl支持、自动记录、长期保存、自动清理缓存、将记录与执行分离、api记录查询、时间聊天工具筛选查询...
2025-08-27 11:04:20 +08:00