PolyAI 中文文档 下载 App

发布与合并:Publish 是合并不是替换

合并(Merge)vs 替换(Replace)

PolyAI 的发布系统最核心的设计决策是:Publish = 合并,不是替换。

方式行为风险
替换(Replace)把 Branch 的完整配置覆盖 Live 的配置同事在你 Publish 之前已经发布的改动会被你覆盖掉 → 静默丢失
合并(Merge)把 Branch 相对于 Live 的差异增量叠加到 Live 上不会静默丢失,真冲突才会弹出来让你选

举个例子:

如果是替换模式,同事 2 会把同事 1 刚改的 Topic Y1 给覆盖回 Y——而且两个人都不知道,直到客户反馈"怎么改了又变回去了"。PolyAI 用合并彻底避免了这个问题。

冲突处理

如果两个人改了同一个配置项(比如都改了欢迎语),合并时 PolyAI 会检测到冲突:

  1. Live 当前的欢迎语是 A
  2. 同事 1 改成了 B 并 Publish → Live 变成 B
  3. 同事 2 同时也在改欢迎语,改成了 C,要 Publish

此时 PolyAI 不会静默选择 C 或 B——会弹出一个冲突对话框:

欢迎语有两个版本待合并

  • Live 当前:"您好,这里是 XX 语音助手"(来自同事 1)
  • 你 Branch 上:"您好,欢迎致电 XX,我是今天的语音助手"(来自同事 2)

请选择保留哪个版本,或者合并成新版本:____

你可以选其中一个、或者手动编辑成两者的组合。不会静默丢失任何改动。

发布的版本历史

每次 Publish 都会在 Live 的版本历史里留一个快照。在 Deployments 面板的 Live history 区域可以看到:

这意味着:你可以精确回到任何一次发布的状态。

和 Roll back 的关系

因为发布是合并而不是替换,所以 Roll back 也很干净——回到某个历史版本就把 Live 恢复到那个版本的完整快照,后续再 Publish 的改动不会被意外覆盖。Roll back 后的状态本身会成为一个新的历史版本。

发布的三种典型场景

单人小改动

改话题 → Sandbox 测 → 直接 Publish → Live

最简单,跳过 Staging,改完测完直接上生产。适合 FAQ 微调、语音参数优化这类低风险改动。

团队大改动

多人各自 Branch 改 → Sandbox 各自测 → 依次 Publish(合并到 Live)→ Staging 完整 UAT 验收 → 生产 Publish

典型的 Branches 模式协作方式。每个人改自己的部分,互不阻塞,最后 Staging 里一起验收。

Sub-branches 大版本

主 Branch 下多个 Sub-branch 并行改 → 各自测 → 依次合并回主 Branch → 主 Branch Publish 到 Live

适合一个大版本多个子任务一起上线。