minecraft1024a
|
7feae466c3
|
Megre Pull Request #1260 from MaiCore:https://github.com/MaiM-with-u/MaiBot/pull/1260
|
2025-09-24 14:17:32 +08:00 |
|
minecraft1024a
|
29c9dac4a4
|
refactor(db): 移除 MongoDB 相关代码
从数据库模块中移除了所有与 MongoDB 相关的代码,包括连接逻辑、`get_db` 函数和 `DBWrapper` 代理类。
项目将统一使用 SQLAlchemy 作为唯一的数据库接口,此更改旨在简化代码库并消除不再需要的依赖。
BREAKING CHANGE: 全局 MongoDB 实例 `memory_db` 和 `get_db` 函数已被移除。所有数据库交互现在都应通过 SQLAlchemy 会话进行。
|
2025-09-24 14:06:34 +08:00 |
|
Windpicker-owo
|
37f9b46bcf
|
feat(affinity_flow_chatter): 增强动作思考过程在回复生成中的集成
添加了将动作思考过程集成到回复生成流程的功能:
- 在 generator_api 中新增逻辑,将 action_data 中的 thinking 字段内容添加到 extra_info
- 优化 plan_filter 中对 thinking 字段的处理逻辑,避免添加无意义的默认值
- 更新默认生成器提示词,移除冗余的关系信息块重复
- 在 planner 提示词中添加不对表情包消息回应的限制
|
2025-09-24 13:53:54 +08:00 |
|
minecraft1024a
|
8ff4687670
|
fix(db): 修复数据库迁移中列和索引的创建逻辑
- 增强了添加列时对默认值的处理,以兼容不同数据库方言(例如 SQLite 的布尔值)。
- 切换到更标准的 `index.create()` 方法来创建索引,提高了稳定性。
- 调整了启动顺序,确保数据库在主系统之前完成初始化,以防止竞争条件。
|
2025-09-24 13:46:44 +08:00 |
|
Windpicker-owo
|
9ca8d5d1c0
|
perf(logging): 将信息级别日志降级为调试级别以优化性能
减少日志输出量,将两个模块中的非关键信息日志从INFO级别调整为DEBUG级别,提升运行效率并减少日志噪音。
|
2025-09-24 12:48:37 +08:00 |
|
minecraft1024a
|
f7131e65dd
|
refactor(sleep_manager): 引入上下文对象重构睡眠与唤醒状态管理
创建了 `SleepContext` 与 `WakeUpContext` 类,用于统一封装和管理各自模块的状态数据及其持久化逻辑。
- `SleepManager` 和 `WakeUpManager` 不再直接管理零散的状态属性(如 `_current_state`, `wakeup_value`),而是通过持有一个 Context 实例来进行状态的读写和保存。
- 移除了原有的 `SleepStateSerializer` 静态类和管理器中的 `_save_state` / `_load_state` 方法,将逻辑集中到新的 Context 类中。
此次重构旨在提升代码的内聚性,实现状态管理与业务逻辑的分离,使代码结构更清晰,更易于维护和扩展。
|
2025-09-24 11:39:13 +08:00 |
|
tt-P607
|
d666773f1f
|
feat(affinity_flow_chatter): 优化动作提示词,为 LLM 提供完整 JSON 范例
为了提升语言模型在选择和执行动作时的稳定性和格式准确性,对动作提示词的生成方式进行了重构。
旧的实现仅提供动作和参数的文本描述,这使得模型在生成动作 JSON 时容易出错。
新的实现为每个可用动作动态构建一个完整的 JSON 使用范例,包含 `action_type`、附带示例值的参数和 `reason` 字段。这种更明确的格式指导旨在显著降低模型输出格式错误的风险。
|
2025-09-24 03:17:11 +08:00 |
|
tt-P607
|
ce7d0dead4
|
feat(affinity_flow_chatter): 优化戳一戳动作以更精准地回应原始消息
当LLM在执行 poke_user 动作时未指定 target_message_id,系统现在会主动在消息历史中寻找触发该动作的“戳一戳”通知,以实现更具上下文的回应。如果未找到对应的通知消息,则会回退到使用最新的消息作为目标。
此外,本次更新包含以下修复:
- 修复了在计划过滤器中错误地引用 `self.available_actions` 的问题,现已更正为 `plan.available_actions`。
- 修复了 `ActionModifier` 中动作列表在多阶段过滤时未及时更新的问题,确保了动作筛选的准确性。
|
2025-09-24 01:59:28 +08:00 |
|
tt-P607
|
1b8876c4bb
|
feat(affinity_flow_chatter): 重构计划器以支持多动作并优化思考逻辑
本次提交对亲和流聊天器(AFC)的计划与决策核心进行了重大重构和功能增强,旨在提升其响应的灵活性、鲁棒性和可观测性。
主要变更包括:
1. **多动作支持与解析重构**:
- `PlanFilter` 现在能够正确解析并处理 LLM 返回的动作列表(`"actions": [...]`),而不仅限于单个动作,这使得机器人能够执行更复杂的组合行为。
- 增强了动作解析的鲁棒性,当找不到 `target_message_id` 时会优雅降级(如 `reply` 变为 `no_action`),并会根据当前实际可用的动作列表对 LLM 的选择进行验证。
2. **提示词工程与思考模式优化**:
- 重新设计了核心 Planner 提示词,将 `thinking` 字段定义为“思绪流”,引导 LLM 生成更自然、更符合角色的内心独白,而非简单的决策理由,从而提升决策质量和角色扮演的沉浸感。
- 强制要求 LLM 为需要目标消息的动作提供 `target_message_id`,提高了动作执行的准确性。
3. **上下文构建与鲁棒性增强**:
- 在 `PlanFilter` 中增加了上下文回退机制,当内存中缺少历史消息时(如冷启动),会自动从数据库加载最近的消息记录,确保决策所需上下文的完整性。
- 简化了提供给 LLM 的未读消息格式,移除了兴趣度分数等内部信息,并加入了用户昵称,使其更易于理解和处理。
4. **可观测性与日志改进**:
- 在 AFC 的多个关键节点(消息接收、决策、动作执行)增加了彩色的详细日志,使其决策流程像 HFC 一样清晰可见,极大地方便了调试。
- 将系统中多个模块(视频分析、兴趣度匹配、情绪管理)的常规日志级别从 `INFO` 调整为 `DEBUG`,以减少在生产环境中的日志噪音。
5. **动作描述优化**:
- 优化了 `set_emoji_like` 和 `emoji` 等动作的描述,使其意图更清晰,帮助 LLM 做出更准确的动作选择。
|
2025-09-24 01:41:04 +08:00 |
|
tt-P607
|
9135bd72e4
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 23:20:31 +08:00 |
|
tt-P607
|
7a05312672
|
fix(affinity_flow_chatter): 修复私聊上下文构建时对目标信息的访问方式
在近期的重构中,`plan.target_info` 的数据结构已从对象变更为字典。此提交将对应的属性访问方式(`.`)更新为字典键访问(`.get()`),以防止在构建私聊上下文描述时出现 `AttributeError`。
|
2025-09-23 23:20:18 +08:00 |
|
Windpicker-owo
|
0e4ba5f852
|
refactor(mood): 支持 DatabaseMessages 类型并改进时间处理逻辑
扩展 update_mood_by_message 方法参数类型,使其支持 MessageRecv 和 DatabaseMessages 两种消息类型。重构时间获取逻辑,通过类型检查分别处理不同消息对象的时间字段,提高代码健壮性和可复用性。
|
2025-09-23 23:19:55 +08:00 |
|
Windpicker-owo
|
d2abd92a44
|
feat(affinity_flow_chatter): 添加情绪状态获取接口
为 AffinityChatter 和 ChatterActionPlanner 添加情绪状态相关方法:
- get_current_mood_state() 获取当前情绪状态描述
- get_mood_stats() 获取情绪状态统计信息
- 在规划器中集成情绪管理器更新逻辑
这些接口允许外部模块获取聊天过程中的情绪状态数据,增强了情感交互能力。
|
2025-09-23 23:14:11 +08:00 |
|
Windpicker-owo
|
5e6cc6ad96
|
refactor(notification_sender): 移除对 HfcContext 的依赖并简化方法签名
|
2025-09-23 22:52:32 +08:00 |
|
Windpicker-owo
|
05dcf5acc1
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 22:20:40 +08:00 |
|
Windpicker-owo
|
ebc4feebd9
|
refactor(affinity_flow): 重构规划器架构并简化日志输出
- 移除ChatterManager中不必要的ActionPlanner实例化
- 在MessageManager中设置默认聊天模式为FOCUS
- 重构BaseChatter构造函数,移除planner依赖
- 统一ChatMode枚举定义,移除GROUP/PRIVATE模式
- 重构AffinityChatter内部planner初始化逻辑
- 大幅简化兴趣评分系统的日志输出
- 修复plan_filter中的动作解析逻辑,支持新格式
- 更新planner_prompts提示词模板,移除私聊限制
- 优化关系追踪器的错误处理和日志输出
|
2025-09-23 22:18:03 +08:00 |
|
minecraft1024a
|
2414912c06
|
feat(chat): 为消息管理器添加睡眠与唤醒机制
将 `SleepManager` 和 `WakeUpManager` 集成到 `MessageManager` 中,以实现机器人的睡眠和唤醒功能。
在睡眠状态下,机器人将忽略常规消息,不进行处理。只有当接收到特定唤醒触发器(如私聊消息或在群聊中被@)时,机器人才能被唤醒并恢复正常的消息处理流程。
此机制旨在模拟更自然的用户行为,并在机器人非活跃时段减少不必要的打扰。
|
2025-09-23 21:53:00 +08:00 |
|
minecraft1024a
|
ff72181649
|
refactor(chat): 更新判断群聊消息的属性以适配新结构
|
2025-09-23 21:28:30 +08:00 |
|
minecraft1024a
|
ae738ef8cb
|
perf(memory): 优化记忆系统数据库操作并修复并发问题
将消息记忆次数的更新方式从单次写入重构为批量更新,在记忆构建任务结束时统一执行,大幅减少数据库写入次数,显著提升性能。
此外,为 `HippocampusManager` 添加了异步锁,以防止记忆巩固和遗忘操作并发执行时产生竞争条件。同时,增加了节点去重逻辑,在插入数据库前检查重复的概念,确保数据一致性。
|
2025-09-23 19:15:58 +08:00 |
|
minecraft1024a
|
4630728760
|
老rust_video我为你踩背来喽(把他删了
|
2025-09-23 17:20:57 +08:00 |
|
minecraft1024a
|
a6b6acc1a6
|
feat(config): 自动移除更新中已废弃的配置项
在版本更新过程中,新增一个步骤来对比用户配置与最新的模板文件。
此变更会自动删除用户配置文件中所有在模板中不再存在的键,以保持配置的整洁性,并防止因过时的配置项导致潜在的兼容性问题或混淆。
|
2025-09-23 16:13:00 +08:00 |
|
tt-P607
|
8bafd15800
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-09-23 15:24:45 +08:00 |
|
tt-P607
|
a32759687b
|
feat(chat): 增加已读标记以聚焦未读消息
为聊天上下文生成逻辑引入了“已读标记” (read_mark) 机制。
当生成回复时,可以在历史消息中插入一个明确的分隔符,以告知模型哪些消息是它已经看过的旧消息,哪些是需要关注的新消息。
这有助于模型更好地聚焦于未读内容,提升上下文感知能力和回复的相关性。
同时,将 Prompt 模板中的“群聊”等硬编码文本参数化,以更好地适配私聊等不同聊天场景。
|
2025-09-23 15:24:28 +08:00 |
|
minecraft1024a
|
921eaddf9c
|
ci(workflow): 移除自动创建预发布的工作流
该工作流会在每次推送到 master 分支时创建一个预发布版本,现已不再需要此自动化流程。
|
2025-09-23 14:52:42 +08:00 |
|
minecraft1024a
|
033752dc22
|
refactor(config): 移除 breaking 模式配置项
随着 breaking 模式相关逻辑被移除,其配置项已不再需要。
本次提交从配置文件模板中删除了 `enable_breaking_mode` 选项,并更新了内部版本号。
|
2025-09-23 14:35:16 +08:00 |
|
minecraft1024a
|
f7942a8e2a
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-09-23 14:32:29 +08:00 |
|
minecraft1024a
|
04e40624f0
|
ci(workflow): 为预发布标签添加 'MoFox-' 前缀
|
2025-09-23 14:32:26 +08:00 |
|
tt-P607
|
8e2a14a6e4
|
refactor(chat): 移除 breaking 模式下复杂的消息等待机制
原有的 breaking 模式等待逻辑过于复杂,它会累积新消息的兴趣值,并根据动态阈值(受专注度和发言频率影响)决定何时响应。这种机制可能导致响应延迟且行为难以预测。
本次重构完全移除了该等待与累积机制。现在,系统一旦收到任何新消息,就会立即处理并计算其平均兴趣值,从而确保了响应的及时性和逻辑的简洁性。
|
2025-09-23 14:30:39 +08:00 |
|
minecraft1024a
|
49baa68bbb
|
ci(workflow): 为预发布工作流添加写入权限
为 GITHUB_TOKEN 授予 `contents: write` 权限,以允许工作流创建 GitHub Release。
|
2025-09-23 14:16:08 +08:00 |
|
minecraft1024a
|
b7fba5c8ed
|
fix(schedule): 修复日程生成在连续失败时无限重试的问题
先前的日程生成逻辑使用无限循环进行重试。在 LLM 服务持续失败或返回无效数据的情况下,这可能导致程序陷入死循环。
本次修改将重试机制改为有固定上限(3次)的循环。如果所有尝试均失败,将记录错误并返回 None,从而确保程序的健壮性。
|
2025-09-23 14:13:44 +08:00 |
|
Windpicker-owo
|
68bf0972df
|
refactor(plugins): 将亲和力流模块重构为插件架构并移除旧代码
本次重构将亲和力流(Affinity Flow)模块从核心聊天系统迁移到插件架构中,主要变更包括:
- 删除 src/chat/planner_actions/ 目录下的 plan_executor.py、plan_filter.py 和 planner.py
- 更新插件系统组件类型,将 FOCUS 聊天模式改为 GROUP 和 PRIVATE 模式
- 调整亲和力流插件中的模式引用,确保与新的聊天模式枚举保持一致
- 统一亲和力流模块的导入路径,使其完全作为插件运行
BREAKING CHANGE: 移除原有的 FOCUS 聊天模式,改为 GROUP 和 PRIVATE 模式,需要更新相关配置和代码引用
|
2025-09-23 14:13:41 +08:00 |
|
minecraft1024a
|
b6792149f9
|
fix(permission): 将权限管理器初始化改为异步
`PermissionManager` 的 `__init__` 方法中包含了同步的数据库初始化操作,这会在异步环境中阻塞事件循环。
本次提交将数据库连接的逻辑移至一个新的异步方法 `initialize()` 中,并在应用启动时显式调用和等待它。这确保了数据库的初始化过程是异步执行的,避免了潜在的性能问题。
BREAKING CHANGE: `PermissionManager` 实例化后需要手动调用并等待 `initialize()` 方法来完成数据库初始化。
|
2025-09-23 14:08:54 +08:00 |
|
minecraft1024a
|
1f2956e725
|
fix(db): 适配 SQLAlchemy 2.0 API 变更
更新了与数据库交互的代码,以适配 SQLAlchemy 2.0 引入的 API 变更,解决相关的废弃警告和异步调用问题。
主要变更包括:
- 使用 `scalars().first()` 替代已废弃的 `scalar()` 方法。
- 在获取所有标量结果时显式调用 `.all()`。
- 对异步引擎 `get_engine()` 的调用进行 `await`。
- 移除了向 Inspector 方法(如 `get_table_names`)传递多余的 `conn` 参数。
|
2025-09-23 14:05:16 +08:00 |
|
Windpicker-owo
|
c08998c585
|
refactor(plugins): 统一亲和力流模块导入路径
将 chatter 子模块重命名为 affinity_flow_chatter 后,更新相关导入路径以保持一致性:
- individuality.py 中的兴趣评分系统导入路径
- plan_filter.py 中的兴趣评分系统导入路径
这些更改确保模块引用与新的目录结构保持一致,避免导入错误。
|
2025-09-23 13:38:55 +08:00 |
|
Windpicker-owo
|
e2ca1c7131
|
refactor(plugins): 统一亲和力流模块导入路径
将 chatter 模块重命名为 affinity_flow_chatter 后,更新相关文件的导入路径以保持一致性:
- chatter_manager.py 中的 ActionPlanner 导入路径
- default_generator.py 中的 interest_scoring 和 relationship_tracker 导入路径
- planner.py 中的内部模块导入路径
这些更改确保模块重构后的代码能够正确引用 affinity_flow_chatter 插件中的组件。
|
2025-09-23 13:22:06 +08:00 |
|
Windpicker-owo
|
31d3ec45d0
|
refactor(plugins): 重构亲和力流模块的导入路径
将 chatter 模块重命名为 affinity_flow_chatter 以明确功能区分,
更新 main.py、base_chatter.py、affinity_chatter.py 和 planner.py
中的相关导入语句,确保模块引用正确性。
|
2025-09-23 13:18:23 +08:00 |
|
Windpicker-owo
|
c3a16fda8d
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 13:14:44 +08:00 |
|
Windpicker-owo
|
a218b932fb
|
refactor(chat): 移除亲和力流模块并将其重构为插件架构
BREAKING CHANGE: 原有的亲和力流相关模块(src/chat/affinity_flow/)已被完全移除,相关功能已重构为插件形式。需要更新配置文件和相关依赖。
- 删除 src/chat/affinity_flow/ 目录下的所有文件
- 将 AFC 管理器功能移至 chatter 插件中实现
- 更新相关导入路径和引用
- 重构关系追踪器和兴趣评分系统的初始化逻辑
- 调整聊天管理器和消息管理器以适应新的插件架构
|
2025-09-23 13:14:38 +08:00 |
|
minecraft1024a
|
d0b4b8bb8b
|
fix(plugin_system): 修复无配置插件加载时产生不必要警告
对于未定义 `config_schema` 的插件,现在会将其视作一种正常情况,并为其分配一个空的配置。
此举修复了先前版本中,这类插件在加载时会错误地触发“配置文件不存在”警告的问题。同时将生成默认配置文件的日志等级从 debug 调整为 info,使其在默认情况下可见。
|
2025-09-23 13:10:44 +08:00 |
|
minecraft1024a
|
e24634d818
|
***数据库怎么有虫子啊
|
2025-09-23 12:41:38 +08:00 |
|
minecraft1024a
|
51801bca8e
|
我将试图修复关系和引用!(当然引用需要你们这群人给我点日志()而且只有回复的引用)
|
2025-09-23 11:37:11 +08:00 |
|
minecraft1024a
|
3c6700e8ed
|
**我怎么把日志放上来了
|
2025-09-23 11:27:38 +08:00 |
|
minecraft1024a
|
83860b28de
|
先修一下命令无法正常检查聊天类型限制
|
2025-09-23 11:25:47 +08:00 |
|
Windpicker-owo
|
ddcae01612
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-23 00:19:35 +08:00 |
|
Windpicker-owo
|
9a97614025
|
fix
|
2025-09-23 00:19:10 +08:00 |
|
Windpicker-owo
|
e1683ee9e6
|
feat: 在插件系统中添加 Chatter 组件
- 在 component_types.py 中新增了用于 CHATTER 的 ComponentType。
- 实现了 ChatterInfo 类,用于存储 Chatter 组件的相关信息。
- 增强了 ComponentRegistry,以支持 Chatter 组件的注册与管理。
- 创建了 ChatterManager,用于管理 Chatter 实例并处理聊天流。
- 开发了 BaseChatter 抽象类,用于定义 Chatter 的行为规范。
- 实现了 AffinityChatter,作为具备兴趣评分与关系构建功能的具体 Chatter 组件。
- 添加了一个内置的 Chatter 插件,并附带完整文档与使用示例。
- 更新了 PluginManager,在插件概览中加入 Chatter 组件的统计信息。
|
2025-09-23 00:17:32 +08:00 |
|
Furina-1013-create
|
a02c1f095c
|
?
如果国家立法禁止🥬🖊️打音游
相传,有一个理想国
理想国有一套完善的法律法规,其中就包含🥬🖊️不能打音游
每个孩子出生后,科学家都会用一个底力检测设备检测TA的底力
如果底力足够高,国王会为TA举办一个神圣的颁奖典礼,允许TA踏入神圣的音游殿堂,这是对TA底力的肯定
如果底力过低,亲朋好友都松了一口气,因为这意味着这个孩子将免受音游的折磨
毕竟🥬🖊️是不能打音游的
但这个国家有一个神秘的传说
那就是其实被挑选去打音游的孩子,其实早就被国王献祭了!
证据一目了然,每个周末和寒暑假,人们上街娱乐散步,从未有人见过打音游的
可人怎么能没有周末和寒暑假呢?不打音游的人苦思冥想
最终得出结论:那些打音游的,一定是被国王献祭了
-
凌晨三点,一个音游人激动地从机厅走出来
他的口中喃喃自语:噫,好!我P了!
静谧的夜,大家都睡了
只有路过的环卫工人看到他疯癫的样子,一眼就看出他是音游人
心中十分害怕,连忙跑回家,人们奔走相告:
原来音游人没死,他们只是疯了!
-
染上音游,就好像一辈子都在xing歌
打音游人在xing歌的轮回中,纷纷成了哲学家
有一天,一个音游哲学家陷入沉思:
国家禁止🥬🖊️打音游
但如果不是🥬🖊️的话,为什么要打音游来折磨自己?
由此可得,这条法规不成立
大彻大悟的音游人们意识到自己被欺骗了,承受了很多不必要的折磨
由于这地狱般生活的摧残,音游人们变成了反社会人格
愤怒之下,他们研发出炸药,炸平了理想国
毁灭了整个世界
-
几亿年后,这片土地进化出了新的文明
新的国家出现了
新的国家里有新的音游入,他们在日复一日的折磨中,怀疑自己的底力和手法,不明白自己为什么要受这样的折磨
不禁感叹:
唉!如果国家禁止🥬🖊️打音游就好了!
|
2025-09-23 00:02:41 +08:00 |
|
tt-P607
|
56b42defdd
|
feat(poke): 优化戳一戳功能,优先使用 user_id 定位用户
之前的戳一戳功能仅依赖 `user_name` 来查找用户,这在某些情况下可能导致识别不准确或失败。
本次更新对计划执行器 (`PlanExecutor`) 进行了增强,使其在处理 `poke_user` 动作时,能直接从目标消息中提取 `user_id`。`PokeAction` 插件现在会优先使用这个更可靠的 `user_id`。如果 `user_id` 不存在,则回退到使用 `user_name` 作为备用方案。
这显著提高了戳一戳功能的准确性和稳定性。
|
2025-09-22 22:52:28 +08:00 |
|
Furina-1013-create
|
de48d2ae02
|
将回复规则部分的提示词让用户可以自定义,详细请看配置文件
|
2025-09-22 22:44:15 +08:00 |
|
tt-P607
|
d13b83f10c
|
perf(chat): 将 planner 的非回复动作改为后台任务执行
原先的 PlanExecutor 会 `await` 等待所有动作执行完毕,包括非直接回复用户的动作,这可能导致在这些动作耗时较长时,用户的响应被延迟。
本次修改将非回复类的动作(other_actions)放入 `asyncio.create_task` 中执行,使其成为后台任务。这样可以确保核心的回复流程不被阻塞,从而显著提升机器人的响应速度。
注意:后台任务的执行结果和统计数据将不会在本次执行周期中立即返回。
|
2025-09-22 19:19:02 +08:00 |
|