跳到主要内容

三种变化率分离

一套创作系统里有三类东西,它们变化的节奏完全不同。Channek 把它们钉进三个不同的载体:

类目载体形态变化率例子
能力(Capability)插件代码/实现随生态演进步骤实现、图像生成、TTS 引擎、发布平台对接
流程(Process)卡的 pipeline数据每个创作者不同用哪些步、什么顺序、每步什么配置
风格(Style)卡的 style 各段数据每个频道不同品牌 token、音色、字幕样式、画风锁

为什么要这样切:如果流程写死在软件里,换一种创作方式就要改软件;如果能力实现塞进卡里,每张卡都要背一份代码、升级要挨张卡改。把变化率不同的东西搅进同一层,是这类系统腐坏的最常见方式。

分开之后,三层各自演进:

  • 插件作者升级 TTS 引擎,所有引用它的卡自动受益;
  • 频道作者调整流程步序,只改自己的卡,不碰任何代码;
  • 同一套插件,可以被一百张流程和风格完全不同的卡复用。

步骤 id 是三层之间的接口

卡的 pipeline.steps 里每一步只写一个步骤定义 id(如 acme.review-gate),不写实现。这个 id 由某个插件注册,宿主在运行时按 id 解析。同理,requires.providers 里写的是能力 id + 偏好的 provider,不是某段代码的路径。

这意味着:

  • 卡永远引用能力,不包含能力;
  • 同一个步骤定义可以出现在一条流程的多个位置(用不同的 key 区分);
  • 步骤没装时,界面如实显示占位与安装引导,流程降级但不崩溃
备注

如果你发现自己想把「一段脚本」「一个可执行文件」放进卡目录——停下来,那是插件的活。把它做成插件,再让卡 requires 它。