# MedHarness Console · 产品详细设计文档

> **状态**：产品详细设计（draft · 已按**四目标「安全·划算·审计·稳定」**重设计定位对齐；取代旧"合规+安全"双轮表述）
> **定位锚点**：[unified-gateway.md](../architecture/unified-gateway.md) 架构 + [gateway-substrate-selection.md](../architecture/gateway-substrate-selection.md) 重设计 RFC · 本文聚焦"产品形态 + 控制台 UX"
> **配套原型**：[prototype/console-demo.html](../../prototype/console-demo.html)（单文件可点击 · 浏览器直开）
> **维护**：技术委员会 + 合规委员会

---

## 0. 产品定位（锁定）

> **MedHarness = 医疗大模型流量网关。**
> 不管是开发者用 Claude Code / Codex 写代码，还是业务系统用 Dify / ComfyUI 跑生产工作流——只要它调大模型，流量就必经同一个网关。一套部署、一条 base_url，让每一次调用都满足**四个目标：安全 · 划算 · 审计 · 稳定**。**MedHarness Console 是这个网关的控制台**：让研发负责人一眼看懂这四件事、4 小时交监管包、不碰 YAML 改策略。

### 0.0 四大目标（产品价值框架）

> 注：「闭环」只是治理/运营方式，**不是目标**；本文以下述四目标为框架。

| 目标 | 客户得到 | 主要能力 | 现状 |
|---|---|---|---|
| **① 安全**（合规 + 防护） | PHI 不违规出境、调用受控、攻击进不来 | 4 闸门（检测/脱敏/准入/注入）+ 出站响应检查 | ✅ 强（v0.5 已建） |
| **② 划算**（成本） | 同样的活更划算 | 脱敏后低敏流量走境内低成本池 + 多渠道择优 + 缓存 + 配额护栏 | 🟡 RFC→本次转承诺 |
| **③ 审计**（可追溯） | 查得清、改不了、交得出 | 全量留痕 + 哈希链 + WORM + 一键监管包 | ✅ 最完整 |
| **④ 稳定**（可用性） | 网关不拖垮生产 | 性能开销有界 + provider 故障切换 + 熔断限流 + fail-closed 不下线 + 审计不丢 | 🟡 单实例健壮性（HA 留 v1.0） |

> **四目标的关系**：安全是护城河；审计是安全的证据层（v0.5 最强，故独立成目标）；划算与安全**同向**——脱敏把 PHI 剥掉后，低敏流量才**有资格**安全地走低成本池；稳定是前提——但 **fail-closed 优先级永远 > 划算与可用**（宁可拒绝/降级，绝不为省钱或保活而放行危险请求）。出处见架构 RFC「底座负责接得广、跑得稳、算得清，我们死磕分级路由+脱敏+审计+治理」（[gateway-substrate-selection.md](../architecture/gateway-substrate-selection.md)）。

### 0.1 三条定位边界（已拍板，作为设计约束）

| 维度 | 取舍 | 含义 |
|---|---|---|
| **行业** | 医疗垂直，**不去医疗化** | HIPAA + PIPL + 健康医疗数据安全指南是护城河 · PHI 是一等公民，不是"敏感数据的一类" |
| **场景** | "通用" = **跨场景**（开发期 + 生产期），**非跨行业** | 一个 IDE/平台无关的网络网关，同时罩住 dev（Claude Code/Codex）与 prod（Dify/ComfyUI/自研） |
| **范畴** | **合规 + 安全**，不止合规 | 合规（满足监管）+ 安全（防攻击/防滥用/防输出事故）双轮 |

### 0.2 北极星 vs 现状（诚实护栏）

产品对外讲愿景，但界面与文档**绝不把未建能力标成已完成**：

```
北极星：医疗大模型流量网关 · 四目标(安全·划算·审计·稳定) · 开发期 ↔ 生产期
────────────────────────────────────────────────────────
✅ 今天 (v0.5.0-edge)：安全 + 审计 强 —— 4 闸门 + WORM 审计 + 容器化（IDE Hook 强制）
🟡 本次重设计：划算(分级路由低成本池/缓存/多渠道) + 稳定(单实例健壮性) 从无到有提为目标
🚧 演进中：IDE 无关网络网关 / 流式 SSE / 出站安全扫描 / 多模态 PHI / 滥用防护
⏭️ v1.0：HA 多副本 + 自动 failover（稳定的"高可用"部分，本期明确不做）
```

