跳转到内容

Open-Core 的 seam 设计

同一代码仓中,MIT 核心与企业实现(ee/)可读共存,但核心不得静态依赖企业包。无有效许可时企业代码不加载,客户可自行审计运行路径是否进入商业模块,不必只凭许可协议判断。

flowchart TD
Req[请求商业能力] --> Lic{许可含特性?}
Lic -->|否| F403[403 且不 load ee]
Lic -->|是| Dyn[动态 import 企业实现]
Dyn --> Run[执行]
  • 禁止核心静态 import 企业树;唯一加载点经动态 import() 与字符串路径
  • 钥匙:AGENTFORGE_EE_LICENSE_KEY(RS256 JWT,含 features[])
  • 特性例:multitenant、hitl、audit
  1. 端点壳:租户/账号写、审计 verify/rehash 等先 require 特性再加载企业实现
  2. 谓词:例如他人 HITL decide 需 hitl;本人确认留在开源核心

企业运行时可依赖核心 API;核心不反向静态依赖企业树。基线与可追溯讨论见基线可追溯。


相关阅读: