Skip to content

扩展包与 Plugin Runtime 架构方案

扩展包与 Plugin Runtime 架构图

Draw.io 源文件 | 架构目录

1. 方案摘要

本方案定义扩展包从开发、校验、导入、启用到运行挂载的完整生命周期。扩展包是交付单位,Plugin Runtime 是其中 Plugin 能力的宿主;导入默认禁用,只有通过 manifest、冲突和完整性校验后才允许进入 ready 状态。

2. 设计目标与非目标

设计目标

  • 让 Agent、Skill、CLI 和 Plugin 以统一包形态交付。
  • 隔离导入校验、启停管理和线上运行。
  • 保证扩展冲突、权限和失败状态可解释、可恢复。

非目标

  • 不把扩展包导入视为立即执行代码。
  • 不允许 Plugin Runtime 扫描未完成或未启用的扩展。
  • 不在宿主中复制每个扩展的业务领域逻辑。

3. 架构范围与视图

业务扩展如何被开发、校验、导入、启用并挂载为 Agent、Skill、CLI 和 Plugin?

扩展包是交付单位,Plugin Runtime 是其中 Plugin 能力的宿主;两者不是平行替代机制。

图中绿色实线表示当前能力,紫色虚线表示规划或待完善能力。图片用于建立空间关系,本文正文定义方案语义、边界和落地规则。

4. 组件与责任边界

组件责任
Kit校验扩展结构、收集文件并打包 ZIP。
扩展来源管理员本地导入,或从云端扩展包平台查询和下载。
Import Service执行 dry-run、manifest 校验、冲突检查、落盘和 CLI 环境初始化。
Extension State记录 disabled / ready / failed 等安装与运行状态。
Agent / Skill启用时写入 Agent 配置、员工记录与 workspace 链接。
CLI安装到扩展目录,并将命令链接到 engine/bin。
Plugin Runtime只扫描 ready 扩展,暴露路由、Widget 和宿主 SDK。

组件之间只通过明确的输入、输出和生命周期契约协作。上层可以编排下层能力,但不能绕过下层的权限、租户和状态边界直接读写内部对象。

5. 核心设计决策

  • 导入采用 dry-run、manifest 校验、冲突检查、落盘和状态提交的阶段式流程。
  • disabled 是导入后的默认状态,ready 才能被运行时发现。
  • Plugin Runtime 通过公开 SDK 提供 Route、Widget 和宿主能力。

这些决策共同保证:入口可以替换、执行可以迁移、状态可以恢复,而不会改变用户可见的任务和会话语义。

6. 关键流程与时序

主流程

  1. Kit 开发和打包
  2. 本地上传或云端下载
  3. dry-run 与冲突检查
  4. 导入后默认 disabled
  5. 管理员启用
  6. 同步 Agent / Skill / CLI / Plugin
  7. 运行入口生效

流程解释

流程中的每一步都应产生可追踪的上下文:租户、Agent、Chat、Task、运行副本和结果引用。过程事件用于向用户反馈进度,终态写入和结果归档必须在事实源更新后再对外确认。

7. 数据、一致性与状态管理

  • 扩展状态和 manifest 是启用判断的事实源。
  • 文件落盘完成后再提交 ready,避免运行时读取半包。
  • Agent key、Plugin key 和 CLI command 冲突时整项能力保持不可用。

当前专题的关键约束

  • 扩展导入后默认禁用。
  • Plugin Runtime 只扫描 ready 扩展。
  • Agent、Plugin key 与 CLI command 冲突会阻断对应流程。

8. 异常、恢复与安全边界

  • 校验或冲突失败保留 failed 状态和诊断信息,不覆盖已 ready 版本。
  • 启用过程任一挂载失败时回滚本轮状态,避免部分启用。
  • 运行时发现扩展损坏时隔离该扩展,不影响宿主核心任务。

异常处理遵循“先阻止错误扩散,再保留可恢复状态,最后由明确的补偿动作完成收口”。任何重试都必须具备幂等条件,任何恢复都必须重新校验租户、权限、版本和 ownership。

9. 部署与扩展边界

  • 扩展导入可以由管理入口执行,运行挂载发生在 Tenant Runtime 内。
  • 多副本环境需要共享扩展源或在副本间完成可验证同步。

部署形态可以变化,但不能把本地内存、临时文件或单副本事件队列当作跨副本事实源。需要横向扩展的能力应先明确共享状态、路由键、健康状态和故障补偿方式。

10. 当前能力与演进计划

当前已落地

  • Agent、Skill、CLI、Plugin 的扩展包 MVP
  • 云端扩展查询与安装入口

规划或待完善

  • 扩展包 Channel contribution
  • 多个 Plugin / CLI 的完整支持与 watcher 热加载

演进方向

  • 增加版本回滚、签名校验、依赖声明和扩展升级策略。
  • 补齐 Channel contribution、Plugin/CLI watcher 和多扩展并发管理。

11. 方案验收要点

  • 未启用扩展不会影响运行时路由和 Agent 列表。
  • 同一扩展版本在不同副本得到一致的 ready 结果。
  • 扩展失败可定位到阶段、冲突对象和恢复动作。

验收时应同时检查正常链路、重复操作、空态或拒绝态、依赖不可用和副本切换,不能只验证图中最短路径。