# ToS 合规引擎设计章节

> 本章节为 `llm_gateway_subapi_evolution_plan_v2_2026-03-17.md` 中 S4 阶段的补充设计，专门针对供应商服务条款（Terms of Service, ToS）合规风险进行系统化设计。

---

## 1. 合规背景与目标

### 1.1 合规必要性

LLM 供应商对其 API 服务有严格的使用条款限制，违规使用可能导致：

| 风险类型 | 后果 | 严重程度 |
|----------|------|----------|
| 账户封禁 | 供应方账号被封，平台服务中断 | 严重 |
| API 限流 | 关键供应商降低可用配额 | 高 |
| 法律风险 | 违反 ToS 可能涉及法律纠纷 | 高 |
| 财务损失 | 供应商罚款或追偿 | 中 |
| 声誉损害 | 合规问题被公开影响品牌 | 中 |

### 1.2 合规目标

1. **ToS 规则覆盖率**：已接入供应商 = 100%
2. **高风险策略误放行率**：接近 0（以红线规则为硬约束）
3. **合规审计覆盖率**：关键管理操作 = 100%
4. **合规事件响应时间**：<= 1 小时

---

## 2. ToS 合规引擎架构

### 2.1 整体架构

```
┌─────────────────────────────────────────────────────────────────────────────┐
│                           ToS 合规引擎                                      │
├─────────────────────────────────────────────────────────────────────────────┤
│                                                                             │
│  ┌─────────────┐    ┌─────────────┐    ┌─────────────┐    ┌─────────────┐ │
│  │   请求入口   │───▶│  规则匹配   │───▶│  策略执行   │───▶│  审计记录   │ │
│  │  (Ingress)  │    │  (Matcher)  │    │ (Executor)  │    │  (Audit)   │ │
│  └─────────────┘    └─────────────┘    └─────────────┘    └─────────────┘ │
│        │                  │                  │                  │         │
│        ▼                  ▼                  ▼                  ▼         │
│  ┌─────────────────────────────────────────────────────────────────────┐  │
│  │                      规则配置中心                                      │  │
│  │  ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐          │  │
│  │  │ 供应商    │ │ 使用场景   │ │ 地区      │ │ 模型      │          │  │
│  │  │ 规则库    │ │ 规则库    │ │ 规则库    │ │ 规则库    │          │  │
│  │  └───────────┘ └───────────┘ └───────────┘ └───────────┘          │  │
│  └─────────────────────────────────────────────────────────────────────┘  │
│                                                                             │
└─────────────────────────────────────────────────────────────────────────────┘
```

### 2.2 核心组件

| 组件 | 职责 | 性能要求 |
|------|------|----------|
| **规则匹配器** | 根据请求上下文匹配适用的 ToS 规则 | P95 <= 5ms |
| **策略执行器** | 执行拦截/告警/放行动作 | P95 <= 2ms |
| **审计记录器** | 记录所有合规决策和操作 | 异步，不阻塞主流程 |
| **规则配置中心** | 管理 ToS 规则生命周期 | 支持热更新 |

### 2.3 执行位置

| 阶段 | 位置 | 动作 |
|------|------|------|
| **前置拦截** | API Gateway 入口 | 硬性规则拦截（不调用上游） |
| **请求转发** | Provider Adapter 层 | 软性规则告警 |
| **响应处理** | Billing Engine | 异常检测与追溯 |
| **后置审计** | 异步任务 | 合规审计与报告 |

---

## 3. 合规规则体系

### 3.1 规则分类

```
ToS 规则体系
│
├── 🔴 红线规则（Red Line）- 严格拦截
│   ├── 账号共享禁令
│   ├── 转售禁令
│   ├── 商业用途限制
│   └── 地区访问限制
│
├── 🟡 黄线规则（Yellow Line）- 告警+人工复核
│   ├── 使用量异常
│   ├── 调用模式异常
│   ├── 新型使用场景
│   └── 未明确允许的用途
│
└── 🟢 绿线规则（Green Line）- 通过
    ├── 合规使用场景
    ├── 标准 API 调用
    └── 已在白名单的场景
```

