- VERSION file as authoritative version source - export.mjs reads VERSION with package.json fallback - bw-ota.ps1 DryRun mode for safe testing - auto-setup.ps1 bumped to v3.2.0 (Phase 8 OTA)
902 lines
34 KiB
Markdown
902 lines
34 KiB
Markdown
# AI Universal Control Plane
|
||
|
||
**屠龙刀框架架构 v1.8 (单刃执行 + 全刀蓝图)**
|
||
|
||
> 接纳 v1.7 单刃聚焦执行节奏, 但**系统框架必须从第一天起就能无缝扩展为屠龙刀**.
|
||
> 关键原则: **PoC 30 人日只交付 1/N, 但架构必须为 N 设计.**
|
||
|
||
| 字段 | 内容 |
|
||
|---|---|
|
||
| 文档类型 | 架构白皮书 (与 v1.7 路线图互补, 同等权威) |
|
||
| 版本 | v1.8 |
|
||
| 日期 | 2026-04-25 |
|
||
| 父版本 | v1.6 屠龙刀 (战略保留) + v1.7 利剑节奏 (执行采纳) |
|
||
| 核心承诺 | **架构层面 100% 屠龙刀蓝图, 实施层面 24 月渐进展开, 任何一刃随时可激活** |
|
||
| 设计哲学 | "Build for thousand, ship for ten" — 为千刃而建, 先发十刃 |
|
||
|
||
---
|
||
|
||
## 0. 核心矛盾的解法
|
||
|
||
### 0.1 v1.6 vs v1.7 的二元对立
|
||
|
||
```
|
||
v1.6 (屠龙刀): 三刃齐挥 → 战略发散 / 工程崩盘 / 安全打开 / 商业不通
|
||
v1.7 (利剑): 单刃聚焦 → 战略清晰 / 工程务实 / 安全收敛 / 商业可验
|
||
```
|
||
|
||
### 0.2 v1.8 的解 (打破二元对立)
|
||
|
||
```
|
||
v1.8 = 屠龙刀架构 × 利剑实施
|
||
|
||
┌──────────────────────────────────────────────────────┐
|
||
│ 架构层 (Architecture, 24 月恒定) │
|
||
│ ┌────────────────────────────────────────────────┐ │
|
||
│ │ 性价比刀刃 接口 (CostKiller Interface) │ │
|
||
│ │ 个性化刀刃 接口 (Customization Interface) │ │
|
||
│ │ 兼容性刀刃 接口 (Compatibility Interface) │ │
|
||
│ │ + 反向兼容竞品 接口 (RivalAdapter Interface) │ │
|
||
│ │ + ISV 商店 接口 (ISVMarket Interface) │ │
|
||
│ │ + OSS Core 接口 (OSSCore Interface) │ │
|
||
│ │ + 国际市场 接口 (Locale Interface) │ │
|
||
│ └────────────────────────────────────────────────┘ │
|
||
│ 统一接口契约, 不变. 即使只实现 1 个, 接口为 N 准备 │
|
||
└────────────────────┬─────────────────────────────────┘
|
||
│ 接口 ↔ 实现 解耦
|
||
┌────────────────────▼─────────────────────────────────┐
|
||
│ 实施层 (Implementation, 24 月渐进) │
|
||
│ │
|
||
│ Phase 0 (4 周): 实现 5% 刀刃 (汇川+信捷 MCP) │
|
||
│ Phase 0.5 (3 月): 实现 10% (3 工厂 + ISV 访谈) │
|
||
│ Phase 1 (6 月): 实现 25% (5 协议 + 5 客户) │
|
||
│ Phase 2 (6 月): 实现 50% (OSS Core 发布) │
|
||
│ Phase 3 (12 月): 实现 80% (Pro + ISV) │
|
||
│ Phase 4 (24 月+): 实现 100% (反向兼容 + 国际) │
|
||
│ │
|
||
│ 每个 Phase 只做新功能, 不重构架构. 接口稳定. │
|
||
└──────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 0.3 关键洞察
|
||
|
||
**v1.6 失败不在战略, 在执行节奏.**
|
||
**v1.7 务实不在战略, 在阶段交付.**
|
||
**v1.8 兼得: 架构敢想, 实施敢砍.**
|
||
|
||
---
|
||
|
||
## 1. 屠龙刀框架架构 (24 月恒定, 不变)
|
||
|
||
### 1.1 七层抽象 (从一开始就定义)
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ L7 商业模式层 (Business Model) │
|
||
│ - OSSCore (Apache 2.0, 免费) │
|
||
│ - ProEdition (商业 License, 工业 Pro) │
|
||
│ - ISVMarket (Skill 商店 + MCP 商店) │
|
||
│ - Locale (中国 / 东南亚 / 全球) │
|
||
└────────────────┬────────────────────────────────────────┘
|
||
│
|
||
┌────────────────▼────────────────────────────────────────┐
|
||
│ L6 用户交互层 (User Interface) │
|
||
│ - NLU (自然语言) │
|
||
│ - ChatUI (Web / 钉钉 / 企微 / Slack) │
|
||
│ - OpenAPI / WebSocket / GraphQL │
|
||
│ - CLI / IDE 插件 │
|
||
└────────────────┬────────────────────────────────────────┘
|
||
│
|
||
┌────────────────▼────────────────────────────────────────┐
|
||
│ L5 大脑决策层 (Brain) │
|
||
│ - LLMRouter (13+ 厂商抽象, 可热切换) │
|
||
│ - JudgeConsensus (双裁判 → N 裁判可扩展) │
|
||
│ - SkillRuntime (94+ Skill 自由扩展) │
|
||
│ - PolicyEngine (deny-overrides + 优先级) │
|
||
│ - CapabilityGraph (能力图谱) │
|
||
│ - SagaStore (持久化 + 补偿) │
|
||
│ - AuditLog (Merkle chain + RFC 3161) │
|
||
│ - DataSovereignty (数据主权路由) │
|
||
└────────────────┬────────────────────────────────────────┘
|
||
│
|
||
┌────────────────▼────────────────────────────────────────┐
|
||
│ L4 协议适配层 (MCP Cluster, 18+ 协议接口) │
|
||
│ IndustrialProtocols / DesktopProtocols / │
|
||
│ MobileProtocols / VisionProtocols / RivalAdapters │
|
||
└────────────────┬────────────────────────────────────────┘
|
||
│
|
||
┌────────────────▼────────────────────────────────────────┐
|
||
│ L3 安全网关层 (Edge Gateway) │
|
||
│ bump-in-wire / TPM / HMAC heartbeat / mTLS │
|
||
└────────────────┬────────────────────────────────────────┘
|
||
│
|
||
┌────────────────▼────────────────────────────────────────┐
|
||
│ L2 传输层 (Transport) │
|
||
│ Headscale + 国内 DERP / WireGuard / mTLS │
|
||
└────────────────┬────────────────────────────────────────┘
|
||
│
|
||
┌────────────────▼────────────────────────────────────────┐
|
||
│ L1 物理设备层 (Physical Devices) │
|
||
│ PLC / SCADA / 机器人 / HMI / 摄像头 / 仪器 │
|
||
│ + 急停硬件回路 (永远独立, 不接软件) │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
### 1.2 七大核心接口 (从 v1.0 到 v3.0 不变)
|
||
|
||
#### 接口 1: ProtocolAdapter (协议刀刃)
|
||
|
||
```typescript
|
||
// L4 协议适配统一接口 — Phase 0 起就定义, 为 18+ 协议留位
|
||
interface ProtocolAdapter {
|
||
readonly id: string; // 唯一 ID, 如 'huichuan-h5u'
|
||
readonly vendor: string; // 'huichuan' / 'siemens' / 'ignition' (反向兼容)
|
||
readonly category: ProtocolCategory; // industrial / desktop / mobile / vision / rival
|
||
readonly capabilities: Capability[]; // 暴露的能力
|
||
|
||
connect(config: ConnectionConfig): Promise<Session>;
|
||
disconnect(session: Session): Promise<void>;
|
||
|
||
introspect(session: Session): Promise<CapabilityInfo>; // 协议反查
|
||
read(session: Session, address: string): Promise<Reading>;
|
||
write(session: Session, address: string, value: any): Promise<WriteResult>;
|
||
|
||
// 健康检查
|
||
healthCheck(): Promise<HealthStatus>;
|
||
}
|
||
|
||
// Phase 0 实现 2 个 (汇川 + 信捷)
|
||
// Phase 1 扩展到 6 个 (+ 西门子 + 三菱 + 欧姆龙 + 罗克韦尔)
|
||
// Phase 2 扩展到 12 个 (+ MQTT + BACnet + ONVIF + ADB + ...)
|
||
// Phase 4 扩展到 18+ (+ Ignition / 卡奥斯 / 华为盘古 反向兼容)
|
||
// 接口不变, 仅实现增加.
|
||
```
|
||
|
||
#### 接口 2: LLMProvider (LLM 抽象)
|
||
|
||
```typescript
|
||
// Phase 0 起就实现, 即使只接 2 家
|
||
interface LLMProvider {
|
||
readonly id: string;
|
||
readonly family: ModelFamily; // qwen / glm / deepseek / claude / gpt / gemini / ...
|
||
readonly vendor: string;
|
||
readonly architecture: string; // 异构 enforce 用
|
||
readonly hosting: 'cloud' | 'self_hosted' | 'edge';
|
||
readonly compliance: ComplianceTags[]; // ['china_compliant', 'data_export_blocked']
|
||
|
||
chat(req: ChatRequest): Promise<ChatResponse>;
|
||
toolCall(req: ToolCallRequest): Promise<ToolCallResponse>;
|
||
|
||
healthCheck(): Promise<HealthStatus>;
|
||
estimateCost(tokens: TokenUsage): CostEstimate;
|
||
}
|
||
|
||
// Phase 0: Qwen3-Max + DeepSeek-R1 (双裁判异构)
|
||
// Phase 1: + GLM-4.6 + Kimi K2
|
||
// Phase 2: + ERNIE / Doubao / Hunyuan / 自部署 OpenAI 兼容
|
||
// Phase 3: + Claude / GPT-5 / Gemini / Grok (合规场景)
|
||
// 接口不变. 添加新 LLM = 写一个 Adapter, 不改大脑代码.
|
||
```
|
||
|
||
#### 接口 3: JudgeConsensus (裁判共识)
|
||
|
||
```typescript
|
||
// Phase 0 起设计为 N 裁判可扩展, 即使只用 2 个
|
||
interface JudgeConsensus {
|
||
readonly minJudges: number; // Phase 0 = 2, Phase 4 可扩 3-5
|
||
readonly heterogeneityRules: HeterogeneityRule[];
|
||
|
||
// 接口为 N 裁判设计, 当前只调 2 个
|
||
evaluate(plan: Plan, judges: LLMProvider[]): Promise<ConsensusResult>;
|
||
|
||
// 扩展点: SMT/TLA+ 形式验证作为第 N+1 裁判
|
||
registerVerifier(verifier: FormalVerifier): void;
|
||
}
|
||
|
||
// Phase 0: 2 LLM 异构裁判
|
||
// Phase 4: + 形式验证 (SMV / TLA+) 作为第 3 裁判
|
||
// Phase 5: + 行业专家 KB (作为第 4 裁判, RAG 增强)
|
||
// 接口不变.
|
||
```
|
||
|
||
#### 接口 4: PolicyEngine (策略引擎)
|
||
|
||
```typescript
|
||
// Phase 0 起完整, 不留 TODO
|
||
interface PolicyEngine {
|
||
// deny-overrides 语义, Phase 0 锁定
|
||
evaluate(action: Action, context: Context): PolicyDecision;
|
||
|
||
// 扩展点: 自定义策略加载
|
||
loadPolicies(source: PolicySource): Promise<void>;
|
||
registerPlugin(plugin: PolicyPlugin): void;
|
||
|
||
// Phase 1+: 组合升格策略 (combo-soft-param-uplift)
|
||
// Phase 4+: 跨工厂联邦策略 (federation policies)
|
||
// 接口不变, 实现扩展.
|
||
}
|
||
```
|
||
|
||
#### 接口 5: SkillRuntime (Skill 执行)
|
||
|
||
```typescript
|
||
// Phase 0 起为 ISV 商店准备, 即使商店 Phase 3 才上线
|
||
interface SkillRuntime {
|
||
// 当前 Phase 0: 平台内置 5 个 Skill (巡检 / 告警 / 推送 / ...)
|
||
// Phase 3+: 加载 ISV 第三方 Skill, 同接口
|
||
|
||
registerSkill(skill: SkillDescriptor): void;
|
||
invoke(skillId: string, args: any, ctx: SkillContext): Promise<SkillResult>;
|
||
|
||
// 扩展点: 沙箱隔离 (Phase 3 ISV 商店启用)
|
||
setSandbox(sandbox: SandboxProvider): void;
|
||
|
||
// 扩展点: 资源限制
|
||
setResourceLimits(limits: ResourceLimits): void;
|
||
}
|
||
```
|
||
|
||
#### 接口 6: DataSovereignty (数据主权)
|
||
|
||
```typescript
|
||
// Phase 0 起就强制使用, 即使只有 2 个 LLM 也走数据分级
|
||
interface DataSovereigntyRouter {
|
||
classify(data: any): DataClassification; // general / personal / important / core
|
||
route(prompt: Prompt, classification: DataClassification): LLMProvider[];
|
||
|
||
// Phase 1+: 自动 PII 扫描 + 工艺秘方扫描
|
||
registerScanner(scanner: SensitivityScanner): void;
|
||
|
||
// Phase 2+: 数据出境 CAC 申报自动化
|
||
enableExportCompliance(provider: ComplianceProvider): void;
|
||
}
|
||
```
|
||
|
||
#### 接口 7: AuditLog (审计日志)
|
||
|
||
```typescript
|
||
// Phase 0 起 Merkle chain 闭环, Phase 1+ 加 RFC 3161 anchor
|
||
interface AuditLog {
|
||
append(record: AuditRecord): Promise<AuditEntry>; // Merkle chain
|
||
query(filter: AuditFilter): Promise<AuditEntry[]>;
|
||
verify(entryId: string): Promise<VerificationResult>;
|
||
|
||
// Phase 1+: RFC 3161 时间戳锚定
|
||
registerTSA(tsa: TimestampAuthority): void;
|
||
|
||
// Phase 2+: WORM 对象存储集成
|
||
registerWORM(worm: WORMStorage): void;
|
||
}
|
||
```
|
||
|
||
### 1.3 接口稳定性承诺
|
||
|
||
```yaml
|
||
interface_stability:
|
||
v1.0_to_v3.0:
|
||
promise: 主版本号内不破坏向后兼容
|
||
breaking_change_policy: 跨主版本号 (v2.0 / v3.0) 才允许
|
||
deprecation_window: ≥ 12 月通知期
|
||
|
||
reason: |
|
||
ISV 基于这些接口写 Skill / Adapter / Plugin.
|
||
接口频繁变 = ISV 生态死亡.
|
||
|
||
enforcement:
|
||
- 每个 PR 跑接口快照 diff 测试
|
||
- 任何 breaking change 必须 RFC 流程 + 4 人 review
|
||
- 接口变更需提供 migration codemod
|
||
```
|
||
|
||
---
|
||
|
||
## 2. Phase 0 实施: 5% 屠龙刀, 100% 框架
|
||
|
||
### 2.1 PoC 4 周, 30 人日, 但接口完整
|
||
|
||
```yaml
|
||
phase_0_implementation:
|
||
scope: 5% 功能, 100% 框架
|
||
|
||
# 协议适配层: 实现 2 个 (18+ 接口位留)
|
||
protocol_adapters:
|
||
implemented:
|
||
- HuichuanH5UAdapter (Modbus TCP)
|
||
- XinjeXDHAdapter (Modbus TCP)
|
||
interface_ready_but_empty:
|
||
- SiemensS7Adapter (Phase 1 实现)
|
||
- MitsubishiMCAdapter (Phase 1)
|
||
- OmronFINSAdapter (Phase 1)
|
||
- RockwellEthernetIPAdapter (Phase 1)
|
||
- 12 其他协议 (Phase 2-3)
|
||
- IgnitionRivalAdapter (Phase 4 反向兼容)
|
||
- KaosRivalAdapter (Phase 4)
|
||
- HuaweiPanguRivalAdapter (Phase 4)
|
||
|
||
# LLM 提供商: 实现 2 个 (16+ 接口位留)
|
||
llm_providers:
|
||
implemented:
|
||
- QwenProvider (Qwen3-Max)
|
||
- DeepSeekProvider (DeepSeek-R1)
|
||
interface_ready_but_empty:
|
||
- GLMProvider (Phase 1)
|
||
- KimiProvider (Phase 1)
|
||
- 8 其他国内 LLM (Phase 2)
|
||
- ClaudeProvider / OpenAIProvider / GeminiProvider / GrokProvider (Phase 3)
|
||
|
||
# 裁判共识: N 裁判接口, 当前 N=2
|
||
judge_consensus:
|
||
implementation: TwoJudgeConsensus (异构强制)
|
||
extension_points:
|
||
- registerVerifier(formal_verifier) # Phase 4
|
||
- registerJudge(expert_kb_rag) # Phase 5
|
||
|
||
# 策略引擎: 完整, 不留 TODO
|
||
policy_engine:
|
||
implementation: DenyOverridesEngine (Phase 0 完整)
|
||
enabled_policies:
|
||
- read-only-anytime
|
||
- soft-param-business-hours
|
||
- hard-action-strict (双裁判 + 物理钥匙)
|
||
- registry-downgrade-block
|
||
plugins_ready_but_unused:
|
||
- combo-soft-param-uplift (Phase 1 启用)
|
||
- federation-policies (Phase 4)
|
||
|
||
# Skill Runtime: 沙箱接口预留
|
||
skill_runtime:
|
||
implementation: InProcessSkillRuntime (Phase 0 内置 5 Skill)
|
||
sandbox_interface: SandboxProvider 接口已定义, 实现 Phase 3
|
||
resource_limits: 接口已定义, enforce Phase 3
|
||
|
||
# 数据主权: 强制启用 (即使只有 2 LLM 也分级)
|
||
data_sovereignty:
|
||
implementation: ChinaCompliantRouter (Phase 0 强制)
|
||
classifications: [general, personal, important, core]
|
||
routing_rules:
|
||
core: local_only # 强制本地
|
||
important: domestic_only
|
||
personal: domestic_with_anonymize
|
||
general: any
|
||
|
||
# 审计日志: Merkle chain 完整, TSA 接口预留
|
||
audit_log:
|
||
implementation: MerkleChainAuditLog
|
||
tsa_provider_interface: 接口已定义, RFC 3161 实现 Phase 1
|
||
worm_storage_interface: 接口已定义, MinIO 集成 Phase 2
|
||
```
|
||
|
||
### 2.2 代码组织 (从 Day 1 就为屠龙刀准备)
|
||
|
||
```
|
||
bookworm-aiocp/
|
||
├── packages/
|
||
│ ├── core/ # OSSCore (Apache 2.0)
|
||
│ │ ├── interfaces/ # 七大核心接口 (Day 1 完整)
|
||
│ │ │ ├── ProtocolAdapter.ts
|
||
│ │ │ ├── LLMProvider.ts
|
||
│ │ │ ├── JudgeConsensus.ts
|
||
│ │ │ ├── PolicyEngine.ts
|
||
│ │ │ ├── SkillRuntime.ts
|
||
│ │ │ ├── DataSovereignty.ts
|
||
│ │ │ └── AuditLog.ts
|
||
│ │ ├── brain/ # L5 大脑实现
|
||
│ │ ├── transport/ # L2 传输层
|
||
│ │ └── edge/ # L3 边缘网关
|
||
│ │
|
||
│ ├── adapters/ # L4 协议适配
|
||
│ │ ├── industrial/
|
||
│ │ │ ├── huichuan-h5u/ # Phase 0 实现
|
||
│ │ │ ├── xinje-xdh/ # Phase 0 实现
|
||
│ │ │ ├── siemens-s7/ # Phase 1 (空 stub + 接口)
|
||
│ │ │ ├── mitsubishi-mc/ # Phase 1
|
||
│ │ │ ├── omron-fins/ # Phase 1
|
||
│ │ │ ├── rockwell-eip/ # Phase 1
|
||
│ │ │ └── ... # 18 个目录全部预创建, 仅 README 说明 Phase
|
||
│ │ ├── desktop/
|
||
│ │ ├── mobile/
|
||
│ │ ├── vision/
|
||
│ │ └── rival/ # Phase 4 反向兼容
|
||
│ │ ├── ignition/ # Phase 4 (接口位留)
|
||
│ │ ├── kaos/ # Phase 4
|
||
│ │ ├── huawei-pangu/ # Phase 4
|
||
│ │ └── tpt2/ # Phase 4
|
||
│ │
|
||
│ ├── llm-providers/
|
||
│ │ ├── qwen/ # Phase 0
|
||
│ │ ├── deepseek/ # Phase 0
|
||
│ │ ├── glm/ # Phase 1 stub
|
||
│ │ ├── kimi/ # Phase 1 stub
|
||
│ │ ├── claude/ # Phase 3 stub
|
||
│ │ ├── openai/ # Phase 3 stub
|
||
│ │ └── ... # 16 个目录全部预创建
|
||
│ │
|
||
│ ├── skills/ # Phase 0 内置 5 个
|
||
│ │ ├── inspect-line/
|
||
│ │ ├── notify-foreman/
|
||
│ │ ├── read-status/
|
||
│ │ ├── voice-confirm/
|
||
│ │ └── archive-event/
|
||
│ │
|
||
│ ├── isv-store/ # Phase 3 启用, Phase 0 仅接口骨架
|
||
│ │ ├── sandbox/ # 沙箱接口 (Phase 0 定义)
|
||
│ │ ├── manifest/ # capability manifest 定义
|
||
│ │ └── registry/ # 注册逻辑骨架
|
||
│ │
|
||
│ ├── pro/ # Phase 3+ 商业版 (单独 repo, 商业 license)
|
||
│ │ ├── hsm-air-gap/
|
||
│ │ ├── federation/
|
||
│ │ ├── auto-learn/
|
||
│ │ ├── secret-version/ # 涉密版
|
||
│ │ └── compliance-evidence/ # 等保 33 项证据自动化
|
||
│ │
|
||
│ ├── i18n/ # Phase 4 国际化
|
||
│ │ ├── zh-CN/ # Phase 0 默认
|
||
│ │ ├── en-US/ # Phase 1 stub
|
||
│ │ ├── vi-VN/ # Phase 4 (东南亚)
|
||
│ │ ├── th-TH/ # Phase 4
|
||
│ │ └── ...
|
||
│ │
|
||
│ └── docs/ # 文档
|
||
│ ├── architecture/
|
||
│ ├── adapters/ # 18 协议各一份模板, Phase 0 写 2 份
|
||
│ └── extension-guide/ # 如何写新 Adapter / LLM / Skill
|
||
│
|
||
├── tools/
|
||
│ ├── interface-snapshot/ # 接口稳定性测试
|
||
│ ├── policy-static-check/
|
||
│ ├── llm-conformance/ # LLM Adapter 一致性测试
|
||
│ └── adapter-conformance/
|
||
│
|
||
└── README.md
|
||
```
|
||
|
||
**核心实践**: 18 协议目录在 Day 1 全部预创建, Phase 0 只在 2 个目录有代码, 其他 16 个目录有 README 说明"Phase X 实现". 这样:
|
||
|
||
- 后续添加协议**不改主仓结构**, 仅填空
|
||
- 接口契约从 Day 1 就完整, 不会有 Phase 1 才发现接口缺设计的尴尬
|
||
- ISV 看代码结构就知道扩展点在哪
|
||
- OSS 公开后, 社区贡献者可立即认领空 stub
|
||
|
||
---
|
||
|
||
## 3. 三刃接口的渐进展开
|
||
|
||
### 3.1 第一刃 — 性价比 (CostKiller)
|
||
|
||
```yaml
|
||
phase_progression:
|
||
phase_0_4w:
|
||
interface: 完整定义 CostModel / PricingTier / RebateCalculator
|
||
implementation: 仅 OSSCore Apache 2.0, 不收费
|
||
proof: |
|
||
¥0 软件 License (OSS Core)
|
||
¥0 平台抽成 (集成商自由)
|
||
用户付的: LLM 厂商 API 费 + 自购硬件
|
||
|
||
phase_0.5_3m:
|
||
interface: 添加 ROITracker 接口
|
||
implementation: 3 工厂 PoC 收集真实成本数据
|
||
proof: 真实 ROI 数据, 修订 v1.7.1
|
||
|
||
phase_1_6m:
|
||
interface: 启用 PricingTier (轻量 / 标准 / 高合规)
|
||
implementation: 商业 License 系统 + 设备数计数
|
||
proof: 1-3 付费客户实测毛利
|
||
|
||
phase_2_6m:
|
||
interface: 启用 RebateCalculator (ISV 三级返点)
|
||
implementation: ISV 商店 + 自动分润
|
||
proof: ¥800/设备/年 模型 PMF 验证
|
||
|
||
phase_3+_12m:
|
||
interface: 启用 InternationalPricing (东南亚 / 一带一路)
|
||
implementation: 多币种 / 多税务 / 渠道商管理
|
||
proof: 5+ 国际客户
|
||
```
|
||
|
||
### 3.2 第二刃 — 个性化 (Customization)
|
||
|
||
```yaml
|
||
phase_progression:
|
||
phase_0_4w:
|
||
interface: SkillSDK / ConfigSchema / PluginRegistry 完整定义
|
||
implementation: 内置 5 Skill + YAML 配置
|
||
proof: 用户可改 LLM / Zone / 通道 (5 分钟)
|
||
|
||
phase_1_6m:
|
||
interface: 启用 Skill 商店接口 (但商店未上线)
|
||
implementation: 平台内 ISV 提交 Skill (PR 模式)
|
||
proof: 2 个 ISV Skill 通过 PR 审核合并
|
||
|
||
phase_2_6m:
|
||
interface: 启用 SandboxProvider (沙箱)
|
||
implementation: 完整沙箱 + capability manifest 静态扫描
|
||
proof: ISV 商店内测 (邀请制)
|
||
|
||
phase_3_12m:
|
||
interface: 启用 ForkSupport / fork 后远程升级
|
||
implementation: 用户 fork 后仍能选择性接收 OSS 安全补丁
|
||
proof: 5+ 用户 fork 实战使用
|
||
|
||
phase_4+:
|
||
interface: 启用 EnterpriseDSL (企业级 Skill 定制语言)
|
||
implementation: 大客户专属定制
|
||
proof: 大客户深度个性化交付
|
||
```
|
||
|
||
### 3.3 第三刃 — 兼容性 (Compatibility)
|
||
|
||
```yaml
|
||
phase_progression:
|
||
phase_0_4w:
|
||
protocols: 2 (汇川 + 信捷)
|
||
llm_providers: 2 (Qwen + DeepSeek)
|
||
os: Linux (树莓派) + Windows (Edge Agent)
|
||
|
||
phase_1_6m:
|
||
protocols: 6 (+ 西门子 / 三菱 / 欧姆龙 / 罗克韦尔)
|
||
llm_providers: 4 (+ GLM / Kimi)
|
||
os: + macOS
|
||
|
||
phase_2_6m:
|
||
protocols: 12 (+ MQTT / BACnet / ONVIF / ADB / SSH / VNC)
|
||
llm_providers: 8 (+ ERNIE / Doubao / Hunyuan / 自部署)
|
||
os: + Android (Termux)
|
||
|
||
phase_3_12m:
|
||
protocols: 16 (+ KNX / SCPI / Modbus RTU / FANUC)
|
||
llm_providers: 13 (+ Claude / GPT-5 / Gemini / Grok / MiniMax)
|
||
rival_adapters: 0 (推迟)
|
||
|
||
phase_4_24m+:
|
||
protocols: 18+ (+ 国密 + 罕见协议)
|
||
llm_providers: 16+ (+ 自部署 + 任意 OpenAI 兼容)
|
||
rival_adapters: 5 (Ignition / 卡奥斯 / 华为 / TPT-2 / AISCADA)
|
||
locale: 中国 + 东南亚 + 全球
|
||
```
|
||
|
||
---
|
||
|
||
## 4. 反向兼容刀刃 (Phase 4, 但接口 Day 1 就在)
|
||
|
||
### 4.1 接口先行
|
||
|
||
```typescript
|
||
// Phase 0 就定义, 仅在 Phase 4 实现
|
||
interface RivalAdapter extends ProtocolAdapter {
|
||
readonly rivalProduct: 'ignition' | 'kaos' | 'pangu' | 'tpt2' | 'aiscada';
|
||
readonly trustLevel: 'verified_mtls' | 'channel_only' | 'unverified';
|
||
readonly compatibilityTested: boolean; // 必须经第三方测试
|
||
|
||
// 强制单向数据流: 仅读, 不写
|
||
readonly capabilities: ReadOnlyCapability[];
|
||
|
||
// 数据源信任校验
|
||
validateSource(data: any): TrustValidation;
|
||
|
||
// 多源交叉校验 (>= 2 独立通道)
|
||
crossValidate(data: any, otherSources: DataSource[]): CrossValidationResult;
|
||
}
|
||
```
|
||
|
||
### 4.2 Phase 4 启用条件
|
||
|
||
```yaml
|
||
phase_4_rival_adapter_prerequisites:
|
||
- OSS Core 已发布 ≥ 6 月
|
||
- 至少 30 家付费客户稳定运行
|
||
- 第三方安全审计通过 SLSA L3
|
||
- 红队评分 ≥ 70 (越高越安全, 反向后)
|
||
- 独立法务审查 (反向兼容是否触犯竞品 ToS)
|
||
- 至少 2 家工厂客户主动要求该兼容功能
|
||
|
||
failure_to_meet_prerequisite:
|
||
- 推迟到 Phase 5
|
||
- 不强行做, 不为做而做
|
||
```
|
||
|
||
---
|
||
|
||
## 5. ISV 商店刀刃 (Phase 3, 但接口 Day 1 就在)
|
||
|
||
### 5.1 ISV 接口契约 (从 Day 1)
|
||
|
||
```typescript
|
||
// ISV 看到这个接口就知道未来怎么写 Skill
|
||
interface ISVSkillManifest {
|
||
id: string; // com.acme.line-monitor
|
||
version: string;
|
||
isv: ISVIdentity; // 必须 isv-key 签名
|
||
|
||
// capability manifest — 关键安全边界
|
||
required_mcp_capabilities: string[]; // ['opcua-mcp.read_*', 'hikvision-mcp.snapshot']
|
||
required_llm_use_cases: string[]; // ['classify', 'summarize']
|
||
|
||
network_access:
|
||
type: 'none' | 'allowlist'
|
||
allowlist?: string[] // 仅这些域名可访问
|
||
|
||
resource_limits:
|
||
cpu_quota: number // 0.5 core
|
||
memory_quota: number // 512 MB
|
||
timeout_ms: number // 30000
|
||
|
||
audit:
|
||
log_every_call: true // 强制
|
||
quarantine_on_anomaly: true
|
||
}
|
||
```
|
||
|
||
### 5.2 ISV 沙箱实现进度
|
||
|
||
| Phase | 实现 |
|
||
|---|---|
|
||
| Phase 0 | 接口完整定义, 内部 Skill 不走沙箱 |
|
||
| Phase 1 | 沙箱 stub (子进程隔离, 无完整资源限制) |
|
||
| Phase 2 | 完整沙箱 (cgroup + seccomp + 网络白名单) |
|
||
| Phase 3 | ISV 商店上线 + 第三方安全审计流程 |
|
||
| Phase 4+ | 商店成熟, 80/20 分润运营 |
|
||
|
||
---
|
||
|
||
## 6. OSS Core 刀刃 (Phase 2, 但代码 Day 1 就 OSS-ready)
|
||
|
||
### 6.1 Day 1 OSS-ready 实践
|
||
|
||
```yaml
|
||
oss_readiness_from_day_1:
|
||
license:
|
||
all_files_have_apache_2_0_header: true
|
||
no_proprietary_dependencies: enforced_in_ci
|
||
|
||
documentation:
|
||
every_module_has_readme: true
|
||
architecture_docs_in_chinese_and_english: true
|
||
extension_guide_per_interface: true
|
||
|
||
testing:
|
||
unit_test_coverage: ≥ 70%
|
||
interface_conformance_tests: required
|
||
|
||
security:
|
||
sigstore_signed_commits: required from day_1
|
||
dependabot_enabled: true
|
||
sbom_per_release: required
|
||
|
||
community_readiness:
|
||
code_of_conduct: present
|
||
contributing_md: present
|
||
issue_templates: present
|
||
pr_templates: present
|
||
dco_check: enabled
|
||
|
||
note: |
|
||
Phase 0-2 期间仓库私有 (GitHub private repo).
|
||
Phase 2 末转 public, 已有 6 月清晰提交历史 + 完整文档.
|
||
避免"突然公开" → 历史脏 + 没文档 → 社区差评.
|
||
```
|
||
|
||
### 6.2 OSS 公开发布渐进式 (Phase 2)
|
||
|
||
```yaml
|
||
oss_public_release_stages:
|
||
stage_1_private_to_invite_only:
|
||
duration: 6 weeks
|
||
audience: 20 邀请客户 + 10 ISV
|
||
license: Apache 2.0 (private repo, NDA)
|
||
feedback_loop: weekly
|
||
|
||
stage_2_invite_to_public_beta:
|
||
duration: 8 weeks
|
||
audience: GitHub public + Hacker News + 工业自动化社区
|
||
license: Apache 2.0
|
||
target: 1k stars, 50 contributors
|
||
|
||
stage_3_v1_release:
|
||
duration: 4 weeks
|
||
audience: 媒体宣传 + 行业大会演讲 + 培训
|
||
target: 5k stars, 100 ISV signups
|
||
```
|
||
|
||
---
|
||
|
||
## 7. 国际化刀刃 (Phase 4, 但 i18n Day 1 就在)
|
||
|
||
### 7.1 i18n 框架从 Day 1
|
||
|
||
```typescript
|
||
// 即使 Phase 0 只有中文, 接口已为多语言准备
|
||
interface LocaleProvider {
|
||
readonly locale: string; // 'zh-CN' / 'en-US' / 'vi-VN' / ...
|
||
readonly currency: string; // 'CNY' / 'USD' / 'VND'
|
||
readonly compliance: ComplianceTags[]; // ['china_pipl', 'gdpr', 'vietnam_pdpd']
|
||
readonly llm_provider_filter: LLMProviderFilter; // 不同地区可用的 LLM
|
||
readonly tax_calculator: TaxCalculator;
|
||
}
|
||
|
||
// Phase 0: 仅 zh-CN
|
||
// Phase 1: + en-US (国际客户咨询)
|
||
// Phase 4: + vi-VN, th-TH, id-ID, es-MX (东南亚 + 墨西哥)
|
||
```
|
||
|
||
### 7.2 东南亚优先 (Phase 4 突破点)
|
||
|
||
按市场专家建议, 东南亚中国系工厂是 v1.6/v1.7 的破局点:
|
||
|
||
```yaml
|
||
southeast_asia_strategy:
|
||
rationale:
|
||
- 越南/泰国/墨西哥的中国系工厂数字化需求强
|
||
- 用中国 PLC (汇川/信捷/三菱日产) + 海外 LLM (Claude/GPT)
|
||
- 无信创合规约束 (海外可用 Claude / GPT-5)
|
||
- 竞品几乎不覆盖 (卡奥斯/华为不出海)
|
||
|
||
phase_4_goal:
|
||
- 5+ 东南亚中国系工厂客户
|
||
- 越南/泰国/墨西哥 i18n 完成
|
||
- 海外支付通道 (Stripe / Wise)
|
||
```
|
||
|
||
---
|
||
|
||
## 8. 安全防御 Day 1 就到位 (不给红队机会)
|
||
|
||
### 8.1 即使 Phase 0 只 2 用户, 安全也是企业级
|
||
|
||
```yaml
|
||
day_1_security:
|
||
configuration_signing:
|
||
devices_yaml: ed25519 (Phase 0 强制)
|
||
policies_yaml: ed25519 (Phase 0 强制)
|
||
llm_providers_yaml: ed25519 (Phase 0 强制) # v1.6 红队 #1 修复
|
||
judge_llm_config: ed25519 + system prompt hash pin (Phase 0 强制)
|
||
|
||
supply_chain:
|
||
sigstore_signed_commits: from day_1
|
||
pinned_dependencies: lock 文件 SHA256 (Phase 0 强制)
|
||
slsa_level: L3 (Phase 1 末达到, Phase 0 准备)
|
||
|
||
judge_consensus:
|
||
heterogeneity_enforce: hard_block_on_startup (Phase 0) # 接受红队 #2 建议
|
||
approve_threshold: max_individual_risk < 0.30
|
||
divergence_threshold: |score_a - score_b| < 0.20 # v1.4 修订接受
|
||
|
||
llm_endpoint:
|
||
whitelist_only: true # 红队 #3 修复
|
||
no_user_added_relay: Phase 0 起禁用
|
||
pii_scanner_enabled: Phase 1 起
|
||
|
||
data_sovereignty:
|
||
enforce_from_day_1: true
|
||
important_data_never_overseas: hardcoded
|
||
|
||
policies_yaml:
|
||
signed_required: true # 红队 #5 修复
|
||
runtime_enforce_invariant: 异构裁判检查代码硬编码
|
||
integrity_check_on_load: true
|
||
```
|
||
|
||
### 8.2 红队评分预期 (Day 1 即合格)
|
||
|
||
| 阶段 | 红队评分 (越低越安全) | 备注 |
|
||
|---|---|---|
|
||
| v1.6 屠龙刀实评 | 38 | 攻击面太大 |
|
||
| v1.7 单刃 | 55 | OSS 推迟 + 4 P0 加固 |
|
||
| **v1.8 Day 1** | **45-50** | 接口安全 + Day 1 加固 |
|
||
| v1.8 Phase 1 末 | 35-40 | SLSA L3 + 沙箱 stub |
|
||
| v1.8 Phase 2 末 (OSS 发布) | 30-35 | 第三方审计通过 |
|
||
| v1.8 Phase 3 末 | 25-30 | ISV 商店成熟 + 商业客户验证 |
|
||
|
||
---
|
||
|
||
## 9. 工作量重新分配 (诚实)
|
||
|
||
### 9.1 v1.8 vs v1.7 对比
|
||
|
||
| Phase | v1.7 (利剑) | v1.8 (屠龙刀框架 + 利剑实施) | 增量 |
|
||
|---|---|---|---|
|
||
| Phase 0 PoC | 30 人日 | **45 人日** (+15 接口设计 + 18 协议目录骨架 + 安全 Day 1) |
|
||
| Phase 0.5 客户验证 | 90 人日 | 90 人日 |
|
||
| Phase 1 客户验证 | 240 人日 | 240 人日 |
|
||
| Phase 2 OSS Core | 360 人日 | 360 人日 |
|
||
| Phase 3 Pro + ISV | 720 人日 | 720 人日 |
|
||
| Phase 4 反向兼容 + 国际化 (新增) | — | 480 人日 |
|
||
| **合计** | 1440 | **1935** |
|
||
|
||
### 9.2 关键: Phase 0 +15 人日的价值
|
||
|
||
```
|
||
+15 人日花在哪:
|
||
- 七大核心接口完整定义 (TypeScript 类型 + 文档): 5 人日
|
||
- 18 协议目录骨架 + README + 接口位留: 3 人日
|
||
- 16 LLM Adapter 接口骨架: 2 人日
|
||
- ISV Skill 商店接口骨架 + 沙箱接口: 3 人日
|
||
- 反向兼容竞品接口 + i18n 接口骨架: 2 人日
|
||
|
||
回报:
|
||
- Phase 1+ 添加新协议 = 填空, 不改主结构 (节省 50+ 人日)
|
||
- Phase 2 OSS 发布时, 仓库结构清晰, 文档完整 (节省 80+ 人日)
|
||
- Phase 3 ISV 商店上线时, 接口已稳定 (节省 60+ 人日)
|
||
- Phase 4 反向兼容时, 接口已为之准备 (节省 40+ 人日)
|
||
|
||
ROI: +15 人日投入, 节省 230+ 人日, 净收益 215 人日.
|
||
```
|
||
|
||
---
|
||
|
||
## 10. 评分预期 (诚实)
|
||
|
||
| 维度 | v1.6 屠龙刀 | v1.7 利剑 | **v1.8 框架+利剑** |
|
||
|---|---|---|---|
|
||
| 架构稳健性 | 78 | 82 | **88** (七大接口 Day 1 完整 + 安全 Day 1) |
|
||
| 市场可行性 | 70 | 75 | **77** (路径清晰 + 长期屠龙刀蓝图清晰) |
|
||
| 算法稳健性 | 80 | 80 | **82** (异构强制 + 数据主权 Day 1) |
|
||
| 红队安全 | 38 | 55 (OSS 推迟) | **65** (接口安全 + Day 1 加固, 比 v1.7 好) |
|
||
| 工程可执行 | 62 | 80 | **80** (+15 人日合理) |
|
||
| **综合** | **74** | **78-80** | **≈ 82-84 (B / B+ 临界)** |
|
||
|
||
**v1.8 比 v1.7 高 4 分**, 因为:
|
||
1. 长期蓝图更清晰 (投资人 + 团队信心)
|
||
2. ISV 看接口就知道扩展点 (生态吸引力)
|
||
3. 安全 Day 1 就到位 (红队评分提升)
|
||
4. Phase 1+ 节省 200+ 人日 (执行效率)
|
||
|
||
---
|
||
|
||
## 11. 战略一句话总结
|
||
|
||
> **v1.6 错在: 想 8 周做出 18 协议屠龙刀, 工程崩盘.**
|
||
> **v1.7 错在: 砍到只剩单刃, 投资人 / 团队 / ISV 看不到长期愿景.**
|
||
> **v1.8 取中: 架构 = 屠龙刀蓝图 (Day 1 完整七接口), 实施 = 利剑节奏 (4 周 30+ 人日聚焦).**
|
||
>
|
||
> **本质**: 不是"打几把刀", 而是"做一个永远能扩刀的刀架".
|
||
> 刀架建好了, 第一把刀只 5%, 但第二把第三把不需要重做刀架.
|
||
>
|
||
> 24 月后, 刀架上挂着 18 把刀, 每把都是真的屠龙刀.
|
||
|
||
---
|
||
|
||
## 12. 修订记录
|
||
|
||
| 版本 | 日期 | 变更 | 自评 | 实评 |
|
||
|---|---|---|---|---|
|
||
| v1.0-v1.5 | 2026-04-25 | 多轮工程修复 | 56.6 → 76 | — |
|
||
| v1.6 屠龙刀 | 2026-04-25 | 三刃齐挥 | 83-86 | 74 |
|
||
| v1.7 利剑 | 2026-04-25 | 单刃聚焦 | 78-80 | — |
|
||
| **v1.8** | **2026-04-25** | **屠龙刀框架 + 利剑实施 (七大接口 Day 1 + 渐进展开)** | **82-84** | **PoC 验证后回填** |
|
||
|
||
---
|
||
|
||
## 13. 立即下一步
|
||
|
||
### 今天
|
||
|
||
1. 创始人 + 技术合伙人评审 v1.8 的"屠龙刀框架 + 利剑实施"是否真的可行
|
||
2. 确认接口设计的 +15 人日是否值得 (vs 短期 PoC)
|
||
|
||
### 本周
|
||
|
||
3. **Day 1-3 spike**: 七大核心接口的 TypeScript 类型定义草稿
|
||
4. **Day 4-5**: 18 协议目录骨架创建 + README 模板
|
||
5. **Day 6-7**: Phase 0 项目脚手架 (monorepo + workspaces + CI)
|
||
|
||
### 本月
|
||
|
||
6. Phase 0 PoC 启动 (4 周, 45 人日)
|
||
- Week 1: 接口完整 + Headscale + 2 LLM Adapter
|
||
- Week 2: 汇川 H5U MCP server (真机调试)
|
||
- Week 3: 信捷 XDH MCP server + Edge Gateway
|
||
- Week 4: Policy Engine + Audit Log + 1 业务 Skill + 演示视频
|
||
|
||
7. 同步: 客户开发 (40 家) + ISV 名单 (10 家)
|
||
|
||
---
|
||
|
||
> **v1.8 终极承诺**:
|
||
>
|
||
> **架构敢想屠龙刀, 实施敢砍到 5%. 5% 永远在屠龙刀骨架上, 不是孤立的小作品.**
|
||
>
|
||
> 24 月后回头看, 第一刃 (汇川 MCP) 与第十八刃 (Ignition 反向兼容) 共享同一接口契约.
|
||
> 这才是真正的"无缝可扩展", 不是嘴上说说.
|