企业扩展协议:从声明、授权到执行与留证
学完你会:理解一套企业插件/Runtime 协议应包含的身份、能力、权限、状态、证据、兼容和失败语义。
协议把消息送达、执行终态和业务验收拆成三种不同证据。
企业协议不是 JSON schema 的集合,而是让多个团队、Runtime 和客户在版本变化与故障中仍能共同判断事实的制度。
执行前:声明和授权必须分开
扩展声明自己能做什么,不等于平台已经同意它做什么。
Definition 声明 capability、输入输出 schema、side-effect class、支持的 repo mode、UI contribution 和所需 permission。Consumer 说明哪个 Pack/Task 在什么目的和 scope 下请求。平台用 Policy 与人类决策产生 Grant。
Capability 和 Permission 不能共用一个字符串数组。图像生成能力可能需要网络与 Provider secret;Artifact Renderer 只需要读取特定 Artifact。把两者压成“image”会让最小授权无法实现。
Admission 还要检查 artifact/closure、配置、模型能力、compatibility matrix、secret ownership、sandbox completeness 和交互批准通道。任何 required fact unknown 时,策略应 fail closed,而不是猜测默认值。
执行中:身份、状态和事件必须能对齐
每一次 Run 都要知道实际使用了谁、哪一版、在什么权限下运行。
TaskSpec 可以引用 logical capability key 与期望版本,服务端解析为 opaque binding id,并在 Run 创建时冻结 ExecutionBindingSnapshot。这样业务合同不依赖本地 Provider id,历史 Run 也不会随当前配置改变。
Event ledger 保存 source sequence/cursor 与 Lumi append sequence,prev digest 形成链;payload 有分类和 redaction version;unknown schema 进入 opaque diagnostic。状态机区分 starting、running、idle、degraded、outcome_unknown、terminated。
对于外部动作,使用 canonical idempotency key 和 terminal lifecycle。响应丢失时可以用相同 key 查询或重放,不得创建第二个业务动作。
执行后:证据、验收和知识提升
Runtime 结束只是证据链的一环,业务结论属于另一个权威。
ArtifactRevision 保存成果的不可变版本,Evidence 记录生成来源、引用、工具与运行身份。Acceptance 可以 changes_requested、accepted 或 rejected,并绑定精确 revision 与 actor authority。新的重做产生新 Run 与新 revision,不覆盖旧历史。
通过验收的成果可以被人类提升为 Knowledge 或 Skill,但提升是显式动作,不是因为模型回答看起来不错就自动发生。知识需要来源、版本、访问权限和失效条件。
这套分离让平台可以更换 Harness、模型或插件,同时保持业务历史可解释;也让审计者回答“谁在什么信息和权限下接受了哪个版本”。
升级、兼容与退出
真正的生态协议必须让旧客户能够安全留在旧版,也能知道何时必须迁移。
发布身份使用 immutable SHA/release、签名 manifest、capability negotiation 和 compatibility matrix。普通 deprecation 至少跨多个已发布 minor 给出窗口;breaking removal 需要显式 major Gate。
升级前对比 capability、permission、schema 和 data migration;在 candidate channel 演练 backup/restore 与 rollback;升级后记录实际 ReleaseIdentity 和验证 receipt。previous-good 必须包含完整 closure 与配置,不能只是旧版本号。
扩展退出时,disposer 清理宿主资源,DispositionReceipt 记录结果;业务数据保留、迁移或归档遵循独立 retention 合同。被卸载的插件不能让历史 Artifact 变得无法解释。
你真正要带走的,不只是技术解释
切换身份,看看这项技术会怎样改变战略、产品、工程和长期运营。
协议让合作伙伴和 FDE 团队并行创新,而公司仍保有客户承诺与升级质量。
四张可以带走的卡片
声明不等于授权
Run 必须冻结实际执行身份
Evidence 与 Acceptance 独立
兼容与退出是协议一等公民
为什么 TaskSpec 应引用 logical capability,而不是某台机器的 Provider id?
把理解变成自己的语言
试着写下:这项机制能解决什么、不能解决什么,以及它会怎样影响你的产品判断。内容只保存在当前浏览器。