Commit Graph

2106 Commits

Author SHA1 Message Date
minecraft1024a
e7bde5d77d chore(chatter): 添加关于迁移逻辑的 TODO 注释 2025-11-19 23:22:12 +08:00
minecraft1024a
2ed9e44242 **我撞到dict了 2025-11-19 23:22:11 +08:00
minecraft1024a
159ff11524 Revert "refactor(chatter): 简化 action_message 的数据类型处理"
This reverts commit 540b162c04.
2025-11-19 23:22:10 +08:00
minecraft1024a
62dac40c6a refactor(chatter): 简化 action_message 的数据类型处理
在 `ActionPlannerInfo` 中,将 `action_message` 的类型直接设为 `target_message_obj` (dict),移除了之前将其转换为 `DatabaseMessages` 对象的逻辑。

这一改动简化了代码,并与最近 `reply_message` 模型重构的目的一致,即在流程中优先使用更通用的字典类型,仅在需要时进行模型转换。
2025-11-19 23:22:10 +08:00
minecraft1024a
804af4d8be fix(chatter): 修复私聊场景下目标信息类型不匹配问题
在 affinity_flow_chatter 插件中,处理私聊上下文时,`plan.target_info` 可能是一个字典(dict)类型,而不是预期的对象类型。这会导致在访问 `plan.target_info.person_name` 等属性时引发 `AttributeError`。

本次提交通过增加类型检查来处理这种情况,确保无论是对象还是字典类型的 `target_info` 都能被正确解析,从而增强了代码的健壮性并修复了潜在的运行时错误。
2025-11-19 23:22:04 +08:00
minecraft1024a
74e6d1ec39 refactor(maizone): 移除生成文案时对跨群聊上下文的依赖
此更改删除了在生成内容时获取和注入跨群聊上下文(`maizone_context_group`)的逻辑。

该功能已被新的、更通用的 S4U 上下文检索机制所取代,因此旧的硬编码实现不再需要,移除它可以简化代码并消除冗余。
2025-11-19 23:22:01 +08:00
minecraft1024a
28b56fc0b4 feat(schedule): 优化日程提示并增加时间感知能力
日程系统现在可以更详细地描述当前活动,包括计划的起止时间、已进行时间和剩余时间,为AI角色提供更强的时间感知和情境感。

主要变更:
- `schedule_manager`的`get_current_activity`现在返回包含活动和时间范围的字典,而不仅仅是活动名称。
- 在`default_generator`中,重构了日程提示的生成逻辑,使其能够计算并展示活动的详细时间信息。
- 修复了多处可能因变量为空(如`msg_content`、`user_nickname`)或事件处理结果为`None`而引发的潜在错误。
- 统一了各处对日程信息的调用方式。
2025-11-19 23:22:01 +08:00
tt-P607
b7392ffea3 refactor(napcat): 将 MoFox-Bot 重命名为 MaiBot
在 NapCat 适配器插件中,将 `mofox_bot` 相关的变量和函数名重命名为 `maibot`,以保持项目内部命名的一致性。这是在之前从 MaiBot 重命名为 MoFox-Bot 后的修正操作。
2025-11-19 23:21:58 +08:00
tt-P607
6f1ed7f0ec Revert "fix(napcat): 修复消息处理和事件注册逻辑"
This reverts commit 3737c6d458.
2025-11-19 23:21:56 +08:00
tt-P607
3d532b2945 fix(napcat): 修复消息处理和事件注册逻辑
- 增加对字节类型消息的解码处理,增强了与不同 WebSocket 实现的兼容性。
- 修复了在 `register_events` 中使用 `Enum` 成员而非其 `value` 进行注册的错误。
- 将 `_start_maibot_connection` 重命名为 `_start_mofox_bot_connection` 以匹配项目重命名。
- 使用 `setattr` 动态设置 `mofox_bot_router`,提高代码的灵活性。
2025-11-19 23:21:56 +08:00
minecraft1024a
6ce331cf0c chore: 代码清理和格式化
对项目代码进行了一系列小幅度的清理和改进,包括:
- 移除未使用的导入语句
- 统一代码格式,如调整空行和导入顺序
- 优化日志输出的可读性
- 更新类型注解以符合现代 Python 语法
- 修复代码风格检查器(linter)报告的问题
2025-11-19 23:21:54 +08:00
minecraft1024a
892e106015 refactor(cross_context): 重构互通组上下文获取逻辑
重构并简化了互通组上下文的获取函数 `get_intercom_group_context`。旧的 `get_chat_history_by_group_name` 和 `get_intercom_group_context_by_name` 函数被合并和优化。

