# 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`