**Console 设计原则**：可以**先于后端**把目标形态画全（原型/UX 验证），但凡渲染"演进中"能力的视图，必须打 `🚧 规划` 标，并在数据源接通前以合成 mock 标注——绝不让 demo 变成过度承诺。

---

## 1. 它解决什么 · 威胁模型（合规 + 安全 × 开发期 + 生产期）

产品价值 = 在 LLM 流量的咽喉点，挡住两类问题：**合规问题**（监管罚你）与**安全问题**（攻击者/事故坑你）。生产期把合规问题**放大**，并**新增**安全问题。

### 1.1 威胁矩阵（这就是 Console 要可视化的东西）

| 威胁 | 类别 | 方向 | 开发期 | 生产期 | 现有能力 | 缺口（商业化新建） |
|---|---|---|---|---|---|---|
| PHI 入站泄漏 | 合规 | 入站 | 中 | 极高 | ✅ 闸门一 phi-detector | 流式 SSE 边扫边转 |
| PHI 主动带入 | 合规 | 入站 | 中 | 高 | ✅ 闸门二 desensitize | RAG 入库时脱敏 |
| 模型越权 / 出境 | 合规 | 入站 | 中 | 高 | ✅ 闸门三 model-router | （直接复用） |
| 审计可重放 | 合规 | 全程 | 高 | 极高 | ✅ audit-log WORM | （直接复用） |
| **多模态 PHI** | 合规 | 入站 | 低 | **高** | ❌ 无 | DICOM/影像/OCR 脱敏（Phase C·最难） |
| **RAG prompt 注入** | 安全 | 入站 | 低 | **极高** | 🟡 第四层（dev 向·25 case） | 生产注入 corpus + 来源分级隔离 |
| **LLM 输出安全** | 安全 | **出站** | 低 | **高** | ❌ 无 | 出站扫描：PHI 回流 / 有害内容 / 幻觉医嘱 |
| **调用滥用 / 成本** | 安全 | 入站 | 低 | 中 | 🟡 rate limiter（per role） | 生产配额 + 异常调用检测 |

加粗行 = 生产期才真正凸显、且基本是新建——这就是商业版相对开源版的**增量清单**。

### 1.2 一个关键产品洞察：流量是**双向**的

开源版只管"入站"（开发者 prompt 出站到 LLM 前扫 PHI）。生产期必须管**出站**——**LLM 的回答**同样危险：

- 模型把 RAG 上下文里的 PHI **原样回吐**给患者端
- 模型**幻觉**出一条不存在的医嘱/诊断，直接进了业务系统
- 模型被注入后**输出有害内容**

所以生产网关是**双向闸门**：请求方向扫 PHI + 路由，响应方向扫输出安全。Console 的流量监控必须画出这条回路——这是与开源版最直观的差异点。

---

## 2. 目标用户与核心诉求（Job-to-be-Done）

> **角色精简（设计判断）**：旧版设 3 角色（CTO/合规官/工程师）。但 ≤30 人医疗公司的真实头数：既没有独立 SecOps，**也很少有独立于技术负责人的专职合规官**——技术负责人通常就是合规 owner。沿用旧版"不设客户没有的岗位"原则，**进一步收敛为 2 个 Console 角色**。工程师只用 base_url，不进 Console。

| 角色 | 一句话画像 | 最怕什么 | 来 Console 要什么 | 默认首屏 |
|---|---|---|---|---|
| **研发负责人**（吸收旧 CTO + 合规官，兼买单+审批） | 为安全/划算/审计/稳定四件事背锅的人 | 监管罚款 4% · LLM 事故上新闻 · 成本失控 · 网关拖垮生产 | **一屏四目标**：今天安全吗/省了多少/查得清吗/稳不稳 + 4 小时交监管包 | 🏠 总览 |
| **系统管理员**（运维 + 接入） | 装服务、接上游、配渠道令牌、修红灯的人 | 装不起 · 改错配置开后门 · 上游挂了拖垮全局 | **不碰源码**接入与运维 + 看健康；改低危项 | 🔌 接入 |

