minecraft1024a
|
8c97774465
|
ruff ci
|
2025-10-18 11:11:05 +08:00 |
|
minecraft1024a
|
02a54fd3c9
|
feat(chat): 引入睡眠系统,在睡眠状态下拦截消息
在消息处理的最前端 (`MessageManager`) 增加了对睡眠状态的检查。当系统处于 `SLEEPING` 状态时,将直接拦截所有新消息,不再进行后续处理。
同时,为了配合睡眠系统的正常运作:
- 将睡眠系统的定时任务初始化移至 `main.py`,确保其在应用启动时正确加载。
- 在主动思维插件 (`proactive_thinker`) 的定时任务(冷启动和日常唤醒)中增加了睡眠状态检查,避免在睡眠期间触发主动行为。
|
2025-10-17 19:55:11 +08:00 |
|
minecraft1024a
|
559ad03fe0
|
refactor(chat): 从 MessageManager 中移除睡眠和唤醒管理器的残留代码
在之前的提交 (cb51446) 中,睡眠管理器模块已被移除。本次提交清除了 `MessageManager` 中与之相关的残留代码,包括导入语句、实例初始化以及启动/停止逻辑,完成了整个重构过程。
|
2025-10-17 19:02:49 +08:00 |
|
minecraft1024a
|
ff3b35a5d3
|
Revert "实现了新的睡眠系统喵~",我看了不如我回去自己写一个()
This reverts commit e1dde64fc6.
|
2025-10-17 18:44:38 +08:00 |
|
ikun-11451
|
e1dde64fc6
|
实现了新的睡眠系统喵~
|
2025-10-17 01:47:43 +08:00 |
|
tt-P607
|
109aef4623
|
feat(chat): 实现延迟重处理并修复并发问题
本次提交为聊天处理逻辑带来了两项关键改进:
1. **中断后的延迟重处理:**
当机器人被新消息打断时,系统现在会等待一个短暂的延迟(例如0.5秒)再重新处理。这允许多条快速连续发送的消息被合并到同一次处理中,避免了因消息轰炸导致的多次、零碎的处理流程,提高了效率和响应的连贯性。
2. **为聊天器添加并发锁:**
在 `AffinityChatter` 中引入了 `asyncio.Lock`,以确保每个实例一次只处理一个流上下文。这可以防止在并发场景下可能出现的竞争条件,保证了数据处理的原子性和状态的一致性。
|
2025-10-13 09:22:57 +08:00 |
|
tt-P607
|
244b95e0af
|
revert: 回退 commit 94e34c9370
|
2025-10-11 15:40:55 +08:00 |
|
tt-P607
|
94e34c9370
|
fix(chat): 修复消息打断会取消正在进行的回复任务的问题
之前的消息打断逻辑会无差别地取消处理流中的所有任务。这会导致一个问题:当用户在机器人生成回复期间快速发送新消息时,回复任务会被意外中断,导致机器人无法正常完成回复。
本次修改通过引入 `is_replying` 状态来解决此问题:
1. 在 `StreamContext` 中新增 `is_replying` 状态标志,用于追踪回复生成过程。
2. 当开始生成回复时,设置该标志为 `True`,并在回复完成或取消后通过 `finally` 块确保其恢复为 `False`。
3. `MessageManager` 的打断检查逻辑现在会首先检查此标志,如果为 `True` 则跳过打断,从而保护正在进行的回复。
4. `cancel_all_stream_tasks` 也增加了 `exclude_reply` 选项,确保即使触发打断,也不会取消回复任务。
|
2025-10-11 02:11:32 +08:00 |
|
Windpicker-owo
|
dd1444cc41
|
refactor(chat): 重构关系系统并优化消息打断处理机制
- 移除独立的RelationshipConfig,将关系追踪参数整合到AffinityFlowConfig
- 实现消息打断后立即重新处理流程,提升交互响应性
- 优化关系追踪系统,添加概率筛选和超时保护机制
- 改进机器人自引用处理,确保消息内容正确显示
- 增强用户信息提取逻辑,兼容多种消息格式
- 添加异步后台任务处理,避免阻塞主回复流程
- 调整兴趣评分阈值和权重参数,优化消息匹配精度
|
2025-10-08 22:33:10 +08:00 |
|
Windpicker-owo
|
ee51976095
|
refactor(chat): 优化任务管理机制支持多重回复
重构聊天管理器的任务处理系统,将单一任务追踪改为支持多重回复的任务列表管理。
主要变更:
- 将 `_processing_tasks` 从单任务字典改为任务列表字典
- 新增 `add_processing_task` 和 `get_all_processing_tasks` 方法
- 增强 `cancel_all_stream_tasks` 方法支持批量取消
- 修复消息打断机制,确保取消所有相关任务
- 优化任务清理逻辑,自动移除已完成任务
这些改进使系统能够更好地处理并发回复场景,提高任务管理的灵活性和可靠性。
|
2025-10-07 17:10:26 +08:00 |
|
Windpicker-owo
|
b0c9f439d0
|
refactor(chat): 重构消息处理流程引入缓冲队列机制
通过引入消息缓冲队列,解决了高频消息场景下的竞态条件和消息丢失问题。
新的处理机制将消息暂存于缓冲区,仅在流处理空闲时才释放到未读队列,
确保了消息处理的原子性和一致性。
核心变更:
- 为每个聊天流创建独立的消息缓冲队列
- 实时跟踪流的处理状态,避免并发访问冲突
- 在处理开始前和完成后自动刷新缓冲区
- 仅在成功执行后清空未读消息,失败时保留消息
- 增加对取消任务和异常情况的容错处理
- 集成缓存统计和监控功能
此优化显著提升了消息处理的可靠性和性能表现。
|
2025-10-07 16:27:33 +08:00 |
|
Windpicker-owo
|
76713bf727
|
feat(chat): 重构消息打断系统为线性概率模型
将复杂的指数衰减概率模型简化为线性概率模型,提高可预测性和可配置性
- 新增最低打断概率配置,确保始终有打断机会
- 移除复杂的概率因子计算,改用简单的线性递减公式
- 增加最大打断次数默认值从3提升到10
- 保留废弃配置项以确保向后兼容
- 更新配置模板和文档说明新的概率计算方式
|
2025-10-07 13:21:33 +08:00 |
|
tt-P607
|
514b681ace
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-06 15:49:23 +08:00 |
|
tt-P607
|
bd84a18ac5
|
refactor(chat): 重构消息打断逻辑以从 ChatterManager 获取任务
将正在处理的任务跟踪从 ContextManager 转移到 ChatterManager。
此举旨在集中管理聊天任务,降低 MessageManager 与 ContextManager 之间的耦合。现在,中断处理逻辑直接查询 ChatterManager 以获取并取消当前活动任务,使任务状态管理更加清晰和可靠。
|
2025-10-06 15:42:57 +08:00 |
|
sunbiz1024
|
8f4f7d19af
|
ruff
|
2025-10-06 09:38:16 +08:00 |
|
minecraft1024a
|
9d705463ce
|
ruff fix但指定了--unsafe-fixes
|
2025-10-05 21:48:32 +08:00 |
|
Windpicker-owo
|
8e0d1e791b
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-05 01:29:48 +08:00 |
|
Windpicker-owo
|
624298e1b8
|
refactor(chat): 异步化聊天系统并重构兴趣值计算机制
将同步调用改为异步调用以提升性能,重构兴趣值计算流程以支持更灵活的组件化架构。主要改进包括:
- 异步化ChatManager相关方法,避免阻塞主线程
- 重构兴趣值计算系统,从插件内部计算改为通过兴趣管理器统一处理
- 新增should_act字段支持更细粒度的动作决策
- 优化初始化逻辑,避免构造函数中的异步操作
- 扩展插件系统支持兴趣计算器组件注册
- 更新数据库模型以支持新的兴趣值相关字段
这些改进提升了系统的响应性能和可扩展性,同时保持了API的向后兼容性。
|
2025-10-05 01:25:52 +08:00 |
|
minecraft1024a
|
f06fac2dc9
|
fix(api): 修复机器人消息统计计数器逻辑
chore(logging): 移除 message_manager 各模块多余的启动日志
- 修复了 `get_bot_message_stats_by_chat` 接口中错误地将计数器重置为1而不是递增的问题。
- 清理了 `message_manager` 及其子模块中重复或不必要的启动日志,以减少日志冗余。
|
2025-10-04 21:04:49 +08:00 |
|
Windpicker-owo
|
04e7776a45
|
refactor(memory): 移除废弃的记忆系统备份文件,优化消息管理器架构
移除了deprecated_backup目录下的所有废弃记忆系统文件,包括增强记忆适配器、钩子、集成层、重排序器、元数据索引、多阶段检索和向量存储等模块。同时优化了消息管理器,集成了批量数据库写入器、流缓存管理器和自适应流管理器,提升了系统性能和可维护性。
|
2025-10-04 01:38:41 +08:00 |
|
minecraft1024a
|
e9fbd749d8
|
ruff
|
2025-10-03 12:55:45 +08:00 |
|
Windpicker-owo
|
fa9f14388a
|
refactor(chat): 优化异步任务处理和参数传递机制
- 重构ExpressionSelector初始化,添加chat_id参数支持
- 优化StreamLoopManager中异步任务的创建和管理方式
- 简化MessageManager中的消息添加流程
- 调整Prompt中表情选择器的参数传递结构
|
2025-10-03 02:32:02 +08:00 |
|
John Richard
|
7923eafef3
|
re-style: 格式化代码
|
2025-10-02 20:26:01 +08:00 |
|
John Richard
|
ecb02cae31
|
style: 格式化代码
|
2025-10-02 19:38:39 +08:00 |
|
tt-P607
|
3d2da5c3ba
|
fix(chat): 在聊天流处理后清除未读消息
在之前的逻辑中,当 ChatterManager 处理完一个聊天流后,该流上下文中的 unread_messages 列表并未被清空。这可能导致在后续的处理周期中,相同的消息被重复获取和处理,引发非预期的行为并浪费计算资源。
此更改通过在 MessageManager 中新增 `clear_stream_unread_messages` 方法,并在每次成功处理流之后立即调用它,确保消息只被处理一次,解决了潜在的重复处理问题。
|
2025-10-02 04:05:59 +08:00 |
|
Windpicker-owo
|
90b1fb74c3
|
fix(message_manager): 修复全局消息管理器实例创建时的拼写错误
|
2025-09-30 21:16:17 +08:00 |
|
Windpicker-owo
|
ff7294e860
|
feat(memory): 增强记忆构建系统并优化检索性能
- 添加记忆提取异常处理机制,提升系统稳定性
- 实现记忆内容格式化功能,增强可读性和结构化输出
- 优化LLM响应解析逻辑,避免系统标识误写入记忆
- 改进向量存储批量嵌入生成,提升处理效率
- 为记忆系统添加机器人身份上下文注入,避免自身信息记录
- 增强记忆检索接口,支持额外上下文参数传递
- 添加控制台记忆预览功能,便于人工检查
- 优化记忆融合算法,正确处理单记忆组情况
- 改进流循环管理器,支持未读消息积压强制分发机制
|
2025-09-30 21:15:40 +08:00 |
|
Windpicker-owo
|
41c45889c5
|
feat(memory): 增强记忆构建上下文处理能力并优化兴趣度批量更新机制
- 在记忆构建过程中允许检索历史记忆作为上下文补充
- 改进LLM响应解析逻辑,增强JSON提取兼容性
- 优化消息兴趣度计算和批量更新机制,减少数据库写入频率
- 添加构建状态管理,支持在BUILDING状态下进行记忆检索
- 修复stream_id拼写错误处理和历史消息获取逻辑
|
2025-09-30 14:22:26 +08:00 |
|
Windpicker-owo
|
4570fd8b64
|
fix(chat): 增强消息查找功能并添加未读消息自动清理机制
- 重构 `_find_message_by_id` 方法,支持多种消息ID格式和模糊匹配
- 在动作执行后自动清理未读消息,防止消息堆积
- 为 `reply` 动作添加目标消息查找失败时的降级处理
- 将消息计数和关系查询方法改为异步调用以保持一致性
|
2025-09-29 10:47:43 +08:00 |
|
Windpicker-owo
|
903ab855bf
|
refactor(message_manager): 重构消息分发机制为流循环模式
重构原有的动态消息分发管理器为流循环管理器,每个聊天流拥有独立的无限循环任务主动轮询处理消息。
主要变更:
- 移除 DistributionManager 及相关类(DistributionPriority、DistributionTask、StreamDistributionState、DistributionExecutor)
- 新增 StreamLoopManager 实现基于流的循环处理机制
- 修改 context_manager 和 message_manager 以适配新的流循环模式
- 优化 plan_filter.py 中的消息处理逻辑以适应新的数据格式
BREAKING CHANGE: 原有的分发管理器 API 已被移除,需要更新所有依赖分发功能的代码
|
2025-09-29 00:42:54 +08:00 |
|
Windpicker-owo
|
28bce19d27
|
refactor(chat): 移除 ChatStream 的历史消息自动加载功能
移除 ChatStream 初始化时的 `_load_history_messages()` 调用,改为按需异步加载历史消息。这解决了启动时阻塞事件循环的问题,并提高了聊天流初始化的性能。
主要变更:
- 删除 `ChatStream._load_history_messages()` 方法及相关代码
- 将多个模块中的同步数据库查询函数改为异步版本
- 修复相关调用处的异步调用方式
- 优化图片描述查询的错误处理
BREAKING CHANGE: `get_raw_msg_before_timestamp_with_chat` 和相关消息查询函数现在改为异步操作,需要调用处使用 await
|
2025-09-28 21:31:49 +08:00 |
|
Windpicker-owo
|
fd76e36320
|
refactor(chat): 迁移数据库操作为异步模式并修复相关调用
将同步数据库操作全面迁移为异步模式,主要涉及:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 修复相关异步调用链,确保 await 正确传递
- 优化消息管理器、上下文管理器等核心组件的异步处理
- 移除同步的 person_id 获取方法,避免协程对象传递问题
修复 deepcopy 在 StreamContext 中的序列化问题,跳过不可序列化的 asyncio.Task 对象
删除无用的测试文件和废弃的插件清单文件
|
2025-09-28 20:40:46 +08:00 |
|
Windpicker-owo
|
08ef960947
|
refactor(database): 将同步数据库操作迁移为异步操作
将整个项目的数据库操作从同步模式迁移为异步模式,主要涉及以下修改:
- 将 `with get_db_session()` 改为 `async with get_db_session()`
- 将同步的 SQLAlchemy 查询方法改为异步执行
- 更新相关的方法签名,添加 async/await 关键字
- 修复由于异步化导致的并发问题和性能问题
这些修改提高了数据库操作的并发性能,避免了阻塞主线程,提升了系统的整体响应能力。涉及修改的模块包括表情包管理、反提示注入统计、用户封禁管理、记忆系统、消息存储等多个核心组件。
BREAKING CHANGE: 所有涉及数据库操作的方法现在都需要使用异步调用,同步调用将不再工作
|
2025-09-28 15:42:30 +08:00 |
|
Windpicker-owo
|
80d34f3130
|
refactor(interest-system): 移除旧兴趣度管理系统,迁移到插件内部实现
移除旧的集中式兴趣度管理系统(interest_manager.py),将兴趣度计算功能迁移到affinity_flow_chatter插件内部实现。主要包括:
- 删除interest_manager.py及其相关导入引用
- 修改RelationshipEnergyCalculator使用插件内部的关系分计算
- 重构StreamContextManager使用插件内部的兴趣度评分系统
- 更新ChatStream、PlanFilter、Planner等组件使用新的插件接口
- 简化上下文管理器,移除事件系统和验证器相关代码
此次重构提高了模块独立性,减少了核心代码对插件功能的直接依赖,符合"高内聚低耦合"的设计原则。
|
2025-09-27 19:07:24 +08:00 |
|
Windpicker-owo
|
0fe052dd37
|
Merge branch 'afc' of https://github.com/MoFox-Studio/MoFox_Bot into afc
|
2025-09-27 16:31:44 +08:00 |
|
Windpicker-owo
|
9a70c7a93d
|
refactor(chat): 优化上下文管理器,添加启动与停止功能,改进消息用户ID获取逻辑
|
2025-09-27 16:31:23 +08:00 |
|
Windpicker-owo
|
c49b3f3ac4
|
refactor(chat): 重构消息管理器以使用集中式上下文管理和能量系统
- 将流上下文管理从MessageManager迁移到专门的ContextManager
- 使用统一的能量系统计算focus_energy和分发间隔
- 重构ChatStream的消息数据转换逻辑,支持更完整的数据字段
- 更新数据库模型,移除interest_degree字段,统一使用interest_value
- 集成新的兴趣度管理系统替代原有的评分系统
- 添加消息存储的interest_value修复功能
|
2025-09-27 14:23:48 +08:00 |
|
tt-P607
|
7f39f6f649
|
feat(sleep): 细化唤醒机制,实现分聊天的起床气
先前的唤醒与起床气机制是全局性的,一个聊天中的频繁消息会导致Bot对所有聊天都表现出“起床气”状态,这在多聊天场景下体验不佳。
本次更新将唤醒机制与具体的 `chat_id` 进行绑定,实现了更精细化的交互逻辑:
- Bot被吵醒后,其“起床气”状态将只针对吵醒它的聊天生效。
- 在此期间,Bot会忽略其他所有聊天的消息,专注于处理来自触发唤醒的聊天的消息。
- Prompt现在会优先注入起床气相关的描述,确保响应符合当前状态。
此外,为了更准确地捕捉唤醒意图,在群聊中,即使没有@提及,只要消息包含Bot的昵称或别名,也会被视为一次有效“提及”,从而累加唤醒值。
|
2025-09-27 00:58:41 +08:00 |
|
Windpicker-owo
|
0478be7d2a
|
refactor(chat): 优化消息管理与打断系统,添加打断计数与历史消息加载功能
|
2025-09-26 19:17:24 +08:00 |
|
Windpicker-owo
|
7718a9b956
|
refactor(chat): 从StreamContext获取消息兴趣度和连续无回复次数的计算逻辑
|
2025-09-26 14:02:43 +08:00 |
|
Windpicker-owo
|
bbbf543078
|
refactor(chat): 重构消息兴趣度计算与动作记录机制
重构聊天系统以使用集中式消息管理API,移除ChatMessageContext类,将兴趣度计算和动作记录功能整合到StreamContext中。
主要变更:
- 移除ChatMessageContext类,使用StreamContext统一管理消息上下文
- 在DatabaseMessages模型中添加interest_degree、actions、should_reply字段
- 实现消息管理器API用于更新消息信息和刷新focus_energy
- 重构ChatStream的focus_energy计算逻辑,基于StreamContext历史消息
- 在动作管理器中添加动作记录功能,确保动作执行后更新消息状态
BREAKING CHANGE: ChatMessageContext类已被移除,相关功能需使用StreamContext API替代
|
2025-09-26 13:56:43 +08:00 |
|
Windpicker-owo
|
ad36a6c48f
|
refactor(chat): 重构消息管理器以使用集中式聊天流API
移除对context.chat_stream的直接依赖,改为通过get_chat_manager().get_stream()统一获取聊天流实例。这提高了模块独立性,符合"高内聚、低耦合"原则。
- 在MessageManager中统一使用chat_api获取stream实例
- 移除mood_manager中直接更新chat_stream的逻辑
- 在affinity_flow_chatter中统一处理兴趣度更新
- 消除直接属性访问带来的强耦合依赖
|
2025-09-26 11:45:20 +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
|
9ca8d5d1c0
|
perf(logging): 将信息级别日志降级为调试级别以优化性能
减少日志输出量,将两个模块中的非关键信息日志从INFO级别调整为DEBUG级别,提升运行效率并减少日志噪音。
|
2025-09-24 12:48:37 +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 |
|
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 |
|
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 |
|
Windpicker-owo
|
b5573333f8
|
feat(affinity-flow): 优化提及检测逻辑和阈值配置
- 简化提及检测逻辑,移除冗余的私聊检查变量
- 使用配置项 mention_bot_adjustment_threshold 替换硬编码的50%阈值
- 在消息处理中清除开头可能存在的空行
- 增加首次认识用户的信息存储方法,避免未知用户处理逻辑
- 调整消息管理器检查间隔从2秒到5秒,减少系统负载
- 修复计划执行器中用户ID比较逻辑,防止自我回复死循环
|
2025-09-21 18:01:38 +08:00 |
|