主题
06|架构师委员会评审与闭环台账
一句话:闭环台账把口头判断换成可对账的五元组:唯一 Owner、目标窗口、可复现证据包、验收人签字、回归条件,50 项缺口与 25 项 P0 逐个挂在 E0 至 E4 的证据等级上;约束是状态不随文档移动——改口径、删“POC 字样”都不推进台账,Verified 只能由 E3/E4 证据与签名换来,当前 0/25 的如实状态就是生产 No-Go。
定位:本篇是 06 专栏的评审与闭环篇,也是所有“是否可上线/可试点”状态的唯一台账。
05定义架构基准与闸门,本篇记录委员会发现、修正动作、Owner、证据与状态;两者冲突时,以源码事实与05的架构基准为准,以本篇的证据状态为准。 评审日期:2026-10-26 评审形式:桌面评审(Desk Review)。由 AI Infra 架构师牵头,按六个视角分角色交叉审阅;不等同于企业正式评审会签,也不替代安全、法务、合规的实际签字。 评审输入:00–05、10–16、HiMarket 源码快照3a63fc5、本地 HiMarket/RAGFlow/mem0 实证记录、08 专栏(QwenPaw 数字分身)可复用原则。 总体结论:方向正确,有条件通过内部试点;生产上线 No-Go。 当前最大风险不是功能缺口,而是证据缺口与文档口径越权——把设计态、源码存在、单机 POC 写成了生产能力。
一、评审范围、方法与证据分级
1.1 评审范围
| 范围 | 文档 | 评审重点 |
|---|---|---|
| 总纲与底座 | 00–04 | 定位、源码事实、控制面/数据面边界、订阅链口径 |
| 架构基准 | 05 | 身份/凭证、授权传播、配置发布、SLO/容量/灾备、计量审计 |
| 知识与记忆 | 10–13 | ACL、SSRF、版本基线、质量评测、身份绑定、删除与投毒 |
| 目标态施工图 | 14–16 | 包皮边界、模块需求、权限模型、里程碑与闸门的映射 |
1.2 证据分级(E0–E4)
| 等级 | 定义 | 可支撑的结论 | 不能支撑的结论 |
|---|---|---|---|
| E0 | 文档声明、设计推演、外部资料 | 方案可行性讨论 | 任何“已实现/已验证” |
| E1 | 源码、配置、接口、DTO、注解存在 | “代码具备该能力/存在该风险” | “部署后可用” |
| E2 | 单机/单租户 POC 链路跑通 | “happy path 可演示” | 多租户隔离、HA、容量、生产安全 |
| E3 | 负向测试、越权测试、故障注入、压测、恢复演练 | 隔离/韧性/容量结论 | 长期生产稳定性 |
| E4 | 生产运行、审计抽样、计量对账、SLO 实绩 | 生产准入与运营结论 | 未覆盖场景 |
硬规则:
- P0 中的身份、越权、凭证、删除类闸门,最低要 E3;只有 E0–E2 不能关闭。
- 计量对账、SLO 实绩、灾备演练,试点期至少 E3,生产准入要 E4。
- “源码里有”只算 E1;“本地跑通”只算 E2;两者都不能写成“生产可用”。
- 任何文档修改不能改变台账状态;状态只能由证据包和评审人签字改变。
1.3 闭环判定规则
| 状态 | 含义 | 进入条件 | 退出条件 |
|---|---|---|---|
| Open | 未开始 | 已登记缺口 | 有 Owner、动作、证据计划 |
| In Progress | 有动作但无合格证据 | 已开始实施 | 证据达到该闸门最低等级 |
| Blocked | 依赖外部/版本/人力 | 明确阻塞原因 | 阻塞解除并恢复实施 |
| Verified | 已验证关闭 | 证据包可复核、评审人签字 | 仅可因回归失败重新打开 |
| Accepted Risk | 业务明确接受 | 业务 Owner + 到期日 + 补偿控制 | 到期自动回到 Open |
闭环不是“文档写完”,而是同时满足:
- 有**唯一 Owner(角色 + 人名)**与替补;
- 有目标窗口与依赖;
- 有可复现的证据包(命令、原始输出、版本、哈希、结论);
- 有验收人(P0 至少两人:平台 Owner + 安全/数据治理评审人);
- 有回归条件(模型、解析器、权限策略、网关配置变更后重跑)。
1.4 评审局限(必须如实声明)
- 本次没有执行真实 Higress 数据面、跨租户越权、HA/DR、压测、渗透测试与计量对账。
- 本次没有企业正式委员会签字,不代表安全、法务、合规、财务已批准。
14–16为并行撰写的目标态施工图,部分“已实证”是 E1/E2;本轮已统一口径,但仍需逐项回填证据。08专栏的网关与数字分身证据属于另一个运行环境,只能复用原则,不能复用“已实证”结论。
二、委员会总体结论
2.1 六视角结论
| 视角 | 结论 | 关键发现 | P0 项 |
|---|---|---|---|
| 总体架构 | 有条件通过 | 控制面/数据面方向正确;但“包皮=接入层”与“HiMarket=控制面”表述混用,14–16 的施工里程碑未映射生产闸门 | 2 |
| 身份与安全 | 不通过(生产) | OIDC 验签仍 TODO;缺工作负载身份、Agent 委托、凭证中介落地、授权快照、管理面 MFA/JIT、Denial of Wallet | 9 |
| 知识与记忆 | 不通过(生产) | RAGFlow 为 RC;ACL 靠 Broker 设计未落地;mem0 的 user_id 过滤不等于身份绑定;删除/投毒未验证 | 5 |
| SRE/容量/灾备 | 不通过(生产) | 无 SLO 实绩、无 HA 拓扑、无压测、无 RPO/RTO 演练;单机 Compose 不能作为生产基线 | 4 |
| 数据治理与合规 | 不通过(生产) | 分类分级、血缘、保留、DSAR、跨境、审计防篡改多为设计;未做 PIPL/数据安全法/等保映射 | 3 |
| 运营与发布 | 不通过(生产) | 产品生命周期、下架、配置回滚、计量对账、FinOps、生态滥用治理未闭环 | 2 |
2.2 源码级复核新增发现
| 发现 | 影响 | 对应台账 |
|---|---|---|
OidcServiceImpl 的 ID Token JWK 验签仍是 TODO | 伪造 token 可能被当作可信身份 | SEC-01 |
ProductRefResult 不含 mcpConfig/agentConfig/modelConfig,也不含凭证 | 方向正确:连接描述不应携带上游密钥;但不能据此认为凭证链已通 | SEC-05 |
McpConfigResult.toTransportConfig() 过滤 intranet 并取第一个非内网域 | 纯内网企业可能返回空地址;不能依赖该逻辑做生产投递 | ARC-01 / SEC-05 |
McpMetaResult.sanitize() 仅清空 subscribeParams | 其他敏感字段可能泄漏;需要字段级脱敏白名单 | SEC-05 |
当前快照有 17 个 @PublicAccess 注解,静态展开 17 个 GET 端点 | 此前“34 个”误把注解注释/文档引用计入;公开端点仍需逐项复核 | SEC-07 |
| Consumer 是工作负载身份,Developer 是员工身份 | 混用会导致“员工 token 当 Consumer 凭证” | SEC-03 |
Skill 下载不在 @PublicAccess,但 files/versions/cli-info 公开 | 需确认公开元数据是否包含包地址、版本、内部信息 | SEC-12 |
08-03 的网关 10 项能力属于数字分身环境 | 不能直接作为本市场环境的 E2/E3 证据 | ARC-02 |
2.3 委员会裁定
- 架构裁定:保留“市场控制面 + 独立数据面 + 契约化执行层”,但必须把“包皮”定义为控制面产品化层,不得与 Higress 数据面入口混称。
- 安全裁定:在 OIDC 验签、工作负载身份、凭证中介、授权快照、跨租户负向测试完成前,不得接入真实员工与真实企业数据。
- 知识/记忆裁定:RAGFlow 与 mem0 只能作为可替换能力供给;企业 ACL、身份、删除与审计必须由 Broker/Service 层承担。
- 排期裁定:原
05的 P0 2–3 周过于乐观。按 25 项 P0、2 个并行小队估算,P0 6–8 周(估算,需按人力校准,不构成承诺);单人串行不应承诺日期。 - 文档裁定:
14–16可以保留“生产目标态施工图”定位,但必须删除“不设前置验证”“禁用 POC 字样”等以口径替代证据的规则。
2.4 与 08 参考方案的关系(复用原则,不复用环境证据)
| 08 的做法 | 本方案复用 | 不直接复用/需改造 |
|---|---|---|
| 控制面与运行时解耦 | 复用为 HiMarket 控制面 / Higress 数据面 / agentscope 执行层 | 08 的实例模型不能直接套到多租户市场产品 |
| 实例边界、NetworkPolicy、工作负载隔离 | 复用为 Agent/Skill/Worker 运行时隔离与出站治理 | 08 的单业务线命名空间需改为租户/环境隔离 |
| Vault/KMS、短期凭证、密钥不入 Pod | 复用为 Credential Broker 与 Secret Zero | 08 的密钥路径/角色需按产品与租户重建 |
| 生命周期回收、挂起/唤醒 | 复用到 Agent 实例与长任务回收 | 市场调用以无状态为主,sticky 不是默认要求 |
| HITL/审批/审计证据链 | 复用到高风险工具、发布、订阅、删除 | 08 的审批角色需扩展为员工/管理员/审计三角色 |
| 08-03 网关 10 项能力 | 复用能力清单与验收思路 | 不复用“已实证”结论:本环境未部署 Higress |
| 08 的 OIDC/JWKS 实现 | 复用实现模式与负向用例设计 | 不复用证据:HiMarket OidcServiceImpl 仍是 TODO |
| 08 的 IM 渠道聚合 | 复用到 16 篇 Application Store 的分享渠道 | 渠道身份/租户映射需重新验证 |
三、六视角评审与缺口台账
台账字段:
目标以 W1 为评审通过后的第一个工作周;Owner为角色,正式评审必须落到人名与替补;验收证据括号内为该闸门最低证据等级。
3.1 总体架构
结论:方向正确,但边界与证据链尚未形成制度。最需要防止的是“文档把目标态写成已实现”,以及“功能里程碑完成被误认为生产闸门通过”。
| ID | 缺口与影响 | 修正动作 | 验收证据(最低) | Owner | 目标 | 优先级 | 状态 |
|---|---|---|---|---|---|---|---|
| ARC-01 | 包皮/接入层/HiMarket/数据面混称,读者可能把 HiMarket 当流量入口 | 固定 ADR-01:HiMarket=控制面+门户;包皮=控制面产品化;Higress=唯一数据面入口;统一所有图与文案 | E1 架构图+路由清单+代码评审;E3 网关实测路由 | 平台架构组 | W1–W2 | P0 | In Progress |
| ARC-02 | 14–16 的 Java 模块 M0–M8 与功能里程碑 0–3 未映射 P0/P1/P2 生产闸门;施工完成被误读为可上线 | 建立“模块/里程碑 × 闸门”矩阵;每个模块标注证据等级与阻断项;以 06 为状态源 | E1 矩阵+评审记录;E3 闸门证据包 | 平台架构组 | W1–W2 | P0 | In Progress |
| ARC-03 | 多租户模型未定:Portal/tenant/environment/consumer 的边界与隔离级别(pool/silo/bridge) | 定义租户模型与 namespace/数据库/索引/密钥隔离矩阵;做 noisy neighbor 评估 | E1 模型文档;E3 隔离测试 | 平台架构组 | W3–W6 | P1 | Open |
| ARC-04 | HiMarket 1.0-SNAPSHOT fork 的 upstream 同步、CVE 修补、license、退出策略未定 | 固定 commit/digest;建立 upstream sync 节奏、patch backlog、fork 差异清单、退出预案 | E1 版本清单+CI;E3 升级演练 | 平台架构组 | W3–W8 | P1 | Open |
| ARC-05 | Agent API 缺异步任务契约:长任务、回调、取消、结果保留、幂等 | 定义 task_id/status/cancel/callback 签名、结果 TTL、A2A 身份与授权 | E1 契约;E3 超时/取消/重放测试 | 网关/执行层 | W5–W10 | P1 | Open |
| ARC-06 | 缺架构适应度函数与漂移巡检;文档与实现易再次分叉 | 建立 conformance 检查(边界、依赖、配置、公开端点、证据等级)并入 CI 与月度评审 | E1 检查脚本;E3 连续两月零 P0 漂移 | 平台架构组 | W12–W20 | P2 | Open |
| ARC-07 | 模型市场缺独立网关契约:模型路由/白名单、Token 计量、上下文窗口、供应商降级与零留存未定义 | 定义 tenant/data_class → model allowlist 路由;modelMapping;流式/非流式 token 权威计数;上下文截断策略;供应商 fallback/熔断;零留存与区域路由 | E3 路由矩阵、fallback 演练、token 对账;E4 生产计量 | 网关/模型平台 | W5–W10 | P1 | Open |
3.2 身份与安全
结论:这是当前最高风险域。控制面身份、工作负载身份、Agent 委托、平台服务四类身份必须分开;08 专栏的 OIDC/JWKS、Vault、NetworkPolicy 模式可复用,但不能把 08 环境的证据用来关闭本环境的项。
| ID | 缺口与影响 | 修正动作 | 验收证据(最低) | Owner | 目标 | 优先级 | 状态 |
|---|---|---|---|---|---|---|---|
| SEC-01 | OIDC JWK 验签仍是 TODO;iss/aud/exp/nonce/state/PKCE/redirect 未完整校验,存在伪造与重放 | 实现 JWKS 缓存+轮换、全 claims 校验、PKCE、一次性 state/nonce、redirect allowlist、时钟偏差;建立负向用例 | E3 伪造/过期/错 aud/重放/开放重定向全部 401;JWKS 轮换不停机 | 身份安全组 | W1–W3 | P0 | Open |
| SEC-02 | 离职/转岗/角色变更后的权限回收未定义;会话可能长期有效 | SCIM 或 IdP group→role 同步、back-channel logout、session revocation、定期 access review;Consumer 凭证轮换/吊销 | E3 离职 10 分钟内全链路失效;权限复核抽样 0 越权 | 身份安全组 | W2–W4 | P0 | Open |
| SEC-03 | Consumer/Agent 仍可能用静态 API Key;缺 SA/SPIFFE/mTLS 绑定 | K8s ServiceAccount+OIDC/SPIFFE 或 mTLS;Consumer 绑定 tenant/env/product scope;密钥不入 Pod/镜像/Git | E3 伪造凭证、跨 namespace 调用被拒;密钥扫描 0 命中 | 身份安全组+平台 | W2–W5 | P0 | Open |
| SEC-04 | Agent 代表员工时缺 act/aud/jti/TTL;可能原样透传人类 Token | RFC 8693 Token Exchange 或签名 JWT:sub=Agent、act=Human、aud=Product、tenant、scope、jti;TTL≤15 分钟;禁止 refresh token | E3 令牌交换矩阵;跨产品/跨租户/过期/重放全部拒绝 | 身份安全组 | W3–W6 | P0 | Open |
| SEC-05 | 连接描述/日志/响应可能含上游 key;Credential Broker 未实现;sanitize() 不完整 | Broker 多副本;动态短期凭证/Token Exchange;字段级脱敏白名单;Vault/KMS;fail-closed;禁止静态回退 | E3 全链路密钥扫描 0 泄漏;Broker 故障时新调用拒绝且不泄密 | 网关/安全 | W3–W6 | P0 | Open |
| SEC-06 | 订阅 APPROVED 不等于网关可调用;撤销传播未验证 | 订阅状态机+签名快照/epoch;AuthZ 本地缓存 TTL≤60 秒;撤销≤10 秒;缺失/过期 fail-closed;记录 allow/deny 原因 | E3 撤销 10 秒内 403;控制面断连符合 fail-closed;审计可回溯 epoch | 网关/身份 | W3–W6 | P0 | Open |
| SEC-07 | Admin/Nacos/Higress 控制台可能共用入口/凭据;17 个公开端点需复核 | 独立管理入口、MFA、JIT、break-glass 审批、IP/设备策略;公开端点逐项复核;管理面与业务面凭据分离 | E3 无 MFA/JIT 无法进入;公开端点清单签字;管理动作全审计 | 安全/平台 | W2–W5 | P0 | Open |
| SEC-08 | 缺按租户/用户/产品/工具的 token、调用、并发、日预算;分布式配额可能被绕过 | 三级配额+预算+异常检测+自动降级/熔断;流式 token 预留;429/Retry-After;配额事件入账 | E3 超预算/突发流量被限;跨副本计数误差在阈值内;无静默超卖 | 网关/SRE/FinOps | W3–W7 | P0 | Open |
| SEC-09 | MCP 工具描述注入、会话劫持、SSRF/egress、响应过大、schema 绕过 | schema 严格校验、工具描述签名/审核、Mcp-Session-Id 绑定身份、出站 allowlist/代理/NetworkPolicy、DNS rebinding 防护、响应上限 | E3 注入/越权/SSRF/超限用例全部阻断;会话不能跨身份复用 | 网关/安全 | W4–W8 | P0 | Open |
| SEC-10 | 无 STRIDE/攻击树/红队/渗透报告 | 做数据流威胁建模;覆盖 confused deputy、prompt injection、supply chain、tenant escape;外部渗透与红队 | E3 高危 0 未修复;中危有 owner/期限 | 安全 | W6–W12 | P1 | Open |
| SEC-11 | 缺 Agent/工具级 kill switch、取证与事件响应 | 按 tenant/product/tool/agent 四级熔断;事件分级、on-call、取证快照、恢复手册 | E3 演练 30 分钟内止损;取证链完整 | 安全/SRE | W6–W12 | P1 | Open |
| SEC-12 | MCP/Skill/Worker 包签名、SBOM、扫描、来源证明、安装后完整性未闭环 | 签名+SBOM+漏洞扫描+来源证明+准入策略;安装锁版本;运行时校验;吊销清单 | E3 恶意包/篡改包被拒;CVE 响应有 SLA | 安全/研发效能 | W5–W12 | P1 | Open |
| SEC-13 | 模型输入输出缺内容安全与提示注入/越狱/数据外泄防护;系统提示与用户数据未隔离 | 输入/输出审核、注入检测、系统指令隔离、PII/DLP、拒答/降级、红队用例;高风险场景 HITL | E3 红队用例全部阻断;PII 泄漏 0;绕过有审计 | 安全/模型平台 | W6–W12 | P1 | Open |
3.3 知识与记忆
结论:知识与记忆的“能力链”已有 E2 证据,但“企业治理链”仍是 E0/E1。必须把 ACL、身份、删除、审计从 RAGFlow/mem0 内部行为上移到 Broker/Service 层。
| ID | 缺口与影响 | 修正动作 | 验收证据(最低) | Owner | 目标 | 优先级 | 状态 |
|---|---|---|---|---|---|---|---|
| KNO-01 | Knowledge Broker 未落地;RAGFlow permission 被误当企业 ACL;dataset_ids 可被客户端伪造 | Broker 从签名上下文派生 tenant/subject;维护 Portal/KB/dataset/doc ACL 映射;服务端生成过滤条件;结果泄漏检测 | E3 跨租户/跨数据集/跨用户负向测试 0 越权;ACL 变更传播有证据 | 知识平台 | W4–W8 | P0 | Open |
| KNO-02 | RAGFlow v1.0.0-rc2 作为基线;无 digest/升级/回滚 | 锁定稳定版+镜像 digest;升级/回滚/索引重建演练;RC 仅限隔离 POC | E3 升级回滚成功;版本清单可追溯 | 知识平台 | W2–W4 | P0 | Open |
| KNO-03 | 知识库无越权测试;共享索引过滤未证明 | 建立租户/用户/文档三级负向用例;共享索引与独立空间两种模式对比;检索缓存带 ACL epoch | E3 负向用例全阻断;缓存不泄漏旧权限 | 知识平台+安全 | W4–W8 | P0 | Open |
| KNO-04 | 导入缺病毒扫描、类型/大小配额、毒文档隔离、重复检测 | 上传扫描、类型白名单、页数/大小配额、解析重试上限、DLQ、去重、版本化 | E3 恶意/超大/毒文档不拖垮队列;失败可隔离 | 知识平台 | W6–W10 | P1 | Open |
| KNO-05 | 无黄金集/引用正确率/拒答率评测 | ≥100 问黄金集;recall@k、MRR、引用正确率、拒答率;模型/解析器/embedding 变更回归 | E3 基线达标并版本化;回归无显著退化 | 知识平台 | W6–W12 | P1 | Open |
| KNO-06 | 删除不传播到索引/缓存/备份;缺来源血缘 | 文档版本/来源/解析器/embedding 版本入元数据;删除任务可验证;备份保留策略;引用可定位 | E3 删除后 0 召回;血缘可追到源文件 | 知识平台+数据治理 | W8–W14 | P1 | Open |
| MEM-01 | mem0 直接接受请求体 user_id;只证明存储过滤,不证明身份绑定 | user_id/tenant_id 由签名上下文派生;请求体仅断言;不一致 403;写权限按 agent/owner 校验 | E3 伪造 user_id/tenant_id 全部拒绝;跨用户负向测试 0 泄漏 | 记忆平台+身份 | W4–W7 | P0 | In Progress |
| MEM-02 | 删除未覆盖向量/元数据/缓存/导出;legal hold 未分离 | 可验证删除状态机;覆盖 Qdrant/元数据/缓存/备份;legal hold 白名单/审批/解除;DSAR 时限 | E3 删除完成率 100%;冻结与删除失败可区分;审计可查 | 记忆平台+数据治理 | W5–W8 | P0 | Open |
| MEM-03 | 记忆投毒、冲突、过期、跨 Agent 共享、同意机制未定 | 来源可信度/冲突检测/敏感过滤/人工纠错;TTL/衰减;共享需显式发布审核;用户同意与撤回 | E3 投毒用例拦截;冲突可解释;共享越权 0 | 记忆平台 | W8–W14 | P1 | Open |
| MEM-04 | 记忆抽取成本可被长对话放大;无预算/配额 | 独立模型策略、token 预算、日限额、异常检测、降级;成本分摊到租户 | E3 攻击性长对话触发预算保护;成本可归集 | 记忆平台+FinOps | W8–W14 | P1 | Open |
3.4 SRE、容量与灾备
结论:当前是单机 POC 形态,不能用一个 Compose 栈推导生产 SLO。必须先填容量模型、做压测和故障演练,再谈副本数与 RTO。
| ID | 缺口与影响 | 修正动作 | 验收证据(最低) | Owner | 目标 | 优先级 | 状态 |
|---|---|---|---|---|---|---|---|
| SRE-01 | SLO 只有建议值,无 error budget/告警/实绩 | 确认 SLO;定义 SLI、error budget、burn-rate 告警、发布冻结策略 | E3 连续 2 周 SLI 报表;告警演练 | SRE | W4–W8 | P0 | Open |
| SRE-02 | 单机 Compose/单 MySQL/单 Nacos/单网关,不满足生产 | 定义并落地 HA 拓扑(3 副本/主从/多 AZ);探针/PDB/反亲和/证书一致性 | E3 单节点故障不中断;切换演练报告 | SRE | W4–W10 | P0 | Open |
| SRE-03 | 无容量模型与压测;容器数被当容量 | 填 05 篇 §7.5 工作表;分组件压测;流式并发/队列/向量重建;30% 余量 | E3 压测报告+瓶颈结论;容量表有实测输入 | SRE | W5–W10 | P0 | Open |
| SRE-04 | 无 RPO/RTO 演练;备份未验证可恢复 | 定义数据分级 RPO/RTO;备份/PITR/跨域复制;季度恢复演练 | E3 恢复演练达标;备份校验通过 | SRE+数据治理 | W6–W12 | P0 | Open |
| SRE-05 | 缺限流分级、背压、超时预算、熔断、降级 | 按 tenant/product/tool 限流;流式背压;依赖超时预算;模型/MCP fallback;降级页面 | E3 过载不雪崩;降级可观测 | SRE+网关 | W8–W14 | P1 | Open |
| SRE-06 | 有状态组件升级/回滚未演练 | MySQL/Nacos/Qdrant/RAGFlow 升级手册、兼容矩阵、回滚点、数据迁移 | E3 升级回滚演练成功 | SRE | W10–W16 | P1 | Open |
| SRE-07 | 无混沌/故障注入 | 网关/控制面/DB/队列/模型供应商故障注入;游戏日 | E3 故障场景有止损与恢复记录 | SRE | W12–W20 | P1 | Open |
3.5 数据治理与合规
结论:治理项不能等上线前补。分类分级、保留、DSAR、审计防篡改必须与知识/记忆/Skill 的数据模型一起设计;中国境内落地还需按适用性做 PIPL、数据安全法、等保与生成式 AI 服务管理要求映射,并由法务/合规确认。
| ID | 缺口与影响 | 修正动作 | 验收证据(最低) | Owner | 目标 | 优先级 | 状态 |
|---|---|---|---|---|---|---|---|
| GOV-01 | 分类分级/血缘/标签未落地到知识、记忆、Skill | 统一标签模型;与 ACL/加密/导出联动;血缘记录来源/版本/解析器/embedding | E3 抽样 100% 资源有标签与血缘;越权 0 | 数据治理 | W4–W8 | P0 | Open |
| GOV-02 | 保留期/legal hold/DSAR/备份删除未闭环 | 业务/审计/备份保留期分离;DSAR 流程与时限;删除传播;冻结审批 | E3 DSAR 演练在时限内完成;备份到期失效 | 数据治理+法务 | W5–W10 | P0 | Open |
| GOV-03 | 审计日志可改/缺 WORM/哈希链;PII 可能入日志 | 追加写+哈希链/WORM;PII 脱敏白名单;访问审计;保留期分离 | E3 篡改可检测;PII 扫描 0 命中 | 安全+数据治理 | W4–W8 | P0 | Open |
| GOV-04 | 跨境/驻留/供应商训练使用/子处理者未定 | 区域白名单;供应商零留存/不训练条款;子处理者清单;跨境评估 | E1 清单+合同;E3 路由到未批准区域被拒 | 数据治理+法务 | W8–W14 | P1 | Open |
| GOV-05 | 未做 PIPL/数据安全法/等保/生成式 AI 服务合规映射 | 按适用性做控制项映射;算法/内容安全/备案评估;法务确认 | E1 合规矩阵+法务意见;E3 控制项抽测 | 合规+法务 | W8–W16 | P1 | Open |
| GOV-06 | 缺 DPIA/处理记录/定期 access review | 高风险场景 DPIA;ROPA;季度权限复核;供应商评估 | E1 文档;E3 复核记录 | 数据治理 | W10–W16 | P1 | Open |
3.6 运营与发布
结论:市场不是“把产品发出去”就结束。产品 Owner、SLA、下架、迁移、计量对账、成本分摊、滥用治理都属于生产闭环;当前只有发布/订阅链的控制面证据。
| ID | 缺口与影响 | 修正动作 | 验收证据(最低) | Owner | 目标 | 优先级 | 状态 |
|---|---|---|---|---|---|---|---|
| OPS-01 | 计量事件不完整/不对账;订阅记录被当用量 | 网关权威事件;事件 schema;幂等去重;迟到调整;日对账<0.1%;争议流程 | E3 连续 7 日对账达标;差异可解释;生产准入门槛为 E4 | 平台/财务 | W4–W10 | P0 | Open |
| OPS-02 | 配置发布无签名/金丝雀/回滚/漂移对账 | 签名配置包+config_version;outbox 幂等;金丝雀;一键回滚;期望/实际对账 | E3 发布失败自动回滚;漂移清单为 0 | 网关/平台 | W3–W8 | P0 | Open |
| OPS-03 | 产品生命周期/Owner/SLA/下架/迁移未定义 | 产品卡必填 Owner/SLA/版本/依赖/下线策略;deprecation notice;consumer 迁移 | E1 模板;E3 下架演练不破坏存量 | 产品运营 | W8–W14 | P1 | Open |
| OPS-04 | 无 FinOps/showback/预算/异常成本 | 按租户/产品/模型/工具成本归集;预算告警;单位成本;异常检测 | E3 成本报表可对账;超预算告警 | FinOps | W8–W16 | P1 | Open |
| OPS-05 | 市场滥用/刷量/恶意上架/评价治理未定 | 上架审核、滥用检测、配额、封禁、申诉、评价审核 | E3 滥用用例被拦截;处置可审计 | 产品运营+安全 | W10–W16 | P1 | Open |
| OPS-06 | 支持/SLA 分层/on-call/runbook 未定 | 定义支持等级、响应时限、升级路径、值班与 runbook | E3 演练工单闭环 | 运营/SRE | W10–W16 | P1 | Open |
| OPS-07 | 生态伙伴入驻/退出/分成/合规审核未定 | 伙伴准入、合同、数据边界、退出迁移 | E1 流程;E3 退出演练 | 生态运营 | W16–W24 | P2 | Open |
四、关键决策记录(ADR)
状态说明:
Accepted (desk review)表示本次桌面评审接受为架构基线,但仍需企业正式评审会签;Proposed表示需业务/法务进一步确认。
| ID | 决策 | 理由 | 约束/后果 | 状态 |
|---|---|---|---|---|
| ADR-01 | HiMarket=市场控制面+开发者门户;包皮=控制面产品化层;Higress=唯一数据面入口 | 防止控制面承载业务流量,防止“包皮”被误读为第二个网关 | 所有架构图、路由、SLA 按此分层;HiMarket 故障不应中断存量调用 | Accepted (desk review) |
| ADR-02 | 人类、工作负载、Agent 委托、平台服务四类身份分离;tenant_id/subject_id/consumer_id 只来自验证后的上下文 | 身份自报是最大越权根因 | 请求体中的身份字段只作断言;不一致直接 403 | Accepted (desk review) |
| ADR-03 | 凭证由 Broker/网关注入;市场连接描述只含地址、协议、工具元数据 | 防止上游长期密钥进入客户端、Nacos、日志与备份 | 禁止“把 key 拼进 MCP 配置返回”;Broker 故障 fail-closed | Accepted (desk review) |
| ADR-04 | 订阅状态机 PENDING → APPROVED → SUSPENDED/REVOKED/EXPIRED;签名授权快照+epoch;数据面本地缓存+fail-closed | 既避免控制面成为调用链单点,又保证撤销可传播 | 快照 TTL≤60 秒;撤销目标≤10 秒;控制面不可达且无法确认时拒绝新调用 | Accepted (desk review) |
| ADR-05 | 企业 ACL 由 Knowledge Broker 负责;RAGFlow permission 只是底层能力 | RAGFlow 的 me/team/public 不等同于企业租户/文档 ACL | 服务端生成过滤条件;禁止客户端传 dataset_ids 决定权限 | Accepted (desk review) |
| ADR-06 | 记忆隔离层级 tenant > owner_subject > project > memory_type > visibility;user_id 仅作断言 | POC 的 user_id 过滤不能证明身份不可伪造 | 身份由签名上下文派生;跨用户/跨租户负向测试为 P0 | Accepted (desk review) |
| ADR-07 | 网关计量事件是权威源;聚合账本可重放,不允许反向覆盖原始事件 | 订阅记录不等于用量;双写会产生不可对账的真相 | event_id 幂等;迟到事件调整分录;日对账<0.1% | Accepted (desk review) |
| ADR-08 | SSRF 采用显式 allowlist+出站代理/NetworkPolicy+DNS rebinding 防护;禁止绕过 RAGFlow 护栏 | “绕过私网限制”会把知识库变成内网跳板 | 内网模型服务由平台维护允许清单;任何例外需安全审批 | Accepted (desk review) |
| ADR-09 | 版本基线固定 commit+镜像 digest;RC/SNAPSHOT 不作为生产基线 | 1.0-SNAPSHOT 与 v1.0.0-rc2 不能承诺稳定接口与修复 SLA | 升级/回滚/索引重建必须演练;版本清单进入证据包 | Accepted (desk review) |
| ADR-10 | 证据分级 E0–E4;文档声明不能替代验收 | 当前最大问题是“设计态写成生产态” | P0 身份/越权/删除类最低 E3;计量/SLO 生产准入 E4 | Accepted (desk review) |
| ADR-11 | Java 模块 M0–M8 / 功能里程碑 0–3 与生产闸门 P0/P1/P2 分离;两者都通过才可上线 | 施工完成不等于可治理、可运维、可对账 | 每个模块在需求文档标注闸门与证据等级 | Accepted (desk review) |
| ADR-12 | 风险接受必须由业务 Owner 签字,写到期日与补偿控制;到期自动回到 Open | 防止“永久例外”与口头豁免 | 最长 90 天;安全/数据治理类例外需双签 | Accepted (desk review) |
| ADR-13 | HiMarket fork 建立 upstream sync、patch backlog、差异清单与退出预案 | 1.0-SNAPSHOT 的长期维护与 CVE 响应不能靠临时补丁 | 每季度评估 upstream;关键 CVE 有 SLA;保留回迁/替换路径 | Proposed |
| ADR-14 | 合规按适用性映射 PIPL、数据安全法、等保与生成式 AI 服务管理要求;由法务/合规确认 | 企业知识/记忆/模型服务涉及个人信息与内容安全 | 本专栏只给控制项,不构成法律意见;上线前需正式评估 | Proposed |
五、跨文档一致性修正
| 文档 | 冲突/缺口 | 本轮修正 | 状态 |
|---|---|---|---|
00 | 一句话把“发布→订阅→…→观测”写成“全闭环”,易被读成已完成 | 改为“目标闭环(当前未完成)”;补 06 与 14–16 目录;路线加 G0 评审闸门 | 已修正 |
00 | 专栏结构表缺 06、14、15、16 | 补入四篇定位;说明 14–16 是目标态施工图,不是验收结论 | 已修正 |
01/04/05/06 | @PublicAccess 计数写作 34,与源码不符(把注释/文档引用也计入) | 回正为 17 个注解 / 17 个 GET 端点;注明以运行时扫描为准 | 已修正 |
04 | “订阅链闭环”易与“数据面闭环”混淆 | 改为“订阅链贯通(控制面)”;明确凭证/调用/计量未完成 | 已修正 |
05 | 审核范围只写 00–04、10–13 | 扩为 00–16;补委员会评审篇与证据分级 | 已修正 |
05 | P0 闸门缺工作负载身份、授权快照、配置回滚、容量、治理、Denial of Wallet、管理面 MFA/JIT | 补入 P0/P1 清单与证据类型;排期改为 6–8 周 | 已修正 |
14 | 自称“生产方案、不设任何先验证前置”;“禁用 POC 字样” | 改为“生产目标态设计”;删除以口径替代证据的规则;补 06 闸门约束 | 已修正 |
14 | “HiMarket 就是接入层/包皮层底座”易被读成数据面 | 明确为“控制面/门户接入的产品化底座”,数据面仍是 Higress | 已修正 |
15/16 | “生产施工图、不设前置”与 05 证据结论冲突 | 统一为“目标态施工图”;“已实证”按 E1/E2 解释,不等于生产验收 | 已修正 |
16 | Security 模块写“Higress 安全管控已实证”,但本环境未部署 Higress | 改为“方案/源码存在,未部署验收”;安全能力随 M1 网关落地后再取证 | 已修正 |
16 §2.6 | Agent 委托写成“继承人类 sub”,与 05 §4.5 的 sub=Agent/act=Human 冲突 | 改为 sub=Agent、act=人类、aud=产品,不复制人类 Token | 已修正 |
16 | 功能里程碑 0–3 未说明与生产闸门关系 | 增加“功能里程碑≠生产闸门”的口径,引用 06 ADR-11 | 已修正 |
| 全部 | 状态散落在各篇 | 以 06 台账为唯一状态源;其他篇只引用,不另立状态 | 已建立 |
六、闸门状态板与证据包规范
6.1 当前闸门状态
| 闸门 | 退出标准 | 当前状态 | 已 Verified | 阻断项(Top) | 裁定 |
|---|---|---|---|---|---|
| P0 生产阻断 | 25 项 P0 全部达到最低证据等级;无未签字例外 | Blocked | 0 / 25 | SEC-01/03/04/05/06/09、KNO-01/02/03、MEM-01/02、SRE-02/03、GOV-01/02/03、OPS-01/02 | No-Go(生产) |
| P1 能力可用 | P0 关闭;23 项 P1 有证据;知识/评测/容量达标 | Blocked | 0 / 23 | KNO-05、SRE-05、SEC-10/11/12/13、ARC-07、OPS-03/04/05/06 | 未启动 |
| P2 运营闭环 | P1 关闭;2 项 P2 完成;成本/生态/漂移巡检常态 | Blocked | 0 / 2 | ARC-06、OPS-07 | 未启动 |
| 内部试点(受限) | P0 安全类至少 E2+隔离环境;不接真实员工数据;有 kill switch | Conditional | — | SEC-01/03/05/06、KNO-03、MEM-02 | 可有条件试点 |
状态统计:Verified 0;In Progress 3(ARC-01、ARC-02、MEM-01);Open 47。 这是如实状态,不是悲观结论;没有证据就不应写 Verified。
6.2 P0 最小关闭集(Top 12)
下列是最小关闭集,不是全部 P0;完整 25 项见 §三,任何 P0 未关闭都不能以“Top 12 已完成”替代。
- SEC-01 OIDC 全量校验与负向用例。
- SEC-03 工作负载身份,禁用静态 key。
- SEC-04 Agent 委托 Token Exchange。
- SEC-05 凭证中介与全链路密钥扫描。
- SEC-06 授权快照/epoch/撤销传播/fail-closed。
- SEC-09 MCP 工具契约、会话绑定、出站治理。
- KNO-01 Knowledge Broker ACL。
- KNO-02 RAGFlow 稳定版+digest。
- KNO-03 知识跨租户负向测试。
- MEM-01/02 记忆身份绑定、删除与 legal hold。
- SRE-02/03 HA 拓扑与容量压测。
- OPS-01/02 计量对账与配置回滚。
6.3 证据包规范
每个 P0/P1 项在 evidence/<闸门>/<ID>/<YYYYMMDD>/ 下提交:
text
README.md # 结论、范围、版本、证据等级、评审人
commands.txt # 可复现命令
raw/ # 原始输出、日志、截图、报告
summary.md # 通过/失败项、差异、遗留风险
hash.txt # 证据文件 SHA-256要求:
- 证据必须绑定版本:HiMarket commit、镜像 digest、RAGFlow 版本、mem0 版本、模型名与版本、配置版本。
- 负向测试必须包含预期拒绝与实际拒绝,不能只贴成功请求。
- 压测必须包含输入假设、场景、瓶颈、30% 余量,不能只贴 QPS 截图。
- 故障演练必须包含注入方式、影响面、止损时间、恢复时间、数据一致性。
- 计量对账必须包含网关事件、聚合账本、财务/计费系统三方差异。
- 任何截图都不能替代原始日志;任何文档都不能替代证据包。
七、遗留风险与不宣称项
7.1 当前无正式 Accepted Risk
本轮不设任何“默认接受”的风险。6.1 的“内部试点 Conditional”只是评审建议,不是 Accepted Risk;若业务要带风险试点,必须满足 ADR-12:业务 Owner 签字、到期日≤90 天、补偿控制、复审日期;安全/数据治理类需双签。
7.2 明确不宣称(Non-Claims)
- 不宣称生产可用:当前最多支撑 POC 与隔离环境内部试点。
- 不宣称数据面闭环:Higress 未安装,真实 MCP/模型调用、工具发现、限流、计量未完成。
- 不宣称订阅即授权:订阅 APPROVED 只代表市场关系成立。
- 不宣称多租户隔离已证明:没有跨租户/跨用户负向测试报告。
- 不宣称
user_id过滤等于身份绑定:mem0 POC 只证明存储过滤。 - 不宣称 RAGFlow/mem0 可生产:RC 版本、单机部署、无 HA/容量/删除演练。
- 不宣称已做安全渗透/红队:没有第三方报告。
- 不宣称已做 HA/DR/压测:没有故障注入与恢复演练。
- 不宣称计量可结算:没有三方对账与差异<0.1% 的证据。
- 不宣称合规已批准:没有法务/合规签字,没有 PIPL/等保评估结论。
- 不宣称 08 专栏证据适用于本环境:只能复用原则,不能复用环境结论。
- 不宣称企业正式委员会已会签:本篇是桌面评审记录。
7.3 主要遗留风险
| 风险 | 影响 | 缓解方向 |
|---|---|---|
HiMarket 1.0-SNAPSHOT upstream 不稳定 | 接口/迁移/安全补丁不可控 | 固定 commit/digest;fork 差异清单;季度升级评估 |
| RAGFlow RC 版本行为变化 | 解析/检索/权限回归 | 锁稳定版;黄金集回归;索引可重建 |
| 模型供应商数据驻留/零留存 | 合规与数据泄漏 | 区域白名单;合同条款;脱敏;回退模型 |
| 内部人滥用与管理面提权 | 大批量数据外泄 | MFA/JIT/break-glass;最小权限;审计与 access review |
| MCP/Skill 供应链投毒 | 代码执行/数据外泄 | 签名、SBOM、扫描、出站白名单、运行时隔离 |
| 成本失控/Denial of Wallet | 预算击穿 | 三级配额、预算、异常检测、熔断、FinOps |
八、下一次评审入口条件
满足以下条件后,才进入P0 闸门评审(不是“文档评审”):
- SEC-01/03/04/05/06/09 的证据包齐备,且至少 E3;安全评审人签字。
- KNO-01/02/03 与 MEM-01/02 的跨租户/跨用户负向测试报告齐备,越权为 0。
- 真实数据面链路可复现:
Consumer → Higress → AuthZ → Credential Broker → MCP/模型 → 计量事件。 - 配置发布失败可自动回滚;期望/实际配置漂移为 0。
- 容量模型用实测数据填完;HA 单节点故障演练通过。
- 计量三方对账连续 7 日差异<0.1%,或差异全部可解释并有调整分录。
- 06 台账中所有 P0 状态更新为 Verified 或有签字的 Accepted Risk。
00/05/14/15/16的 P0 口径冲突扫描为 0;所有“已实证/生产可用”均有 E 级标注。
评审节奏:
- 每周:P0 burn-down + 阻断项升级;
- 每两周:架构/安全/知识记忆交叉评审;
- 每月:闸门状态板 + 风险接受复审;
- 每次模型/解析器/权限策略/网关配置变更:相关 P1/P0 回归,失败即重开。
变更控制:
- 新增需求先登记 ID、Owner、闸门与证据计划,不直接改“已完成”;
- 任何“降级/绕过/临时开关”必须走 ADR-12,写补偿控制与到期日;
- 文档与实现不一致时,以源码/运行时证据为准,并在 24 小时内修正文档口径。
九、评审记录
| 视角 | 评审角色 | 结论 | 条件/遗留 |
|---|---|---|---|
| 总体架构 | AI Infra 架构师(主席) | 有条件通过 | 边界与里程碑×闸门矩阵需正式会签 |
| 身份与安全 | 身份安全评审人 | 不通过(生产) | SEC-01/03/04/05/06/07/08/09 全开 |
| 知识与记忆 | 知识/记忆平台评审人 | 不通过(生产) | KNO-01/02/03、MEM-01/02 全开 |
| SRE/容量/灾备 | SRE 评审人 | 不通过(生产) | SRE-01/02/03/04 全开 |
| 数据治理与合规 | 数据治理/合规评审人 | 不通过(生产) | GOV-01/02/03 全开;合规映射未做 |
| 运营与发布 | 产品/运营评审人 | 不通过(生产) | OPS-01/02 全开;生命周期/FinOps 未闭环 |
记录性质:本篇为 2026-10-26 桌面评审记录,由 AI Infra 架构师牵头、按六视角交叉审阅形成;不是企业正式评审会签。正式评审需补充人名、签字、日期、法务/合规意见与证据包索引。
附录 A:本次源码复核命令(可复现)
目的:让评审中的源码事实可被第三人重跑,而不是只引用结论。路径按本地快照替换。
powershell
$repo = 'C:\Users\Administrator\Desktop\02-项目代码\himarket'
# 版本基线
git -C $repo rev-parse --short HEAD
Select-String -Path "$repo\pom.xml" -Pattern '<version>' | Select-Object -First 1
# Controller 数量
(Get-ChildItem $repo -Recurse -Filter '*Controller.java' -File | Measure-Object).Count
# ProductType 枚举
Get-Content (Get-ChildItem $repo -Recurse -Filter 'ProductType.java' -File | Select-Object -First 1).FullName |
Select-String -Pattern '^\s*[A-Z_]+\s*[,;(]'
# 实际 @PublicAccess 注解数(只匹配独立注解行,排除注释/文档引用)
rg -n --glob '*.java' '^\s*@PublicAccess\s*$' $repo | Measure-Object
# OIDC TODO
rg -n 'TODO.*JWK|Verify the ID token signature' $repo
# 连接描述与脱敏
rg -n 'toTransportConfig|intranet' $repo
rg -n 'sanitize|subscribeParams' $repo本次结果:commit 3a63fc5;pom.xml 为 1.0-SNAPSHOT;28 个 *Controller.java;ProductType 7 类;@PublicAccess 17 个注解 / 17 个 GET 端点;OidcServiceImpl 的 JWK 验签为 TODO;toTransportConfig() 过滤 intranet;sanitize() 仅清空 subscribeParams。
注意:静态扫描只能证明 E1(源码存在/风险存在),不能证明运行时端点、权限与数据面行为;运行时结果仍需 E2/E3 证据包。
适用:HiMarket 企业 Agent 生态市场(架构评审与闭环)| 上游基准:
05架构基准、00总纲、14–16目标态施工图 | 状态源:本篇 | 初稿 2026-10-26