Repository navigation
Release v3.0.0-beta.2
Pre-release
Pre-release
本次更新是一次重大的功能和架构升级,引入了全新的扩展系统,重构了代理核心、模型服务和世界状态管理,并迁移到了 Turborepo 构建系统。此版本旨在大幅提升框架的可扩展性、可维护性和开发者体验。
✨ 新功能
- 扩展系统:
- 引入了全新的实验性扩展服务框架,使用
@Extension和@Tool装饰器简化扩展和工具的创建。 - 实现了扩展的动态加载、卸载、配置验证和管理功能。
- 增强了工具定义,新增会话可用性检查 (
isSupported) 和更丰富的参数类型。 - 新增了多个核心内置扩展,包括:
creator: 使用 LLM 动态创建工具。interactions: 支持消息表态、精华等交互。memory: 提供核心记忆和归档记忆管理。qmanager: 实现群组和成员管理。search: 提供网页抓取和网络搜索功能。
- 引入了全新的实验性扩展服务框架,使用
- 智能体核心:
- 实现了意愿管理系统,用于动态计算回复概率,增强了代理行为的灵活性。
- 新增了人性化的打字效果,可根据消息长度和语言动态调整发送延迟。
- 添加了交互式配置向导,允许用户通过对话界面逐步完成机器人配置。
- 世界状态:
- 重构了对话历史的数据结构,将其拆分为
pending、folded和summarized三种状态,优化了长对话处理和折叠功能。
- 重构了对话历史的数据结构,将其拆分为
- 模型服务:
- 实现了模型列表的动态加载与更新,并优化了配置验证逻辑。
♻️ 重构与优化
- 核心架构:
- 模型服务: 重构了模型服务,引入了通用的
BaseModel基类和IChatModel、IEmbedModel接口,提升了模型提供商的可扩展性。 - 日志系统: 新增了统一的日志服务,美化了所有日志输出,并重新定义了日志级别以对齐 Koishi。
- 错误处理: 重构了错误处理模块,使用统一的
AppError和错误码规范。
- 模型服务: 重构了模型服务,引入了通用的
- 代理与世界状态:
- 重构了消息发送者的数据结构,从
senderId字符串变更为包含id,name,roles的对象。 - 优化了工具模板的渲染逻辑和消息发送功能。
- 优化了对话历史的消息查询和格式化逻辑。
- 重构了消息发送者的数据结构,从
- 代码质量:
- 统一了
tsconfig.json配置,并优化了模块导入路径(使用@/别名)。 - 全面优化了日志格式和内容,移除了冗余信息,使其更简洁易读。
- 清理了大量过时代码和未使用的配置文件。
- 统一了
🐛 修复
- 工具与扩展: 修复了工具执行时的
this上下文绑定问题,并改进了错误处理,确保异常能被正确捕获和记录。 - 配置: 修复了模型能力配置复选框在前端页面可能崩溃的问题。
- 解析: 改进了 Markdown 中 JSON 代码块的提取逻辑,避免错误解析包含代码块的字符串值。
- MCP: 修复了服务器 URL 的处理逻辑,增加了对
http/https协议的兼容。
🛠️ 构建与工具链
- 构建系统: 项目构建系统已从
yakumo整体迁移至Turborepo,显著提升了构建速度和缓存效率。 - 持续集成: 优化了 GitHub Actions 工作流,使用
bun作为运行时,并添加了构建超时设置和缓存。
⚙️ 其他
- 依赖项: 更新了
core和mcp包的版本号,并同步更新了多个外部依赖。