- **工程师 = 终端使用者，不进 Console**：仅把 base_url 指向网关 + 用个人令牌，全程无感（这决定了"会不会被绕过"）。
- **若客户确有专职合规官**：用研发负责人角色或其**只读审计视图**，不新增主角色。
- 两个角色都横跨 **dev + prod**：研发负责人看分层健康与成本，系统管理员既配 dev 也配 prod 上游。
- **权限分界**：高危合规/安全/成本上限变更 → 研发负责人审批；接入/渠道/令牌/低危限流 → 系统管理员单签（详见 §5.4 治理矩阵）。

---

## 3. 设计铁律（6 条）

| # | 铁律 | 为什么 | 落地 |
|---|---|---|---|
| 1 | **一个数字定生死** | CTO 没空看 20 个指标 | 首屏最大元素 = **综合健康分 0-100**（下钻拆成合规分 + 安全分） |
| 2 | **角色化默认视图** | 不同人来要的不同 | 顶部角色切换 → 默认页随之变 |
| 3 | **渐进披露三层** | 一屏塞满 = 没人看 | 概览卡片 → 钻取 → 详情抽屉 |
| 4 | **零术语门槛** | "PHI recall 1.0" 业务听不懂 | "患者信息泄漏拦截率 100%"；"prompt injection"→"恶意指令注入" |
| 5 | **每个红灯给出路** | 报警不给方案 = 焦虑制造机 | 每个红灯卡带 `[点这里看怎么修]` → runbook |
| 6 | **🛡️ 永不显示原始 PHI** | Console 自己不能成泄漏点 | 顶栏常驻"本页 0 PHI"绿标 · 全程只显示占位符 + 哈希 + 聚合数 |
| 7 | **🟪 合规与安全分色不混淆** | 两类问题处置路径不同 | 合规=青绿、安全=紫罗兰、状态=红黄绿 · 视觉上一眼区分"是漏 PHI 还是被攻击" |

> 铁律 6 是红线，铁律 7 是因加了"安全"维度而新增的：合规问题（漏 PHI）走脱敏/阻断，安全问题（被注入/被滥用）走隔离/熔断——处置不同，界面就要分色，免得 CTO 把两类问题混为一谈。

---

## 4. 信息架构

```
MedHarness Console（按四目标组织 · 2 角色）
├── 🏠 总览            ← 研发负责人落点 · 四目标一屏(安全分/成本/审计链/稳定) + 红灯清单
│   ── 安全 ──
├── 📊 流量监控        ← 杀手锏 · 双向桑基图(入站 PHI + 出站输出安全) + 双色事件流
├── 🔍 审计与报表      ← 审计 · 血缘图(含出站段) + 哈希链 + 监管应对包导出(并入旧"报表中心")
│   ── 划算 ──
├── 💰 用量与成本      ← 划算【新增】· 成本看板 + 渠道比价择优 + 缓存省钱 + 成本护栏/告警
├── 🔌 接入            ← 系统管理员落点 · 上游/渠道(多路·权重·单价)/令牌(配额)/用户
│   ── 治理 / 运维 ──
├── ⚙️  策略配置        ← 合规 + 安全 + 成本护栏策略 · diff 预览 + 审批流
└── 🛠 系统            ← 系统管理员 · 部署健康/备份/升级/KMS（稳定的运维面）
   (🚦 研发流水线       ← 可选模块·默认关：内部 AI Coding 治理产物，纯网关客户多数不用)
```

**与旧 IA 的差异（按四目标重组）**：
- **新增 💰 用量与成本**：「划算」从无到有提为目标，需要可运营的家（看板/比价/缓存/护栏）。
- **审计追溯 + 报表中心合并**：对小团队"查记录"与"出监管材料"是同一条证据链，拆两个菜单冗余。
- **🚦 研发流水线降为可选**：工程师不进 Console，该视图是内部 SOP 产物，非纯网关客户主功能。
- **稳定**目标分布在「总览(稳定卡)」+「系统(健康/备份/升级)」，不单列一级。

**导航即权限**：研发负责人审批高危项、看全量；系统管理员接入/运维、改低危项；高危项对系统管理员灰显而非隐藏（"有这能力，只是需研发负责人"）。

---

## 5. 核心页面详细设计

### 5.1 🏠 总览（研发负责人落点）

