文档阅读区

09 · Versioning & Release (Core + Apps + Schemas + Prompts) (v0.5)

v0.4 已定义 Core/App 的 SemVer 与 requiredCoreVersion,并增加 Event Envelope、Schema、RulePack 的版本化。
v0.5 在此基础上,增加 Prompt Template 的版本化。


1. Core 版本(SemVer)

v0.4 已定义,v0.5 保持不变。

  • MAJOR:破坏性变更(包括 EventEnvelope 字段语义变更、API 破坏)
  • MINOR:新增能力(新增字段保持兼容;新增 action/rule 能力)
  • PATCH:修 bug

v0.5 版本:0.5.0


2. Event Envelope 版本(强制,v0.4 已有)

v0.4 已定义,v0.5 保持不变。

  • EventEnvelopeV1 作为协议版本
  • 若将来需要破坏性变更:引入 EventEnvelopeV2
  • Ingest API 必须声明支持的 envelope 版本(Header 或字段)

3. Event Schema 版本(强制,v0.4 已有)

v0.4 已定义,v0.5 保持不变。

  • schemaRef 使用 SemVer(例如 @1.0.0)
  • 兼容规则:
    • PATCH/MINOR:只能"向后兼容"(新增可选字段、放宽约束)
    • MAJOR:破坏性变更(字段改名/类型变化/必填变化)

4. RulePack 版本(建议,v0.4 已有)

v0.4 已定义,v0.5 保持不变。

  • RulePack 自身也用 SemVer
  • RulePack 内部引用 schemaRef 的具体版本(避免运行时歧义)
  • App 升级时:
    • 允许覆盖同 id 的 RulePack(需要 audit 记录:rulepack_upgraded)

5. Prompt Template 版本(v0.5 新增)

5.1 Prompt ID 格式

  • 格式:<appId>.<name>@<version>
  • 示例:project-mngt.task_decomposition@1.0.0
  • 版本建议:SemVer(例如 1.0.0)

5.2 版本兼容规则

  • PATCH/MINOR:只能"向后兼容"
    • 新增可选变量
    • 放宽 output_schema 约束(例如允许更多类型)
    • 更新模板内容(但不改变输出结构)
  • MAJOR:破坏性变更
    • 删除变量
    • 改变 output_schema 结构
    • 改变变量语义

5.3 PromptPack 版本

  • PromptPack 自身也用 SemVer
  • PromptPack 内部引用 Prompt 模板的具体版本(避免运行时歧义)
  • App 升级时:
    • 允许覆盖同 id 的 PromptPack(需要 audit 记录:promptpack_upgraded)

6. App 版本与兼容(v0.4 已有,v0.5 更新)

v0.4 已定义,v0.5 更新 requiredCoreVersion。

  • App 必须声明 requiredCoreVersion
  • v0.5 App 应设置为 ">=0.5.0,<0.6.0"
  • App 安装器在 install/upgrade 时校验:
    • Core 版本是否满足
    • schema/rulepack/promptpack/sourceTemplates 是否符合 Core 的 contract

7. 契约测试(CI 必做,v0.4 已有,v0.5 扩展)

7.1 Core CI(v0.4 已有,v0.5 扩展)

  • 安装一组示范 App:
    • project-mngt(传统实体事件 + AI 功能)
    • os-assistant(外部事件 + rulepack + AI 功能)
  • 跑 e2e:
    • ingest → rule → alert → AI action → audit
    • 测试两个最小闭环(Alert → AI Summary、Meeting → AI Minutes → Draft)

7.2 App CI(v0.4 已有,v0.5 扩展)

  • 校验 app.yaml
  • 校验 schemas 是合法 JSON Schema 且 $id/schemaRef 符合命名空间
  • 校验 RulePack 引用的 eventType/schemaRef 存在
  • v0.5 新增:校验 PromptPack 格式正确
  • v0.5 新增:校验 Prompt 模板的 output_schema 是合法 JSON Schema

8. 版本升级策略(v0.5 新增)

8.1 Prompt 模板升级

场景 1:App 升级 PromptPack

  • 如果版本号相同,跳过(不覆盖)
  • 如果版本号更高,更新
  • 如果版本号更低,跳过(不降级)

场景 2:手动更新 Prompt 模板

  • 通过 API 更新 Prompt 模板
  • 必须提供新版本号
  • 旧版本标记为 deprecated,但保留(用于审计追溯)

8.2 AI Actions 版本兼容

规则中的 Prompt 引用

  • 规则可以使用 prompt_template: "project-mngt.task_decomposition@1.0.0"(固定版本)
  • 或使用 prompt_template: "project-mngt.task_decomposition@latest"(使用最新版本,不推荐)

推荐做法

  • 规则中固定 Prompt 版本,确保行为可预测
  • Prompt 升级时,需要更新 RulePack 版本

文档版本: v1.0
最后更新: 2025-12-17