refactor: 全局世界状态驱动与任务调度重构
[Unreleased]
Added
- 核心工具插件,支持消息发送、图片描述和打字模拟功能
- 动态模型选择和健康管理系统 (ModelSwitcher)
- 遥测插件,集成 Sentry 错误追踪
- 向量存储插件,支持 PGlite 驱动
- 文本转语音插件,支持多语言配置和 Fish Audio
- 支持视觉模型的动态模型或组选择
- 动作级别的心跳继续控制机制
- 新的上下文系统
Changed
- 重大变更: 重构插件系统,迁移到统一插件架构
- 重大变更: 替换扩展系统为插件系统,移除 IExtension 接口
- 重大变更: 重构工具执行上下文
- 重新组织命令处理和配置管理
- 迁移向量存储到 @yesimbot/vector-driver-pglite
- 更新构建脚本使用 pkgroll
- 将插件包移动到 plugins 文件夹
- 重构代码执行器依赖,简化 Python 环境
- 更新包依赖到最新版本,增强类型安全
- 优化消息处理和历史管理
- 简化事件处理和上下文管理
- 重命名 ToolService 为 PluginService
- 集成遥测配置到主配置
- 增强模型权重处理和错误分类
- 使用 Koishi 的 Logger 替换本地 Logger
- 优化熔断器逻辑和模型状态管理
- 更新 Athena ReAct 代理的对话风格和内在逻辑
- 重构世界状态管理与响应处理机制
Removed
- 重大变更: 移除旧的扩展系统和相关类型
- 移除 commitlint 和 commitizen 依赖
- 移除 ArchivalMemoryManager
- 移除 Logger 服务及相关引用
- 移除 AppError 使用和错误处理
- 移除 vision-tools 包及相关文件
- 移除 JavaScript 执行器和 isolated-vm 依赖
- 清理未使用的扩展命令和依赖
Fixed
- 增强视觉模型处理和代码清理
- 修正聊天模型 fetch 函数签名和信号处理
- 在多个服务的 catch 块中添加错误类型注解
- 修复配置中的意愿配置默认值和描述
- 修复上下文处理中的异常捕获
- 响应频道支持直接填写用户 ID
- 优化 TTS 适配器的停止逻辑和临时目录管理
- 过滤空行优化日志读取,增加日志长度限制
Summary by CodeRabbit
-
新功能
- 新增 .conf.get / .conf.set 命令,可运行时查看与修改配置
- 集成遥测与错误追踪(Sentry)
- 引入全新插件/工具框架:工具、动作、钩子与能力激活器
- 多模型切换策略与鲁棒性(故障隔离、重试、权重/轮询/随机)
- 丰富的世界状态、记忆检索与事件记录能力;新增群组交互与记忆检索工具
-
缺陷修复
- 修复权限控制相关问题(authority)
-
重构
- 核心服务、模型与资产管理重组,简化上下文与调用流程
-
杂项
- 配置与风格规则更新,版本号升级到 2.0.2
看起来是一次非常重大的改动,感谢您的辛勤付出🙏
我最近几天在群里部署了一下感觉非常的强大。在使用正式版本时,我发现了一些 ReAct + JSON 架构带来的附属小问题。不过,当我准备在 repo 中提交 issue 时,发现您已经用新架构解决了这些问题(但愿不会出太多新问题)
期待新版本!
[!NOTE]
Reviews paused
Use the following commands to manage reviews:
@coderabbitai resumeto resume automatic reviews.@coderabbitai reviewto trigger a single review.
[!NOTE]
Other AI code review bot(s) detected
CodeRabbit has detected other AI code review bot(s) in this pull request and will avoid duplicating their findings in the review comments. This may lead to a less comprehensive review.
Walkthrough
大规模重构:移除旧的 Extension/Tool/Logger/WorldState 实现并引入基于 Plugin 的插件框架与 PluginService、CommandService、TelemetryService、Context/World 子系统及模型切换(含断路器与策略),同时调整项目工具链并删除若干包与构建脚本(如 code2image)。
Changes
| Cohort / File(s) | 变更摘要 |
|---|---|
项目配置与工具链 \.editorconfig, eslint.config.ts, bump.config.ts, commitlint.config.mjs, package.json, \.changeset/wild-books-do.md, \.gitignore, \.husky/commit-msg |
更新/新增项目风格、ESLint、bumpp、commitlint 配置;重构 package.json 的 workspaces、scripts 与 devDependencies;添加 changeset;更新 .gitignore;移除 Husky commit-msg 钩子。 |
删除:独立包与构建脚本 packages/code2image/*, packages/code-executor/esbuild.config.mjs, packages/code-executor/tsconfig.json, packages/core/scripts/bundle.mjs, packages/core/scripts/generate-snapshot.ts |
删除 code2image 包及若干 per-package tsconfig、esbuild 构建脚本与相关打包/快照脚本。 |
移除:旧 Extension/Tool/Logger/WorldState 子系统 packages/core/src/services/extension/*, packages/core/src/services/extension/types.ts, packages/core/src/services/extension/helpers.ts, packages/core/src/services/extension/service.ts, packages/core/src/services/logger/*, packages/core/src/services/worldstate/*, 多处旧 listener/interaction/context-builder 等 |
完全移除旧的 Extension 装饰器体系、ToolService、扩展相关 types/helpers、LoggerService 及旧 worldstate/interaction 管理实现。 |
新增:插件框架与 PluginService packages/core/src/services/plugin/*, packages/core/src/services/plugin/plugin.ts, packages/core/src/services/plugin/service.ts, packages/core/src/services/plugin/decorators.ts, packages/core/src/services/plugin/result-builder.ts, packages/core/src/services/plugin/types/*, packages/core/src/services/plugin/builtin/* |
新增抽象 Plugin 基类、Metadata/Tool/Action/Hook 装饰器、PluginService(工具/动作注册、评估与调用)、结果构建器、激活器与内置插件实现(core-util、memory、interactions、qmanager 等)。 |
命令与上下文服务 packages/core/src/services/command/index.ts, packages/core/src/services/context/*, packages/core/src/services/context/index.ts |
新增 CommandService(注册 conf.get/conf.set 命令)、Context 能力类型、ToolContext 提供器、StimulusContextAdapter 与 ContextCollector。 |
新增:Telemetry(遥测)服务 packages/core/src/services/telemetry/* |
新增 TelemetryConfig 与 TelemetryService(Sentry 初始化、captureException 等)。 |
世界状态子系统(重建) packages/core/src/services/world/*, packages/core/src/services/world/adapters/*, packages/core/src/services/world/builder.ts, packages/core/src/services/world/recorder.ts, packages/core/src/services/world/listener.ts, packages/core/src/services/world/service.ts, packages/core/src/services/world/types.ts, packages/core/src/services/world/index.ts |
新增 SceneAdapter/ChatSceneAdapter、WorldStateBuilder、EventRecorder、EventListener、WorldStateService 与完整类型定义,重建事件记录、场景适配与世界状态构建与命令。 |
Agent / 心跳 / 调度重构 packages/core/src/agent/*, packages/core/src/agent/agent-core.ts, packages/core/src/agent/heartbeat-processor.ts, 移除 scheduler.ts、context-builder.ts |
AgentCore 重构(新增 schedule API、每通道去抖与任务管理);HeartbeatProcessor 简化消息构建与解析;移除旧 PromptContextBuilder 与 StimulusScheduler。 |
模型服务重构 packages/core/src/services/model/*, packages/core/src/services/model/model-switcher.ts, packages/core/src/services/model/types.ts, packages/core/src/services/model/config.ts, packages/core/src/services/model/factories.ts, packages/core/src/services/model/service.ts, packages/core/src/services/model/provider-instance.ts |
大幅重写模型/提供者配置与工厂,新增 ModelSwitcher/ChatModelSwitcher(断路器、EMA 延迟、策略:RoundRobin/Failover/Random/WeightedRandom)、ModelError 分类与新的模型访问 API。 |
资产/存储与小调整 packages/core/src/services/assets/*, packages/core/src/services/assets/drivers/*, packages/core/src/services/assets/types.ts |
StorageDriver 接口改为函数属性签名、LocalStorageDriver 新增 getPath、错误处理与 ctx.logger 使用,AssetService 注入列表调整等细节修改。 |
配置与迁移 packages/core/src/config/*, packages/core/src/config/migrations.ts, packages/core/src/config/versions/v201.ts |
更新 Config schema(加入 telemetry、logLevel、version)、新增 v201 类型声明文件、并添加多步迁移函数及 migrateConfig。 |
提示词/模板/文档 packages/core/resources/prompts/*, packages/core/resources/templates/*, packages/core/README.md, packages/core/package.json |
重写 Athena/MemGPT 提示词与模板(历史项与世界状态模板重构),更新 core README 与 package.json 的导出/metadata。 |
| 零散删除/重命名与类型微调 多个 packages/core/src/* 文件(如 interaction-manager、context-builder、worldstate/* 等) |
删除旧实现并新增/重命名大量类型与导出以配合新架构(services 索引、plugin/types、world/types 等)。 |
Sequence Diagram(s)
%%{init: {"theme":"default"}}%%
sequenceDiagram
participant User as 用户
participant Listener as 事件监听 (EventListener)
participant Recorder as 事件记录 (EventRecorder)
participant Agent as 代理核心 (AgentCore)
participant World as 世界服务 (WorldStateService)
participant Context as 能力上下文 (ToolContextProvider)
participant Plugin as 插件注册表 (PluginService)
participant Model as 模型服务 (ModelService)
User->>Listener: 发送消息事件
Listener->>Recorder: 持久化消息/事件
Listener->>Agent: 触发刺激 (stimulus)
Agent->>World: 请求构建 WorldState
World-->>Agent: 返回 WorldState
Agent->>Context: 构建/收集 ToolContext
Agent->>Plugin: 查询可用工具/动作
Plugin-->>Agent: 返回可用工具与优先/提示
Agent->>Model: 请求生成(经 ChatModelSwitcher 选模/断路器)
Model-->>Agent: 返回生成结果
Plugin-->>Agent: 执行动作返回 ToolResult
Agent-->>User: 发送回复
%%{init: {"theme":"default"}}%%
sequenceDiagram
participant PluginService as PluginService
participant Plugin as Plugin
participant Tool as Tool/Action
participant Agent as AgentCore
PluginService->>Plugin: 注册插件实例(tools/actions/hooks)
PluginService->>Tool: 索引并保存工具与激活器
Agent->>PluginService: 请求可用工具 (基于 ToolContext)
PluginService-->>Agent: 返回可用工具列表(含优先级/提示)
Agent->>PluginService: invoke(toolName, params, context)
PluginService->>Tool: 参数校验 -> 执行 -> 返回 ToolResult
PluginService-->>Agent: 返回执行结果 (Success/Failed/Partial)
Estimated code review effort
🎯 5 (Critical) | ⏱️ ~120 分钟
需要重点复查的文件/区域:
- packages/core/src/services/model/model-switcher.ts(断路器、权重策略、记录/恢复逻辑)
- packages/core/src/services/plugin/service.ts(工具/动作注册、可用性评估、调用/重试/参数校验)
- packages/core/src/services/world/*(WorldStateBuilder、EventListener、EventRecorder、WorldStateService 与 DB 交互与命令)
- packages/core/src/agent/agent-core.ts 与 packages/core/src/agent/heartbeat-processor.ts(调度、去抖、任务管理、错误路径)
- packages/core/src/config/migrations.ts 与 config schema(迁移函数正确性、默认值与向后兼容)
- package.json 与工具链变更(scripts、workspaces、devDependencies 对 CI/本地流程的影响)
- 被删除模块(extension/tool/logger/worldstate)是否已被新实现完整替代与迁移验证
诗句
🐰 新架构跳跃来,插件花开一片梅,
世界态势织成帛,能力上下文相随,
模型断路护航程,命令配置暖如春,
兔子欢跃代码里,重构生光又一回。 🥕✨
Pre-merge checks and finishing touches
✅ Passed checks (3 passed)
| Check name | Status | Explanation |
|---|---|---|
| Description Check | ✅ Passed | Check skipped - CodeRabbit’s high-level summary is enabled. |
| Title check | ✅ Passed | Pull request title clearly conveys the main objective: a major refactor of global world state driving and task scheduling. The title accurately reflects the core changes involving world state architecture and scheduling mechanisms. |
| Docstring Coverage | ✅ Passed | No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. |
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
Comment @coderabbitai help to get the list of available commands and usage tips.
@coderabbitai pause
✅ Actions performed
Reviews paused.