Skip to content

Release v3.0.0-beta.2

Pre-release
Pre-release

Choose a tag to compare

@MiaowFISH MiaowFISH released this 10 Jul 19:12
· 407 commits to dev since this 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 包的版本号,并同步更新了多个外部依赖。