**唯一目的**：3 秒回答四目标——**今天安全吗 / 省了多少 / 查得清吗 / 稳不稳**。安全用一个综合分（下钻合规/安全两子分）；划算/审计/稳定各一张状态卡。下方「本月小结」用**结果**说话（拦截 N 次泄露、省 ¥X、留痕 K 条），不写产品叙事。

```
┌──────────────────────────────────────────────────────────────┐
│  综合健康分                                                     │
│        ╭─────────╮       合规分 96 🟢   安全分 91 🟡            │
│        │   94    │  🟢   ├─ PHI 拦截 100%   ├─ 注入阻断 100%    │
│        │ / 100   │ 健康  ├─ 脱敏 正常       ├─ 输出扫描 🚧规划  │
│        ╰─────────╯       ├─ 路由 11/11      ├─ 多模态 🚧规划   │
│   较昨日 +2 · 本周 0 漏出 └─ 审计链 完整     └─ 滥用 1 次熔断    │
│                                                                │
│  ── 合规闸门 ──────────────  ── 安全防线 ──────────────────    │
│  🟢 闸门一 PHI 扫描 100%     🟢 注入防御 100%                   │
│  🟢 闸门二 脱敏 0.02ms       🚧 输出安全扫描（规划 演进中）      │
│  🟢 闸门三 路由 11/11        🚧 多模态 PHI（规划 · DICOM/影像）  │
│  🟢 审计 WORM 链完整         🟡 滥用防护 今日熔断 1 次           │
│                                                                │
│  ⚠️ 需要注意（1）                                              │
│  🟡 prod-comfyui 今日 1 次调用滥用熔断 → [点这里看怎么修]       │
└──────────────────────────────────────────────────────────────┘
```

**设计要点**：
- 综合分是绝对最大元素（铁律 1）；右侧把它拆成**合规分 + 安全分**两条，各自下挂明细
- 闸门分两组：合规（青绿）/ 安全（紫罗兰），呼应铁律 7
- `🚧 规划` 明确标出未建能力（铁律 0.2 诚实护栏），不冒充已完成
- 健康分算法可解释：`100 − PHI漏出×50 − 安全事件未处置×20 − 高危配置未审批×10 − 闸门/防线降级×5`

### 5.2 📊 流量监控（产品杀手锏 · 双向桑基）

**这是销售/融资 demo 核心**——让客户**亲眼看到** PHI 被一层层拦下、**且** LLM 的回答也被回扫。

**入站桑基（请求方向）**：上游 → PHI 扫描 → 脱敏 → 路由 → 下游
**出站桑基（响应方向 · 生产网关特有）**：下游 → 输出扫描（PHI 回流 / 有害 / 幻觉）→ 上游

```
入站 ▶                                            ◀ 出站 (🚧 规划)
上游          闸门(合规)                下游          输出扫描(安全)
┌────────┐                                          ┌──────────────┐
│Dify RAG│━━┓  ┌──────────────┐   ┏━→ 私有 Qwen ──→│ PHI 回流 ✓ 0  │
│1.2k/h  │  ┣━→│ PHI 扫描+脱敏 │━━━┫               │ 有害内容 ✓ 0  │
└────────┘  ┃  │ 命中47→脱敏   │   ┗━→ 境外(脱敏12) │ 幻觉医嘱 🟡 2 │
┌────────┐  ┃  │ 拦截3→阻断🔴  │                    └──────────────┘
│ComfyUI │━━┫  └──────────────┘    🟪 注入拦截 8（RAG 来源）
│380/h   │  ┃                       🟪 滥用熔断 1（comfyui 突发）
└────────┘  ┛   ✗ 阻断3(未脱敏L4影像 · 🚧多模态规划)

双色实时事件流（合规=青绿 / 安全=紫）
🟢 14:23:01 dify-rag    [合规] L2 脱敏后路由 qwen-max      routing#a1b2
🟪 14:23:00 dify-rag    [安全] RAG 来源含恶意指令 → 隔离   inject#c3d4
🔴 14:22:59 comfyui     [合规] L4 未脱敏 → 阻断            阻断#e5f6
🟡 14:22:58 prod-bot    [安全] 输出疑似幻觉医嘱 → 标记复核  output#g7h8
```

