diff --git a/changelogs/changelog.md b/changelogs/changelog.md index 1eb629800..e092b3d49 100644 --- a/changelogs/changelog.md +++ b/changelogs/changelog.md @@ -1,35 +1,127 @@ # Changelog -## [0.7.2] -2025-6-4 -重点升级 +## [0.8.0] - 2025-1-6 +重大升级!插件系统全面重构,表达方式系统大幅优化 -添加了新的插件API -大大优化action的选择能力 +MaiBot 0.8.0 重磅升级!插件系统全面重构,支持更强大的扩展能力;表达方式系统大幅优化,支持智能学习和衰减机制;聊天频率控制更加精细,支持时段化管理;HFC系统性能大幅提升,处理器后置化减少消耗;关系系统升级支持即时构建和人物侧写;日志系统重构使用structlog;大量稳定性修复和性能优化。 +### 🌟 核心功能增强 -## [0.7.1] -2025-6-3 -重点优化 +#### 插件系统全面重构 +- **插件API重构**: 全面重构插件系统,统一加载机制,区分内部插件和外部插件 +- **依赖管理**: 新增插件依赖管理系统,支持自动注册和依赖检查 +- **命令支持**: 插件现已支持命令(command)功能,提供更丰富的交互方式 +- **示例插件升级**: 更新禁言插件、豆包绘图插件、TTS插件等示例插件 +- **配置文件管理**: 插件支持自动生成和管理配置文件,支持版本自动更新 +- **文档完善**: 补全插件API文档,提供详细的开发指南 +- **Action选择优化**: 大大优化action的选择能力,提升动作执行的智能性 -加入了人物侧写!麦麦认得群友 -更新planner架构,大大加快速度和表现效果! -为normal_chat加入动作执行! -新增关系处理器 -修复关键词功能,并且在focus中可用! +#### 表达方式系统大幅优化 +- **智能学习机制**: 优化表达方式学习算法,支持衰减机制,太久没学的会被自动抛弃 +- **表达方式选择**: 新增表达方式选择处理器,大幅提升表达的多样性 +- **跨群互通配置**: 表达方式现在可以选择在不同群互通或独立 +- **可视化工具**: 提供表达方式可视化脚本和检查脚本 +- **人格表达优化**: 修复人格表达生成太固定的问题,增加表达方式的多样性 +#### 聊天频率控制精细化 +- **时段化控制**: 添加时段talk_frequency控制,支持不同时间段的精细频率管理 +- **严格频率控制**: 实现更加严格和可靠的频率控制机制 +- **Normal模式优化**: 大幅优化normal模式的频率控制逻辑,提升回复的智能性 +### 💻 系统架构重构 -修复了: -群名称导致log保存失败 -focus吞掉首条消息 -表达方式的多样性 -可关闭思考处理器(建议默认关闭) -focus没有时间信息的问题 -修复了表情包action -优化聊天记录构建方式 -优化记忆同步速度和记忆构建缺少chat_id的问题 -优化工作记忆处理器 -优化人格表达 -删除无效字段防止数据库报错 +#### HFC系统性能大幅提升 +- **Planner架构更新**: 更新planner架构,大大加快速度和表现效果! +- **处理器重构**: + - 移除旧回复意愿控制系统 + - 精简处理器上下文,减少不必要的处理 + - 后置工具处理器,大大减少token消耗 + - 合并自我处理器和关系处理器,提高效率 + - 可关闭思考处理器(建议默认关闭) +- **统计系统**: 提供focus统计功能,可查看详细的no_reply统计信息 +- **异步优化**: 将统计和person_info改为异步,提升整体性能 +- **Normal动作执行**: 为normal_chat加入动作执行能力 + +#### 关系系统全面升级 +- **人物侧写功能**: 加入了人物侧写!麦麦现在能认得群友,新增用户侧写功能,将印象拆分为多方面特点 +- **即时构建**: 重构关系构建逻辑,改为即时构建,提高实时性 +- **关系处理器**: 新增专门的关系处理器,支持更精准的关系管理 +- **熟悉度系统**: 添加熟悉度和关系值功能,提供更丰富的关系信息 + +#### 记忆系统改进 +- **海马体优化**: 大大优化海马体同步速度,提升记忆处理效率 +- **记忆同步优化**: 优化记忆同步算法,修复记忆构建缺少chat_id的问题 +- **工作记忆升级**: 精简升级工作记忆模块,提供更好的短期记忆管理 +- **聊天记录构建**: 优化聊天记录构建方式,提升记忆提取效率 + +### 🛠️ 开发体验提升 + +#### 日志系统重构 +- **structlog替换**: 使用structlog替代loguru,提供更好的结构化日志 +- **日志查看器**: 新增更强大的日志查看器,支持更好的日志浏览 +- **可配置日志**: 提供可配置的日志级别和格式,支持不同环境的需求 +- **性能优化**: 修复日志占用和文件层级问题,解决too many open files问题 + +#### API系统扩展 +- **Chat Stream API**: 提供获取Chat_stream的API接口 +- **统计API**: 支持统计数据输出API +- **插件API扩展**: 新增多个插件相关的API接口 +- **API重构**: 重构插件API架构,提供更完善的接口体系 + +#### Docker部署优化 +- **配置更新**: 更新docker-compose配置,优化端口映射和服务配置 +- **部署文档**: 优化Docker构建流程和部署文档 + +### 🐛 重要问题修复 + +#### 稳定性修复 +- **模式切换**: 修复无法退出专注模式的问题,优化auto模式切换逻辑 +- **循环异常**: 修复循环异常思索问题,提高系统稳定性 +- **插件重载**: 解决插件重复加载问题,增加重复加载警告机制 +- **SQL问题**: 修复数据库相关的SQL问题和索引创建失败问题 + +#### 功能修复 +- **display_name问题**: 修复base_command和base_action中未使用display_name的错误 +- **消息截断**: 修复被指令截断的消息无法保存到prompt的问题 +- **统计数据**: 修复统计相关的多个问题 +- **图片处理**: 优化图片展示形式,修复图片发送相关问题 +- **群名称**: 修复群名称导致log保存失败的问题 +- **Focus首条消息**: 修复focus吞掉首条消息的问题 +- **关键词功能**: 修复关键词功能,并且在focus中可用 +- **表情包Action**: 修复了表情包action相关问题 +- **Focus时间信息**: 修复focus没有时间信息的问题 + +### 🔧 配置与优化 + +#### 配置系统增强 +- **新配置项**: 添加大量新的配置项,支持更细粒度的控制 +- **版本管理**: 支持插件配置文件版本自动更新 +- **模板更新**: 更新bot_config_template.toml配置文件模板 +- **关闭选项**: 可关闭记忆和关系系统、消息后处理等功能 + +#### 性能优化 +- **Token优化**: 移除部分不必要的token限制,优化token消耗 +- **异步改进**: 人格表达和remote请求改为异步,不阻塞主线程 +- **内存优化**: 优化工作记忆处理器性能和内存使用 + +### 📚 文档与工具 + +#### 文档完善 +- **插件开发指南**: 提供详细的插件系统开发文档 +- **API文档**: 补全插件API文档和使用说明 +- **部署指南**: 优化部署相关文档的完整性 + +#### 辅助工具 +- **表达方式工具**: 提供表达方式检查脚本和可视化工具 +- **插件管理工具**: 新增插件和清单管理工具 +- **关系构建脚本**: 提供关系构建和回溯脚本 + +### 🎯 其他改进 +- **emoji系统**: 移除emoji默认发送模式,优化表情包审查功能 +- **控制台发送**: 添加不完善的控制台发送功能 +- **行为准则**: 添加贡献者契约行为准则 +- **代码质量**: 使用ruff进行代码格式化和质量检查 +- **图像清理**: 自动清理images文件夹,优化存储空间使用 diff --git a/src/chat/express/expression_selector.py b/src/chat/express/expression_selector.py index ff0fec18b..aecc46a91 100644 --- a/src/chat/express/expression_selector.py +++ b/src/chat/express/expression_selector.py @@ -148,7 +148,7 @@ class ExpressionSelector: expr["count"] = new_count expr["last_active_time"] = time.time() - logger.info(f"表达方式激活: 原count={current_count:.2f}, 增量={increment}, 新count={new_count:.2f}") + # logger.info(f"表达方式激活: 原count={current_count:.2f}, 增量={increment}, 新count={new_count:.2f}") break # 保存更新后的文件 diff --git a/src/chat/normal_chat/normal_prompt.py b/src/chat/normal_chat/normal_prompt.py index 024d39427..2db25aa13 100644 --- a/src/chat/normal_chat/normal_prompt.py +++ b/src/chat/normal_chat/normal_prompt.py @@ -135,7 +135,7 @@ class PromptBuilder: if global_config.relationship.enable_relationship: for person in who_chat_in_group: relationship_manager = get_relationship_manager() - relation_prompt += await relationship_manager.build_relationship_info(person) + relation_prompt += f"{await relationship_manager.build_relationship_info(person)}\n" mood_prompt = mood_manager.get_mood_prompt() @@ -170,7 +170,7 @@ class PromptBuilder: message_list_before_now_half = get_raw_msg_before_timestamp_with_chat( chat_id=chat_stream.stream_id, timestamp=time.time(), - limit=global_config.focus_chat.observation_context_size * 0.5, + limit=int(global_config.focus_chat.observation_context_size * 0.5), ) chat_talking_prompt_half = build_readable_messages( message_list_before_now_half,