### 3.2 红线规则（严格拦截）

以下规则为硬性约束，任何匹配立即拦截：

| 规则ID | 规则名称 | 描述 | 供应商 |
|--------|----------|------|--------|
| R001 | 账号共享禁令 | 禁止将同一账号分享给多个用户 | 全部 |
| R002 | 转售禁令 | 禁止将 API 服务转售给第三方 | 全部 |
| R003 | 服务条款禁止地区 | 禁止从制裁/限制地区访问 | 全部 |
| R004 | 账户类型限制 | 禁止使用个人账户进行商业用途 | OpenAI |
| R005 | 并发限制 | 超过账户允许的并发数 | 全部 |
| R006 | 代理/转发禁令 | 禁止作为代理或转发服务 | Anthropic |
| R007 | 竞争对手禁止 | 禁止用于竞品服务 | 部分供应商 |

### 3.3 黄线规则（告警+人工复核）

以下规则触发告警，由合规团队人工复核：

| 规则ID | 规则名称 | 描述 | 默认动作 |
|--------|----------|------|----------|
| Y001 | 使用量突增 | 日环比增长 > 200% | 告警+复核 |
| Y002 | 调用模式异常 | 偏离正常使用模式 | 告警+复核 |
| Y003 | 新型使用场景 | 首次出现的使用场景 | 告警+复核 |
| Y004 | 大额账户 | 单账户配额 > $10,000 | 告警+复核 |
| Y005 | 跨地区访问 | IP 地理位置变更异常 | 告警+复核 |

### 3.4 规则配置示例

```yaml
# ToS 规则配置示例
rules:
  - id: "R001"
    name: "账号共享禁令"
    severity: "red"
    matchers:
      - type: "tenant_share"
        operator: "gt"
        threshold: 1
    action: "block"
    message: "检测到账号共享行为，违反供应商 ToS"

  - id: "Y001"
    name: "使用量突增"
    severity: "yellow"
    matchers:
      - type: "daily_usage_delta"
        operator: "gt"
        threshold: 2.0  # 200%
    action: "alert"
    message: "检测到使用量异常增长，请复核"
```

---

## 4. 供应商 ToS 清单

### 4.1 主要供应商 ToS 要点

| 供应商 | 关键限制 | 红线规则 | 合规策略 |
|--------|----------|----------|----------|
| **OpenAI** | 禁止转售、账户共享、商业用途需企业账户 | R001,R002,R004 | 严格拦截 + 账户分类 |
| **Anthropic** | 禁止代理转发、地区限制 | R001,R006 | 严格拦截 + 地区检测 |
| **Google Gemini** | 禁止竞争对手使用、需同意服务条款 | R001,R007 | 严格拦截 + 场景识别 |
| **Azure OpenAI** | 需企业协议、有限制使用条款 | R001,R004 | 企业账户验证 |
| **国内供应商** | 各家不同，需逐一审查 | 视具体条款 | 个性化配置 |

### 4.2 供应商合规矩阵

```
供应商          │ 账号共享 │ 转售 │ 代理 │ 地区限制 │ 商业用途
────────────────┼──────────┼──────┼──────┼─────────┼─────────
OpenAI          │   🔴     │  🔴  │  🟡  │   🔴    │   🟡
Anthropic       │   🔴     │  🔴  │  🔴  │   🔴    │   🟢
Gemini          │   🔴     │  🔴  │  🟡  │   🔴    │   🟡
Azure OpenAI    │   🔴     │  🟢  │  🟢  │   🟢    │   🟢
国内-通义       │   🟡     │  🟡  │  🟡  │   🔴    │   🟢
国内-文心       │   🟡     │  🟡  │  🟡  │   🔴    │   🟢
国内-智谱       │   🟡     │  🟡  │  🟡  │   🔴    │   🟢

🔴 = 严格禁止    🟡 = 需审核    🟢 = 允许
```

### 4.3 供应商规则更新机制