主要变更:
- 移除了冗余的 `get_chat_history_by_group_name` 函数。
- 将 `get_intercom_group_context_by_name` 重命名为 `get_intercom_group_context`,并简化了其参数。
- 增加了对黑名单模式的支持,现在可以正确地从所有聊天中排除指定会话。
- 优化了消息获取和格式化流程,现在按聊天会话分块返回消息,而不是将所有消息混合在一起排序,提高了上下文的可读性。
- 清理了代码格式和移除了未使用的导入。
2025-11-19 23:21:47 +08:00
minecraft1024a
cca07bd16e refactor: 将项目名称从 MaiBot 重命名为 MoFox-Bot
本次更新在整个代码库范围内将项目名称 "MaiBot" 及其相关变体(如 "maibot")统一重命名为 "MoFox-Bot"。

主要变更包括:
- 修改配置文件、模板和日志输出中的项目名称。
- 更新文档、注释和用户可见的字符串,以反映新的品牌名称。
- 调整插件元数据和描述。
2025-11-19 23:21:44 +08:00
minecraft1024a
db1dc596d7 refactor(napcat): 重命名 MaiBot 为 MoFox-Bot
将日志和注释中的 "MaiBot" 实例更新为新的项目名称 "MoFox-Bot",以保持品牌一致性。
2025-11-19 23:21:39 +08:00
minecraft1024a
b71f664888 feat(server): 增加端口占用自动检测和递增功能
当服务器启动时指定的端口被占用时,会自动检测并尝试使用下一个可用端口,避免因端口冲突导致启动失败。

同时,更新了 NapCat 适配器插件,使其能够从全局服务器实例中获取正确的地址和端口,确保与核心服务器的通信。
2025-11-19 23:21:38 +08:00
minecraft1024a
20dcc0f552 Revert "refactor(maizone): 升级上下文检索为用户中心模式"
This reverts commit dbe9d616d2.
2025-11-19 23:21:34 +08:00
tt-P607
a314b5f15b refactor(maizone): 升级上下文检索为用户中心模式
此前的跨群聊上下文依赖于一个固定的互通组 (`maizone_context_group`),这种方式不够灵活且上下文相关性较弱。

本次重构将上下文获取逻辑全面切换至新引入的 `get_user_centric_context` API,以提升上下文的精准度和相关性。

- **内容生成 (`content_service`)**: 现在会检索机器人自身在所有聊天中的近期发言作为参考,使新生成的内容更贴近其当前活动与话题。
- **评论回复 (`qzone_service`)**: 在回复用户评论时,会检索该用户与机器人在其他聊天中的对话记录,从而生成更具个性化和情境感知能力的回复。
2025-11-19 23:21:08 +08:00
tt-P607
22cbef4ec5 fix(tts): 修正配置文件加载逻辑
先前通过 `__file__` 相对路径定位配置文件的方案不够健壮,在不同运行环境下可能导致路径解析失败。

本次修改通过从插件文件向上追溯,动态计算项目根目录,从而构建了更可靠的配置文件绝对路径。