**设计要点**：
- 顶部 `[全部] 开发期 生产期` 三态过滤——展示"一个网关通吃两个场景"
- 入站/出站**两条桑基**，出站段打 `🚧 规划` 标
- 桑基"流"用 CSS 动画粒子；阻断粒子撞到红闸门停下
- 事件流**双色**：合规事件青绿、安全事件紫——一眼区分"漏 PHI"还是"被攻击"（铁律 7）
- 全程仅占位符——demo 时客户问"那张三呢"，答："你在我界面上永远看不到张三，闸门二第 ④ 步就加密成 `__NAME_a1__` 了"（铁律 6）

### 5.3 🔍 审计与报表（研发负责人落点）

**唯一目的**：监管说"回放某条调用"，4 小时交包。血缘图**含出站段 + 安全事件**。

```
┌──────────────────────────────────────────────────────────────┐
│ 审计追溯       搜索[routing#a1b2___]🔍   [导出监管包]          │
├──────────────────────────────────────────────────────────────┤
│ 血缘图（一条流量走完全程 · 双向）                               │
│ 入站: 上游请求→闸门一命中→闸门二加密→闸门三路由→下游            │
│ 出站: 下游响应→输出扫描(PHI回流✓/幻觉🟡)→回上游  🚧规划        │
│ 安全: 🟪 该请求 RAG 来源经注入扫描 ✓ 无恶意指令                 │
│        哈希链 ✓ 完整（block #18,432）                          │
│                                                                │
│ 调用详情                                                       │
│ • prompt(脱敏): "帮我看下 __NAME_a1__ __ID_b2__ 的检验异常项"   │
│ • response(脱敏+输出扫描): "...建议复查，未检出 PHI 回流"        │
│ • 模型: qwen-max-2026-01(私有) · L3 · allowlist✓ · 异构✓        │
│ • 当前哈希: 9f3a...c4d2  ← 上一条: 7b1e...a8f0                  │
└──────────────────────────────────────────────────────────────┘
```

**设计要点**：血缘图横向分段对应双向闸门；`[导出监管包]` 一键生成 AUDIT_BUNDLE（prompt/response history 脱敏版 + model versions + routing/安全决策 + 哈希链）；仍然 0 PHI（prompt/response 均占位符版，原始反查走受控环境界外授权）。

### 5.4 ⚙️ 策略配置（配置中心 · 合规策略 + 安全策略）

**唯一目的**：不碰 YAML 改策略，且改不出后门。配置分**合规**与**安全**两组。

```
┌──────────────────────────────────────────────────────────────┐
│ 策略配置                              [YAML 视图] [保存草稿]    │
├──────────────────────────────────────────────────────────────┤
│ ─ 合规策略 ─        │  生产环境策略 (context=prod)             │
│ ▸ 上游接入          │  ┌────────────────────────────────────┐ │
│ ▾ 场景策略          │  │ PHI 命中处理                        │ │
│  ▶ prod ←           │  │  ○ 仅警告  ● 硬阻断  ○ 警告+脱敏    │ │
│ ▸ 模型白名单        │  │ 数据分级强制  ☑L3 ☑L4 ☐L2          │ │
│ ▸ PHI 字段          │  └────────────────────────────────────┘ │
│ ─ 安全策略 ─        │  ┌────────────────────────────────────┐ │
│ ▸ 注入防御          │  │ 注入防御     ● 阻断  ○ 警告          │ │
│ ▸ 输出安全🚧        │  │ 输出扫描🚧   ● 扫PHI回流 ☑幻觉标记  │ │
│ ▸ 调用配额          │  │ 调用配额     prod 200 QPS / 异常熔断 │ │
│ ─ 治理 ─            │  └────────────────────────────────────┘ │
│ ▸ 保留策略          │                                          │
│                     │  ⚠️ 影响 2 个生产上游 · 高危→合规会签     │
│                     │  变更预览(diff):                         │
│                     │   - block_on_injection: warn             │
│                     │   + block_on_injection: block            │
└──────────────────────────────────────────────────────────────┘
```

**配置 UX 三原则**：① 改前看影响（"影响 2 个生产上游"）② diff 预览（像 code review）③ 嵌入审批流（高危改完不直接生效 → 会签 → 落审计 → 可回滚）。

**配置治理矩阵**（界面据此决定按钮文案）：

