feat(notice): 实现全局notice消息管理系统

添加全局notice管理器,将notice消息与普通消息分离处理。主要功能包括:

- 创建 GlobalNoticeManager 单例类,支持公共和特定聊天流作用域
- 在 message_manager 中集成notice检测和处理逻辑
- 扩展数据库模型和消息类,添加notice相关字段
- 在提示词生成器中添加notice信息块展示
- 配置系统支持notice相关参数设置
- 适配器插件增强notice类型识别和配置

notice消息特点:
- 默认不触发聊天流程,只记录到全局管理器
- 可在提示词中展示最近的系统通知
- 支持按类型设置不同的生存时间
- 支持公共notice(所有聊天可见)和流特定notice

BREAKING CHANGE: 数据库消息表结构变更,需要添加 is_public_notice 和 notice_type 字段
This commit is contained in:
Windpicker-owo
2025-10-19 22:45:19 +08:00
parent 6eb6bab4df
commit 2ec3be7c84
15 changed files with 841 additions and 10 deletions

View File

@@ -1,5 +1,5 @@
[inner]
version = "7.3.1"
version = "7.3.2"
#----以下是给开发人员阅读的如果你只是部署了MoFox-Bot不需要阅读----
#如果你想要修改配置文件请递增version的值
@@ -149,6 +149,14 @@ ban_msgs_regex = [
#"\\d{4}-\\d{2}-\\d{2}", # 匹配日期
]
[notice] # Notice消息配置
enable_notice_trigger_chat = false # 是否允许notice消息触发聊天流程默认关闭notice只会被记录但不会触发回复
notice_in_prompt = true # 是否在提示词中展示最近的notice消息
notice_prompt_limit = 5 # 在提示词中展示的最大notice数量
notice_time_window = 3600 # notice时间窗口只有这个时间范围内的notice会在提示词中展示默认1小时
max_notices_per_chat = 30 # 每个聊天保留的notice数量上限
notice_retention_time = 86400 # notice保留时间默认24小时
[anti_prompt_injection] # LLM反注入系统配置
enabled = false # 是否启用反注入系统
enabled_rules = false # 是否启用规则检测