此外,移除了实例级别的配置缓存,确保每次都能读取到最新的配置,避免了因缓存导致的问题。同时,恢复了对 `spatial_effects` 配置节的加载支持。
2025-11-19 23:20:58 +08:00
LuiKlee
baf7444d0e 修复tts_voice_plugin/plugin.py117行的(( 2025-11-19 23:20:58 +08:00
LuiKlee
bd2587f8de 修复逻辑错误+重构
spatial_effects 配置	未在描述中定义但尝试加载
现已移除
炸了叫lui()
2025-11-19 23:20:56 +08:00
tt-P607
46b232b394 build(deps): 为 tts 插件添加 soundfile 和 pedalboard 依赖 2025-11-19 23:20:54 +08:00
tt-P607
cb11a83309 fix(plugins): 修复 tts 插件中错误的机器人根目录路径
之前的路径 `plugin_file.parent.parent.parent` 错误地指向了 `src` 目录,而不是项目根目录。

此更改通过将路径调整为 `...parent.parent.parent.parent.parent`,修正了根目录的计算逻辑,确保能够正确找到并加载配置文件。
2025-11-19 23:20:53 +08:00
tt-P607
f44a8d76da 语音插件,需要自行准备好gsv 2025-11-19 23:20:51 +08:00
Windpicker-owo
bdf0035034 refactor(chat): 重构关系系统并优化消息打断处理机制
- 移除独立的RelationshipConfig,将关系追踪参数整合到AffinityFlowConfig
- 实现消息打断后立即重新处理流程,提升交互响应性
- 优化关系追踪系统,添加概率筛选和超时保护机制
- 改进机器人自引用处理,确保消息内容正确显示
- 增强用户信息提取逻辑,兼容多种消息格式
- 添加异步后台任务处理,避免阻塞主回复流程
- 调整兴趣评分阈值和权重参数,优化消息匹配精度
2025-11-19 23:20:49 +08:00
minecraft1024a
fb90d67bf6 refactor(core): 统一代码风格并移除未使用的导入
本次提交主要进行代码风格的统一和现代化改造,具体包括:
- 使用 `|` 联合类型替代 `typing.Optional`,以符合 PEP 604 的现代语法。
- 移除多个文件中未被使用的导入语句,清理代码。
- 调整了部分日志输出的级别,使其更符合调试场景。
- 统一了部分文件的导入顺序和格式。
2025-11-19 23:20:40 +08:00
tt-P607
4ad49c6580 chore(log): 将详细的调试日志级别从 INFO 调整为 DEBUG
为了保持 INFO 级别日志的简洁和可读性,将一些过于详细、仅在深度调试时才需要的日志输出调整为 DEBUG 级别。

主要变更包括:
- 记忆系统检索到的记忆详情
- 规划器的原始 LLM 提示词和响应

这有助于在常规运行中关注核心流程,同时保留了在需要时查看详细信息的能力。
2025-11-19 23:20:38 +08:00
Windpicker-owo
11e50b6521 refactor(chat): 优化任务管理机制支持多重回复
重构聊天管理器的任务处理系统,将单一任务追踪改为支持多重回复的任务列表管理。

主要变更:
- 将 `_processing_tasks` 从单任务字典改为任务列表字典
- 新增 `add_processing_task` 和 `get_all_processing_tasks` 方法
- 增强 `cancel_all_stream_tasks` 方法支持批量取消
- 修复消息打断机制,确保取消所有相关任务
- 优化任务清理逻辑,自动移除已完成任务

这些改进使系统能够更好地处理并发回复场景,提高任务管理的灵活性和可靠性。
2025-11-19 23:20:33 +08:00
Windpicker-owo
f002228abb refactor(scoring): 重构评分系统使用统一API替代插件内部实现
将原有的兴趣度评分系统重构为使用统一的评分API,移除了插件内部实现并更新了所有相关引用。主要变更包括:
- 替换 chatter_interest_scoring_system 为 scoring_api
- 移除 interest_scoring.py 文件,统一使用 src/plugin_system/apis/scoring_api
- 更新关系追踪器以使用统一API,保持向后兼容性
- 简化了多个模块中的关系分获取逻辑
2025-11-19 23:20:23 +08:00
minecraft1024a
098e7c2f04 refactor(napcat): 重构数据库层以使用异步SQLAlchemy
将 Napcat 适配器插件的数据库实现从独立的 `sqlmodel` 和同步会话切换为复用主程序的异步 SQLAlchemy 数据库连接和迁移体系。

主要变更:
- 移除独立的 `NapcatAdapter.db` 文件和 `sqlmodel` 依赖。
- 创建新的 `NapcatBanRecord` SQLAlchemy 模型,并集成到主应用的 `Base` 中。
- 将所有数据库操作(增删改查)重构为异步方法,并提供兼容旧方法名的接口。
- 移除本地缓存逻辑,简化 `utils.py` 中的信息获取函数。
- 适配 `notice_handler.py` 中的数据库调用为异步 `await` 方式。

此重构统一了数据库管理,提高了性能和可维护性,并消除了同步I/O操作。
2025-11-19 23:20:12 +08:00
雅诺狐
694f1f8c69 refactor: 优化异步调用和权限系统架构
- 移除bot.py中不必要的asyncio.to_thread包装
- 将权限API的is_master方法改为异步调用
- 删除不再使用的SQLAlchemyTransaction类
2025-11-19 23:20:08 +08:00
minecraft1024a
9d79d8a5cb feat(plugin-system): 引入插件权限节点声明式注册机制,解决了issue#24
重构了插件权限节点的注册方式,从原先在 `on_plugin_loaded` 钩子中调用 API 的命令式注册,改为通过在插件类中声明 `permission_nodes` 列表的声明式注册。

这一改进有以下优点:
- **简化插件开发**:插件开发者不再需要在代码中手动调用注册函数,只需在类属性中定义权限节点即可,更加直观和简洁。
- **提升核心健壮性**:权限节点的注册逻辑统一由插件管理器在加载时处理,减少了因插件实现不当导致注册失败或遗漏的风险。
- **增强可读性**:所有权限节点集中定义在插件类的顶部,方便快速了解插件所需的权限。

此变更涉及:
- 新增 `PermissionNodeField` 类型用于标准化权限节点定义。
- 在 `PluginBase` 中添加 `permission_nodes` 属性。
- 在 `PluginManager` 中实现插件加载时自动注册权限节点的逻辑。
- 更新 `maizone_refactored` 和 `permission_management` 插件以适应新的声明式注册方式。
2025-11-19 23:19:55 +08:00
sunbiz1024
950b086063 ruff 2025-11-19 23:19:53 +08:00
minecraft1024a
2a89efe47a ruff fix但指定了--unsafe-fixes 2025-11-19 23:19:42 +08:00
minecraft1024a
af4e8fe34a refactor(cross_context): 提取互通组上下文获取逻辑为通用API
将原本在 `maizone` 插件中用于获取互通组聊天上下文的逻辑,提取并重构为一个更通用的 `cross_context_api.get_intercom_group_context_by_name` 函数。

这次重构提高了代码的模块化和复用性,使得其他需要跨聊天上下文功能的插件也能方便地调用此API,而无需重复实现相似的逻辑。`maizone` 插件现在直接调用这个新的API来获取上下文,简化了其内部实现。
2025-11-19 23:19:30 +08:00
minecraft1024a
3c2a90bad4 feat(proactive_thinker): 增加跨上下文信息到主动思考提示词
在主动思考的提示词中增加了“和Ta在别处的讨论摘要”部分。

这使得AI在进行主动思考时,能够参考用户在其他群组或私聊中的相关讨论,从而获得更全面的上下文信息,做出更贴切和连贯的响应。
2025-11-19 23:19:27 +08:00
minecraft1024a
016c86a2dd feat(chatter): 增加规划器提示词和响应的调试日志
在调试模式下,现在会打印出发送给LLM的规划器提示词以及LLM的原始响应内容。这有助于在开发和排查问题时,更好地理解规划器的输入和输出,方便调试。
2025-11-19 23:19:25 +08:00
minecraft1024a
66a68356a1 fix(proactive_thinker): 修复主动思考任务的逻辑缺陷
在 `ColdStartTask` 和 `ProactiveThinkingTask` 中,私聊和群聊任务的执行逻辑存在缺陷。本次提交修复了以下问题:

1.  在冷启动和日常唤醒任务开始时,增加对私聊总开关 `enable_in_private` 的判断,避免在禁用时仍执行扫描。
2.  在日常唤醒任务中,为群聊处理逻辑增加了总开关 `enable_in_group` 的判断。
3.  修复了群聊白名单的判断逻辑,之前无论群聊是否在白名单内都会被唤醒,现在会正确地只唤醒白名单内的群聊。
2025-11-19 23:19:22 +08:00
minecraft1024a
30203f45c3 refactor(napcat): 移除冗余的MaiBot连接配置
由于MaiBot连接地址已改为通过环境变量进行配置,因此从插件配置文件中移除了旧的`host`和`port`字段,以避免配置冗余和混淆。
2025-11-19 23:19:20 +08:00
minecraft1024a
a72df9d2a0 refactor(napcat): 使用环境变量配置MaiBot连接地址
将硬编码的MaiBot服务器主机和端口配置更改为从环境变量`HOST`和`PORT`中读取。这样可以更灵活地在不同环境中部署,特别是容器化部署。

同时,将部分日志级别从`INFO`调整为`DEBUG`,以减少不必要的日志输出。
2025-11-19 23:19:17 +08:00
subiz
1db1a01c69 优化主动思考提示词 2025-11-19 23:19:12 +08:00
minecraft1024a
b45261288f feat(search): 添加SearXNG搜索引擎支持
在Web搜索工具中集成了SearXNG作为新的搜索引擎选项。

- 在 `WebSearchConfig` 中添加了 `searxng_instances` 和 `searxng_api_keys` 配置项。
- 更新了配置文件模板以包含新的SearXNG设置。
- 修复了 `main.py` 中管理器异步初始化调用方式的错误。
2025-11-19 23:19:11 +08:00
minecraft1024a
f8e62d0253 ruff: 清理代码并规范导入顺序
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
2025-11-19 23:19:07 +08:00
雅诺狐
4686327d8d 添加SearXNG引擎 2025-11-19 23:18:56 +08:00
minecraft1024a
a72012bf78 refactor(proactive_thinker): 使用工具函数构建可读的动作历史
将 `proactive_thinker_executor` 中手动拼接动作历史字符串的逻辑,替换为调用 `chat_message_builder` 中新增的 `build_readable_actions` 工具函数。

这提高了代码的可读性和可维护性,将格式化逻辑集中到一处。
2025-11-19 23:18:51 +08:00
minecraft1024a
3b57bfc85c refactor(proactive_thinker): 优化主动思考的冷却判断和上下文获取
主动思考插件的冷却时间判断逻辑已从依赖 `stream.last_active_time` 切换为获取最新的消息时间。这使得冷却判断更加准确,避免了因流未及时更新而导致的不准确。

同时,优化了上下文获取逻辑:
- 获取最近聊天记录时,增加了12小时的时间限制。
- 获取历史主动决策记录时,改为获取过去24小时内的动作记录,以提供更相关的上下文。
2025-11-19 23:18:49 +08:00
Windpicker-owo
a513aeb68e refactor(chat): 统一异步调用模式并修复循环依赖
- 将 chat_manager.get_stream() 调用改为异步
- 将 replyer_manager.get_replyer() 方法改为异步
- 在 generator_api 中使用动态导入避免循环依赖
- 在 action_manager 中添加待处理动作队列清理
- 更新所有相关调用点以支持异步模式
2025-11-19 23:18:40 +08:00
subiz
93dc799c82 refactor(chat): 精简规划器提示词并优化思绪流规则
- 合并重复结构,统一主动/被动规划器
- 重新梳理块级占位符顺序,突出 time->mood->identity->schedule
- 弱化“兴趣值”概念,改用自然语言优先级
- 强化「仅对未读执行动作」与「不对表情包回复」两条底线
- 简化输出示例,移除冗余提示,仅保留核心 JSON 模板
- 删除旧版多动作并行示例,保留通用多回复范式
2025-11-19 23:18:29 +08:00
Windpicker-owo
dccf1cffc9 feat(chat): 实现批量动作存储并优化消息处理流程
新增批量动作记录存储功能,提升数据库写入性能。重构消息预处理逻辑,改进兴趣度计算和同步机制,优化用户信息和群组信息处理。添加配置选项控制批量存储开关,更新相关模板配置。
2025-11-19 23:18:27 +08:00
Windpicker-owo
a7bc1b4f20 refactor(chat): 优化异步任务处理和消息管理逻辑
- 使用asyncio.create_task替代await调用,提升并发性能
- 简化流管理器的槽位获取逻辑,移除回退方案
- 重构上下文管理器的消息添加和更新机制
- 移除StreamContext中的冗余方法,保持数据模型的简洁性
- 优化兴趣度评分系统的更新流程,减少阻塞操作

这些改动主要关注性能优化和代码结构简化,不涉及功能变更。
2025-11-19 23:18:24 +08:00
minecraft1024a
cd84373828 style: 统一代码风格并进行现代化改进
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:

- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。

这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
2025-11-19 23:18:16 +08:00