| 配置类 | 风险 | 审批人 | 按钮 |
|---|---|---|---|
| upstreams / rate_limit / 成本上限 | 低 | 系统管理员单签 | `[保存]` |
| policies / gates 阈值（含**注入/输出/配额**） | 高 | 研发负责人审批 | `[提交审批]` |
| allowlist 加模型 | 高 | 研发负责人审批 | `[提交审批]` |
| fields PHI 字段 | 最高 | 研发负责人 +（外部）合规/法务会签 | `[提交审批]` |
| retention 缩短保留期 | 最高 | 研发负责人 +（外部）法务 | `[提交审批]` |

### 5.5 🔌 上游接入

3 步接入、零代码改造：选协议（openai/anthropic）→ 选场景（dev/prod）→ 生成 `base_url + key` → 复制给 Dify/ComfyUI/IDE。表格列：名称 / 场景 / 协议 / 状态 / 今日流量 / **PHI 拦截 + 安全事件**。

**模型与渠道**：上游（应用）接入之外，本页还管「模型与渠道」——同一模型可挂多渠道，按价/延迟/健康择优；每渠道挂扩展属性（数据等级上限 / 通道 / 境内外 / 留存 / 单价 / 权重）。**接什么医疗模型、怎么接、进哪个通道**详见 [医疗大模型选型与接入](medical-model-catalog.md)（含通道优先选型铁律、2026 模型菜单、new-api 接入方式、起步 allowlist 推荐、准入流程）。

### 5.6 💰 用量与成本（系统管理员/研发负责人 · 服务「划算」目标）

**唯一目的**：把"省了多少、还能更省"讲清。组件：成本 KPI（本月成本/较直连省比/缓存命中/日上限余量）→ 成本构成（按通道 clean/PHI、按模型）→ **渠道比价择优**（同模型多渠道按单价/延迟/健康加权，复用 new-api 渠道加权）→ 成本护栏（日上限+限流+超额告警）→ 省钱建议（简单任务按需降到更省的小模型）。**红线**：省钱建议绝不跨 allowlist/lane；敏感通道永不为省钱出境。

### 5.7 🚦 研发流水线（可选模块 · 默认关）

复用 v0.5.0-edge change 看板（12 步 SOP + Step 0/10/12 合规闸门 + 红队 drill）。**仅当客户也用本产品治理自己的 AI Coding SOP 时开启**——纯流量网关客户多数不用，故默认关、不占主导航。

---

## 6. 视觉语言

| 元素 | 规范 |
|---|---|
| **主色** | 深蓝 `#0B1F3A`（信任/医疗）|
| **类别色** | 🟢 合规 `#0FB5A6`（青绿）· 🟪 安全 `#7C3AED`（紫罗兰）—— 铁律 7 |
| **状态色** | 健康 `#22C55E` / 注意 `#F59E0B` / 危险·阻断 `#EF4444` |
| **演进标** | `🚧 规划` 灰底标签，贴在未建能力上（诚实护栏） |
| **健康分** | 唯一允许的超大字号（96px+）· 圆环进度 |
| **数据展示** | 占位符 `__NAME_a1__`（等宽+浅青底）· 哈希 `routing#xxxx`（灰） |
| **动效** | 双向桑基粒子流 · 新事件淡入 · 阻断/熔断抖动 · 克制不炫技 |

---

## 7. 关键交互流程

### 7.1 demo 故事线（销售/融资 90 秒脚本 · 已含安全维度）
1. **态势** → "94 分，合规 96 安全 91，绿的" （铁律 1）
2. **流量监控** → 入站桑基粒子流动 → "这是你公司此刻真实的 LLM 流量" （杀手锏）
3. 指红色阻断 → "ComfyUI 想发一张没脱敏的 L4 影像，被合规闸门挡了"
4. 指紫色事件 → "这条是 RAG 知识库里被人塞了恶意指令，被安全防线隔离了" （安全维度，开源版没有）
5. 指出站段 → "连模型的**回答**我们都回扫——防它把患者信息原样吐回去、或幻觉出假医嘱" （生产特有）
6. 客户问"患者姓名呢" → 指占位符 → "你在我界面永远看不到张三，这是设计" （铁律 6 = 信任）
7. **审计追溯** → `[导出监管包]` → "监管来了，4 小时这包交出去"
8. **策略配置** → 改个开关 → diff + "需会签" → "改配置像 code review，改不出后门"

