0. 摘要卡
一句话定位:CPA 现网网关不动(模型流量咽喉),pi/agent_gateway 旁挂为「砺石 Runtime」承载 Agent-as-API 三协议门面 + 服务端循环 + 入站/出站净化,出站模型调用指回 CPA 网关(观测口径不分叉);控制面 v0.1 轻量起步——manifest 注册仓 + 五态状态机 + xbench 评测门禁 + DuckLake 审计入湖 + 无头 MCP/CLI 管理面;治理能力寄生在流量上冷启动,达到升格触发条件(资产百量级 / 多环境分发 / 有状态审批 / 121 单点瓶颈)才建独立控制面服务。
代号「砺石 / Whetstone」为提议代号:取云砺之「砺」,磨刀石之意——评测门禁与 RSI 闭环把 agent 越磨越利;CLI 命名 whet。注:Whetstone 与 1970 年代同名 CPU benchmark 存在名称沿用,仅内部代号,正式名可在 9-3 对齐会定。
1. 背景与定位
1.1 管控面定位(已拍板,不再讨论)
本框架是管控面,不是开发提速框架。重点 = 安全、权限、可维护性、审计、发布准入,支撑「批量稳定可交付」——咨询项目交付后 BPO 团队可接手运维。框架被拍板为管控面而非 runtime 竞品;管控面的本质是在流量必经之路上执行策略,现网 CPA 网关正是那条必经之路(方案 A 骨架结论,见 §12)。
1.2 纳管合同四条(嫁接 B-11)
数据面接入控制面的四条最低义务——四条之外一概不管:
- 注册:runtime 上的每个对外发布 agent 有 manifest 入注册市场;
- 身份:模型流量必须经统一网关,凭控制面签发的短期服务凭据(对齐 RSI D-10「Agent 只连模型网关;密钥不进 shell」);
- 审计:按最小字段集上报,或由网关侧代采;
- 准入:发布状态到 published 必须过评测门禁与准入清单。
用什么语言、什么编排、什么 CLI,控制面一概不管——「CLI 自由、阿里云基础层不碰」是推论而非妥协。
1.3 三层范围清单(此表即 9-3 三方对齐会「管什么 / 不管什么」一页纸底稿)
| 层级 | 范围 | 口径 |
|---|---|---|
| 必须统一 | 统一网关、身份与权限、审计、发布/交付准入 | = 纳管合同四条,硬约束 |
| 建议统一 | skill 与 MCP 的注册市场、评测门禁(benchmark 作为回归门禁) | 准入倒逼,不行政强推 |
| 完全自由 | 底层 Agent CLI(Claude Code / Codex / 其他各凭喜好);阿里云基础层不碰 | 零侵入兑现(见 §6 模块 12) |
分工事实(仅记分工):谷雪梅 = 底层 / 新技术 / 模型与数据库 / 数据洞察类系统;框架侧(本文档)= 流程运营型系统整合与标准输出。9-3 与陈岳阳、谷雪梅完成三方框架首次对齐。
1.4 三层技术整合要求
CEO(吴云)明确要求把数据库基础 + 本体(ontology)+ 模型应用「这三个整合在一起」。本设计的兑现方式:manifest 强制声明 data_domain 数据域绑定,注册即成「agent → 本体域 → 表」图边,三层整合成为注册的副产品而非附加工程(嫁接 C-2,详见 §7)。
1.5 推广机制:准入倒逼 + 双载体先行,不行政强推
- 准入倒逼:约束只落在「对外提供服务的发布物」上(注册 + 门禁 + 门面),不约束开发过程与工具;
- 双载体先行:第一用户 = 框架设计者本人的研发本体 / RSI 场景(ontoos-probe agent);workflow + 提示词路线作为兼容形态纳入(manifest
kind: workflow-prompt,嫁接 C-8),运行时不强改; - 标准权:9-15 Bi-weekly 争取书面确认「标准权」(框架冲突裁决机制)——书面确认前 git PR 准入可被绕过,此为已知组织风险(见 §14-5)。
2. 设计原则
2.1 Agent-as-API 六条硬结论(三份独立报告收敛,直接作设计前提)
- 不能承诺绝对保密。工具名/描述/schema、调用参数与结果必然进入模型上下文。目标 = 最小披露、不可越权、可审计,不是零可观测。
- skill 形态的 IP 保护为零(明文落盘)——薄壳原则:核心 knowhow 一律不进可分发包。
- 三种协议不等价,不能靠字段改名兼容。内部维护 canonical IR + 三个独立 adapter;不支持的能力返回明确 400/501,禁止静默伪造。
- Agent 循环必须在我方服务端。平台侧只留极薄的发现/路由适配器。
- 无单一开源仓库能同时满足「三协议皮 + 服务端托管循环 + 默认不泄露 tools/SKILL.md + 生产级流式 + 多租户安全」——必须组合,且自留一层薄但关键的请求改写与出口净化。
- 授权必须服务端每次调用强制;MCP annotations(readOnlyHint 等)是不可信提示,不能当安全策略。
2.2 三条设计文档必写原则
| 原则 | 内容 |
|---|---|
| 方向性 | 「模型兼容 API」有三个方向:① 平台→我方(我方扮演模型服务,只有此方向需实现三种线协议);② 我方→模型(出站 SDK 适配,我方是 client);③ 模型平台→我方 MCP(我方扮演 MCP server)。三条链路的日志、token、数据留存、责任主体不同,架构图与合同不得混写(见图 2)。 |
| 入站净化 | 客户端传来的 tools、mcp_servers、内部 server ID、任意 URL 默认丢弃或隔离,不得覆盖服务端 allowlist。 |
| 出站净化 | 服务端已执行的 tool call 不得以 tool_calls / tool_use / MCP item 形式回给客户端(否则客户端会再执行一次)。深度上限/超时/需审批时返回明确受控状态。 |
2.3 熵海七条经验(设计原则内化)
- RSI 前置 = 高质量结构化数据 + 业务源码;
- 确定性代码 + 窄上下文,防「代码屎山」;
- 暂不动底层参数,先 Skill 级 RSI;
- 必须建可量化 benchmark,目标天级迭代;
- FDE 模式不可规模化(要规避);
- 生态 = 能力封装 MCP/Skill,对接腾讯 WorkBuddy / 阿里云百炼;
- 优先高频、高人力成本、低容错场景(审单/对账)。
出处:熵海经验教训入库 7 条(facts.md:17,经 internal-assets 笔记转录)。
2.4 诚实口径框(不宣称清单)
本框架对内对外一律不作以下宣称:
- 不承诺绝对保密——后端托管是「减少暴露面」,不是「平台/模型完全看不到业务知识」;
- 不宣称三种协议 100% 等价——公布支持矩阵,不支持能力返回 400/501,不静默伪造;
- 不宣称无基线的提效数字——评测基线刚立,尚无因果证据,不说「研发效率提升 X%」;
- 不把平台 Skill/MCP 审核标记当成保密或安全证明;不把 MCP annotations 当强制安全策略。
全文沿用「官方明确 / 协议推断 / 需实测」三级标注;每个数字带出处口径(数字备忘见 §15)。
3. 总体架构
以方案 A(网关演进派)为骨架、嫁接 B/C 共 12 项机制的合成架构(评审收敛过程见 §12)。五层分层如下,右侧身份 / 审计 / 门禁三条治理线纵贯全部层级。
3.1 分层表
| 层 | 内容 | 状态 |
|---|---|---|
| L5 消费方 | AI Work 平台(WorkBuddy/钉钉/飞书/Coze 等)、内部应用、IM 机器人、Agent CLI(Claude Code/Codex,完全自由)、BPO 运维 | 既有 |
| L4 多形态发布层 | /v1/chat/completions、/v1/responses、/v1/messages(Anything as LLM:model 字段 = agent id)、/mcp 治理型门面、薄壳 skill 导出(按通道两版壳)、CLI、A2A Card(P2,v0.1 返回 501 不静默伪造) | 砺石新增 |
| L3 治理执行面 (砺石 Runtime = pi sidecar) | 入站净化 → 身份/租户(token 推导)→ 策略/ABAC → 服务端 Agent 循环 → 审批 + 幂等 → 工具执行(SSRF 防护)→ 结果投影/脱敏 → 出站净化(已执行 tool call 不回传) | pi 现成 + 扩展 |
| L2 控制面(v0.1 轻量) | 注册市场(manifest + 五态状态机 + 别名灰度/回滚)、评测门禁(xbench gate + wrapper 兜底)、发布准入(11 项清单 + L0~L4 放权分级)、身份(v0.1 内部 JWT → P1 OIDC broker)、无头管理面(MCP/CLI/skill,读写拆分工具)、UI 保底(只读 console + 飞书机器人) | 新增(轻量) |
| L1 数据与观测 | CPA 网关/CLIProxyAPI(全司模型流量 100%)、usage-pipeline → DuckLake(审计/用量入湖)、OntoOS(本体/资产事实底座,PROV-O 后置图化 ETL)、xbench(Inspect AI 0.3.260 + Harbor 0.22.0) | 全复用 |
3.2 三方向链路(不得混写)
3.3 部署要点
- CPA 网关不动:CLIProxyAPI 双实例继续承载全部存量模型流量,不在其代码内做二开(治理逻辑不进不可控上游项目);
- 砺石 Runtime 旁挂:唯一新增常驻进程(pi sidecar,stdlib HTTP server 现成),部署 121 同机或同网段;出站 ModelBackend 指向 CPA 网关 OpenAI 兼容端点——Agent-as-API 流量天然 100% 仍经现网网关;
- 控制面无独立服务:v0.1 = git manifest 仓 + loader + 状态机脚本 + 入湖脚本,零新增服务;升格触发条件:资产百量级 / 多环境分发 / 有状态审批工作流 / 121 单点成为瓶颈;
- 存量零风险:pi 崩溃不影响全司 AI 使用;所有模型 token 消耗仍在同一观测口径计量。
4. 数据面设计
4.1 请求流水线(7 个净化 / 授权点)
4.2 三协议 + MCP 端点表(pi 现成路由)
| 端点 | 协议 | 说明 | 阶段 |
|---|---|---|---|
POST /v1/chat/completions | OpenAI Chat Completions | WorkBuddy 类平台默认按此路径校验,首个适配器先做此路(报告 A 提示);SSE 以 [DONE] 终止 | P0 |
POST /v1/responses | OpenAI Responses | typed items / typed SSE;含 background 轮询与 /v1/responses/{id}/cancel;previous_response_id 绑定主体 | P0 |
POST /v1/messages | Anthropic Messages | content-block 数组;x-api-key + anthropic-version;max_tokens 必填;SSE 以 message_stop 终止 | P0 |
POST /mcp | MCP Streamable HTTP | 治理型门面:initialize / tools/list / tools/call;session + Origin + MCP-Protocol-Version 强校验;目录按 tenant + scope 裁剪 | P0 |
GET /v1/models | OpenAI 兼容 | 即 agent 目录(Anything as LLM) | P0 |
三套 wire contract 各自验收,不能只改字段名;不支持的 store / reasoning / 附件 / 后台任务等返回 400/501(协议差异见 oss-selection 笔记字段级对照)。
4.3 多形态发布矩阵
| 形态 | 阶段 | 治理点 |
|---|---|---|
| API(三协议) | P0 | 入站/出站净化;capability fail-closed(CapabilityRegistry);未声明能力组合一律 400/501 |
| MCP 门面 | P0 | 工具目录按 tenant + principal + scope + catalog version 分区缓存,授权变化立即失效 |
| CLI(薄壳) | P1 | 本质是三协议 API 的壳(模板化生成),同一身份与审计口径 |
| 薄壳 skill 导出 | P1 | 按通道出两版壳(嫁接 C-10):「隐藏编排 DAG 通道版」与「公开目录版」——两者规则层面互斥(实证风险);包内仅 SKILL.md(意图/边界/入口)+ manifest + endpoint 模板,无真实 token,核心 knowhow 不进包 |
| A2A Card | P2 | v0.1 对 A2A 请求返回 501,不静默伪造;P2 经 ContextForge 的 A2A 注册能力评估 |
4.4 Anything as LLM(model 字段 = agent id)
注册仓里每个 agent 编译为一个 ModelCapability(model 名 = agent id)+ 默认 instructions + 工具白名单;GET /v1/models 即 agent 目录。客户端用任意 OpenAI / Anthropic SDK 把 base_url 指向砺石、model 填 agent id 即可调用。此模式有 OpenClaw 先例佐证(「model 字段是 agent id」),但由 pi 自研实现、不引入 OpenClaw 代码(其 HTTP 面等价完整操作员权限,不能当多租户边界——官方明确)。
4.5 流式策略(如实声明)
- v0.1 全部为明示伪流:服务端循环跑完后按各协议 SSE 语法切块回放,三协议终止语义各自正确;manifest 能力位如实声明
streaming: pseudo,首 token 延迟 = 循环总时长,不伪装真增量; - 硬时限渠道不承诺:企业微信 5 秒首响应类要求 v0.1 不可达、不承诺(需实测);该类渠道在准入清单标「暂不支持流式多步」,返回 400/501;
- 配方 B 列 P1 备选:OpenClaw 循环(流式原生,须藏自有鉴权 edge 后)+ LiteLLM / agentgateway 补 Messages 翻译——工作量未估;或对 pi 做真流式改造(ModelBackend 增量 seam,改动点已定位,需实测);
- 背景:流式与服务端循环在多个候选上官方明确互斥(选型一票否决项,如 Bifrost Agent Mode)。
5. 控制面设计
5.1 资产治理流与状态机
5.2 manifest schema 示例(YAML)
# manifest.yaml —— 注册市场单一治理锚点(嫁接 B-1 / C-2 / C-7) id: ontoos-probe-agent kind: agent # agent | workflow-prompt | skill | mcp-server | evalset | dataset version: 0.1.0 owner: platform-arch runtime: pi-ir # pi-ir | workflow | agent-cli three_questions: # 谷雪梅三问(立项门槛,必填非空) goal: "研发本体事实问答的一次解决率" metric: "xbench ops_triage 子集 + 线上一次解决率" iteration: "badcase 回流产题,evalset 版本 +1 双签入库" data_domain: # OntoOS 数据域绑定,注册 CI 做引用校验,注册即图边 - ontoos.dwd.repo - ontoos.dws.deploy scopes: [ "ontoos.read" ] risk: low data_class: internal evalset: ops-triage-subset@1 # 评测集亦为版本化受治理资产 exports: # 导出形态能力位;未声明的组合返回 400/501,不静默伪造 api: true # 三协议(P0) mcp: true # P0 cli: false # P1 skill: false # P1(按通道两版壳) a2a: false # P2;v0.1 返回 501 streaming: pseudo # 伪流如实声明 status: draft # draft / evaluated / approved / published / deprecated
起点为 pi docs/protocol-contract.md 第 10 节能力注册表 YAML 设计稿 + PublicToolDescriptor / PrivateToolBinding 公私分离;strict loader 拒绝未知字段(借鉴 RSI DEV-BENCH-01 七类 schema 设计,估时未经实施验证,如实标注)。
5.3 无头控制面(框架自身可被 AI agent 操作)
| 类型 | MCP 工具(读写拆分,禁 catch-all method 参数——Anthropic 官方要求) | 约束 |
|---|---|---|
| 读 | whetstone.list_agents / whetstone.get_manifest / whetstone.get_audit | 专用管理 scope;审计查询强制租户过滤 + audit.read scope |
| 写 | whetstone.submit_draft / whetstone.run_gate / whetstone.approve_release | 写操作走审批 token;控制面不豁免数据面纪律 |
whetCLI:同一批端点的薄壳(register / gate / audit / approve),供脚本与流水线调用;- skill 包装:指导 CLI / MCP 用法的薄壳 skill,同批端点;
- UI 保底:只读 console(目录浏览 + 状态机看板 + 审计查询)+ 飞书机器人自助查询(既有能力)——无头优先,界面保底。
6. 模块概要设计(12 模块)
以下为十二模块终版口径(以终版架构 §4 表为准展开)。阶段约定:P0 = v0.1(9-12)可运行;P1 = 9 月底~10 月;P2 = 独立控制面阶段。开源选型均为角色限定(详见 §10 BOM)。
1. 统一网关 P0
- 职责
- 模型流量面(现网 CPA,不动)+ Agent-as-API 三协议门面(砺石 Runtime)
- 选型
- pi 自研 IR(oss-selection 配方 D 推荐角色);不叠网关,LiteLLM 仅列 P2 provider 路由候选
- 复用
- CPA 网关全量;pi 5,647 行、28 测试全绿
- 自研面
- 修控制字符 bug(两处一行);SDK 字段白名单按实测扩充(需实测)
2. 身份与权限 P0 基线
- 职责
- 主体认证、agent 服务身份、scope/ABAC、多租户归属校验、审批流
- 路线
- v0.1 内部 HS256 JWT(占位,如实标注)→ P1 企业 IdP/OIDC broker(选型空白如实标注)→ P2 KMS 短时凭据(抄 RSI DEV-BENCH-03A 合同)
- 复用
- pi auth.py / policy.py / state.py 全量
- 自研面
- OIDC broker(P1 spike);登录 / 审批 secret 分离(MVP 显式步骤)
3. 审计 P0
- 职责
- 最小字段集审计(脱敏后入环)→ JSONL 落盘 → usage-pipeline 入 DuckLake
- 口径
- 最小字段集采报告 A §9.3 + direction 标签(嫁接 B);敏感参数只留 hash
- 复用
- usage-pipeline、DuckLake、pi redaction.py、xbench 脱敏词表 44 组 + 红线 5 条
- 自研面
GET /v1/audits导出端点(租户过滤);P1 PROV-O 图化 ETL 进 OntoOS DWD
4. 注册市场 P0 声明式
- 职责
- git manifest 仓 + strict loader + 五态状态机 + 别名灰度回滚
- 首批
- 研发本体 agent、84 个内部 skill(登记为 draft,如实标状态)、税件/开票封装方向
- 选型
- P2 引 ContextForge(限 MCP/A2A 联邦角色,锁版本 + 故障注入验证)
- 自研面
- YAML loader(数百行级);注册 CI 校验(schema、scope 枚举、状态机合法迁移、OntoOS 引用)
5. 评测门禁 P0 挂接
- 职责
- xbench
make gate退出码挂发布脚本 + wrapper 兜底;谷雪梅三问为立项门槛(manifest 必填) - 前提
- 复用前提 = 修 REVIEW.md 判 REJECT 的 gate 假绿(P1-2)与发布 YAML fail-open(P1-7);修复前 evaluated 实质靠人签(如实声明)
- 复用
- Inspect AI 0.3.260 + Harbor 0.22.0 + inspect_harbor 0.7.4(既定 pin)
- 自研面
- 发布脚本粘合;LLM-Judge 相关系数仅 0.11,保留人工校准环
6. 发布 / 交付准入 P0 清单
- 职责
- 报告 A §10.1 十一项验收清单裁剪 + 两周 POC 退出条件(「返回 200 不算通过」)
- 口径
- published 前必须交 BPO runbook、告警联系人、kill switch 操作卡;L0~L4 放权分级作量尺(嫁接 B-12)
- 兼容
- workflow + 提示词路线:manifest
kind: workflow-prompt,定义与提示词包作版本化 artifact(digest 登记),运行时不强改(嫁接 C-8)
7. 多形态发布层 P0/P1/P2
- 职责
- 三协议 + MCP(P0);CLI / 薄壳 skill 导出(P1,两版壳);A2A(P2,v0.1 返回 501)
- 要点
- Anything as LLM:agent 编译为 ModelCapability(model = agent id);OpenClaw 先例佐证但不引入其代码
- 自研面
- agent 到 ModelCapability 的编译器(含在 loader);CLI 与 skill 导出模板
8. 无头控制面 P0 雏形
- 职责
- 框架自身 MCP 工具(读写拆分,禁 catch-all)+
whetCLI + skill 包装同批端点 - 保底
- UI = 只读 console + 飞书机器人(既有能力)
- 自研面
- 管理工具 handler 3 件起步;管理 scope 与业务 scope 隔离
9. 三层整合 P0 定位
- 职责
- 数据(DuckLake/HoloGres)+ 本体(OntoOS 110 表/33 视图)+ 模型应用(注册 agents)
- 机制
- data_domain 注册即图边(嫁接 C-2);semantica 仅理念借鉴,明确不作底座(无管控面能力)
- 自研面
- 审计到 OntoOS 同步管道(P1);注册仓与 OntoOS 资产引用校验
10. 企业复杂集成 P1 主体
- 职责
- 内部系统经受治理连接器(pi provider SSRF 防护栈);IM 渠道接三协议门面
- 口径
- 企微 5 秒首响应硬时限 v0.1 不承诺(需实测);钉钉直通 / 飞书 aily 协议需向平台索取(需实测)
- 选型
- Docker MCP Gateway P1(限 worker 隔离角色);凭据 KMS P2(绝不 token passthrough)
11. 可观测与 RSI 闭环 P0 采集
- 职责
- 凡经砺石的请求默认产审计 + 用量入湖(寄生冷启动红利,应用侧零改造)
- 闭环
- badcase 回流产题(evalset 版本 +1 双签)→ 内环 gate(单面修改 + 六桶归因)→ skill 级调优(熵海经验:不碰参数)→ 状态机再发布 → holdout 外环防应试(详见 §9)
- 去重
- 框架即 RSI D-10「获批 model gateway」实体,与 23 票合同层复用不重复建设
12. 底层 CLI 完全自由 P0 即兑现
- 兑现
- 零侵入:CLI 流量已 100% 经 CPA 网关,自由是默认态不是恩赐
- 边界
- 约束只在发布物(注册 + 门禁 + 门面),不约束开发过程与工具;阿里云基础层不碰
- 自研面
- 无(网关演进骨架的天然优势项)
7. 三层整合
CEO(吴云)要求的「数据库基础 + 本体 + 模型应用」三层整合,在本骨架下不需要额外整合工程:manifest 的 data_domain 字段强制声明数据依赖,注册即建立「agent → 本体域 → 表」图边,可回答「哪个 agent 依赖哪张表 / 改表爆炸半径」——三层整合是注册的副产品(嫁接 C-2)。
7.1 semantica 借鉴表(8 个借鉴点 + 边界)
| semantica 理念 | 在砺石中的落点 |
|---|---|
| 决策即一等公民图节点 | 审计事件 P1 升格为 OntoOS DWD 可查询决策节点(嫁接 C-9) |
| 本体做 schema / 约束,推理走确定性规则 | 与熵海「确定性代码 + 窄上下文」一致:策略引擎、审批、门禁全部确定性代码 |
| 共享上下文图替代各 agent 私有记忆 | agent 记忆 / 事实底座放 OntoOS,不放各 agent 私仓 |
| 服务面 REST / MCP / CLI + 可视化保底 | 与无头控制面(§5.3)同构参照 |
| BiTemporalFact 双时序与 state_at 时点快照 | 评测与审计的时点纪律(对齐 RSI OntoOS snapshot 要求) |
| W3C PROV-O 血缘词表 | 审计导出标准词表直接借用 |
| 摄取 → 抽取 → 冲突 → 去重 → 图 管线分段 | OntoOS 扩数据源时的工程参考 |
| 对主流 agent 框架做官方薄集成而非换框架 | 与「底层 Agent CLI 完全自由」方针一致 |
8. 安全设计
8.1 身份演进路线
| 阶段 | 方案 | 口径 |
|---|---|---|
| v0.1 | 内部 HS256 JWT(iss/aud/exp/nbf/jti 撤销全校验);token 签发 CLI;登录 token 与审批 token 的 secret 分离(MVP 显式步骤,嫁接 B-4) | 占位方案,如实标注——对齐会上必须明说,避免被当成企业身份已达成 |
| P1 | 企业 IdP / OIDC broker:IdP(OIDC)→ 短期内部 JWT 交换服务,pi 只认内部 JWT | 选型空白如实标注(oss-selection 未覆盖任何 IdP 软件,另行调研) |
| P2 | KMS 短时凭据:下游系统用 KMS 中「另一枚」上游凭据按租户/用户短时换取,绝不 token passthrough | 合同直接抄 RSI DEV-BENCH-03A(KMS + 六角色 IAM + read/decrypt 审计) |
8.2 多租户与会话归属校验
- 租户 / 主体 / scope 只从已验证 token 推导,绝不信请求 body 同名字段;
- conversation / response / job / 会话句柄全部绑定 tenant + principal,跨主体访问 403——「知道句柄不算认证」,会话 ID 不是授权凭证(否则横向越权);
- 跨租户拒绝是 9-15 现场负向演示用例(嫁接 B-4);上线指标:跨租户数据泄露 0、秘密/DLP 逃逸 0、重复副作用 0。
8.3 审批流(人工在环)
高危写操作:策略判定 → 返回 preview / pending_approval → 审批者(专用 scope)经 POST /v1/approvals 签发审批 token——绑定 tenant + principal + call + 参数 hash + 过期时间 + 一次性 nonce;执行携带 X-Approval-Token 与 Idempotency-Key,nonce 一次性消费、幂等重放安全;全程审计留痕。P1 把签发动作接入飞书审批流。
8.4 入站 / 出站净化规则清单
| 方向 | 规则 |
|---|---|
| 入站 | 客户端 tools / mcp_servers / 内部 server ID / 任意 URL 默认丢弃或隔离,不得覆盖服务端 allowlist;内部 MCP schema 只进我方模型上下文 |
| 协议字段白名单 fail-closed:未知字段 400(reject_unknown),不静默丢弃;拒绝未知 role、重复 id、超深 JSON | |
| v0.1 对外 profile 定为 Hosted-agent(不接受入站 tools,只回终态文本 / 受控结构化结果);Delegated 形态推后 | |
| 出站 | 已执行 tool call 不以 tool_calls / tool_use / MCP item 回传;达深度上限 / 超时 / 待审批时返回明确受控状态 |
| 错误不泄内部细节:SQL、内部 host、凭据、完整堆栈不出现在错误消息与 SSE 心跳/错误帧中 | |
| 结果投影脱敏(redaction:Bearer / sk-key / JWT / URL / Email;键名 + 文本双重脱敏);审计 args 只留 hash |
8.5 SSRF 防护栈(pi provider.py 已落码,7 项专项测试实测通过)
- 双栈特殊网段拒绝清单(IPv4 18 段 / IPv6 17 段:loopback、RFC1918、link-local、云 metadata、过渡地址等);
- 单次 DNS 解析 + 地址钉扎(防 TOCTOU / DNS rebinding);混合应答 fail-closed;
- 不跟随重定向、忽略代理;模型不得传任意 URL 作下游地址;
- 连接器出站强制复用该防护栈;不受信连接器 P1 进 Docker MCP Gateway 容器隔离 worker(须放在已认证租户路由器之后)。
8.6 威胁要点与确定性控制
| 威胁 | 确定性控制(不依赖提示词) |
|---|---|
| 提示注入 / 间接注入 | 工具结果标记不可信来源写进代码路径;允许工具集由策略引擎生成(模型只能在集合内规划);红队回归集随 skill/schema/模型变更重跑 |
| 越权(横向 / 纵向) | 每次工具调用服务端重做 schema/ABAC/对象级校验;「模型说已授权」不算授权;MCP annotations 不作安全依据 |
| token 泄露 / 重放 | 短 TTL + jti 撤销;审批 token 一次性 nonce;登录/审批 secret 分离;P2 KMS 短时换取、密钥不进 shell/trace/镜像层 |
| 成本失控 / DoS | per-tenant 限流与预算熔断;深度上限 / 超时 / 链深 / body 大小限制;用量入湖按 agent/租户/主体计量 |
| 供应链 | 锁 release/commit/digest、SBOM、版本 pin 可回滚;工具描述/schema/权限变化一律按新版本处理 |
9. 可观测与 RSI 闭环
RSI 定位沿 xbench 表述:「企业语境下 RSI 不是 AI 自改权重,而是 Agent 系统的每一次迭代都由客观、稳定、来自真实业务的度量裁决是否算改进——评测门禁就是这个度量(适应度函数)」。数据收集在 P0 即为默认:凡经砺石的请求自动产审计 + 用量入湖,应用侧零改造(寄生冷启动红利)。
9.1 L0~L4 放权分级表(嫁接 B-12,承接 xbench 口径)
| 级别 | 门槛 | 含义 |
|---|---|---|
| L0 | — | 仅观测 / 影子运行,无自动放权(默认档) |
| L1 | 主指标 ≥ 0.60 且违规率 = 0 | 低风险只读场景可自动执行 |
| L2 | ≥ 0.75、违规率 0 连续 4 周、留出集差距 < 0.05、开发 P2P = 1.0 | 常规场景自动执行 + 抽检 |
| L3 | ≥ 0.85、红线连续 8 周零违规 | 高价值场景自动执行,人工兜底 |
| L4 | L3 稳定 ≥ 1 季度 | 放权最高档;仍保留 kill switch 与审计 |
门槛数值出处:xbench docs/07(放权分级 L0~L4,按「场景 × 级别」逐格开);配合 Result 8 态与失败码表作准入量尺(嫁接 B-12)。
9.2 「谷雪梅三问」立项门槛
任何 agent / 评测集立项,manifest 中三字段必填非空,不齐不立项:① 优化目标;② 衡量标准;③ 迭代机制。评测集本身也是版本化受治理资产(evalset-as-asset,嫁接 C-7):badcase 回流产题时评测集版本 +1,走同一状态机双签入库——度量本身也受治理。
口径说明:「谷雪梅三问」表述成文于 facts.md:18 与 RSI Phase0 文档(「谷三问」),xbench 文档体系未使用该词;本文档即统一引用口径页。
9.3 与线上指标的对齐纪律
- 三条硬约束:判分器不能由被测 Agent 生成或修改;评审模型与被测模型解耦、版本固定;人工抽检每月 10% 题,一致率跌破 80% 停用该维自动分;
- LLM-Judge 与人工相关系数仅 0.11(OpsEval 参考 0.92)——自动判分暂不可信,保留人工校准环(诚实口径);
- benchmark 分数须反映线上指标(一次解决率 / MTTR / 人工接管率),连续两周期背离即审计 benchmark 本身。
10. 开源选型 BOM(角色限定,快照 2026-09-01)
| 组件 | 角色限定 | License | 引入阶段 | 依据 |
|---|---|---|---|---|
| pi/agent_gateway(自研 IR) | canonical IR + 三协议门面 + 服务端循环 + 净化 | 内部 | P0 | oss-selection 配方 D 推荐角色;28 测试全绿 |
| CLIProxyAPI(现网 CPA 网关) | 模型流量咽喉 / 出站计量 | 现网 | P0(不动) | 既成事实资产 |
| Inspect AI 0.3.260 / Harbor 0.22.0 / inspect_harbor 0.7.4 | 评测门禁(判分 / 执行 / 桥接) | MIT / Apache-2.0 / MIT | P0 | xbench 既定 pin,非本设计新选型 |
| DuckLake + usage-pipeline | 审计 / 用量入湖 | 现网 | P0 | 既有链路 |
| Docker MCP Gateway | worker 隔离(不受信连接器) | 报告未标注(引入前自查) | P1 | oss-selection 推荐(限角色;无多租户控制面,须放在已认证租户路由器之后) |
| ContextForge(IBM) | MCP / A2A 注册联邦 | Apache-2.0 | P2 | oss-selection 推荐(限角色;撤销存储故障可能 fail-open——锁版本 + 故障注入验证后用) |
| LiteLLM Proxy | provider 路由 / 协议皮备选 | 核心 MIT(enterprise 目录另审) | P2 备选 | 不叠网关原则;Messages 自动闭环未证 |
| Envoy AI Gateway | K8s edge(若上 K8s) | Apache-2.0 | P2 备选 | 限 edge 角色,非业务循环 |
| OpenClaw Gateway | 真流式备选路线(配方 B) | MIT | P1 评估 | 须藏自有鉴权 edge 后 + 补 Messages;HTTP 面等价操作员权限不能当租户边界 |
| semantica | 三层理念参考(不引入代码) | MIT | — | 无管控面能力,仅借鉴(见 §7) |
| Higress / OpenHands | 报告未覆盖,无法裁决 | — | 不引用 | 诚实口径:两份调研报告与三份 source-notes 全文均未出现(grep 验证),需另行调研后再议 |
脚注:所有 License / stars / push 信息为 2026-09-01 快照口径;stars 与活跃度只是快照,不是质量或安全证明;Hosted / Cloud / Enterprise / Beta 能力不能当作 OSS 自托管能力。明确排除项(Flowise 已归档、LangServe 已归档、MCP-Bridge soft deprecated、Dify 条件排除等)及用法级排除(网关叠网关、OpenClaw 裸暴露)见 oss-selection 笔记 §2。
11. 既有资产映射
| 资产 | 框架角色 | 复用方式 |
|---|---|---|
| CPA AI 网关 + usage-pipeline 121 服务器,CLIProxyAPI 双实例;全司 AI 流量 100% 经它,日均 21 亿 token(口径见 §15) | v0.1 统一网关现成底座(模型流量面) | 不动、不二开;砺石出站指其 OpenAI 兼容端点;DuckLake 入湖链路直接续用(44 万条请求日志入湖零失败) |
| pi/agent_gateway 5,647 行无依赖 Python,28 测试全绿(2026-09-01 实测) | 砺石 Runtime(Agent-as-API 面) | canonical IR + 三协议 adapter + policy/registry/auth/mcp/redaction 全量复用;扩展 loader / 审计落盘 / 审批端点 |
| OntoOS 本体湖仓 ODS 110 表 / DWS 33 视图;ontoos-probe 6 层面 77 场景 48 SQL 模板 | 「数据库 + 本体」层;资产注册与事实底座 | manifest data_domain 双向引用;审计 P1 后置图化 ETL 进 DWD;注册条目指向 OntoOS 对象而非复制 |
| xbench 评测体系 Inspect AI 0.3.260 + Harbor 0.22.0;三 benchmark 109 + 20 + 46 题 | 评测门禁组件 | make gate 退出码挂发布脚本 + wrapper 兜底;复用前提 = 先修 REJECT 两项(P1-2 / P1-7) |
| RSI Phase0 终稿 23 张票(P0 18)、关键路径 11.5 工作日(估时未经实施验证) | 合同层复用载体 | 见下方去重四条;框架标准层是 RSI 载体 |
| 内部 skill 资产(84 个) | 注册市场首批内容 | 批量登记为 draft(只登记不评测,如实标状态) |
| 4.0 封装方向(税件 / 开票 / 合规件) | 市场首批高价值业务能力 | 优先封装 skill / MCP(「税件是仅存的真壁垒」口径);写操作一律审批 + 幂等 |
11.1 与 RSI 23 票的去重说明(4 条)
- 框架 = D-10 网络矩阵中的「获批 model gateway」实体;准入 / 凭据 / 审计合同直接承接 DEV-BENCH-02 / 03 / 03A 的 AC,RSI 侧无需另建准入口径;
- 评测门禁消费 xbench gate 退出码,不重建评测基建;DEV-BENCH-16(sealed 配对 gate)是其 P1 升级形态;
- manifest strict loader 借鉴 DEV-BENCH-01 七类 schema 设计(Review Ready 估时未经实施验证,如实标注);
- 审计 digest 链 / 分级交付合同整体移植 RSI §13 口径(quarantine / retire 不删历史证据;轨迹默认只存 digest)。
RSI 23 票中没有网关 / 注册市场建设票(盘点笔记如实说明),注册市场由框架独担,不构成重复建设;RSI Phase0 拆票(28 工程日)与本 MVP 可并行不抢关键路径。
12. 方案对比与评审记录(design-it-twice 证据)
本设计经三套方案独立设计、三人评审团独立评分后合成(2026-09-01;原始材料 notes/designs/design-a/b/c.md,评审记录见工作流 wf_396bd541-770 输出)。三案均无硬约束违规。
12.1 三案一句话骨架
| 方案 | 一句话主张 |
|---|---|
| A · 网关演进派胜出骨架 | 全司 AI 流量已 100% 经现网 CPA 网关,这条既成事实的咽喉就是框架锚点:一切治理能力作为网关扩展面生长,先观测后管控,控制面在数据面流量上「寄生」冷启动,规模证明需要之前不建独立控制面服务。 |
| B · 控制面平台派 | 框架本体是控制面服务(注册市场 + 身份 + 审计 + 评测门禁),数据面是被纳管对象、可插拔;声明式 manifest 是单一治理锚点,纳管合同只有四条。 |
| C · 资产本体派 | 框架是一张受治理的资产图:agent / skill / 数据集 / 评测集 / 决策记录全部注册在 OntoOS 本体上,声明式 manifest 编译出五种形态端点,每次决策落成可追因图数据。 |
12.2 评审评分(8 项准则各 1–5 分求和,三位评审独立打分)
| 方案 | 评审一 | 评审二 | 评审三 | 平均 | 硬约束违规 |
|---|---|---|---|---|---|
| A 网关演进派 | 35 | 34 | 34 | 34.3 | 无 |
| B 控制面平台派 | 34 | 33 | 33.5 | 33.5 | 无 |
| C 资产本体派 | 33 | 33 | 32.5 | 32.8 | 无 |
注:8 项准则为——管控面定位契合、复用既有资产、9-12 MVP 可行性、安全与权限深度、多形态发布完备、三层整合支撑、RSI 闭环支撑、不重复造轮子,各 1–5 分,总分为求和;逐准则明细评分保存在工作流评审记录(wf_396bd541-770),本文档不逐格转录。三份嫁接(graft)清单高度收敛,合成为下方 12 项。
12.3 胜出理由(A 为骨架)
- 冷启动零摩擦:治理数据从第一天来自真实全量流量,不存在「建好平台没人接」的死亡谷;
- 9-12 硬期限下交付风险最低:新增部署面 = 1 进程 + 1 git 仓 + 脚本,不引入 K8s、不迁移任何现有流量、存量零扰动;
- 与管控面定位同构:管控面的本质是在流量必经之路上执行策略,现网网关正是必经之路;
- 观测口径单一:所有模型 token 经同一网关计量,成本/用量治理不分叉。
A 的已知代价(评审确认并如实保留):控制面初期简陋(git 仓 + CLI 撑门面)、121 物理单点、多租户硬隔离延后、真流式延后——分别由嫁接项与 §14 风险条目处置。
12.4 嫁接清单(终版采纳,共 12 项)
| # | 来源 | 嫁接机制 |
|---|---|---|
| 1 | B | manifest 单一治理锚点:注册仓 YAML 升格为完整 manifest schema(kind / runtime / 三问必填 / 评测套件引用 / 导出能力位 / data_class);每次状态迁移记录「gate 运行 ID + 审批人」证据链;git 仓 + loader 注入点不变,零新增服务 |
| 2 | C | data_domain 字段 + OntoOS 双向引用:manifest 强制声明数据域绑定,注册 CI 做引用校验——注册即成图边,三层整合成为注册副产品 |
| 3 | B | gate wrapper 机械兜底:xbench P1-2 假绿修复完成前,发布脚本外置强制检查「配对数大于 0 且 manifest / 数据集 digest 一致」才认退出码 0;xbench 本体修复并行、仍是硬前置 |
| 4 | B | 安全硬化两项进 MVP:登录 token 与审批 token 的 secret 分离为显式步骤;跨租户拒绝作为 9-15 现场负向演示用例 |
| 5 | B | 别名切流灰度 / 回滚:外部稳定别名与内部版本双向映射;灰度 = 按租户 / 百分比切流;回滚 = 别名回指上一版本(分钟级) |
| 6 | B | 无头控制面工具纪律:读写拆分为独立 MCP 工具,禁 catch-all method 参数(Anthropic 官方要求) |
| 7 | C | evalset-as-asset:评测集注册为版本化资产;badcase 回流产题时版本 +1 并走同一状态机双签入库——度量本身也受治理 |
| 8 | C | workflow-prompt 兼容:manifest kind: workflow-prompt,workflow 定义与提示词包作版本化 artifact(digest 登记)注册 / 评测 / 发布,运行时不强改 |
| 9 | C | PROV-O 后置图化 ETL:审计 JSONL → DuckLake → OntoOS DWD 后置视图(双时序 / 时点纪律),请求路径零依赖,不阻塞 9-12 |
| 10 | C | 按通道出两版壳:薄壳 skill 导出分「隐藏编排 DAG 通道版」与「公开目录版」,处置两者规则互斥的实证风险 |
| 11 | B | 纳管合同四条:注册 / 身份 / 审计 / 准入,四条之外一概不管——直接作 9-3 三方对齐一页纸底稿 |
| 12 | B | L0~L4 放权分级表 + Result 8 态:作准入清单的量化量尺,「场景 × 级别」逐格放权(承接 RSI / xbench 口径) |
13. v0.1 MVP 工程切分(9-12 可运行)
13.1 十一项清单
- 修 pi 控制字符 bug(jsonutil.py:98 + adapters.py:80-81,两处一行)后 28 测试保持全绿;
- 砺石 Runtime 部署 121,出站指 CPA 网关 OpenAI 兼容端点(DemoModel 离线兜底);
- manifest 注册仓 + strict loader(注入 ToolRegistry / CapabilityRegistry / instructions)+ 五态状态机脚本;
- 审计 JSONL 落盘 +
GET /v1/audits(租户过滤 + audit.read scope)+ 入湖接 usage-pipeline / DuckLake; - token 签发 CLI +
POST /v1/approvals审批端点(一次性 nonce);登录 / 审批 secret 分离; - 首个注册 agent:研发本体自用(ontoos-probe 场景,第一用户 = 框架设计者本人);84 skill 批量登记 draft(如实标状态);
- xbench gate 挂发布脚本 + wrapper 兜底(并行修假绿 P1-2 与 fail-open P1-7);
- SDK 实测:OpenAI / Anthropic SDK 直连,按 400 报错扩字段白名单;
- MCP 门面演示 + 无头管理工具 3 件(读写拆分);
- 写操作拦截 → 审批 → 放行全程审计演示 + 跨租户拒绝负向演示;
- 注册 manifest PR 走完 draft → published 全状态机一遍。
13.2 9-15 演示脚本要点(Bi-weekly)
- OpenAI SDK 以
model=ontoos-probe-agent直连,得到服务端工具闭环的最终答案(客户端看不到 tool_calls); - 同一 agent 经
/mcptools/call 调用(Anything as LLM 与 MCP 门面双形态); - 一次写操作被拦截 → pending_approval → 审批 → 放行执行一次 → 幂等重放演示,全程审计可查;
- 负向用例:跨租户访问被拒(403);未声明能力组合返回 400/501——「返回 200 不算通过」口径的现场兑现;
- 飞书机器人查该 agent 当日用量与审计;DuckLake 查计量明细;
- 一次注册 manifest PR 从 draft 走到 published(带 gate 运行 ID + 审批人证据链)。
诚实声明:9-15 演示的 gate 为 oracle / mock 口径(真实模型评测未跑),评测门禁短期是名义可信而非实证可信(见 §14-1);121 单点 + 内存态下的「可运行」是演示口径(见 §14-7)。
13.3 里程碑时间线
14. 风险与未决问题(九条原样保留,不得软化)
以下九条为评审团 warnings 收编的终版口径,原样保留;等级与责任动作为本设计文档补充标注。等级:阻断(阻断相应路径)/ 高 / 中。
| # | 风险 / 未决问题(原样) | 等级 | 责任动作 |
|---|---|---|---|
| 1 | xbench REJECT 快照:gate 假绿 / 发布 YAML fail-open 只是 REVIEW.md 的一部分(还有公开数据隐私残留、疑似凭据、沙箱不可信);「1-2 天修复」无依据,wrapper 只封配对数 = 0 一条假绿路径;真实模型评测从未跑过——9-15 演示的 gate 为 oracle / mock 口径,评测门禁短期是名义可信而非实证可信。 | 高 | P1-2 / P1-7 修复与 wrapper 兜底并行推进;修复前 evaluated 实质靠人签并如实声明;对外绝不宣称 xbench 已可发布 |
| 2 | 流式:v0.1 全部为明示伪流(先跑完再切块);企微 5 秒首响应类硬时限渠道 v0.1 不可达、不承诺;配方 B(OpenClaw 循环 + LiteLLM/agentgateway 补 Messages)列 P1 备选但工作量未估。 | 中 | manifest 能力位如实声明 streaming: pseudo;硬时限渠道准入清单标「暂不支持」;P1 评估配方 B 并估工作量 |
| 3 | 企业身份是占位:v0.1 为 HS256 内部 JWT,IdP / OIDC 推 P1 且选型空白——对齐会上必须明说,避免被当成已达成。 | 高 | 9-3 对齐会明示占位属性;P1 启动 OIDC broker spike 与 IdP 选型调研 |
| 4 | 寄生冷启动的边界:存量 CLI 流量只被观测不被管控;新治理面首日流量约等于 0,红利要等 Agent-as-API 流量起量。 | 中 | 预期管理写进汇报口径;以第一用户(研发本体)与税件/开票封装拉动首批治理流量 |
| 5 | 标准权窗口期:9-15 书面确认前,git PR 准入可被绕过,无行政护栏——绑定 Bi-weekly 争取。 | 高 | 9-15 Bi-weekly 议程固定列入「标准权书面确认」;此前发生绕行按事实记录不追溯 |
| 6 | 数字口径:日均 21 亿 token(9-1 Bi-weekly 口径)vs facts.md 仅月度 508 亿(折算约 16.4 亿/日,推算值)——相差约 28%,对外汇报前必须统一;ops 题数 157 → 85 → 109 三代快照须并注。 | 中 | 对外统一口径前两套并注不混用(详见 §15);台账 owner 核对 8 月完整口径后归一 |
| 7 | 121 单点 + 内存态:会话 / 幂等 / 审批 nonce 重启即丢,9-12 的「可运行」是演示口径,与「批量稳定可交付」之间的距离要标价(P1 持久化、P2 双实例)。 | 高 | P1 GatewayState 持久化改造;P2 双实例;演示与汇报口径明示差距 |
| 8 | 法务关键路径:底座模型部署形态 + 生成式 AI / 算法备案未决,leadtime 按月计,立即移交法务(不阻塞内部自用)。 | 阻断 (对外商用路径) |
立即移交法务立项;内部自用 v0.1 不受阻塞,对外商用以法务结论为前置 |
| 9 | 需实测项:平台自定义 header 透传(最便宜最优先)、入站 tools 到达性、SDK 字段白名单、CLIProxyAPI 治理扩展点、钉钉直通 / 飞书 aily 协议。 | 中 | header 透传 20 行级 spike 与 MVP 并行;SDK 白名单在 MVP 第 8 项实测;平台协议向对方索取文档 |
15. 附:数字口径备忘
15.1 网关流量口径(两套并注,统一前不混用)
| 口径 | 数字 | 出处与性质 |
|---|---|---|
| 日均 token | 21 亿 / 日 | 9-1 Bi-weekly 口径(交接文档);facts.md 台账 grep 无「CPA / CLIProxyAPI / 网关 / 日均」字样,不可从台账引证 |
| 月度 token | 508 亿 / 月(7 月,单月新高) | facts.md:67 台账口径;按 31 天折算约 16.4 亿 / 日——此为换算推算值,非台账原文 |
| 差异 | 约 28% | 两套口径相差约 28%,对外汇报前必须统一;8 月完整口径 9 月初出数后核对归一 |
15.2 ops benchmark 题数三代快照(须并注,不是缩水)
| 快照 | 题数 | 说明 |
|---|---|---|
| 阶段 A 全集(ops-agent-bench) | 157 | 题源 2,765 条真实工单、314 条人工标注根因 |
| 统一框架 cc-2 代公开集 | 85 | 脱敏公开集 + 独立判分器(题源 2,817 条);facts.md:41/91 所指口径 |
| summary 终版 ops_triage | 109 | xbench 终版重建(根因可判 82 / 证据可判 49);对外统一说法:「157 → 85 → 109 属三个快照」 |
15.3 xbench 状态备忘
xbench 当前快照被 2026-08-31 审查判 REJECT / 不发布(P0:公开数据隐私残留、疑似凭据;P1:gate 零配对假绿、发布 YAML fail-open、沙箱隔离不可信等)。其骨架与方法论可内部复用,但不能宣称已可发布或可作盲测基线;真实模型评测未跑,mock / oracle 分数不代表模型能力;LLM-Judge 与人工相关系数 0.11,自动判分暂不可信。正向事实:22 个单测全过、validate 返回 0(ops 109 / dev_py 20 / dev_java 46 条一致)、校准结果符合预期。
15.4 其他关键数字(出处速查)
- pi/agent_gateway:agent_gateway/ 4,736 行 + tests/ 911 行 = 5,647 行;28 测试全绿(Python 3.12.13 与 3.11 双复验,2026-09-01 实测);
- OntoOS:ODS 101 → 110 表、DWD 1 → 3、DWS 29 → 33(半月增量);两轮全量复跑合验假阳 0 / 回归 0 / 真链 175 持平;
- DuckLake 入湖:44 万条请求日志入湖零失败;
- RSI Phase0:23 张票(P0 18)、28 工程日、关键路径 11.5 工作日——Review Ready 估算,未经实施验证;
- dev 判分器区分度:oracle 0.978 vs 低质取巧 0.118(判分器有效性证据,不是模型能力结论)。