# 商用 LLM 通用转发网关演进方案（Subapi First）

- 版本：v4.2（凭证边界澄清版）
- 日期：2026-03-24
- 基线性质：SSOT（单一事实源）
- 适用阶段：S0-S4

---

## 0. 本版修订目的

本版仅做一件事：明确并冻结“用户分享 token 的边界”。

**本方案认可并采用以下业务链路：**

`用户A供给 -> 平台 -> 用户B购买服务`

但该链路必须满足以下前提：

1. 用户A分享对象是平台，不是用户B。
2. 用户B购买的是平台服务能力，不是用户A的上游账号凭证。
3. 平台承担统一鉴权、审计、计费、合规责任。

---

## 1. 术语与边界（强制）

## 1.1 术语

| 术语 | 定义 |
|---|---|
| 供应方（用户A） | 向平台提供可调度配额的用户/企业 |
| 平台 | 统一网关与控制面，持有上游凭证托管能力 |
| 需求方（用户B） | 购买平台服务能力的用户/企业 |
| 上游凭证 | 供应商 API Key/OAuth Token 等原始凭证 |
| 平台凭证 | 平台签发给用户B的调用凭证（租户级/项目级） |

## 1.2 红线约束（MUST/MUST NOT）

1. `MUST`：上游凭证只能由平台密态托管（Vault/KMS），不得明文外发。
2. `MUST`：用户B只能使用平台凭证访问平台入口，不得直接调用供应方上游账号。
3. `MUST NOT`：任何 API/控制台/导出能力向用户B返回供应方上游凭证。
4. `MUST NOT`：日志、报表、告警中出现可复用的上游凭证片段。
5. `MUST`：平台在审计中可证明“每次请求均由平台凭证入站 + 平台侧代持上游凭证出站”。

---

## 2. 架构口径（v4.2）

## 2.1 入口鉴权

1. 北向入口只接受平台凭证（平台签发）。
2. 上游凭证不作为北向接口参数，不作为用户可见字段。
3. query key 外部一律拒绝，内部仅允许受控改写并全量审计。

## 2.2 出站调用

1. 平台在 Provider Adapter 层按策略选择供给池账号。
2. 上游调用由平台运行时短时解密，调用完成即销毁明文态。
3. 供应方账号仅用于平台代调度，不形成“用户B直连上游”的能力。

## 2.3 计费与结算

1. 用户B账单只面向平台服务计费口径。
2. 供应方结算在平台内部完成，不向用户B暴露可复用凭证或上游账户标识。
3. 争议处理以平台 request_id 为唯一追踪主键。

---

## 3. ToS 合规执行（v4.2 统一口径）

1. “禁止账号共享/转售”的供应商条款，必须映射为可执行规则，不允许文档口头豁免。
2. 供应商策略分层：
   - 允许平台代理模式：可进入供给池。
   - 仅允许 BYOK：仅支持客户自持账号，不进入供给池。
   - 不允许代理/转售：默认禁入并阻断。
3. 未取得法务书面结论前，相关供应商默认按“禁入供给池”处理。

---

## 4. 验收门禁补充（新增硬指标）

在原 `acceptance_gate_single_source_v1_2026-03-18.md` 基础上增加以下指标：

| 指标ID | 指标名 | 目标值 | 阻断阈值 | 说明 |
|---|---|---|---|---|
| M-013 | `supplier_credential_exposure_events` | 0 | >0 即 P0 | 供应方上游凭证泄露事件数 |
| M-014 | `platform_credential_ingress_coverage_pct` | 100% | <100% 即阻断 | 入站请求使用平台凭证覆盖率 |
| M-015 | `direct_supplier_call_by_consumer_events` | 0 | >0 即 P0 | 用户B绕过平台直连供应方事件 |
| M-016 | `query_key_external_reject_rate_pct` | 100% | <100% 即阻断 | 外部 query key 拒绝率 |

红线触发动作：

1. 立即停止升波。
2. 触发自动回切。
3. 24小时内提交根因与修复证据。

---

## 5. P0/P1 整改清单（v4.2 收敛版）

## 5.1 P0（开工前必须完成）

| ID | 问题 | v4.2 处置 |
|---|---|---|
| P0-1 | 凭证边界表达歧义 | 通过第1章冻结“服务可售、凭证不外发”的硬约束 |
| P0-2 | ToS 红线与商业口径冲突 | 通过第3章引入供应商分层准入，未确认默认禁入 |
| P0-3 | 法务结论未闭环 | 未签署前禁止进入相关上线 Gate |

## 5.2 P1（两周内完成）

| ID | 问题 | v4.2 处置 |
|---|---|---|
| P1-1 | 折扣/毛利/S0周期多口径 | 统一以本文件 + 唯一门禁表为准 |
| P1-2 | PostgreSQL 与 MySQL 方言混用 | SQL 示例收敛为 PostgreSQL 可执行版本 |
| P1-3 | 安全标准并存（MD5/HMAC） | 统一 HMAC-SHA256，旧方案标注废弃 |
| P1-4 | 证据目录缺失 | 补齐 `tests/`、`evidence/` 与可复跑报告链路 |

参数冻结补充（用于消除 P1-1 多口径）：
1. 采购折扣系数：`60%`。
2. 毛利率目标区间：`15%-50%`。
3. S0 周期：以 `acceptance_gate_single_source_v1_2026-03-18.md` 与执行任务单里程碑为准。

---

## 6. 72小时落地计划

1. `T+24h`：完成全部文档中的凭证边界替换（删除“用户B获取供应方Key”措辞）。
2. `T+48h`：更新唯一门禁表并加入 M-013~M-016，接入 CI 阻断。
3. `T+72h`：提交法务签署状态、门禁演练报告、一次凭证泄露演练报告。

---

## 7. 与 v4.1 关系

1. v4.1 作为历史基线保留。
2. 从本文件发布起，凡与“凭证边界”冲突的 v4.1 表述全部失效。
3. 后续实施、评审、验收均以 v4.2 为准。
