minecraft1024a
|
db8eec36d5
|
refactor(napcat): 重构数据库层以使用异步SQLAlchemy
将 Napcat 适配器插件的数据库实现从独立的 `sqlmodel` 和同步会话切换为复用主程序的异步 SQLAlchemy 数据库连接和迁移体系。
主要变更:
- 移除独立的 `NapcatAdapter.db` 文件和 `sqlmodel` 依赖。
- 创建新的 `NapcatBanRecord` SQLAlchemy 模型,并集成到主应用的 `Base` 中。
- 将所有数据库操作(增删改查)重构为异步方法,并提供兼容旧方法名的接口。
- 移除本地缓存逻辑,简化 `utils.py` 中的信息获取函数。
- 适配 `notice_handler.py` 中的数据库调用为异步 `await` 方式。
此重构统一了数据库管理,提高了性能和可维护性,并消除了同步I/O操作。
|
2025-10-06 21:54:27 +08:00 |
|
雅诺狐
|
e83e0d9ff2
|
refactor: 优化异步调用和权限系统架构
- 移除bot.py中不必要的asyncio.to_thread包装
- 将权限API的is_master方法改为异步调用
- 删除不再使用的SQLAlchemyTransaction类
|
2025-10-06 21:02:38 +08:00 |
|
minecraft1024a
|
b7a255c4ae
|
feat(plugin-system): 引入插件权限节点声明式注册机制,解决了issue#24
重构了插件权限节点的注册方式,从原先在 `on_plugin_loaded` 钩子中调用 API 的命令式注册,改为通过在插件类中声明 `permission_nodes` 列表的声明式注册。
这一改进有以下优点:
- **简化插件开发**:插件开发者不再需要在代码中手动调用注册函数,只需在类属性中定义权限节点即可,更加直观和简洁。
- **提升核心健壮性**:权限节点的注册逻辑统一由插件管理器在加载时处理,减少了因插件实现不当导致注册失败或遗漏的风险。
- **增强可读性**:所有权限节点集中定义在插件类的顶部,方便快速了解插件所需的权限。
此变更涉及:
- 新增 `PermissionNodeField` 类型用于标准化权限节点定义。
- 在 `PluginBase` 中添加 `permission_nodes` 属性。
- 在 `PluginManager` 中实现插件加载时自动注册权限节点的逻辑。
- 更新 `maizone_refactored` 和 `permission_management` 插件以适应新的声明式注册方式。
|
2025-10-06 13:26:24 +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 |
|
minecraft1024a
|
91034ea4de
|
refactor(cross_context): 提取互通组上下文获取逻辑为通用API
将原本在 `maizone` 插件中用于获取互通组聊天上下文的逻辑,提取并重构为一个更通用的 `cross_context_api.get_intercom_group_context_by_name` 函数。
这次重构提高了代码的模块化和复用性,使得其他需要跨聊天上下文功能的插件也能方便地调用此API,而无需重复实现相似的逻辑。`maizone` 插件现在直接调用这个新的API来获取上下文,简化了其内部实现。
|
2025-10-05 21:44:14 +08:00 |
|
minecraft1024a
|
3a9b65fe19
|
feat(proactive_thinker): 增加跨上下文信息到主动思考提示词
在主动思考的提示词中增加了“和Ta在别处的讨论摘要”部分。
这使得AI在进行主动思考时,能够参考用户在其他群组或私聊中的相关讨论,从而获得更全面的上下文信息,做出更贴切和连贯的响应。
|
2025-10-05 21:27:14 +08:00 |
|
minecraft1024a
|
63988363e0
|
feat(chatter): 增加规划器提示词和响应的调试日志
在调试模式下,现在会打印出发送给LLM的规划器提示词以及LLM的原始响应内容。这有助于在开发和排查问题时,更好地理解规划器的输入和输出,方便调试。
|
2025-10-05 21:14:47 +08:00 |
|
minecraft1024a
|
4ca8bfe9b2
|
fix(proactive_thinker): 修复主动思考任务的逻辑缺陷
在 `ColdStartTask` 和 `ProactiveThinkingTask` 中,私聊和群聊任务的执行逻辑存在缺陷。本次提交修复了以下问题:
1. 在冷启动和日常唤醒任务开始时,增加对私聊总开关 `enable_in_private` 的判断,避免在禁用时仍执行扫描。
2. 在日常唤醒任务中,为群聊处理逻辑增加了总开关 `enable_in_group` 的判断。
3. 修复了群聊白名单的判断逻辑,之前无论群聊是否在白名单内都会被唤醒,现在会正确地只唤醒白名单内的群聊。
|
2025-10-05 21:01:56 +08:00 |
|
minecraft1024a
|
fd30cb6d7f
|
refactor(napcat): 移除冗余的MaiBot连接配置
由于MaiBot连接地址已改为通过环境变量进行配置,因此从插件配置文件中移除了旧的`host`和`port`字段,以避免配置冗余和混淆。
|
2025-10-05 20:56:29 +08:00 |
|
minecraft1024a
|
74328c807b
|
refactor(napcat): 使用环境变量配置MaiBot连接地址
将硬编码的MaiBot服务器主机和端口配置更改为从环境变量`HOST`和`PORT`中读取。这样可以更灵活地在不同环境中部署,特别是容器化部署。
同时,将部分日志级别从`INFO`调整为`DEBUG`,以减少不必要的日志输出。
|
2025-10-05 20:55:20 +08:00 |
|
minecraft1024a
|
3387bc2c03
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-05 20:50:16 +08:00 |
|
minecraft1024a
|
34521b868d
|
feat(search): 添加SearXNG搜索引擎支持
在Web搜索工具中集成了SearXNG作为新的搜索引擎选项。
- 在 `WebSearchConfig` 中添加了 `searxng_instances` 和 `searxng_api_keys` 配置项。
- 更新了配置文件模板以包含新的SearXNG设置。
- 修复了 `main.py` 中管理器异步初始化调用方式的错误。
|
2025-10-05 20:50:11 +08:00 |
|
subiz
|
736a3d6eac
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-05 20:48:54 +08:00 |
|
subiz
|
d9fea77ac8
|
优化主动思考提示词
|
2025-10-05 20:48:39 +08:00 |
|
minecraft1024a
|
7a7f737f71
|
ruff: 清理代码并规范导入顺序
对整个代码库进行了大规模的清理和重构,主要包括:
- 统一并修复了多个文件中的 `import` 语句顺序,使其符合 PEP 8 规范。
- 移除了大量未使用的导入和变量,减少了代码冗余。
- 修复了多处代码风格问题,例如多余的空行、不一致的引号使用等。
- 简化了异常处理逻辑,移除了不必要的 `noqa` 注释。
- 在多个文件中使用了更现代的类型注解语法(例如 `list[str]` 替代 `List[str]`)。
|
2025-10-05 20:38:56 +08:00 |
|
雅诺狐
|
528b4f7bf8
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-05 19:56:19 +08:00 |
|
雅诺狐
|
44be3d8ff3
|
添加SearXNG引擎
|
2025-10-05 19:56:15 +08:00 |
|
minecraft1024a
|
e0e5b83583
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-05 18:53:04 +08:00 |
|
minecraft1024a
|
1ce933c93b
|
refactor(proactive_thinker): 使用工具函数构建可读的动作历史
将 `proactive_thinker_executor` 中手动拼接动作历史字符串的逻辑,替换为调用 `chat_message_builder` 中新增的 `build_readable_actions` 工具函数。
这提高了代码的可读性和可维护性,将格式化逻辑集中到一处。
|
2025-10-05 18:53:01 +08:00 |
|
Windpicker-owo
|
3e37b7cef5
|
refactor(chat): 统一异步调用模式并修复循环依赖
- 将 chat_manager.get_stream() 调用改为异步
- 将 replyer_manager.get_replyer() 方法改为异步
- 在 generator_api 中使用动态导入避免循环依赖
- 在 action_manager 中添加待处理动作队列清理
- 更新所有相关调用点以支持异步模式
|
2025-10-05 18:30:16 +08:00 |
|
minecraft1024a
|
118f82b1e3
|
refactor(proactive_thinker): 优化主动思考的冷却判断和上下文获取
主动思考插件的冷却时间判断逻辑已从依赖 `stream.last_active_time` 切换为获取最新的消息时间。这使得冷却判断更加准确,避免了因流未及时更新而导致的不准确。
同时,优化了上下文获取逻辑:
- 获取最近聊天记录时,增加了12小时的时间限制。
- 获取历史主动决策记录时,改为获取过去24小时内的动作记录,以提供更相关的上下文。
|
2025-10-05 18:25:06 +08:00 |
|
Windpicker-owo
|
bb1afa9f32
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-05 17:45:51 +08:00 |
|
Windpicker-owo
|
c808d6a0ef
|
feat(chat): 实现批量动作存储并优化消息处理流程
新增批量动作记录存储功能,提升数据库写入性能。重构消息预处理逻辑,改进兴趣度计算和同步机制,优化用户信息和群组信息处理。添加配置选项控制批量存储开关,更新相关模板配置。
|
2025-10-05 17:45:44 +08:00 |
|
subiz
|
6d757860a6
|
refactor(chat): 精简规划器提示词并优化思绪流规则
- 合并重复结构,统一主动/被动规划器
- 重新梳理块级占位符顺序,突出 time->mood->identity->schedule
- 弱化“兴趣值”概念,改用自然语言优先级
- 强化「仅对未读执行动作」与「不对表情包回复」两条底线
- 简化输出示例,移除冗余提示,仅保留核心 JSON 模板
- 删除旧版多动作并行示例,保留通用多回复范式
|
2025-10-05 17:20:06 +08:00 |
|
Windpicker-owo
|
23e523c7b9
|
refactor(chat): 优化异步任务处理和消息管理逻辑
- 使用asyncio.create_task替代await调用,提升并发性能
- 简化流管理器的槽位获取逻辑,移除回退方案
- 重构上下文管理器的消息添加和更新机制
- 移除StreamContext中的冗余方法,保持数据模型的简洁性
- 优化兴趣度评分系统的更新流程,减少阻塞操作
这些改动主要关注性能优化和代码结构简化,不涉及功能变更。
|
2025-10-05 15:17:30 +08:00 |
|
minecraft1024a
|
2c74b472ab
|
style: 统一代码风格并进行现代化改进
对整个代码库进行了一次全面的风格统一和现代化改进。主要变更包括:
- 将 `hasattr` 等内置函数中的字符串参数从单引号 `'` 统一为双引号 `"`。
- 采用现代类型注解,例如将 `Optional[T]` 替换为 `T | None`,`List[T]` 替换为 `list[T]` 等。
- 移除不再需要的 Python 2 兼容性声明 `# -*- coding: utf-8 -*-`。
- 清理了多余的空行、注释和未使用的导入。
- 统一了文件末尾的换行符。
- 优化了部分日志输出和字符串格式化 (`f"{e!s}"`)。
这些改动旨在提升代码的可读性、一致性和可维护性,使其更符合现代 Python 编码规范。
|
2025-10-05 13:21:27 +08:00 |
|
雅诺狐
|
413973979c
|
refactor(deps): 将jieba分词库替换为rjieba
|
2025-10-05 12:08:18 +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
|
3764b3a8a6
|
refactor(plugin_system): 引入 PluginMetadata 替代 manifest.json
将插件元数据定义从外部 `_manifest.json` 文件迁移到插件 `__init__.py` 文件中的 `__plugin_meta__` 变量。此举简化了插件加载流程,减少了文件I/O,并使元数据与插件代码更紧密地耦合。
主要变更:
- 引入 `PluginMetadata` 数据类来标准化插件元数据。
- 插件基类 `PluginBase` 现在直接接收 `PluginMetadata` 对象,不再负责解析 JSON 文件。
- 插件管理器 `PluginManager` 调整加载逻辑,从插件模块的 `__plugin_meta__` 属性获取元数据。
- 删除了 `manifest_utils.py` 及其相关的验证和版本比较逻辑,简化了依赖关系。
- 更新了所有内置插件,以采用新的元数据定义方式,并删除了它们各自的 `_manifest.json` 文件。
BREAKING CHANGE: 插件加载机制已改变。所有插件必须在其 `__init__.py` 中定义一个 `__plugin_meta__` 变量,该变量是 `PluginMetadata` 类的实例,并移除旧的 `_manifest.json` 文件。
|
2025-10-04 16:17:03 +08:00 |
|
tt-P607
|
df5a4c717b
|
refactor(proactive_thinker): 优化决策提示词,避免在仅有自身消息时刷屏
为了防止在没有其他人回复的情况下出现自言自语或刷屏的现象,为主动思考模块的决策提示词增加了一条新规则。
该规则指示模型在判断是否主动发言时,如果上下文中仅存在自身发送的消息,则倾向于不回复,以提升交互的自然性和用户体验。
|
2025-10-03 22:14:58 +08:00 |
|
tt-P607
|
089107a271
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-03 22:14:30 +08:00 |
|
tt-P607
|
a8a42694f5
|
refactor(proactive_thinker): 优化决策提示词,增加日程与历史记录上下文
为了让主动思考的决策更加贴近当前情境,对决策提示词(Prompt)进行了重构。
- **增强情境感知**:在提示词中增加了日程安排、最近聊天摘要和近期动作历史,为 AI 提供更全面的决策依据。
- **优化结构**:将所有上下文信息整合到“情境分析”部分,使提示词结构更清晰,便于模型理解。
- 修复了获取最近消息时参数传递的错误。
|
2025-10-03 22:11:49 +08:00 |
|
tt-P607
|
bb4ff48e26
|
refactor(proactive_thinker): 优化主动思考的决策与交互,使其更自然且避免打扰
本次提交对主动思考插件进行了多项核心优化,旨在提升其交互的自然度和人性化,并引入了关键的防打扰机制。
主要变更包括:
1. **重构冷启动任务 (`ColdStartTask`)**:
- 任务逻辑从一个长期运行的周期性任务,重构为在机器人启动时执行一次的“唤醒”任务。
- 新逻辑不仅能为白名单中的全新用户发起首次问候,还能智能地“唤醒”那些因机器人重启而“沉睡”的聊天流,确保了主动思考功能的连续性。
2. **增强决策提示词 (`_build_plan_prompt`)**:
- 引入了更精细的决策原则,核心是增加了防打扰机制。现在模型在决策时会检查上一条消息是否为自己发送,如果对方尚未回复,则倾向于不发起新对话,以表现出耐心和体贴。
- 优化了示例,引导模型优先利用上下文信息,并在无切入点时使用简单的问候,避免创造生硬抽象的话题。
3. **改善回复生成逻辑 (`_build_*_reply_prompt`)**:
- 在生成回复的指令中,明确要求模型必须先用一句通用的礼貌问候语(如“在吗?”、“下午好!”)作为开场白,然后再衔接具体话题。这使得主动发起的对话更加自然、流畅,符合人类的沟通习惯。
4. **模型调整**:
- 将决策规划阶段的 LLM 模型从 `utils` 调整为 `replyer`,以更好地适应生成对话策略的任务。
|
2025-10-03 21:44:31 +08:00 |
|
minecraft1024a
|
0e2182efa6
|
动一下manifest以防加载的时候被用户看笑话()
|
2025-10-03 21:05:59 +08:00 |
|
minecraft1024a
|
46478d7c14
|
feat(proactive_thinker): 增加防刷屏决策原则
在主动思考的决策原则中增加了一条新规则。
如果群聊的上下文中只有AI自己的消息而没有其他人的回应,AI也许将选择不回复,以避免刷屏。
|
2025-10-03 20:47:02 +08:00 |
|
minecraft1024a
|
135909449c
|
refactor(proactive_thinker): 优化唤醒逻辑并增加防打扰机制
重构了日常唤醒任务(ProactiveThinkingTask)的逻辑,将其拆分为私聊和群聊的独立处理流程。
- 私聊现在直接遍历白名单,确保能覆盖到所有配置的用户,即使他们当前不在内存中。
- 群聊则继续遍历内存中的活跃流。
这个改动修复了之前版本中,只有当用户发送消息后,bot才有可能对其进行主动唤醒的问题。
同时,在决策模块中引入了防打扰机制:
- 在决策提示词中加入了最近的决策历史记录作为上下文。
- 增加了新的决策原则,明确指示模型在近期已主动发起过对话的情况下,应倾向于保持沉默,以避免过度打扰用户。
此外,对冷启动任务(ColdStartTask)进行了微调,将初始的等待时间移至循环的开始,以确保插件加载后能先等待一段时间再开始工作。
|
2025-10-03 19:39:37 +08:00 |
|
minecraft1024a
|
4089e714b7
|
fix:(proactive_thinker)这beyond的孩子忘了加mood_state,导致主动思考提示词里的情绪输出了一堆乱码()
|
2025-10-03 18:21:21 +08:00 |
|
minecraft1024a
|
62fe589c8f
|
fix(proactive_thinker): 修复情绪模块关闭时主动思考报错的问题
当全局情绪模块被禁用时,尝试获取情绪状态会导致`AttributeError`或`KeyError`,从而中断主动思考任务。
本次提交通过以下方式修复了此问题:
1. 在获取情绪状态前,增加对`global_config.mood.enable_mood`的判断。
2. 在情绪获取逻辑中加入`try...except`块,捕获潜在的异常,并在失败时提供一个默认的情绪状态,增强了代码的鲁棒性。
3. 在日常唤醒任务的异常处理中,增加了`traceback.print_exc()`,以便在出现错误时打印完整的堆栈跟踪,方便快速定位问题。
|
2025-10-03 18:19:18 +08:00 |
|
minecraft1024a
|
f4079f10fe
|
feat(proactive_thinker): 在主动思考中融入情绪状态
将情绪状态整合到主动思考的上下文和提示词中。这使得AI在主动发起对话时,其语气和内容能够更好地反映当前的情绪,使交互更加生动和人性化。
主要变更:
- 在上下文收集中增加当前的情绪状态。
- 将情绪状态变量加入到私聊和群聊的提示词模板中,引导模型生成符合情绪的回复。
- 优化了最终的输出指令,使其更清晰、更严格,以提高生成内容的质量。
|
2025-10-03 17:41:58 +08:00 |
|
minecraft1024a
|
923b989657
|
docs(proactive_thinker): 为执行器模块添加详细的中文文档字符串
为 `ProactiveThinkerExecutor` 类及其所有公共和私有方法添加了详细的 Docstrings。这包括对类、方法功能、参数和返回值的清晰描述,以提高代码的可读性和可维护性。
|
2025-10-03 17:17:36 +08:00 |
|
minecraft1024a
|
275157c58a
|
refactor(proactive_thinker): 重构上下文收集与提示词构建逻辑以支持群聊
将原有的上下文收集函数 `_gather_context` 和提示词构建函数 `_make_decision`, `_build_plan_prompt` 拆分为更细粒度的模块,以分别处理私聊和群聊场景。
主要变更:
- `_gather_context`: 现在能根据聊天流是群聊还是私聊,收集不同的上下文信息,并添加 `chat_type` 字段以作区分。
- `_build_decision_prompt`: 新增函数,根据 `chat_type` 构建不同的决策提示词,使决策更贴合场景。
- `_build_plan_prompt`: 重构为调度函数,内部调用新增的 `_build_private_plan_prompt` 和 `_build_group_plan_prompt` 来生成特定场景的规划提示词。
- 整体逻辑更加清晰,增强了代码的可读性和可扩展性,为未来支持更多聊天类型奠定了基础。
|
2025-10-03 17:15:34 +08:00 |
|
minecraft1024a
|
9b7077e773
|
feat(proactive_thinker): 启用并优化主动思考插件
- 默认启用主动思考插件,并进行多项功能增强和修复。
- 修复了日常唤醒任务中 `stream_id` 的格式问题,确保能正确调用执行器。
- 调整了冷启动任务的初始等待时间,以更好地适应系统启动流程。
- 优化了执行器中获取日程和聊天流的逻辑,使其更加健壮。
- 简化了部分日志输出,使其更清晰。
- 增加了在调试模式下打印 Planner 和 Responder 提示词的功能,便于调试。
|
2025-10-03 15:15:21 +08:00 |
|
Windpicker-owo
|
9e1baa7e61
|
refactor(chat): 优化流循环管理和数据库性能
移除StreamLoopManager中的锁机制,简化并发流处理逻辑
- 删除loop_lock,减少锁竞争和超时问题
- 优化流启动、停止和清理流程
- 增强错误处理和日志记录
增强数据库操作性能
- 集成数据库批量调度器和连接池管理器
- 优化ChatStream保存机制,支持批量更新
- 改进数据库会话管理,提高并发性能
清理和优化代码结构
- 移除affinity_chatter中的重复方法
- 改进prompt表达习惯格式化
- 完善系统启动和清理流程
|
2025-10-03 13:56:58 +08:00 |
|
minecraft1024a
|
58688c5e49
|
refactor(social_toolkit): 优化戳一戳动作的描述和参数
将 `poke_user` 动作的激活类型更改为 `ALWAYS`,并简化了其描述和判断条件,使其更加清晰明确,专注于核心规则。同时,将动作参数 `user_id` 修正为 `qq_id` 以符合实际实现。
|
2025-10-02 22:03:01 +08:00 |
|
minecraft1024a
|
fa3b0464df
|
Merge branch 'dev' of https://github.com/MoFox-Studio/MoFox_Bot into dev
|
2025-10-02 21:58:10 +08:00 |
|
minecraft1024a
|
56a75afadf
|
fix(adapter): 修复表情回应命令并移除废弃的emoji映射
- 修复了`napcat_adapter`中表情回应命令名称不一致的问题,将`set_emoji_like`统一为`set_msg_emoji_like`。
- 修正了`SendHandler`中`set_like`参数的类型转换,从`str`改为`bool`,以符合API要求。
- 移除了`social_toolkit_plugin`中已废弃且不准确的Unicode emoji到QQ表情文本的映射。
- 更新了配置文件模板的版本号至`7.1.5`。
|
2025-10-02 21:58:07 +08:00 |
|
John Richard
|
047105e5e8
|
更改部分类型注解
|
2025-10-02 21:10:36 +08:00 |
|
John Richard
|
7923eafef3
|
re-style: 格式化代码
|
2025-10-02 20:26:01 +08:00 |
|