1. **定期扫描**：每周扫描供应商 ToS 更新
2. **版本追踪**：维护各供应商 ToS 版本历史
3. **变更影响评估**：ToS 变更后 24 小时内完成影响评估
4. **规则同步**：影响评估后 48 小时内完成规则更新

---

## 5. 合规策略执行模式

### 5.1 两种执行模式

| 模式 | 描述 | 适用场景 | 优缺点 |
|------|------|----------|--------|
| **严格拦截** | 红线规则立即拦截，不调用上游 | S4 初期、高风险场景 | 安全但可能误伤 |
| **告警+人工复核** | 触发规则仅告警，人工确认后拦截 | 成熟期、低风险场景 | 灵活但响应慢 |

### 5.2 推荐策略（评审建议）

根据评审意见，建议默认采用**"告警+人工复核"**模式：

| 阶段 | 执行模式 | 说明 |
|------|----------|------|
| S1 | 告警+人工复核 | 积累经验，完善规则 |
| S2 | 告警+人工复核 | 持续优化 |
| S3 | 逐步切换 | 黄线告警+复核，红线拦截 |
| S4 | 分类执行 | 红线拦截，黄线复核，绿线放行 |

### 5.3 模式切换触发条件

```
告警+人工复核 ──▶ 严格拦截

触发条件（满足任一）：
├── 30天内发生2次及以上合规事件
├── 供应商发出书面警告
├── 监管机构发布新规
└── 风险评分 > 80分

严格拦截 ──▶ 告警+人工复核

触发条件：
├── 连续60天无合规事件
├── 规则准确率 > 99%
└── 人工复核通过率 > 95%
```

---

## 6. 违规处理机制

### 6.1 违规分级

| 级别 | 定义 | 示例 | 处理方式 |
|------|------|------|----------|
| **P0-严重** | 违反红线，可能导致供应商封号 | 账号共享被检测 | 立即停止服务 + 通知 + 整改 |
| **P1-高** | 疑似违规，需立即复核 | 使用量突增 | 暂停服务 + 24小时内复核 |
| **P2-中** | 异常行为，需关注 | 调用模式偏离 | 告警 + 持续观察 |
| **P3-低** | 轻微异常 | 边界值触发 | 记录 + 不阻断 |

### 6.2 违规处理流程

```
检测到违规
      │
      ▼
┌─────────────┐
│  违规定级   │  自动/人工
└──────┬──────┘
       │
  ┌────┴────┐
  ▼         ▼         ▼         ▼
┌────┐  ┌────┐   ┌────┐   ┌────┐
│ P0 │  │ P1 │   │ P2 │   │ P3 │
└────┘  └────┘   └────┘   └────┘
  │       │        │        │
  ▼       ▼        ▼        ▼
立即停   24h     持续     记录
止服务   复核    观察    观察
  │       │        │        │
  ▼       ▼        ▼        ▼
通知     整改/   解除/   解除/
供应方   恢复    升级    保持
```

### 6.3 违规响应时效

| 违规级别 | 响应时间 | 解决时间 | 升级时间 |
|----------|----------|----------|----------|
| P0 | 5 分钟 | 1 小时 | 30 分钟 |
| P1 | 30 分钟 | 24 小时 | 4 小时 |
| P2 | 2 小时 | 7 天 | 48 小时 |
| P3 | 24 小时 | 30 天 | 7 天 |

---

## 7. 审计与报告

### 7.1 审计日志要求

| 审计项 | 内容 | 保留时间 |
|--------|------|----------|
| **规则命中日志** | 请求ID、规则ID、匹配结果、执行动作 | 1年 |
| **人工复核记录** | 复核人、复核结果、处理意见 | 3年 |
| **规则变更记录** | 变更人、变更内容、变更原因 | 3年 |
| **供应商通知** | 通知内容、响应动作 | 5年 |
| **违规事件** | 事件详情、处理过程、最终结果 | 5年 |

### 7.2 定期报告