### 7.2 红灯 → runbook · 7.3 配置审批闭环
任意红/黄/紫卡片 → `[点这里看怎么修]` → 跳 runbook；高危配置改完 → diff → 提交 → 会签 → 生效+落审计 → 可回滚。

---

## 8. 数据边界与安全约束（红线）

| 约束 | 落地 |
|---|---|
| **永不显示原始 PHI** | 全界面只显示占位符 + 哈希 + 聚合数（含**出站 response** 也是脱敏版） |
| **本页 0 PHI 绿标** | 顶栏常驻 · 对客户/审计可见的承诺 |
| **原始反查需授权** | 走受控环境单独授权流，**不在 Console 界面内** |
| **Console 操作落审计** | 看了哪条审计、改了什么配置、导出哪个包 → 全落 audit-log |
| **角色最小权限** | 系统管理员不能审批高危合规/安全变更（研发负责人审批）· 不可用项灰显而非隐藏 |
| **安全事件不外泄细节** | 注入样本、攻击 payload 仅显示分类与处置，不在界面回显原文（防二次传播） |

---

## 9. 原型说明与待办

**当前原型** [prototype/console-demo.html](../../prototype/console-demo.html) 已实现：态势（健康分+闸门卡）/ 流量监控（入站桑基+事件流）/ 审计 / 配置 / 上游 / 角色切换 / 0 PHI 绿标。

**本次四目标重设计后，原型需同步（下一步）**：
- [ ] 总览：从"综合分"升级为**四目标卡**（安全/划算/审计/稳定）；闸门卡 6 个；底部「本月小结」用结果说话
- [ ] 导航：按 **2 角色**（研发负责人/系统管理员）+ 四目标重组；新增 **💰 用量与成本** 屏；研发流水线降为可选
- [ ] 流量监控：加**出站桑基段** + 事件流**双色** + 注入/滥用/输出事件类型
- [ ] 策略：合规 / 安全 / **成本护栏** / 治理审批四组；审批矩阵改 2 角色
- [ ] 全局：**移除 new-api 转售 UI**（注册/支付/订阅/兑换/充值/钱包/社交登录）；术语客户化（见界面用语规范）；未建能力 `🚧` 标
- [ ] 品牌：MedHarness（非 MedGate）；保留 0 PHI 绿标

> 原型同步是独立一步（UX 验证）；文档先把目标形态定全（含 §11 fork 处置矩阵），原型按此追平。

---

## 10. 与现有资产的关系 + 路线图（诚实）

| 现有（v0.5.0-edge 已建） | Console 角色 | 类别 |
|---|---|---|
| 闸门一/二/三 MCP 内核 | 态势"合规闸门"组 + 入站桑基 | 合规 |
| audit-log WORM + 哈希链 | 审计追溯页血缘 + 哈希链 | 合规 |
| prompt-injection-scan（dev 向） | 态势"安全防线·注入"卡 + 紫色事件 | 安全 |
| model-router rate limiter | 态势"安全防线·滥用"卡 | 安全 |
| MODEL_ALLOWLIST / 31 fields | 配置中心"模型白名单"/"PHI 字段" | 合规 |

| 新建（规划 · 商业化才需要） | 阶段 | 类别 |
|---|---|---|
| IDE 无关 egress gateway（协议归一化） | Phase A | 基础 |
| 流式 SSE PHI 扫描 + Console 流量数据管道 | Phase B | 合规+UX |
| **输出安全扫描**（出站：PHI 回流/有害/幻觉） | Phase B/C | **安全** |
| **多模态 PHI**（DICOM/影像/OCR） | Phase C（最难） | **合规** |
| RAG 注入生产 corpus + 来源分级隔离 | Phase C | **安全** |
| 生产配额 + 异常调用检测 | Phase B | **安全** |

**一句话**：开源版埋好了"内核可复用"的伏笔（L5 横切设计）；商业版长出"生产期不可绕的强制点"+"双向闸门"+"安全防线"——这是护城河，也是本设计文档围绕的增量。

---

## 11. new-api 功能继承全景 + 处置矩阵（fork 底盘）

> **前提**：本产品是 **new-api 深度 fork**——我们**天生继承 new-api 的整个功能面**。因此产品边界不是"从零造什么"，而是对 new-api 的每个功能做**处置决策**：继承 / 扩展 / 新增 / 移除 / 重塑。本节是工程底盘，所有页面/能力都应能回指到这张矩阵。

### 11.1 new-api 全功能面（fork 继承基线）

| 模块 | 能力 |
|---|---|
| **网关转发** | `relay` 转发/路由 · `channels` 渠道（健康检测 / 亲和缓存 / 测试 / 计费）· `model` 元数据/同步/缺失补全 · 格式转换（OpenAI ⇄ Claude ⇄ Gemini） |
| **用户与认证** | 登录/注册/OTP/passkey/二次验证 · `OIDC` · custom-oauth · GitHub/Discord/LinuxDO/Telegram · `users` · `groups` · profile |
| **令牌与配额** | `keys/tokens`（模型限制/分组）· `group` 分组 · `quota` 额度 |
| **变现（转售）** | billing · pricing · ratio 倍率 · subscriptions · payment(Stripe/EPay/Creem/Waffo) · redemption 兑换码 · topup 充值 · wallet · checkin 签到 · aff 邀请返利 |
| **可观测** | `dashboard` · `usage-logs` · `rankings` · `perf_metrics`/performance |
| **多模态/任务** | image · midjourney · video · `task` 异步任务 |
| **工具/运维** | `playground` 在线调试 · `system-settings`(auth/billing/general/models/operations/security/site) · `setup` 初始化 · deployment · console_migrate |
| **集成** | **`codex_oauth`/`codex_usage`（Codex 原生集成）** |

### 11.2 处置矩阵（5 类）

| 处置 | 模块 | 说明 |
|---|---|---|
| ✅ **继承（不动）** | relay · channels · users/groups · OIDC/passkey · tokens · playground · system-settings · setup · 多模态 · **Codex 集成** | 直接作底盘 |
| ➕ **扩展（加字段/逻辑）** | channels(+数据等级/lane/境内外/留存策略) · tokens(+`allowed_data_levels`) · dashboard/usage-logs(+合规/安全/成本维度) · relay(焊入 4+1 闸门) · billing/quota(转为**内部成本分摊 + 成本护栏**，服务"划算") · models(+allowlist/分级) | 服务四目标 |
| 🆕 **新增（护城河）** | phi-detector · desensitize · model-router 策略(分级路由/lane/异构) · injection-scan · outbound-safety · audit(哈希链/WORM/监管包) · 审批工作流 | 我们的全部价值 |
| 🔴 **移除/禁用（合规硬要求，已拍板）** | **自助注册 · 对外支付(Stripe/EPay/Creem/Waffo) · 订阅售卖 · 兑换码 · 充值 · 钱包 · 签到 · 邀请返利 · 对外定价页 · 社交登录(Discord/LinuxDO/Telegram)** | 我们是**企业受控内部网关，不对公众转售 API**；与 [gateway-substrate-selection.md §F](../architecture/gateway-substrate-selection.md)「不做自助注册/充值/发 key」一致；这些是攻击面 + 合规风险，**fork 时移除或硬禁用** |
| 🎨 **重塑（reskin）** | dashboard→🏠 总览(四目标) · usage-logs→🔍 审计 + 💰 用量与成本 · channels/keys/users→🔌 接入 · system-settings→🛠 系统 · 新增 📊 流量 / ⚙️ 策略 屏 | 医疗化 UI（[UI 视觉规范](../../README.md) 另述） |

### 11.3 关键判断

- **变现≠移除全部计费**：移除的是「**对外转售**」（自助注册/支付/订阅/兑换/充值/钱包/邀请）；**内部 quota/billing 保留并复用**——正好做部门成本分摊与成本护栏，**喂"划算"目标**。
- **认证收敛**：保留 **OIDC + passkey**（企业级）；关闭自助注册与社交登录（消费级、受控租户不需要）。
- **认证/审计/可观测/Codex 集成是白捡的**：这些 new-api 已做好，我们继承即用，不重复造——研发集中在 5 闸门 + 分级 + 审计链 + 审批层。
- **fork 维护纪律**：移除项尽量"禁用开关 + 路由隐藏"而非大改源码，降低对上游 rebase 的冲突面（详见 ADR-18 fork 维护）。