| 报告类型 | 频率 | 内容 |
|----------|------|------|
| **合规周报** | 每周 | 规则触发统计、违规事件、处理情况 |
| **合规月报** | 每月 | 趋势分析、风险评估、规则优化建议 |
| **合规季报** | 每季度 | 完整合规评估、供应商 ToS 更新、体系改进 |
| **年度合规报告** | 每年 | 全面合规审计、重大事件回顾、体系成熟度评估 |

### 7.3 合规指标

| 指标 | 目标值 | 严重阈值 |
|------|--------|----------|
| 规则覆盖率 | 100% | < 95% |
| 红线拦截准确率 | >= 99.9% | < 99% |
| 误报率 | <= 5% | > 10% |
| 平均响应时间 | <= 30min | > 2h |
| 审计完整率 | 100% | < 99% |

---

## 8. 供应商账号导入合规

### 8.1 BYOA（Bring Your Own Account）合规检查

当客户导入自己的 LLM 账号时：

| 检查项 | 检查内容 | 处理方式 |
|--------|----------|----------|
| 账号类型 | 企业账户 vs 个人账户 | 个人账户商业用途需警告 |
| 使用权限 | 是否允许 API 访问 | 无权限拒绝 |
| 地区合规 | 账号注册地区是否合规 | 限制地区拒绝 |
| 账户状态 | 是否正常、是否有欠款 | 异常拒绝 |
| ToS 确认 | 客户确认遵守供应商 ToS | 需签署协议 |

### 8.2 凭证存储合规

| 要求 | 说明 |
|------|------|
| **加密存储** | API Key 必须加密存储（AES-256） |
| **访问控制** | 仅策略引擎可解密，禁止明文展示 |
| **日志脱敏** | 日志中禁止出现完整 API Key |
| **轮换机制** | 支持密钥轮换，轮换后旧密钥自动失效 |
| **审计日志** | 所有访问记录审计日志 |

---

## 9. 技术实现要点

### 9.1 性能优化

- **规则预编译**：规则在启动时编译为高效数据结构
- **缓存策略**：热点规则结果缓存 60 秒
- **异步执行**：合规检查异步化，不阻塞主请求
- **批量处理**：后置批量审计，减少实时开销

### 9.2 可观测性

| 指标 | 监控 |
|------|------|
| 规则匹配延迟 | P95 <= 5ms |
| 规则触发率 | 按规则维度统计 |
| 拦截成功率 | 拦截后上游调用数为 0 |
| 误报率 | 人工复核放行比例 |

### 9.3 高可用设计

- **规则服务无状态**：可横向扩展
- **配置中心高可用**：多副本 + 自动切换
- **降级策略**：合规服务不可用时默认放行 + 告警

---

## 10. 实施计划

### 10.1 S3 阶段：合规基础能力

| 时间 | 任务 | 交付 |
|------|------|------|
| W1-W2 | 合规引擎核心开发 | 规则匹配 + 执行 |
| W3 | 首批供应商规则配置 | OpenAI/Anthropic 规则 |
| W4 | 审计日志功能 | 合规审计能力 |

### 10.2 S4 阶段：合规体系完善

| 时间 | 任务 | 交付 |
|------|------|------|
| W1-W2 | 全供应商规则覆盖 | 全部已接入供应商 |
| W3-W4 | 人工复核工作流 | 告警 + 复核 + 处理 |
| W5-W6 | 定期报告功能 | 周报/月报/季报 |
| W7-W8 | 体系优化 | 规则准确率优化 |

---

## 11. 责任矩阵

| 任务 | 负责人 | 协作方 |
|------|--------|--------|
| 规则开发 | 平台工程 | 安全团队 |
| 规则配置 | 合规团队 | 产品 |
| 人工复核 | 合规团队 | 客服 |
| 供应商沟通 | 法务 | 商务 |
| 审计报告 | 合规团队 | 运营 |

---

**章节状态**：初稿
**关联文档**：
- `llm_gateway_subapi_evolution_plan_v2_2026-03-17.md`
- `llm_gateway_product_technical_blueprint_v1_2026-03-16.md`
