# 运维智能体（SREAgent）架构设计建议报告

| 项目 | 内容 |
|---|---|
| **版本号** | v1.7 |
| **更新日期** | 2026-10-15 |
| **状态** | **研究建议稿·定稿**。不作为生产实施基线；实施按能力分阶段准入（第 9 章）。文中机制均为设计规则，未经运行验证 |
| **议题范围** | 单体/多体架构选型、Skill 干扰与上下文治理、多智能体划分与协同、生态共建解耦、跨平台集成、CLI 接入范式 |
| **配套件** | 《SREAgent-合稿审查意见处置与复核记录 v1.2》（本轮合稿审查意见的处置、修改前后差异对照与复核状态，已同步至本版；上一轮配套件《独立审查意见处置矩阵 v1.1》已随 v1.6 归档） |
| **信息时效** | 协议与产品形态相关信息截至 2026-09；MCP / A2A / AAIF 演进较快，建议每季度复核第 5、6 章 |

---

## 0. 执行摘要与阅读说明

### 0.1 核心结论

| # | 议题 | 结论 |
|---|---|---|
| 1 | 单体还是多体 | **先划分三个逻辑执行域（诊断 / 处置 / 巡检），再按收益决定每个域是否实例化为独立 LLM 智能体，不要求一一对应。** 执行域分离由安全硬边界决定，是强制的；实例化是可选的——处置域优先采用「策略阶段 + 确定性工作流」而非推理智能体。不能仅凭故障或需求名称机械划分智能体；是否分离仍按安全、上下文、并行价值与运行约束判定，故障与需求的多样性由 Skill / SOP 与路由表达 |
| 2 | 划分依据的优先级 | **安全域、合规数据域、故障域是硬边界（满足即须分离）；上下文可隔离性是效率判断（决定拆分是否划算），不能否决硬边界** |
| 3 | 权限模型 | **能力类别（L0 被动读取 / L1 主动诊断 / L2 有界影响处置 / L3 高风险处置，枚举，不可比较大小）；类别只由动作语义与状态影响决定，数据敏感度、产出形态、资源影响作为独立属性决定审批与数据策略，不改变类别；按「语义动作＋参数＋目标＋环境＋当前状态」登记与判定，无合法策略的组合直接拒绝**。通用 shell / exec 通道不授予诊断模型 |
| 4 | 授权 | **有效权限 ＝ 主体权限 ∩ 租户与环境范围 ∩ 平台动作策略 ∩ 会话授权 ∩ 有效审批，由能力网关每次调用重新判定。** `allowed-tools`、工具注解、`paths`、命名空间、能力包自报字段都不构成授权 |
| 5 | Skill 干扰与上下文 | **会干扰，机制有三种（选择干扰 / 指令冲突 / 注意力稀释）。** 用 Skill Resolver 收敛每会话能力集：授权过滤不可越过，相关性过滤可按可信拓扑扩域。Resolver 接口与确定性过滤首期建立，语义检索按可观测指标触发后补齐 |
| 6 | 多智能体协同 | 共性 Skill 靠包管理、命名空间与内部 Registry 共享。协同以确定性路由为主干、语义分类为兜底；中控承担「分诊 + 编排 + 审计点」。同一所有权域内用子智能体；满足自治与独立任务生命周期条件时才用 A2A。「A2S」按跨智能体协作需求理解为 A2A，属本报告的范围假设（术语背景与处置见第 13 章） |
| 7 | 写操作协调 | **统一策略入口，分离执行器（L1 取证执行器 / L2–L3 工作流执行器）；在同一冲突域内单写者，跨冲突域并行。** 冲突域按资源层级判定，并须协调 GitOps 控制器、自动扩缩容、人工变更等外部写者 |
| 8 | 部署形态 | **共享控制面 + Cell 化执行面。** 推理实例、会话、权限角色、执行器、资源池、Cell 是六个独立概念，不从一个风险标签推导出一个物理部署。具体隔离粒度按第 10.1 节的方法依据企业内部安全域判定 |
| 9 | 生态共建 | 平台交付运行时内核、契约、门禁与观测；应用团队默认交付**声明式能力包**（文本文件，无服务进程），由逻辑统一、物理 Cell 化的 App Capability Service 承载；确有专有系统者走例外路径自建 MCP Server |
| 10 | 平台集成 | **新建或重构的面向智能体的跨边界能力默认 MCP；存量接口由能力网关适配，不为形式统一重写；同进程稳定能力可用原生工具。三者遵守同一工具契约。** A2A 只用于真正自治的远端智能体，且远端委托默认仅允许取证 |
| 11 | CLI 标准 | **调用接口无统一标准，但原语已收敛；在标准化的是能力包格式 Agent Skills（SKILL.md）。** AGENTS.md 是面向编码智能体的仓库级说明，不是企业能力包格式。CLI 只作实现，必须经适配层包成受契约约束的工具 |
| 12 | 评测 | **先有评测集，再谈泛化与自动化。** 评测集按覆盖矩阵验收而非按数量；指标有明确分母；任何用于自动执行门限的置信度都须在留出集上校准。评测集因此是自动化安全的前置依赖，而不仅是效果度量 |

**总纲**：故障与需求的多样性交给 **Skill 与路由**；上下文与并行的需要交给 **子智能体**；身份、权限与故障域的隔离交给 **执行域、执行器与 Cell**；跨组织协作交给 **协议 + 网关**。四者不混用同一种机制。

### 0.2 表述类型标注

为区分证据强度，正文关键论断按下列类型标注；未标注的一般性说明视为【推论】。

| 标注 | 含义 | 使用约束 |
|---|---|---|
| 【事实】 | 有一手或三方出处的外部事实 | 注明引用编号与材料性质 |
| 【观察】 | 对本文采样案例的归纳 | **不构成穷尽证明或领域规律** |
| 【推论】 | 本报告基于事实与原则的推理 | 可被实测推翻 |
| 【建议值】 | 本报告建议的初始参数 | **不作为架构阈值或验收指标**，须按实测调整 |
| 【待判定】 | 须由企业内部依据第 10 章方法判定 | 判定前不作为结论 |

**引用材料性质**：第 12 章将参考资料分为「一手」（厂商工程博客、官方文档、基金会公告、规范原文）与「三方」（媒体转述、会议报道、第三方测评与分析）。作者署名的经验分享按其实际发布渠道归类，不因转述厂商观点而归为一手。

---

## 1. 架构形态：执行域、能力模型与授权

### 1.1 业界案例（采样观察）

- **Anthropic**【事实】：默认从单智能体起步；多智能体适用于上下文保护、可并行化、工具集专门化三类情形，且「**只有当上下文能够被真正隔离时才应拆分**」；按问题类型而非上下文边界拆分会产生「传话游戏」，协调开销可能超过实际工作[1]。多智能体对同等任务的 token 消耗为单智能体的 3–10 倍，属其测试观察[1]；其研究系统中 agent 约为对话的 4 倍、多智能体约 15 倍，Opus 4 主导 + Sonnet 4 子智能体在其内部研究评测上比单一 Opus 4 高 90.2%[2]。
- **Cognition**【事实】：2025 年主张共享完整上下文与轨迹、「动作隐含决策，冲突的决策带来糟糕的结果」[3]；2026 年修正为**单写者原则**——写操作保持单线程、其余智能体只贡献判断不贡献动作时，多智能体才有效；无前置上下文的评审智能体每个 PR 约发现 2 个缺陷、其中 58% 为严重缺陷；无结构 swarm 基本是干扰项[4]。该经验来自围绕单个开发任务的多智能体协作。
- **Datadog Bits Investigation**【事实】：单智能体 + 假设树，提出假设、定向查询验证、递归下钻；早期版本工具调用增多导致汇总提示 token 线性增长，修正方向是聚焦告警与特定假设之间的因果关系[12]。
- **Azure SRE Agent**【事实】：主 agent + 可选子 agent；可扩展点为 skill、自定义 agent、Python 工具、MCP server、hook[14]；子 agent 用于「健康报告、告警分诊、通知投递」等聚焦任务，配置项为指令、skill、工具与 hook，**skill 与工具选择留空时默认继承全局**[16]；事件响应计划以过滤条件路由到自定义 agent 并指定 Autonomous / Review 自治级别[15]。
- **AWS DevOps Agent**【事实】：2026-03-31 正式可用[28]；报道称其为构建于 Bedrock AgentCore 的单一自治 agent，通过 agent skill 与 MCP 扩展；预览期厂商数据为 MTTR 最多下降 75%、根因准确率 94%，未经独立验证[34]。
- **Google SRE**【事实】：按流程阶段组织多类 agent（异常检测、告警处理、事件编排、调查、剧本执行）；工具面以 MCP 为基础；要求 agent 具备强身份、角色与权限，「偏向透明而非黑盒自动化」；事件知识由独立的向量化洞察系统供给[17]。
- **Dynatrace**【事实，三方报道】：主张确定性分析先行；以单步 95% 在十步链路后约 60% 的示意说明误差复合；「不能把 PB 级日志装进一个 agent」[36]。
- **STRATUS（学术研究）**【事实】：基于 LLM 的多智能体自治 SRE 系统，由检测、诊断、缓解等专职智能体组成，并以**状态机**组织编排，以支撑系统级安全推理与强制执行；提出「事务性无回归（Transactional No-Regression，TNR）」安全规范，使缓解动作能在受约束条件下安全探索与迭代；论文报告其在 AIOpsLab 与 ITBench 两个 SRE 基准上的故障缓解成功率，较当时先进 SRE 智能体至少高 1.5 倍（跨多个模型）[41]。
- **Flow-of-Action（学术研究）**【事实】：SOP 增强的 LLM 多智能体根因分析系统：以「SOP 流」在关键节点约束模型——检索相关 SOP、缺失时自动生成、并转为可执行代码；另设辅助智能体负责噪声过滤、缩小搜索空间与判定流程可否停止；论文报告其准确率 64.01%，显著高于 ReAct 基线的 35.50%[42]。

**观察**【观察】：所引案例都支持**优先按权限、上下文与运行约束评估划分**，不支持仅按故障名称机械拆分。厂商材料给出的是职责示例，不构成对全部产品形态与用户部署的穷尽证明；本报告据此给出的是建议的评估顺序，不是领域规律。

**与学术先例的对照**【推论】：STRATUS 以状态机编排专职智能体、并以「缓解不得使目标系统状态回退」的安全规范约束动作，与 §3.5「统一策略入口、单写者」及 §7.8「成功判定以业务后置条件为准、补偿与成功分开」的取向互为印证；Flow-of-Action 以 SOP 约束诊断路径，支持「决策与执行分离、模型不按 SOP 文本自由执行」的分工取向（§2.7）。两文的评测条件、基线与环境均为各自论文所述，其数值不作企业内部目标参照（§10.2）。

**反例说明**【推论】：若按现象拆成「CPU 智能体、超时智能体、重启智能体」，一次真实故障往往同时出现 CPU 冲高、超时、Pod 重启、GC 异常、依赖失败与近期变更，会被多个智能体重复分析并产出相互矛盾的结论，且智能体数量随现象种类无上限增长。

### 1.2 划分因子：三层优先级

| 层 | # | 因子 | 判据 | 结论 |
|---|---|---|---|---|
| **硬边界**<br/>满足即须分离 | 1 | 安全域 / 身份边界 | 凭证、审批链、审计主体、网络域是否不同 | 不同 → 分离执行域并绑定独立身份[14][17] |
| | 2 | 合规与数据域 | 数据是否不允许在同一处理环境内混合处理 | 是 → 分离 |
| | 3 | 故障域 / 爆炸半径 | 一路失效是否必须不影响另一路 | 是 → 分离，隔离粒度按 §10.1 判定 |
| **效率判断**<br/>决定是否划算 | 4 | 上下文可隔离性 | 子任务能否只凭简短输入独立完成并回传摘要 | 可隔离 → 拆分划算；不可隔离 → 不为性能或专业化而拆，**但不能否决 1–3**[1][3] |
| | 5 | 上下文体量 | 中间输出是否会淹没主线证据 | 会 → 隔离到子智能体[5] |
| **优化判断**<br/>有收益再拆 | 6 | 并行价值 | 是否存在可独立验证的多路证据或假设 | 是 → 并行子智能体[1][12] |
| | 7 | 工具集专门化 | 工具集是否天然分裂 | 是 → 专门化子智能体 |
| | 8 | 组织所有权 | owner、值班、发布节奏是否不同 | 不同 → 可独立交付；**是否需要独立智能体仍取决于是否存在自治任务边界**（§5.4），否则以 API / MCP / 能力包交付即可 |

**硬边界要求分离而上下文不可隔离时**：以**结构化移交**替代上下文共享（契约见 §7.7）。移交物不是对话轨迹，而是结论、证据引用、**与安全性和适用性相关的反证与未决假设**、建议动作、参数与前置条件；下游须在执行前复核当前适用性。无需传递模型的隐含推理过程，但必须提供可核验的事实依据。

**架构不变式**：生产写操作经**唯一的逻辑策略入口**授权，在同一冲突域内单写者（§3.5）。这不是拆分判据，而是拆分后始终成立的约束。

### 1.3 执行域与实例化

**执行域（强制分离）：**

| 执行域 | 可持有的能力类别（§1.5） | 触发方式 | 负载特征 | 身份与审批 |
|---|---|---|---|---|
| **诊断域** | L0；L1 按动作白名单逐项准入 | 告警、工单、人工提问 | 实时、低延迟 | 只读身份；L1 使用独立的受控诊断身份，敏感动作须审批 |
| **处置域** | L2、L3 | 诊断结论或人工显式发起 | 实时、强审计 | 变更身份，独立审批链 |
| **巡检域** | L0 | 定时任务 | 离线、吞吐型、可抢占 | 只读身份，不得发起动作 |

**实例化（按收益决定）：**

| 执行域 | 建议形态 | 理由 |
|---|---|---|
| 诊断域 | 独立 LLM 智能体，内含只读子智能体 | 假设生成、证据编排与收敛判断需要推理能力 |
| 处置域 | **优先采用策略阶段 + 确定性工作流引擎**；仅当「选择哪个方案」本身需要复杂权衡时，放置受限 LLM | 执行交给工作流后（§2.7），剩余职责是适用性校验、选流程、填参数、送审，规则与 Schema 可覆盖大部分 |
| 巡检域 | 复用诊断智能体的定义，运行在独立资源池 | 与诊断的差异主要在触发、SLO、调度优先级与资源池 |

评审判据：**「把这个域的 LLM 换成一张规则表，会损失什么？」** 回答不了则不放 LLM。

**诊断智能体内部的首期设计选择**【推论】：保留**单一证据合并者**负责假设收敛与结论，同时允许**并行验证彼此可独立验证的假设或证据路径**。是否扩大并行度，由评测收益决定。子智能体的用途（委派契约见 §7.11）：

1. **并行只读取证**：日志、指标、变更、拓扑、配置各一路，回传结构化证据对象（§7.3）。
2. **上下文污染型任务**：大范围检索、全量配置扫描，隔离执行，只回传结果[5][8]。
3. **独立复核**：虚警复核、结论复核。复核方**不继承主诊断的结论与推理**，但必须获得告警原文、业务影响、证据与数据缺失信息；复核**只出建议，不直接静默告警**（§8.6）。同模型、独立上下文**不保证错误相互独立**。

**运维需求与执行域的映射：**

| 运维需求 | 归属 | 表达方式 |
|---|---|---|
| 根因定位、报警分析 | 诊断域 | 分域 Skill + 假设收敛；入口不同，复用同一套 Skill |
| 虚警识别 | 诊断域的复核子智能体 | 建议模式，不静默 |
| 日志验证 | 诊断域的取证子智能体 | 隔离执行，受限原始片段按需获取 |
| 异常巡检 | 巡检域 | 独立资源池 |
| 故障处置 | 处置域 | 策略阶段 + 工作流 |

### 1.4 总体架构

```mermaid
flowchart TB
    subgraph SRC["接入层"]
        A1["监控告警"]
        A2["工单 / ITSM"]
        A3["巡检定时任务"]
        A4["人工会话 / ChatOps"]
    end

    subgraph RT["分诊与路由（确定性为主）"]
        R1["规范化: 告警类型/对象/应用/严重级"]
        R2["规则表路由: 执行域 + Skill 候选 + 自治级别"]
        R3["语义兜底分类: 校准后的检索置信度"]
        R4["路由决策留痕"]
    end

    subgraph DOM["逻辑执行域"]
        C1["诊断域 · LLM 智能体<br/>L0 + L1 白名单"]
        C2["处置域 · 策略阶段<br/>校验/选流程/填参数/送审"]
        C3["巡检域 · 独立资源池<br/>L0"]
    end

    subgraph SUB["诊断域子智能体"]
        S1["并行取证"]
        S2["污染型检索"]
        S3["独立复核（建议模式）"]
    end

    subgraph SR["Skill Resolver"]
        K1["授权过滤（不可越过）"]
        K2["相关性过滤（可按拓扑扩域）"]
        K3["渐进式披露"]
    end

    subgraph PKG["能力包"]
        P1["core"]
        P2["domain"]
        P3["app（声明式）"]
        P4["knowledge（与 Skill 分离）"]
    end

    subgraph GW["能力网关（统一策略入口）"]
        G1["每次调用重新鉴权"]
        G2["动作注册表: 类别 + 风险属性"]
        G3["限流/超时/熔断/审计"]
    end

    subgraph EXE["执行器"]
        E1["L0 查询执行器"]
        E2["L1 受控取证执行器"]
        E3["L2/L3 工作流执行器"]
    end

    subgraph PLAT["平台与远端"]
        M1["容器 / 日志 / LB / APM / CMDB / 变更 / ITSM"]
        M2["App Capability Service"]
        X1["远端平台智能体（A2A）"]
    end

    SRC --> RT --> DOM
    C1 --> SUB
    DOM --> SR --> PKG
    C1 --> GW
    C3 --> GW
    SUB --> GW
    C2 --> GW
    GW --> E1 & E2 & E3
    E1 --> M1 & M2
    E2 --> M1
    E3 --> M1
    GW -. "A2A 委托（范围/能力上限/截止时间）" .-> X1
    C1 -. "结构化移交（结论 + 证据 + 反证 + 前置条件）" .-> C2
```

**图示约定**：所有工具调用与远端委托均经能力网关，不存在绕过网关的直连通路。L1 取证执行器与 L2/L3 工作流执行器是不同的执行器，共享同一策略入口与冲突协调（§3.5）。

**前置工程约束**【推论】：可确定化的部分做成确定性服务——拓扑关联、变更时间窗关联、指标异常检测、依赖链推导由确定性组件产出，LLM 负责假设生成、证据编排与叙述。须注意**可重复计算不等于准确，时间相关不等于因果**：确定性组件的输出同样是证据而非结论，须附数据版本与时效（§7.3）。

### 1.5 能力安全模型

**为什么「只读 / 可写」二分不够**【事实 + 推论】：

| 动作 | 语义 | 实际风险 |
|---|---|---|
| `kubectl exec` | 进入容器 | RBAC 上为 `create pods/exec`，**是写动词**；且 exec 是执行任意命令的通道，风险由具体命令决定 |
| 临时调试容器 | 附加调试容器 | 通过 `pods/ephemeralcontainers` 子资源以更新操作添加，**与 `pods/exec` 不是同一授权子资源**；且**添加后不能从 Pod 中移除**[29]，本身即构成对 Pod 规格的持久变更 |
| heap dump / thread dump | 获取 JVM 现场 | 可能触发停顿；**堆转储含完整内存数据** |
| profiling | 性能分析 | 持续消耗 CPU，故障期可能放大故障 |
| 抓包 | 网络现场 | 消耗 IO；**报文可能含明文业务数据** |
| 获取容器内文件 | 取配置 / 日志 | 可能包含凭证或客户信息 |
| `EXPLAIN` | 查看执行计划 | 一般低风险 |
| `EXPLAIN ANALYZE` | 带实测的执行计划 | **会实际执行语句**，数据修改语句的副作用照常发生[30] |
| 日志、配置查询 | 被动读取 | **同样存在敏感数据暴露与查询负载风险**，不能视为「无影响」 |

**模型结构：能力类别（由动作语义与状态影响确定）＋ 独立的数据与资源风险属性，按动作登记。**

**能力类别**（回答「这是哪一类能力」，用于执行域归属、执行器选择与身份绑定；**只由动作语义与状态影响决定，数据与资源属性不改变类别**）：

| 类别 | 定义 | 执行器 | 执行要求 |
|---|---|---|---|
| **L0 被动读取** | 查询既有遥测、配置与目录，不在目标系统上发起动作 | 查询执行器 | 按租户与数据分级过滤；查询成本受限 |
| **L1 主动诊断** | 在目标系统上发起动作以获取现场，**不以改变业务状态为目的**，但可能有副作用 | 受控取证执行器 | 动作白名单；参数、时长、频次与资源上限；产物受控（§7.9）；与处置冲突规则联动（§3.5） |
| **L2 有界影响处置** | 改变生产状态，影响面有界，**恢复条件可在执行前声明、执行后验证** | 工作流执行器 | 确定性工作流；默认 Review；恢复条件校验 |
| **L3 高风险处置** | 改变生产状态，**存在不可恢复的影响** | 工作流执行器 | 强制人工批准与双人复核；**备份恢复、补偿或止损方案**；显式声明不可恢复的影响面 |

L2 的判据是「恢复条件可验证」，而非「可逆」：重启、缩容、流量切换并不天然可回滚——恢复副本数不能恢复已中断的在途交易，也不能恢复丢失的内存状态。

**状态影响与类别的对应（定义性）：**

| 类别 | `state-impact` |
|---|---|
| L0 | `none` |
| L1 | `diagnostic-side-effect` |
| L2 | `bounded-change` |
| L3 | `unrecoverable-change` |

登记时两者不一致即为登记错误，退回重新登记；动作语义改变时重新分类。

**独立风险属性**（不改变类别，决定审批、脱敏、产物去向与限制）：

| 属性 | 取值 | 说明 |
|---|---|---|
| `data-sensitivity` | `normal` / `sensitive` / `restricted` | 所涉数据的敏感等级，对应企业内部数据分类分级 |
| `output-form` | `summary` / `excerpt` / `raw` | 产出形态：摘要、受限片段、未经处理的原始数据（堆、报文、原始文件） |
| `resource-impact` | `low` / `medium` / `high` | 对目标系统资源的消耗 |

敏感等级与产出形态分开登记：同一份敏感数据以摘要形态输出与以原始形态导出，风险不同。此外，动作注册表还须登记**作用范围**（单对象 / 批量 / 全局）与**可恢复性说明**，作为策略判定输入。

**示例**【推论】：

| 动作 | 类别 | data-sensitivity | output-form | resource-impact |
|---|---|---|---|---|
| 查询指标 | L0 | normal | summary | low |
| 查询日志聚合 | L0 | sensitive | summary | low–medium |
| 从既有日志存储导出原始敏感文件 | **L0**（语义仍是被动读取） | restricted | **raw** | medium |
| 固定取证命令（如读取进程列表） | L1 | sensitive | excerpt | low |
| 支付服务 heap dump | L1 | restricted | **raw** | **high** |
| 重启单个 Pod | L2 | normal | summary | medium |
| 大范围缩容 | L2 或 L3（按作用范围与可恢复性判定） | normal | summary | high |
| 数据修复 | L3 | restricted | excerpt | high |

两点由此可见：支付服务的 heap dump（L1）在数据风险上高于重启 Pod（L2），单一序数无法表达；从日志存储导出原始敏感文件的数据风险很高，但**它不因此变成 L1**——它不在目标上发起现场采集，执行器与身份仍按 L0 选择，数据风险由策略另行处理。

**判定原则：**

1. **有效风险由「语义动作 ＋ 参数 ＋ 目标对象 ＋ 环境 ＋ 目标当前状态」共同决定**，不由工具名决定。注册表按**动作**而非按工具登记；同一工具的不同参数可能落入不同类别。**参数敏感的拆分要求**：凡参数差异会改变 `capability-class`、`data-sensitivity`、`output-form` 或 `resource-impact` 上界的，必须拆分为独立的语义动作 ID 分别登记（如「摘要查询」与「原始片段导出」），`allowed-tools` 与能力包引用一律填写动作注册表 ID，使发布门禁可按动作粒度保守推导（§2.4），运行时再按具体参数逐次判定。
2. **通用 shell / exec 通道不授予诊断模型**，拆为平台维护的、参数受限的固定动作（如 `collect_thread_dump(pod, duration)`），每个动作单独登记类别与属性。
3. **能力类别是枚举，不可比较大小。** 策略以查表判定，禁止出现 `class <= L1` 一类比较；类型层面使用字符串枚举，CI 做静态扫描。
4. **没有合法策略的组合直接拒绝**，由登记流程重新分类或补充专门策略；不以改变类别的方式绕过或收紧。例如首期若不支持被动原始导出，则「L0 + restricted + raw」直接拒绝，而不是把它改记为 L1。
5. **数据保护适用于所有类别**，不限于 L1。

**策略输入与输出：**

```
输入：能力类别 + data-sensitivity + output-form + resource-impact
      + 作用范围 + 应用敏感度 + 环境 + 目标当前状态 + 当前负载
         ↓  策略引擎（表驱动，由平台维护；无匹配策略即拒绝）
输出：是否允许 / 审批要求 / 执行身份 / 执行器与沙箱 / 产物去向 / 配额与频次 / 审计流向
```

审批要求由属性组合决定而非仅由类别决定：例如 `output-form = raw`、`data-sensitivity = restricted` 或 `resource-impact = high` 任一成立即需审批。

**三个反例的判定结果：**

| 反例 | 类别 | 执行器 | 审批 | 数据策略 |
|---|---|---|---|---|
| 被动原始数据导出（从日志存储导出原始敏感文件） | L0 | 查询执行器 | 需要（raw + restricted） | 产物受控存储；智能体只读脱敏结果；首期可按策略直接拒绝 |
| 主动低负载取证（读取进程列表） | L1 | 受控取证执行器 | 按应用敏感度 | 片段脱敏后进入上下文 |
| 带不可恢复影响的处置（数据修复） | L3 | 工作流执行器 | 强制人工批准与双人复核 | 补偿与止损方案；修复前数据按策略留存 |

**L1 与原始产物的数据管控**（数据风险独立于状态影响；以下同样适用于 `output-form = raw` 的 L0 动作）：

- 产物落受控加密存储，限定留存期，不落智能体可自由读取的位置；
- 智能体默认只读取经脱敏与摘要处理的分析结果（如「堆中占用最大的对象类型与数量」），不读取原始产物；
- 审计记录归入数据访问审计流；
- 敏感应用（支付、账务、客户信息等）的 L1 动作须人工批准；
- 与处置冲突时优先保证处置（例如目标正在重启时禁止采集堆转储，§3.5）。

**与 MCP 工具注解的关系**：`readOnlyHint` / `destructiveHint` 等是**提示，客户端须视为不可信**，不可信服务端可以谎报只读；需要数据不外泄的保证时应依靠网络管控或沙箱[25]。注解既不能表达上述类别与属性，也不提供保证。**本模型以网关侧动作注册表为准，注解只用于展示与发现。**

### 1.6 授权模型

本节是全报告关于授权的唯一定义，与本节冲突的表述以本节为准。

**各机制解决什么、不解决什么**【事实】：

| 机制 | 解决什么 | 不解决什么 |
|---|---|---|
| Skill `allowed-tools` | 调用该 Skill 的当轮**免交互预批准**；官方明确「**不限制哪些工具可用，每个工具仍可被调用**」，授予在下一条消息后失效[7]；开放规范将其列为实验字段，各宿主支持程度不同[24] | 不是白名单，不构成授权 |
| Skill `disallowed-tools` | 当轮从可用池移除工具，下一条消息后失效[7] | 不是持久策略 |
| CLI `--allowedTools` | 自动批准所列工具[10] | 不关闭其他工具 |
| `--permission-prompts none` / `--bare` | 无人值守时不挂起 / 跳过自动发现以获得可复现启动[10] | **不是只读沙箱**，仍受既有权限规则、模式与 hook 决策约束 |
| `paths`、不注入 Skill | 发现与上下文控制[7] | 不是数据访问授权 |
| MCP 工具注解 | 客户端展示与策略提示[25] | 不可信，可谎报 |
| 命名空间 | 防名称冲突 | 不防正文中的提示注入 |
| 能力包自报 `class` / `scope` | 声明所请求的权限 | 不能定义自己拥有的权限 |

**授权判定**（能力网关在每次工具调用时执行）：

```
有效权限 = 已认证主体的权限
         ∩ 目标租户 / 环境范围（由身份与资源目录校验）
         ∩ 平台动作注册表的策略（§1.5）
         ∩ 本次会话被授予的范围
         ∩ 有效、未过期、适用范围匹配的审批（当 §1.5 平台动作策略要求审批时适用）
```

**硬性要求：**

1. **每次调用重新鉴权**；拒绝未知动作、过期策略与失效会话。
2. **租户与应用归属由身份与资源目录校验**，不采信模型输出、告警文本或能力包自报值；包的 `scope` 受发布者权限约束。
3. **模型、告警文本与能力包只能请求权限，不能定义权限。**
4. **凭证留在受控执行器**，模型只见引用；凭证不进入提示、日志与评测副本。
5. **第三方或应用自建 MCP server 须单独审查**其自有凭证、出网能力与实际权限——仅下发只读凭证不能约束它已持有的权限。
6. **拒绝未经校验的 token 透传**：MCP 规范要求服务端**不得接受非签发给自身的 token**，token 透传被明确禁止，其风险包括混淆代理与审计失真[26]。网关对下游使用独立授权，并校验凭证 audience。
7. **状态句柄不作为认证**：`operation_id`、任务 ID 等句柄须与已认证主体服务端绑定，持有句柄不等于有权操作[26]。
8. **运行中撤权在约定的最大传播时效内生效**：该时效须可验证；网关与执行器在无法确认当前撤销状态时（如与策略服务失联超时）**拒绝新调用**。判定口径与边界（与 §3.6、§10.1 同口径）：①「失联超时」指本地策略 / 撤权心跳同步中断超过最大允许 TTL，该 TTL 须可验证并在准入测试中验收；②低风险 L0（`data-sensitivity = normal` 且 `output-form = summary`）可在数据策略确定的缓存有效期内按已签名缓存降级执行，属受控例外，须在审计与结论中标注；③其余 L0 动作（涉及 `sensitive` / `restricted` 数据或 `raw` 产出）与 L1 及以上动作不适用例外——其策略缓存有效期不得超过撤权最大传播时效，同步中断超过该时效即拒绝新调用；④撤权指令已覆盖的资产或会话不受任何缓存降级保护。已加载进上下文的 Skill 正文不会因下架而消失，须收回工具权限或终止会话。

   **版本冻结与当前授权的关系**：会话冻结的模型、Skill、Knowledge、策略等版本（§4.6、§7.2）用于**复现决策输入**；**有效授权始终受当前撤销与限制策略约束**，不以会话冻结的策略版本为准。每次调用记录实际生效的策略版本；策略更新在会话中只能收紧、不能自动扩大原授权。
9. **未知应用身份不走全局通用账号兜底**，直接拒绝并进入人工路径。

---

## 2. Skill 治理与上下文

### 2.1 三种干扰机制

| 机制 | 表现 | 根因 | 对应手段 |
|---|---|---|---|
| **选择干扰** | 选错 Skill，或该用的未触发 | description 语义重叠、缺少排除条件 | 编写规范（§2.6）+ Resolver（§2.3） |
| **指令冲突** | 同一动作出现不同阈值或步骤 | 多份 SOP 重复定义同一事实且不一致 | 单一事实源 + 阈值外置 + 发布前冲突扫描 |
| **注意力稀释** | 关键证据被淹没，结论跑偏或绕圈 | 正文与工具定义挤占上下文 | 渐进式披露 + 工具子集注入 + 上下文预算 |

可直接作为验收标准的判据【事实】：「如果人类工程师都无法明确说出某个场景该用哪个工具，就不能指望 agent 做得更好」；工具应自包含、无歧义、功能重叠最小[5]。该原则同样适用于 Skill。

### 2.2 上下文成本：估算方法而非阈值

**计算口径**【推论】：

```
常驻成本  C_res = T_system + Σ T_meta(skill_i) + Σ T_schema(tool_j)
激活成本  C_act = Σ T_body(已加载且仍保留的 skill) + Σ T_ref(已加载且仍保留的引用文件) + Σ T_know(已加载且仍保留的知识条目)
证据成本  C_ev  = 仍保留在上下文中的全部工具结果与证据片段（含此前各轮）
约束      C_res + C_act + C_ev + C_reserve ≤ W（所选模型的上下文窗口）
```

计数口径是**每次模型请求实际携带的全部内容**。常驻成本从会话开始就存在；正文、引用文件与知识条目在命中时**首次加载**，此后只要仍保留在上下文中，每次请求都继续占用；历史轮次的证据同样如此，直到被压缩或裁剪。提示缓存如何计费另行核算，不改变上下文占用。

**可引用的量级参考**：

| 项 | 量级 | 性质 |
|---|---|---|
| Skill 元数据（name + description） | 约 100 token / 个，启动时为所有 Skill 加载 | 【事实】规范给出的近似值[24] |
| SKILL.md 正文 | 建议 < 5,000 token、< 500 行；引用文件仅下沉一层 | 【事实】规范建议[24] |
| 单个工具 Schema | 300–600 token | 【事实，三方测量】[37] |
| 工具选择方法对照 | RAG-MCP 在其基准任务中，检索方案的工具选择准确率为 43.13%，关键词预过滤为 18.20%，全量工具描述基线为 13.62%；这是**一组方法对照**，不是同一方案随工具数增加的退化曲线。其压力测试仅定性显示候选池很小时成功率较高、规模增大后检索精度下降 | 【事实】论文原文[39]；不作为通用阈值或本项目验收指标 |
| 子智能体描述合计 | 超过 15,000 token 时 Claude Code 启动告警 | 【事实】产品版本相关限制，不作企业通用限制[8] |

**为什么这些数字不能直接当阈值**【推论】：

- 规范的「约 100 token」是近似值，而 `description` 上限为 1,024 字符[24]；按 §2.6 的要求写入判别关键词与排除条件后，描述会显著变长；中文与英文的 token 密度也不同。
- 示例：若每会话注入 20–40 个工具、每个 300–600 token，工具 Schema 占 6k–24k token；若要求其不超过窗口的 10%，对应窗口需 60k–240k。**结论完全取决于所选模型与实际 Schema**，只能按实测参数计算。

**规模化语义检索的启用条件**（替代固定数量阈值）：满足任一即启用 Resolver 的语义检索层——

1. 常驻元数据占上下文预算超过设定比例（初始建议 10%【建议值】，见 §2.9）；
2. Skill 选择准确率在评测集上出现下降；
3. Resolver 离线召回或准确率低于目标。

实测方法见 §10.4。Skill 总数只用于容量规划。

**证据进入上下文的方式**【推论】：

- **默认返回结构化摘要**，不批量灌入原始数据——「不能把 PB 级日志装进一个 agent」[36]；
- **按需获取受限、已授权、已脱敏的原始片段**，带行数、字节数与时间窗上限，并按 §1.5 的 `output-form = excerpt` 与相应 `data-sensitivity` 判定。异常顺序、局部尖峰与具体错误串往往只存在于原始行中，一律禁止原始片段会制造调查盲区。

### 2.3 最小能力集的加载机制

```mermaid
flowchart LR
    I["告警/工单/请求"] --> A["授权过滤<br/>租户/应用/环境/能力类别<br/>不可越过"]
    A --> B["确定性路由<br/>结构化字段 → Skill 候选"]
    B --> C["相关性过滤<br/>可按可信拓扑扩域"]
    C --> D["语义检索 Top-K<br/>规模化后启用"]
    D --> E["渐进式披露<br/>元数据 → 正文 → 引用"]
    E --> F["工具子集注入"]
    F --> G["上下文隔离<br/>污染型任务入子智能体"]
    G --> H["度量与回收"]
```

**Skill Resolver 的职责与分层**：

| 职责 | 性质 | 何时需要 |
|---|---|---|
| 租户 / 应用范围过滤 | **授权边界，不可越过** | 首期 |
| 能力类别与环境过滤 | **授权边界，不可越过** | 首期 |
| 工具策略绑定 | 与授权联动 | 首期 |
| 确定性路由 | 效率与可回归 | 首期 |
| **相关性过滤与扩域** | 调查完整性 | 首期（基于可信拓扑） |
| 版本选择 | 治理 | 灰度开始时 |
| 语义检索 Top-K、重排 | 效率 | 按 §2.2 条件启用 |

**两层过滤必须分开**：

- **授权过滤**决定「允许看到什么」，由身份与资源目录判定，永远不可越过；
- **相关性过滤**决定「初始加载什么」，是对调查方向的猜测，**必须可扩展**。例如仅凭「时延上升、Pod 重启」线索排除 Redis、MQ、LB 相关 Skill，若根因恰在依赖，就会把一个相关性猜测固化成不可恢复的盲区。扩域路径见 §4.5。

**Resolver 的接口首期冻结，实现可替换**：首期实现为确定性过滤与规则表；语义检索与重排在同一接口后替换实现，不改动运行时核心。首期**不引入**向量库与重排，避免挤占评测集建设。

**确定性路由**：告警与工单的结构化字段（告警名、对象类型、应用 ID、严重级、集群、变更窗口标记）经规则表映射为「执行域 + Skill 候选 + 工具候选 + 自治级别」。该路径可审计、可回归、不随模型升级漂移。Azure SRE Agent 的事件响应计划即此形态[15]。

**语义检索（规模化后）**：规则过滤 → 向量检索 Top-K → 可选重排。进入门限的只能是**校准后的检索置信度**（§2.8）。Resolver 本身须单独评测，其召回率是整个诊断能力的上限。

**渐进式披露**【事实】：元数据常驻，判定相关后读入 SKILL.md 正文，引用文件按需加载[6][24]。运维知识的切法：正文只保留判定流程骨架（适用条件、判据顺序、收敛条件、结论口径），阈值表、命令清单、查询模板、历史案例、字段字典下沉到引用文件。

**工具子集注入**：按路由结果注入本会话所需工具，可采用工具检索模式（三方测量显示可保留约 85% 上下文[37]）。**本层解决上下文问题，不解决授权问题**（§1.6）。

**上下文隔离**：大输出任务以子智能体执行，子智能体默认不带对话历史、已读文件与已调用 Skill[8]。

**度量与回收**：统计 Skill 命中率、加载后被引用率、结论采纳率；长期零命中但常驻元数据的 Skill 下架（参照 `/skill-doctor` 的用途[7]）。**默认值须为「显式声明才可见」**——Azure 子 agent 在未选择时默认继承全局 skill 与工具[16]，这正是上下文过载的常见来源。

### 2.4 Skill 元数据：唯一企业 Schema

**规范基础**【事实】：Agent Skills 规范必填 `name`（≤64 字符，小写字母、数字与连字符，须与目录同名）与 `description`（≤1,024 字符）；可选 `license`、`compatibility`、`metadata`（**字符串到字符串的映射**，供客户端存放规范未定义的属性，建议键名足够独特）与实验性的 `allowed-tools`；提供 `skills-ref validate` 校验[24]。

**企业字段一律放入 `metadata`，不新增顶层字段**，以保持 SKILL.md 可跨宿主移植。`metadata` 的值只能是字符串，多值以英文逗号分隔。

```yaml
---
name: k8s-pod-restart
description: 诊断 Kubernetes Pod 异常重启与 CrashLoopBackOff。适用于容器重启类告警、
  Pod 状态异常、OOMKilled。不适用于节点驱逐导致的重启（见 k8s-node-eviction），
  不适用于主动发起的滚动更新（见 deployment-change-correlation）。
license: Proprietary. LICENSE.txt has complete terms
compatibility: 需要容器平台只读查询能力与事件查询能力
allowed-tools: k8s.get_pod_status k8s.get_events k8s.get_pod_spec
metadata:
  BANK.domain: "kubernetes"
  BANK.scenario: "pod-restart,crash-loop"
  BANK.signal: "metric,log,event"
  BANK.resource-type: "pod"
  BANK.intent: "diagnosis"
  BANK.owner: "cloud-platform"
  BANK.version: "2.3.1"
  BANK.scope: "global"
  BANK.env: "prod,nonprod"
  BANK.kernel-api: "1"
  BANK.capability-classes: "L0"
  BANK.data-sensitivity-max: "sensitive"
  BANK.output-forms: "summary"
  BANK.resource-impact-max: "low"
  BANK.eval-manifest: "evals/manifest.yaml"
---
```

**字段语义与校验**：

| 字段 | 语义 | 发布门禁校验 |
|---|---|---|
| `BANK.capability-classes` 等能力字段 | **声明值**，记录该 Skill 可调用动作的**类别集合**（类别不可比较，不取「最大类别」）及数据、资源属性的覆盖范围。实际值由门禁按可调用动作与参数范围反查动作注册表**保守推导**，运行时再按具体参数逐次判定 | 推导值被声明值完全覆盖，否则拒绝发布；每个动作的属性组合都有合法策略（§1.5） |
| `BANK.scope` | 请求的可见范围（`global` 或 `app:<appid>`） | **受发布者权限约束**，应用团队不得发布 `global` |
| `BANK.env` | 适用环境 | 与发布通道一致 |
| `BANK.eval-manifest` | 评测用例清单相对路径 | 文件存在、用例数量与类型满足 §2.6 第 7 条 |
| `allowed-tools` | 声明意图与免交互预批准 | **不作为授权依据**（§1.6） |

**静态推导的边界**：发布门禁的保守推导依赖动作注册表的拆分粒度——凡参数差异会改变 `capability-class`、`data-sensitivity`、`output-form` 或 `resource-impact` 上界的，动作注册表必须将其拆分为独立语义动作 ID（§1.5 判定原则 1），`allowed-tools` 填写动作注册表 ID；或由能力包的结构化模板（如 §4.4 的 `queries/`）显式声明静态参数范围上限，供门禁联合校验。门禁只校验**静态属性元组**（能力类别、`data-sensitivity`、`output-form`、`resource-impact`、作用范围、环境）是否存在合法策略；`目标当前状态` 与 `当前负载` 等运行时变量不在发布期求值，由能力网关在每次调用时按具体参数逐次判定（§1.5）。

**应用侧能力包约束**（平台准入策略，不是 L0 动作的天然性质）：只允许类别集合为 `L0`、`output-forms` 不含 `raw`、`intent ≠ remediation` 的 Skill；L1 及以上由平台团队维护。

### 2.5 Skill、Knowledge、Tool 分离

| | 回答什么 | 内容 | 加载方式 |
|---|---|---|---|
| **Skill** | 怎么做 | 判定流程、证据收集顺序、何时调用哪个动作、如何形成结论 | Resolver 命中后加载正文 |
| **Knowledge** | 知道什么 | 配置规范、平台基线、架构信息、历史故障案例、错误码字典 | 检索式按需取用 |
| **Tool** | 能查什么、能做什么 | 平台查询与动作 | 网关按会话注入子集 |

Google SRE 将事件知识做成独立的洞察系统（嵌入模型 + 向量库）供 agent 取用，与剧本分立[17]。

**知识更新的回归规则**：分离使知识更新**无需重发 Skill 包**，但**不等于无需评测**。阈值、判据依据与拓扑知识即使不改动任何 Skill，也会改变决策结果；叠加单一事实源后，一处未经验证的阈值可同时影响所有引用它的应用。因此：

- **改变决策语义的知识更新**（阈值、判据、拓扑、依赖关系）须做影响分析，按引用关系反查受影响 Skill 与应用，触发相关回归；
- 仅修订措辞、补充案例说明等不改变判据的更新可免回归，但须由审核人确认；
- 会话须冻结并记录所用 Skill、Knowledge、拓扑的版本（§7.2）。

### 2.6 Skill 编写规范

1. **一个 Skill 对应一个决策点**。`description` 写「何时用」，并写明排除条件与替代 Skill。
2. **description 含判别性关键词**（真实告警名、对象类型、错误码），不用「性能问题」「异常分析」一类泛词。
3. **阈值、命令、查询模板外置到引用文件**；正文控制在规范建议的量级内（< 5,000 token、< 500 行），引用只下沉一层[24]。
4. **单一事实源**：同一阈值或口径只在一处定义，其他 Skill 引用；发布前做重复定义与冲突扫描。
5. **声明所需工具，不声明写动作**（应用侧一律禁止）。声明是意图，不是授权（§1.6）。
6. **字段完整**：按 §2.4 Schema 填写。
7. **附评测用例作为发布门禁**：每个 Skill 至少包含正例、反例（应不触发）与边界例；平台建议初始不少于 5 条【建议值】，这是建设起点而非质量证明（§8.7）。

### 2.7 高风险流程：决策与执行分离

**模型不按 Markdown SOP 自由执行高风险动作。** 对生产变更、扩缩容、流量切换、应急止损、数据修复：

```
诊断智能体 → 结构化移交（§7.7）：建议动作 + 目标 + 参数 + 证据 + 反证 + 前置条件
              ↓
处置策略阶段 → 适用性校验 → 选择已登记工作流 → 规范化参数 → 送审
              ↓（审批绑定，§7.8）
工作流执行器 → 执行前复核 → 执行 → 结果核实 → 成功 / 补偿 / 转人工
```

处置域的「工具」是**已编排、可单独测试、带恢复或补偿分支的工作流**（如 `workflow.restart_pod`），不是底层命令。模型可以选工作流、填参数，不能绕过工作流直接调用底层能力。

**这减少了模型自由执行的环节，但不消除分布式执行问题**【推论】：审批后目标被替换、执行完成但响应丢失、工作流重启后重复执行、回滚时已有新变更等情形仍会发生，须由执行契约处理（§7.8）。Dynatrace 的「单步 95%、十步约 60%」只是示意模型（§8.7），不能据此声称风险被压缩为一次模型决策。

Google SRE 的缓解剧本同样包含验证与回滚步骤，并明确「目前仍需人在回路验证所建议的缓解措施」「在一个上下文下安全的动作在另一个上下文下可能不安全」[32]；Azure SRE Agent 以 hook 与 Autonomous / Review 自治级别控制动作[15][16]。

### 2.8 置信度

**三种来源必须区分**：

| 类型 | 来源 | 能否作为自动化门限 |
|---|---|---|
| **检索置信度** | 规则命中、匹配度、向量相似度、重排分数、与次优候选的间距 | 可以，**须校准** |
| **证据置信度** | 基于证据结构确定性计算：直接证据是否存在、多信号是否一致、有无反证、数据完整度与时效 | 可以，**须校准** |
| **模型自述置信度** | 模型自报的数值 | **不可以** |

**根因输出携带证据结构而非裸分数**（证据对象见 §7.3）：

```json
{
  "status": "root_cause_candidate",
  "root_cause": "OOMKilled",
  "evidence": [
    {"ref": "ev-2291", "support": "direct"},
    {"ref": "ev-8831", "support": "corroborating"}
  ],
  "contradicting_evidence": [],
  "unresolved_hypotheses": ["dependency-latency"],
  "evidence_completeness": "partial",
  "diagnosis_confidence": "medium"
}
```

- `status` 取值区分**事实 / 假设 / 根因候选 / 已确认根因**，并保留 `unknown`、`insufficient_evidence`、`conflicting_evidence`、`stale`；
- `diagnosis_confidence` 由确定性评分规则或校准过的分类器给出；`contradicting_evidence` 非空时须显著降级；
- **「无数据」不得报告为「健康」**。

**校准是门限的前提**：置信度只有在「报某一分值的案例中实际正确率与该分值相符」时才能作门限。要求：在**独立留出集**上计算可靠性曲线，按技术栈、难度、有无噪声分段统计；模型、Resolver 实现、Skill 或 Knowledge 语义变更后重算；**未经校准的分数只能用于排序，不能用于门限**。没有校准结果，不开启任何基于置信度的自动执行。

### 2.9 上下文预算

| 区块 | 初始建议占比【建议值】 | 说明 |
|---|---|---|
| 系统提示 + Skill 元数据 | ≤ 10% | 超出即触发 §2.2 的语义检索启用条件 |
| 工具 Schema | ≤ 10% | 按实测 Schema 长度与所选窗口换算工具数上限 |
| Skill 正文与知识 | ≤ 15% | |
| 证据与观测数据 | ≤ 50% | 默认结构化摘要 |
| 余量 | ≥ 15% | 多轮推理与压缩 |

会话级硬限额：最大步数、最大工具调用次数、最大 token、最长时长。超限即输出当前证据、未决假设与覆盖缺口并转人工。各项取值按 §10.4 实测后确定。

---

## 3. 多智能体协同、写操作协调与部署

### 3.1 划分依据

沿用 §1.2 的三层优先级。**不能仅凭故障类型、运维需求类型或 SOP 数量机械划分**；是否分离仍按安全、上下文、并行价值与运行约束判定。

### 3.2 共性 Skill 的共享

共享指**同一份源以受控版本在多处被消费**，要避免的是**无版本的共享读取与单实例部署**：它们使知识成为单点，且无法按智能体灰度。共享知识服务本身并无问题，只要采用版本化数据集、会话固定版本与高可用副本，同样可以支持灰度。

**三层能力包：**

| 层 | 内容 | Owner | 可见范围 |
|---|---|---|---|
| `core-*` | 通用诊断方法、证据采集规范、报告模板、安全红线、术语 | 平台团队 | 全局，不可被覆盖 |
| `domain-*` | 容器、数据库、中间件、网络、负载均衡、主机 | 各技术平台团队 | 按相关性注入 |
| `app-*` | 业务拓扑、指标口径、专属 SOP、声明式查询 | 应用团队 | 仅本应用会话；跨应用按 §4.5 授权扩域 |

**分发机制**可参照 Claude Code 的插件市场模型【事实】：清单登记包名与来源（git、子目录、npm、归档）；版本显式指定或由 commit SHA / 归档摘要派生；企业可限定受信来源；插件内 Skill 自动命名空间化；支持重命名迁移与多发布通道；**市场本身无审核闸门，信任取决于来源**[9]。企业内部应映射到既有制品库、变更审批与灰度流程。版本一致性：`core-*` 随内核统一对齐；`domain-*` 允许约定的兼容窗口；`app-*` 独立节奏，声明依赖的内核 API 版本。

### 3.3 路由与协同

```mermaid
flowchart TB
    E["事件到达"] --> N["规范化与富化<br/>确定性关联：拓扑/变更/资源目录"]
    N --> Z["授权过滤"]
    Z --> D{"规则表命中?"}
    D -- "命中" --> P1["执行域 + Skill 候选 + 工具候选 + 自治级别"]
    D -- "未命中" --> C["语义分类<br/>输出候选与校准后的检索置信度"]
    C --> T{"达到门限?"}
    T -- "是" --> P1
    T -- "否" --> P2["通用诊断 + 仅 L0 + 转人工"]
    P1 --> X["执行"]
    P2 --> X
    X --> L["路由与执行全链路留痕"]
    L --> F["人工反馈 → 评审后更新规则与评测集"]
```

要求：规则优先、语义兜底；进入门限的只能是校准后的检索置信度（§2.8）；路由决策留痕并可回放；**人工反馈进入评审流程后再更新规则与评测集，不直接改变生产策略**。

### 3.4 中控实现选项

| 方案 | 实现 | 优点 | 问题 | 建议 |
|---|---|---|---|---|
| A. 纯 LLM 中控 | 各智能体作为工具由大模型自由调度 | 灵活 | 非确定性、**不能保证确定性复现**、校准与回放成本高；多智能体 token 开销大[1]；长链误差复合 | 不作主干 |
| B. 确定性编排 + LLM 补位 | 规则 / 工作流为主干，LLM 仅用于分类、假设生成、叙述 | 可复现、成本可控、可回归 | 规则维护成本；长尾依赖兜底 | **主干** |
| C. 子智能体（进程内） | 主智能体派生隔离上下文的子智能体 | 低延迟、共享能力包、隔离语义清晰 | 与主体同故障域；受并发与嵌套限制（参考实现默认并发 20、嵌套 3 层，属产品版本限制[8]） | 同一所有权域内首选 |
| D. A2A（跨进程） | 独立部署，经 Agent Card 发现、按任务生命周期协作 | 独立发布、鉴权与 SLO | 任务生命周期、委托授权、跨系统观测与延迟成本（§5.4） | 满足自治条件时使用 |

**推荐**：B 为主干，C 用于域内并行，D 用于跨域自治协作。中控职责为**分诊 + 编排 + 审计点**，不承担跨领域根因推理。

LangChain 对子智能体 / Skill / 交接 / 路由四种模式的比较【事实】：多领域且文档量大的查询中，子智能体因上下文隔离比单智能体加载多个 Skill 节省约 67% token；总体建议是「先用单智能体与良好的提示；先加工具，再加智能体」[11]。该数字与 Anthropic 的 3–10 倍来自不同任务与基线，**均不能直接用于本项目预算**，须在相同场景与质量门槛下对比（§10.3）。

### 3.5 写操作协调

**统一策略入口，分离执行器：**

| 组件 | 职责 |
|---|---|
| **能力网关（策略入口）** | 所有动作的授权判定、审批校验、冲突域检查、审计 |
| **L1 受控取证执行器** | 执行已登记的取证动作，管控产物去向 |
| **L2/L3 工作流执行器** | 执行已登记的工作流 |

**执行契约的适用范围**：所有**有副作用**的 L1–L3 动作都适用 §7.8 的执行契约，包括操作身份、审批绑定、去重、执行状态、超时后核实与停止规则。L1 可采用简化状态机（§7.8），不要求包装成 L2/L3 处置工作流。dump、profiling 等 L1 动作同样可能在「已启动、响应丢失、执行器重启」后被重复执行，白名单与频次限制不能代替幂等与结果核实。

**冲突域与单写者**：同一冲突域内在任一时刻只有一个有效写所有者；不相交的冲突域可并发。不要求全公司所有变更物理串行——那会在大面积故障时把处置能力压成排队。

1. **冲突域按资源层级判定**：锁定节点隐含锁定其上 Pod；锁定 Deployment 隐含锁定其副本。只按资源 ID 互斥会漏掉「摘除节点 N」与「重启 N 上 Pod」一类冲突。跨层级加锁采用**自顶向下的意向锁**：先行取得祖先节点的意向锁、再对目标资源加锁；同一祖先下不同子资源的意向锁相容、可并发，祖先的独占锁（如摘除节点、删除 Deployment）须等其下全部意向锁释放并完成对账后才能取得。意向锁与第 5 条的执行代次配合使用。
2. **Incident 级方案一致性**：同一事件中对不同资源的动作可能资源上不冲突、逻辑上冲突（如一边扩容服务 A、一边把流量从 A 摘走）。处置策略阶段须对同一事件的全部待执行动作做整体规则校验。
3. **L1 与处置的冲突规则**：登记于动作注册表，例如目标正处于重启、缩容或流量切换中时禁止堆转储与抓包；处置优先。**「处置优先」的执行方式**：高优先级 L2/L3 处置到达且与在途 L1 动作冲突时，由受控执行器（必要时经能力网关）主动向在途 L1 动作下发停止指令；L1 按 §7.8 进入待核实并完成对账与残留清理（`VERIFYING → STOPPED`）后，处置方可接管。等待 L1 租约到期或动作自行结束仅作为主动停止不可达时的兜底，且接管前仍须完成对账（第 5 条）；**未停止且未对账的 L1 动作与处置动作不得并行**。
4. **外部写者协调**：智能体不是唯一写者。GitOps 控制器（启用自动同步与自愈时会把绕过 Git 的直接修改改回）、自动扩缩容、人工变更与其他自动化同样会写入同一资源。执行前须检查目标资源代次与最近外部变更；与变更管理的变更窗口、冻结期联动；对 GitOps 管理的资源，处置应经 Git 提交或经受控方式暂停同步，不与控制器对抗。
5. **锁的可靠性：资源版本校验 + 执行所有者代次校验。** 锁以租约持有，持有者失联后租约到期释放。但**资源版本校验不能代替所有者校验**：执行者 A 持锁读取资源版本 v 后长时间暂停，租约到期由 B 接管；若 B 尚未修改资源，A 恢复后携带的版本仍是 v，其提交可以通过版本校验。exec、抓包等不改变资源版本的动作，这一问题更明显。资源有没有变，与执行者是否仍被授权，是两个不同条件。

   因此规则是：
   - 每次接管生成**单调递增的执行代次**（fencing token / 执行 epoch）。**代次在同一冲突管理域内统一分配**：同一资源层级树（或所属集群 / Cell）须共享单一全局单调递增的序列分配源，使不同锁键的代次可全序比较——若只在单个锁键（各自资源 ID）内独立计数，父级路径的接管会携带更低代次而被误拒，或无法拦截旧子资源持有者的滞后请求；
   - **由能够阻断副作用的一方校验代次**，即执行侧或下游，而不只是网关在收请求时检查一次。受保护的一方须拒绝代次低于已见最大值的请求[40]；**校验须覆盖祖先路径**：放行对某资源的操作时，须同时比对该资源自身与其全部祖先节点已见的最大代次（层级锁含义见第 1 条）；
   - 下游不支持代次校验时，由受控执行代理提供等效的串行化与取消确认；**取消确认须覆盖在途请求**：切断或终止旧代次实例与下游之间的底层传输通道（连接池连接、会话或短期凭证），或等待超过下游单次请求的最大网络超时窗口后再对账——仅靠新代次实例自身的串行化，无法拦截已通过旧实例本地校验、处于网络传输或内核缓冲中的请求；**在确认旧操作已停止或已完成对账之前，不开放冲突动作**；
   - **租约失效不代表旧执行已停止**：接管方须先对账旧操作的实际状态；
   - 资源版本仍用于检测外部变更。

### 3.6 部署形态

**六个独立概念：**

| 概念 | 含义 | 隔离手段 |
|---|---|---|
| 推理实例 | 运行模型推理的进程或服务 | 按负载与模型配额隔离 |
| 会话 | 一次诊断或处置的上下文与状态 | 独立上下文、版本清单与配额 |
| 权限角色 | 执行动作时使用的身份 | 独立身份与执行授权 |
| 执行器 | 实际调用下游的组件 | 按能力类别分离（§3.5） |
| 资源池 | 计算、连接、配额 | 舱壁、并发上限 |
| Cell | 一组共同部署、共同失效的执行面实例 | 按 §10.1 判定的物理或逻辑边界 |

**权限分离由独立身份与执行授权实现；是否还需要物理隔离，取决于威胁模型与资源保证**，可在进程、容器、节点池、独立集群、网络分区之间选择。不同身份或不同 SLO 不自动要求不同集群。

**目标形态：共享控制面 + Cell 化执行面。**

```mermaid
flowchart TB
    subgraph CP["共享控制面（逻辑唯一，多副本高可用）"]
        CP1["Registry / 能力包"]
        CP2["策略与动作注册表"]
        CP3["评测与发布"]
        CP4["审计汇聚"]
        CP5["模型网关与配额"]
    end
    subgraph DP["Cell 化执行面"]
        D1["生产诊断 Cell"]
        D2["生产处置 Cell"]
        D3["巡检 Cell"]
        D4["非生产 Cell"]
    end
    CP -- "签名配置下发 / 缓存" --> D1 & D2 & D3 & D4
    D1 -. "结构化移交" .-> D2
```

「逻辑唯一」指治理唯一，不指单实例。Cell 的具体切分由 §10.1 的方法依据企业内部安全域判定【待判定】。

**起步形态**：从两个 Cell 起步（生产诊断、非生产）的前提是——首期不开放生产 L2/L3；巡检未启用，或仅在可证明不影响实时负载的条件下试验。处置与巡检能力准入时再分出对应 Cell。Cell 化会成倍增加 SLO、升级窗口、容量规划与跨 Cell 配置一致性的运维成本，这是需要权衡的代价。

**会话级隔离（任何 Cell 内都须满足）**：独立上下文；Skill 可见范围按租户与应用决定；凭证按身份下发；会话级 token、步数、时长、并发限额；会话产物与记忆按租户分区；审计可按租户导出。

**控制面可用性与降级**：

| 故障 | L0 | L1 及以上 |
|---|---|---|
| Registry 不可用 | 使用已签名、未过期的缓存版本 | 使用已签名缓存；新版本暂停下发 |
| 策略 / 动作注册表不可用 | 在缓存有效期内可按缓存策略执行，由数据策略决定（低风险 L0 受控例外与其余 L0 的边界见下） | **停止**接受新调用（无法核验授权；失联判定与短 TTL 见下） |
| 审计无法持久记录 | 由数据策略决定是否继续 | **停止**（关键审计不可缺失） |
| 模型网关限流或不可用 | 降级为规则与确定性证据输出 | 不影响已审批工作流的确定性执行；新决策暂停 |
| 撤权指令下发 | 在约定时效内生效 | 在约定时效内生效，未生效前拒绝新调用 |

缓存有效期、撤权时效由 §10.1 与安全负责人确定【待判定】。

**降级边界与失联判定**（与 §1.6 硬性要求 8 同口径）：
- **失联判定**：以本地策略 / 撤权同步心跳中断超过**最大允许 TTL** 为准；单次连接失败不触发停止。
- **L1 及以上**：在受撤权最大传播时效约束的短 TTL 签名缓存内可继续接受调用——该 TTL 即 §10.1 第 6 步所称「策略缓存有效期」；同步中断超过该 TTL 即视为无法核验授权，停止接受新调用；已开始的执行按 §7.8 收尾与对账。
- **L0 的例外与边界**：低风险 L0（`normal + summary`）在失联期间可按数据策略确定的缓存有效期降级执行（受控例外），并在审计与结论中标注「按缓存降级执行」；其余 L0（涉及 `sensitive` / `restricted` 数据或 `raw` 产出）与 L1 及以上同规。**撤权指令已覆盖的资产或会话不受缓存降级保护。**

**不阻断现有运维链**：智能体任何组件故障，都不得阻断现有告警、工单与人工处置链路；人工接管须有明确负责人与时限。

---

## 4. 生态共建：平台与应用的解耦

### 4.1 目标模型：运行时内核 + 能力包

平台团队交付四件套：**运行时内核**（推理循环、上下文治理、路由、网关、审计、限额、人在回路）、**契约**（能力包格式、SOP 模板、查询模板规范、禁止项）、**门禁**（契约校验、能力推导、评测、安全扫描）、**观测**（包维度成功率、超时率、人工否决率、成本）。

**应用团队的默认交付物是声明式能力包——一组文本文件，不是服务进程。** 平台侧扩展点设计可参考 Azure SRE Agent 的 skill、自定义 agent、Python 工具、MCP server、hook 五类[14]。

### 4.2 研发流程与发布链

```mermaid
flowchart LR
    subgraph REPO["应用仓库（默认路径）"]
        R1["skills/"]
        R2["queries/ 声明式查询"]
        R3["topology/ 依赖声明"]
        R4["knowledge/"]
        R5["evals/"]
    end
    subgraph CI["应用侧 CI"]
        C1["契约校验 skills-ref + BANK.*"]
        C2["能力推导与策略校验"]
        C3["重复定义 / 冲突扫描"]
        C4["禁止项与注入测试"]
        C5["离线评测"]
    end
    subgraph REG["Registry"]
        G1["版本 + 摘要锁定"]
        G2["来源证明"]
        G3["发布通道"]
    end
    subgraph REL["发布"]
        L1["Shadow"]
        L2["Canary"]
        L3["Production"]
    end
    REPO --> CI --> REG --> REL
```

发布链：`契约校验 → 能力推导与策略校验 → 冲突扫描 → 禁止项与注入测试 → 离线评测 → Shadow → Canary → Production`，配合语义化版本、版本锁定、在线指标、自动熔断与快速回滚。

- **Shadow**：新版本以只读方式并行运行，结论不进入正式报告、不触发动作，与人工结论或旧版本对比。
- **注入测试**：在知识正文、工具描述、工具返回与模拟日志中嵌入恶意指令，验证不被执行。**发布前通过不等于运行时安全**，运行时防护见 §7.9。
- **禁止项**：应用包中的脚本、hook、动态 shell、任意外部引用一律禁止；确有需要的进入独立审核沙箱。
- **内核 API 版本化**：内核升级不强制所有应用包同步升级。

### 4.3 运行面隔离

| 闸 | 机制 | 拦截对象 |
|---|---|---|
| 1. 加载隔离 | 应用包只进入本应用会话（跨应用按 §4.5 授权扩域） | 错误知识、描述污染、上下文膨胀 |
| 2. 命名空间与优先级 | 自动命名空间化；`core-*` 优先且不可被覆盖 | 覆盖核心红线（**不防正文注入**） |
| 3. 权限隔离 | 应用包仅 L0；执行时使用应用自身身份；网关授权（§1.6） | 越权访问与变更 |
| 4. 资源隔离 | 会话级与应用级配额；执行器舱壁（§4.4） | 失控会话、重查询耗尽共享资源 |
| 5. 质量熔断 | 按包统计成功率、超时率、人工否决率；越阈则**停止使用该包、切换到上一已验证版本，或回退到平台通用诊断并转人工** | 劣质包持续影响诊断 |

**依赖失败的区分**：强制工具或安全配置加载失败 → 会话失败退出；可选证据源失败 → 继续，但**必须在结论中报告覆盖损失**。

### 4.4 能力包契约与承载

**目录结构：**

```
<app>-sre-package/
├── package.yaml      # 应用 ID、owner、请求的可见范围、依赖的内核 API 版本、请求的动作清单
├── skills/           # SKILL.md，metadata 按 §2.4，能力类别仅 L0
├── queries/          # 参数化只读查询模板（类型化参数、行数/扫描成本/时间窗上限）
├── topology/         # 业务依赖声明，供确定性关联与相关性扩域使用
├── knowledge/        # 架构说明、错误码、业务口径（与 Skill 分离）
└── evals/            # 评测清单与用例
```

`topology/` 使确定性关联覆盖业务自定义依赖（平台 CMDB 往往只到应用粒度）；`queries/` 使业务信息查询成为可审计、可限流的参数化模板。

**承载路径：**

| 路径 | 条件 | 交付物 | 承载 |
|---|---|---|---|
| **默认路径** | 查询可用声明式模板表达 | 上述文本文件 | App Capability Service |
| **例外路径** | 专有系统、私有 SDK、多步状态化查询、平台无法直连的系统 | 自建 MCP Server + 能力包 | 应用团队部署并负责可用性；纳入第三方 server 审查（§1.6 第 5 条）与熔断 |

默认与例外的实际比例待盘点后确定；**试点出口不以「零自建进程」为条件**，以免排除合法的例外路径。

**App Capability Service：逻辑统一、物理随 Cell 部署。** 统一承载不会消除故障，只是把故障从独立 server 转移到共享执行器；应用 A 的重查询、连接泄漏或解析错误仍可能影响应用 B。因此：

| 要求 | 说明 |
|---|---|
| 无状态、可横向扩展 | 不持有应用状态 |
| 随 Cell 部署 | 不跨安全域共享实例 |
| **每应用独立身份** | 执行应用 A 的查询使用 A 的凭证；否则统一承载等于把全公司权限集中到一个服务身份 |
| **舱壁** | 按租户、连接器、下游分别设置队列、并发与连接池；必要时分 worker 或分 Cell。**无状态与横向扩展本身不提供隔离** |
| 查询成本控制 | 单查询超时、取消、扫描成本上限、返回行数上限 |
| 租户级熔断 | 某应用模板持续失败只熔断该应用 |
| 实时诊断资源保留 | 为实时诊断预留容量，不被巡检或批量查询挤占 |

### 4.5 跨应用诊断的授权协作

严格的应用隔离与跨应用根因定位之间需要显式的协作机制。

1. **候选依赖的确定**：由确定性关联与应用 `topology/` 声明给出候选下游（共享 Redis、MQ、LB、数据库等）。`topology/` 属应用包自报内容，**只作为相关性候选线索，不作为依赖范围的授权来源**；跨应用资产自动加载的授权边界严格以平台权威服务目录 / CMDB 登记的依赖关系为准（§1.6 硬性要求 2 不采信自报值；§4.3 闸 1 的加载隔离不因 `topology/` 声明而放宽）。
2. **在授权范围内扩域**：候选依赖的相关 Skill 与查询若在当前会话授权范围内，直接加载。
3. **跨应用扩域的两种方式**：
   - **联合事件授权**：以事件为单位申请有范围、有期限的跨应用取证授权，经审批后生效，事件关闭即失效；
   - **委托取证**：由目标应用的授权主体独立取证，返回**经授权的摘要**，不暴露原始数据。
4. **未知应用身份不走全局通用账号兜底**。
5. **证据不足出口**：扩域被拒或证据不可共享时，结论状态为 `insufficient_evidence`，并列明缺失的依赖与原因，**不得静默收敛为已确认根因**。

### 4.6 版本与供应链

- **摘要（SHA）的作用是内容锁定与篡改检测**，不证明由谁授权发布，也不阻止一个恶意但已被锁定的版本运行。发布记录须绑定作者、审核人、构建与测试证据、完整依赖摘要，以签名制品或受控制品库的等效来源证明约束来源。
- **撤销与紧急下架**：维护撤销列表；紧急下架须同时收回相关工具权限或终止活跃会话——已加载进上下文的文本不会因下架而消失。
- **会话版本清单**：每个会话冻结并记录模型、提示、Skill、Knowledge、工具、工作流、策略、拓扑的版本，线上观测记录查询时点，以便复现。冻结的策略版本只用于复现决策输入；**有效授权始终以当前撤销与限制策略为准**（§1.6）。

---

## 5. 平台集成：MCP、A2A 与能力网关

### 5.1 协议现状

- **AAIF**【事实】：Linux Foundation 于 2025-12-09 成立 Agentic AI Foundation，首批项目为 MCP（Anthropic）、goose（Block）、AGENTS.md（OpenAI）[19]；2026-08 A2A 加入，AAIF 表述其项目分层为 AGENTS.md（指令与上下文）、goose（运行时）、MCP（智能体与工具连接）、agentgateway（流量中介与管控）、A2A（智能体间互操作）[21]。
- **A2A**【事实】：v1.0 为首个稳定规范，含多协议支持、企业级多租户、签名 Agent Card；截至 2026-04 支持组织超过 150 家，已进入 Azure AI Foundry / Copilot Studio、AWS Bedrock AgentCore Runtime 与 Google Cloud[20]。
- **分层**【事实，三方分析】：MCP 管智能体与工具 / 数据的纵向集成，A2A 管智能体之间的横向协作，多数生产系统两者并用[38]。
- **「ACP」一词有三种含义，企业内部文档须写全称**【事实】：

  | 名称 | 含义 | 现状 |
  |---|---|---|
  | Agent Communication Protocol（IBM / BeeAI） | 智能体间通信 | 2025-08-29 宣布并入 A2A，ACP 团队收束自身开发、转向贡献 A2A[22] |
  | Agent Client Protocol（Zed / JetBrains） | 编辑器或客户端与编码智能体之间 | 活跃，与本场景基本无关[31] |
  | 腾讯侧所称 ACP | 融合 MCP / A2A / AG-UI 的企业交互层框架 | 厂商自定义，非跨厂商标准[35] |

  本报告中智能体间协议统一指 A2A。

### 5.2 集成方式判定

```mermaid
flowchart TB
    Q1{"对方提供的是<br/>查询/取数/受控动作?"}
    Q1 -- "是" --> Q5{"新建或重构的<br/>跨边界能力?"}
    Q5 -- "是" --> A["MCP Server"]
    Q5 -- "否，存量接口" --> A2["能力网关适配<br/>暴露统一工具契约"]
    Q5 -- "否，同进程稳定能力" --> A3["原生工具<br/>遵守统一工具契约"]
    Q1 -- "否" --> Q2{"对方能独立理解目标、规划、<br/>调用工具并产出专业结论，<br/>且有独立权限域与任务生命周期?"}
    Q2 -- "是" --> B["A2A（经网关，§5.4）"]
    Q2 -- "否" --> Q4{"仅有 CLI / 脚本?"}
    Q4 -- "是" --> D["CLI 适配层 → 统一工具契约（§6.5）"]
    Q4 -- "否" --> E["先做网关适配"]
```

### 5.3 MCP 的适用边界

| 场景 | 实现 | 是否 MCP |
|---|---|---|
| 新建或重构的、面向智能体的跨边界能力 | MCP Server | 默认是 |
| 存量 REST / gRPC / 私有接口 | 保持原样，由能力网关适配 | 否，不为形式统一而重写 |
| 同进程、接口稳定、无复用需求 | 原生函数或 SDK 工具 | 否 |
| 真正自治的远端智能体 | A2A | — |

**无论采用哪种实现，工具契约必须统一**（§7.4）：输入输出 Schema、动作注册表登记、鉴权、限流、超时、审计由能力网关统一施加，与协议选择无关。

**可以说**：MCP 是企业级工具能力的首选北向互操作协议；底层实现可以是 API、SDK 或 CLI；治理由网关按统一契约施加。

**证据支撑**【观察】：Google SRE 的工具面以 MCP 为基础[17]；Azure SRE Agent 以 MCP server 接入外部观测平台[14]；Google SRE 使用 Gemini CLI 处理故障时同样经 MCP 连接 Grafana、Prometheus、PagerDuty[32]。

### 5.4 A2A 与远端委托

**「对方有智能体形态」不是使用 A2A 的充分条件。** 判据是对方能否独立理解目标、规划、调用工具并产出专业结论，且拥有独立的权限域与任务生命周期。只提供 `getPodStatus`、`getEvents`、`getYaml` 一类能力的平台用 MCP 或网关适配即可；能独立完成「分析某服务为何频繁重启并给出证据链」的平台智能体，才值得以 A2A 接入。

**把远端智能体包装成 `ask(question, context)` 不会使它变为只读。** 若对方持有写权限，一句自然语言请求就可能绕过本地处置工作流。因此远端委托必须：

| 要求 | 内容 |
|---|---|
| 可信委托上下文 | 委托主体、租户、任务范围、**能力上限**、截止时间、数据披露策略、关联标识（§7.1） |
| 默认只取证 | 诊断委托默认仅允许取证；远端任何动作须经与本地同等、可验证的审批 |
| 经网关 | A2A 通路同样经能力网关，不直连 |
| 结构化返回 | 返回证据对象（§7.3），带置信依据与反证 |

**任务生命周期语义**【事实】：A2A 任务的终态为 completed、canceled、rejected、failed；**任务进入终态后不能重启**，后续交互须在同一 contextId 下发起新任务[27]。据此约定：

- 以持久任务 ID 跟踪；重复提交须幂等；
- 超时后先查询任务状态，不盲目重发；
- **请求结束不等于任务终态；取消请求不等于远端动作已回滚**；
- 晚到结果绑定原任务，不得用于已关闭事件，也不得触发新事件的处置；
- 委托身份过期时任务应失败而非以其他身份续跑。

签名 Agent Card 与协议本身**不替代业务权限审查**。

### 5.5 平台集成建议

| 平台 / 能力 | 建议方式 | 关键约束 |
|---|---|---|
| 容器平台：状态查询 | MCP 或网关适配（L0） | 按租户凭证；只读 |
| 容器平台：容器内文件获取 | 固定取证动作（L1） | 路径白名单、大小上限、脱敏、产物受控 |
| 容器平台：部署识别、配置异常分析 | 满足 §5.4 自治条件时用 A2A，否则封装为查询能力 | 返回证据对象 |
| 日志中心：检索 | MCP 或网关适配（L0） | 默认聚合摘要；受限原始片段按需获取；强制时间窗与上限 |
| 日志中心：深度分析智能体 | 满足 §5.4 条件时用 A2A | 结论带证据与反证 |
| 负载均衡：配置与实例状态 | MCP 或网关适配（L0） | 证书、后端地址等字段脱敏 |
| APM / 监控 | MCP 或网关适配（L0） | 返回指标与异常检测结果，必要时附受限时序片段 |
| CMDB / 拓扑 | 确定性关联服务 | 附数据版本与时效；过期标记 `stale` |
| 变更系统 | L0 查询 + L2 工作流 | 变更时间窗关联是高价值证据 |
| ITSM / 工单 | L0 查询 + 受审批写入 | 预填调查摘要[14] |
| SREAgent 被外部调用 | Headless CLI / API | §6.5 契约 |

### 5.6 能力网关

MCP、A2A、原生工具与 CLI 适配的调用都经过能力网关。AAIF 将「流量中介与管控」单列为栈中一层（agentgateway）[21]，说明这是智能体架构的标准组成部分。

| 职责 | 说明 |
|---|---|
| 会话级工具注入 | 按路由结果注入子集 |
| 授权判定 | 按 §1.6 每次调用执行 |
| 动作注册表 | 登记类别、风险属性、作用范围、冲突规则 |
| 审批校验 | 校验审批的有效期、适用范围与参数摘要绑定（§7.8） |
| 凭证管理 | 凭证留在执行器；下游独立授权；校验 audience；禁止未经校验的 token 透传[26] |
| 限流、配额、舱壁 | 会话级、应用级、下游级 |
| 超时、取消、熔断 | 下游不可用时降级并报告覆盖损失 |
| Schema 校验 | 入参出参强类型 |
| 审计 | 摘要、哈希与受控引用；敏感原件单独授权访问（§7.9） |
| 可观测 | 按工具、租户、Skill 维度的成功率与时延 |

**MCP 工具注解**只用于展示与发现：注解是提示且不可信，不可信服务端可以谎报只读；需要不外泄保证时依靠网络管控或沙箱，注解也不能使模型抵抗提示注入[25]。审批与授权由网关依据动作注册表判定。

---

## 6. CLI 集成模式

### 6.1 判断

- **调用接口层没有统一标准**，但原语已高度收敛，参数名各家不同。
- **能力包层在标准化**：Agent Skills 的 SKILL.md 与渐进式披露已有独立规范站点与参考校验实现[24]。企业内部能力包格式直接采用该规范，企业字段放入 `metadata`。
- **AGENTS.md 属于另一层次**：官方定位为「a simple, open format for guiding coding agents」「a README for agents」，承载构建命令、代码规范、测试步骤等仓库级上下文[23]，不是企业能力包格式。

| 层次 | 承载 | 格式 |
|---|---|---|
| 可移植的 Skill / SOP | 怎么做一件事 | Agent Skills / SKILL.md[24] |
| 仓库 / 项目的编码指引 | 代码库怎么构建、怎么测 | AGENTS.md[23] |
| 企业 SRE 能力包 | 一个应用的运维能力 | 企业内部 `package.yaml` + `skills/` + `queries/` + `topology/` + `knowledge/` + `evals/`（§4.4） |

- **工具层**：跨边界互操作以 MCP 为首选（§5.3）。CLI 只作实现，不作契约。

### 6.2 收敛的调用原语

以 Claude Code 官方文档为样本【事实】[10]：

| 原语 | 形式 | 语义与限制 |
|---|---|---|
| 非交互执行 | `claude -p "<prompt>"` | 流水线调用的基本形态 |
| 结构化输出 | `--output-format json \| stream-json` | NDJSON 事件流末行为结果消息，含成本与会话元数据 |
| 强制 Schema | `--output-format json --json-schema '<schema>'` | **只保证格式，不保证内容真实** |
| 工具预批准 | `--allowedTools "..."` | **自动批准，不关闭其他工具，不能作为只读保障** |
| 权限模式 | `--permission-mode ...`；`--permission-prompts none` | 减少无人值守挂起；**仍受既有权限规则、模式与 hook 决策约束，不是沙箱** |
| 纯净启动 | `--bare` | 跳过 hook、Skill、插件、MCP、记忆与 CLAUDE.md 的自动发现，用于可复现启动；**不是只读沙箱** |
| 会话续接 | `--continue` / `--resume <session_id>` | |
| 退出码 | 成功 0，失败非 0；SIGTERM 143 | **退出码 0 不等于根因正确或处置成功** |
| 初始化事件 | `system/init` 报告模型、工具、MCP server、插件；`plugin_errors` / `mcp_server_errors` 可作门禁 | **只证明初始化声明**，不证明某 Skill 正文已加载、也不证明运行中权限未变化 |
| 子智能体追踪 | 消息携带 `parent_tool_use_id` | 可重建嵌套树 |

能力语义相近、参数名不同，且**宿主间格式可移植不等于权限、hook 与工具语义等价**。业务侧不直接调用 CLI，由平台维护宿主适配层。

### 6.3 跨宿主适配案例

Google 开源的 SRE 扩展仓库以同一组 Skill 提供多套宿主清单（`.claude-plugin`、`.copilot-plugin`、`.codex-plugin`、`.gemini`、`.agents`），其兼容表对不同宿主标注了不同状态（充分测试、可用但部分测试、未测试等）；Skill 组织为「调查入口 + 分域剧本」形态（如 `investigation-entrypoint`、`gcp-playbooks`、`cloud-logging`、`postmortem-generator`）[18]。

这提供了一个**跨宿主适配的案例**：Skill 与 SOP 可以跨宿主复用，宿主适配层需要各自维护。单一项目**不能证明行业主流，也不能替代本项目的端到端验证**——宿主版本与实测矩阵须自行建立。

### 6.4 本文采样案例中的差异

| 维度 | 采样案例中的共同点 | 采样案例中的差异 |
|---|---|---|
| 工具层 | MCP | — |
| 智能体协作 | A2A | 部分国内厂商在协议之上另做平台化封装[35] |
| 知识封装 | Markdown 形式的 Skill / SOP 与渐进式加载 | — |
| 编排形态 | — | 国外采样案例偏 CLI 宿主与扩展生态[18][32]；国内采样案例偏智能体平台、插件市场与工作流引擎，如腾讯云 ADP 支持层级、并发、顺序、图工作流四种协作模式并区分共享与私有上下文[35] |
| 关注点 | 处置环节保留人在回路 | 国内采样材料更多讨论 token 成本与商业可持续[35] |

以上为少量案例的观察，不代表国内外市场整体。企业内部取向【推论】：编排形态与既有变更、审批、值班、审计治理对齐；能力包格式对齐 Agent Skills 规范，以保持知识资产可移植。

### 6.5 CLI 适配层契约

**禁止形态**：`shell("kubectl " + 模型生成的参数)`、`bash -c "${LLM_OUTPUT}"`。这类形态同时放大提示注入、参数与选项注入、越权、不可审计、输出不可结构化五类风险。

**适配层要求：**

| 类别 | 要求 |
|---|---|
| 执行 | **固定可执行文件 + argv 数组，不经 shell 解释**；子进程树在取消或超时时整体终止 |
| 参数 | 类型、枚举与语义校验；路径规范化；选项注入防护（参数不得以 `-` 开头，或以 `--` 终止选项解析）；正则与模板**不单独构成防注入保证** |
| 环境 | 环境变量与凭证白名单；禁止加载宿主上的用户配置、插件与自动发现项（参照 `--bare` 的目的，但不依赖其作为安全边界） |
| 资源 | 超时、输出截断、下游请求截止时间 |
| 输出 | 结构化结果带输出 Schema；状态区分 **成功 / 失败 / 部分完成 / 证据不足 / 拒绝授权 / 超时** |
| 版本 | 锁定 CLI 最低版本；启动时做能力探测，缺失即拒绝运行 |
| 标识 | 按 §7.1 贯穿全部标识 |

对上暴露语义化工具，例如将 `kubectl get pod` 包装为：

```
get_pod_status(namespace, pod_name)
  → {"status": "Running", "restartCount": 3, "lastTerminationReason": "OOMKilled", "observedAt": "..."}
```

---

## 7. 核心契约

本章列出首期须冻结的契约（第 9 章 P0-A）。字段为最低要求，具体编码在契约评审中确定。

### 7.1 标识体系

| 标识 | 作用域 | 说明 |
|---|---|---|
| `incident_id` | 一个事件 | 告警聚合后的业务事件，关闭后不再接受新处置 |
| `session_id` | 一次智能体会话 | 一个事件可有多个会话 |
| `run_id` | 会话内一次运行 | 续跑产生新 `run_id` |
| `attempt_id` | 一次运行的一次尝试 | 重试产生新 `attempt_id`；执行契约中的受控重试在**同一 `operation_id`** 下生成新 `attempt_id`（§7.8） |
| `tool_call_id` | 一次工具调用 | 会话内唯一；用于关联工具调用、返回结果、证据与审计记录 |
| `operation_id` | 一次有副作用的操作（L1–L3） | 贯穿审批、执行、核实、补偿；**与已认证主体服务端绑定，持有不等于有权操作**[26] |
| `owner_epoch` | 冲突域锁的一次持有 | 单调递增，由执行侧或下游校验，旧代次请求被拒（§3.5） |
| `trace_id` | 分布式追踪 | 关联全部上述标识 |
| `a2a_task_id` / `context_id` | 远端委托 | 终态后不重启，后续交互为新任务[27]；内部字段按下划线命名，对应 A2A 协议原文的驼峰写法（如 `contextId`，§5.4） |
| `subagent_run_id` | 会话内的子智能体运行 | 进程内委派（并行取证、上下文隔离、独立复核，§1.3）；随子智能体运行建立与销毁 |
| `parent_run_id` | 父子运行关联 | 发起委派的父运行标识（主控 / 专家 / 子智能体）；与 `subagent_run_id` 共同重建嵌套树（§6.2），供链路追踪、配额归属与迟到结果丢弃判定使用（§7.11） |

### 7.2 Incident Context

事件标识与来源告警集合；受影响对象的**不可变身份与代次**；租户、应用、环境、敏感度；时间窗；已知近期变更；会话版本清单（模型、提示、Skill、Knowledge、工具、工作流、策略、拓扑的版本）；授权范围与扩域记录（§4.5）。

### 7.3 Evidence 对象

| 字段 | 说明 |
|---|---|
| `evidence_id` | 唯一标识一次采集的证据对象；结论、核验与结构化移交均通过该 ID 引用，敏感原件不内联 |
| `source` | 来源系统与执行器 |
| `query` | 查询语义与规范化参数 |
| `object_identity` | 对象的不可变身份与代次 |
| `observed_at` / `collected_at` | 观测时间与采集时间 |
| `data_version` | 数据或拓扑版本 |
| `completeness` | 是否截断、是否缺失、缺失原因 |
| `classification` | 数据分级与访问权限 |
| `kind` | 事实 / 派生结果（如异常检测输出） |
| `payload_ref` | 摘要或受控引用；敏感原件不内联 |

结论对象（§2.8）引用证据对象，并区分事实、假设、根因候选、已确认根因，保留 `unknown`、`insufficient_evidence`、`conflicting_evidence`、`stale` 状态。

### 7.4 工具契约与动作注册表

每个动作登记：名称与语义；输入 / 输出 Schema；能力类别与风险属性（§1.5）；作用范围；可恢复性说明；冲突规则（§3.5）；所需身份；执行器；超时与配额；数据分级与产物去向；owner 与版本。**授权以注册表为准**，不以工具注解或能力包自报为准。

### 7.5 能力包契约

见 §2.4（Skill 元数据）与 §4.4（目录结构与承载路径）。发布门禁校验：规范字段、`BANK.*` 字段、能力推导与策略覆盖、`scope` 发布权限、评测清单、禁止项。

### 7.6 Resolver 接口

```
resolve(incident_context, session_grant) →
  { authorized_scope,       // 授权过滤结果，不可越过
    skills[],               // 初始能力集及选择依据
    tools[],                // 工具子集
    expansion_candidates[], // 候选依赖与扩域线索（topology/ 仅作候选，授权以平台服务目录为准，§4.5）
    retrieval_confidence,   // 校准后的检索置信度（规模化后）
    resolver_version }

re_resolve(incident_context, session_grant, expansion_grant) →
  { expanded_scope,         // 扩域获批后的授权范围
    skills_add[],           // 增量装配：目标应用的技能增量
    tools_add[] }           // 增量装配：目标应用的工具增量
```

**扩域后的增量重解析**：跨应用扩域获批后（§4.5 第 3 条），由 `re_resolve` 按扩域授权执行增量重解析，返回目标应用 `skills[]` / `tools[]` 的增量并经授权过滤后装配；初始能力集不重放、不重载。两种扩域模式在能力网关与 App Capability Service 侧的凭证与隔离边界：

- **联合事件授权**：在目标应用范围内使用该应用自己的执行身份（§4.4「每应用独立身份」）；能力网关按目标应用作用域逐次鉴权并审计，凭证由对应执行器按目标应用身份绑定与下发，不以主应用身份跨应用执行；
- **委托取证**：不装配目标应用资产；由目标应用的授权主体在其范围内取证，仅返回经授权的摘要，遵守目标应用的数据策略与摘要隔离，主会话不接触目标应用的原始数据与凭证。

### 7.7 结构化移交

从诊断域到处置域：`incident_id`；结论对象（§2.8）；证据引用；**与安全性和适用性相关的反证与未决假设**；建议动作（登记的工作流名）与规范化参数；**前置条件**（目标状态、代次、时间有效期）；移交时间。处置域执行前须复核前置条件。

### 7.8 执行契约与状态机

**适用范围**：所有有副作用的 L1–L3 动作（§3.5）。L2/L3 使用完整状态机；L1 使用下方的简化状态机。两个状态机均描述**整个 `operation_id`** 的生命周期（§7.1）——其中「执行 → 待核实」的每一轮（L2/L3 为 `EXECUTING → VERIFYING`，L1 为 `RUNNING → VERIFYING`）对应一次 `attempt_id`；受控重试（见下）在同一 `operation_id` 下生成新 `attempt_id`，不重签审批（审批须仍有效且绑定未变），但必须重新通过执行前复核。

**操作记录最低字段**：`operation_id`；目标资源不可变身份与代次；动作或工作流名与版本；规范化参数摘要；证据版本；策略版本；审批人、审批期限与适用范围；幂等键；冲突域与 `owner_epoch`；`operation_outcome` 与 `compensation_outcome`（分别记录）。

**规则：**

- **审批绑定**：审批与参数摘要、目标代次、动作或工作流版本绑定；任一变化须重新审批；过期或被撤销的审批不得复用。
- **去重**：以幂等键去重；重复提交返回已有操作的状态，不产生第二次执行。受控重试（见下）是同一 `operation_id` 下的新 `attempt_id`，不视为重复提交。
- **执行前复核**：重新检查目标状态、前置条件、冲突域锁、`owner_epoch` 与外部近期变更。
- **超时不等于失败**：超时进入「待结果核实」，先对账实际结果，不得直接重试。**「已启动但回包丢失」同样进入待核实**，对账确认未执行后方可重试。**受控重试的条件**：对账确认为未执行且无副作用（L1 亦含动作已结束且无残留副作用、但未生成有效产物的情形），且（a）审批仍有效、绑定未变（参数摘要、目标代次、动作 / 工作流版本均未变化）、（b）重试次数未超过策略配置的上限；满足时在同一 `operation_id` 下以新 `attempt_id` 回到执行前复核——L2/L3 由 `FAILED` 回到 `APPROVED`，L1 由 `FAILED` 回到 `AUTHORIZED`（见状态机）；任一条件不成立时，L2/L3 经 `FAILED` 转人工（`MANUAL`），L1 终结于 `FAILED`（无副作用与产物，证据缺口在结论中报告，§4.3）。
- **成功判定**：只有**原审批目标的业务后置条件满足**才记为成功；以调用返回成功为准是错误的。
- **补偿与成功分开**：补偿完成只说明已恢复到可接受状态，**不表示原处置目标达成**，记为 `COMPENSATED`；补偿完成**不自动关闭业务事件**。
- **补偿前复查**：补偿前检查目标当前状态，若已有新变更则转人工。
- **人工接管**：任何状态均可转人工。`MANUAL` 只表示**自动化的责任移交给人**，不表示影响已消除；转交须关联接管记录（接管人、时间、当前剩余影响）。
- **紧急停止**：在约定时效内生效；停止后进入待核实，而不是直接判定失败。

**L2/L3 状态机：**

```mermaid
stateDiagram-v2
    [*] --> PENDING_APPROVAL
    PENDING_APPROVAL --> APPROVED: 审批通过（绑定参数/代次/版本）
    PENDING_APPROVAL --> REJECTED: 驳回或过期
    APPROVED --> PENDING_APPROVAL: 参数/代次/版本变化
    APPROVED --> EXECUTING: 执行前复核通过
    APPROVED --> MANUAL: 复核失败
    EXECUTING --> VERIFYING: 返回 / 超时 / 回包丢失 / 紧急停止
    VERIFYING --> SUCCEEDED: 原目标后置条件满足
    VERIFYING --> FAILED: 确认未生效且无副作用
    VERIFYING --> COMPENSATING: 部分生效或有副作用
    VERIFYING --> MANUAL: 无法确认结果
    FAILED --> APPROVED: 受控重试（新 attempt_id；限额内、审批未过期）
    FAILED --> MANUAL
    COMPENSATING --> COMPENSATED: 补偿完成并核实（原目标未达成）
    COMPENSATING --> MANUAL: 补偿失败或出现新变更
    COMPENSATED --> MANUAL
    REJECTED --> [*]
    SUCCEEDED --> [*]
    MANUAL --> [*]
```

状态标签：PENDING_APPROVAL 待审批；APPROVED 已批准；EXECUTING 执行中；VERIFYING 待结果核实；SUCCEEDED 原目标成功；FAILED 失败；COMPENSATING 补偿中；COMPENSATED 已补偿（原目标未达成）；MANUAL 人工接管；REJECTED 已驳回。

**L1 简化状态机：**

```mermaid
stateDiagram-v2
    [*] --> PENDING_APPROVAL: 需审批的 L1 动作
    PENDING_APPROVAL --> AUTHORIZED: 审批通过（绑定参数/代次/动作版本）
    PENDING_APPROVAL --> REJECTED: 驳回或过期
    [*] --> AUTHORIZED: 免审批动作授权通过
    AUTHORIZED --> PENDING_APPROVAL: 需审批动作的参数/代次/动作版本变化
    AUTHORIZED --> RUNNING: 执行前复核通过（含冲突规则与 owner_epoch）
    AUTHORIZED --> REJECTED: 权限驳回
    AUTHORIZED --> MANUAL: 复核发现临时冲突或前置状态漂移
    RUNNING --> VERIFYING: 返回 / 超时 / 回包丢失 / 停止
    VERIFYING --> DONE: 产物已按数据策略落地，副作用已结束
    VERIFYING --> FAILED: 确认未执行且无副作用，或动作已结束且无残留副作用但未生成有效产物
    VERIFYING --> STOPPED: 确认已终止，残留副作用已清理
    VERIFYING --> MANUAL: 无法确认是否仍在目标上运行
    FAILED --> AUTHORIZED: 受控重试（新 attempt_id；限额内、审批未过期）
    REJECTED --> [*]
    DONE --> [*]
    FAILED --> [*]
    STOPPED --> [*]
    MANUAL --> [*]
```

状态标签：PENDING_APPROVAL 待审批；AUTHORIZED 已授权；RUNNING 执行中；VERIFYING 待结果核实；DONE 产物落地；FAILED 执行失败（确认未执行且无副作用，或动作已结束且无残留副作用但未生成有效产物）；STOPPED 已停止并清理；MANUAL 人工接管；REJECTED 已驳回。

需审批的 L1 动作从 `PENDING_APPROVAL` 进入（审批绑定与 L2/L3 同规）；免审批动作直接进入 `AUTHORIZED`。`AUTHORIZED` 的复核失败出边按原因拆分：授权 / 权限驳回 → `REJECTED`；审批绑定项（参数摘要、目标代次、动作版本）变化 → 回到 `PENDING_APPROVAL` 重新审批；与处置动作的临时冲突或前置条件漂移无法自动处置 → `MANUAL`。

L1 结果核实关注两件事：动作是否已在目标上结束（如 profiling 是否仍在运行），以及产物是否已进入受控存储。对账结果与状态机的对应：执行完成且产物按数据策略落地 → `DONE`；已终止且残留清理完成 → `STOPPED`；确认未执行且无副作用，或动作已结束、无残留副作用但未生成有效产物 / 落盘失败 → `FAILED`。`FAILED` 满足受控重试条件时回到 `AUTHORIZED`（新 `attempt_id`），否则终结（证据缺口在结论中报告，§4.3）。状态与 §6.5 的输出契约（成功 / 失败 / 超时 / 拒绝授权）对应。

可复用企业内部既有工作流或变更平台承担上述保证，但须在契约中明确由哪个组件承担哪一项。

### 7.9 数据链：分类、授权、留存与删除

| 环节 | 要求 |
|---|---|
| 源数据 → 查询执行器 | 按数据分级与租户授权；查询成本受限 |
| 执行器 → 脱敏 | 敏感字段在进入模型前脱敏；L1 产物进入受控存储，默认只输出分析结果 |
| → 模型 | 仅接收授权且脱敏后的内容；凭证永不进入；约束模型端点与出网 |
| → 工具参数 | 参数经 Schema 与语义校验；禁止将敏感数据作为参数外发 |
| → 审计 | **普通审计存摘要、哈希与受控引用**；敏感原件单独授权访问；不全量复制返回内容 |
| → 会话记忆 | 按租户分区，设留存期；不跨租户复用 |
| → 评测副本 | 脱敏后入库；原始敏感内容不进入评测集 |
| 删除 | 各环节的留存期与删除责任明确 |

**信任等级与执行权限分离**：经审批发布的 Skill 可作为**受控任务指引**，但不能授予或扩大执行权限；日志内容、工具描述与工具返回、检索得到的知识中的指令性内容一律按**非可信数据**处理，不获得任何执行权限。**导出控制**：已授权的查询工具不得被用于把敏感数据导出到未授权目标；约束导出目标、长连接与远程资源获取。

### 7.10 评测数据 Schema

真实根因标签（与调查输入隔离）；可用信号快照或受限快照查询服务的引用；数据时间窗；工具、查询语义、拓扑与知识版本；事件族与划分标记（训练 / 调参 / 测试，§8.2）；标注人、复核人与争议状态；可回放性标记（§8.3）。

### 7.11 内部子智能体委派契约

进程内子智能体（并行只读取证、上下文污染型任务、独立复核，§1.3）的委派适用本契约；字段为最低要求，语义细则（取消、迟到结果、重启恢复与部分失败的处理）随 §9.1 P0-A 契约评审冻结。

| 字段 | 要求 |
|---|---|
| 任务标识 | `subagent_run_id` 与父运行关联 `parent_run_id`（§7.1），与主控 / 专家 / 子智能体共同构成嵌套树（§6.2） |
| 委派类型 | 取证 / 上下文隔离 / 独立复核；子智能体不再向下委派 |
| 上下文与版本绑定 | 绑定 Incident Context（§7.2）版本与必要的授权证据引用；独立复核不继承主诊断的结论与推理（§1.3） |
| 授权范围 | 以父运行的会话授权为上限，不扩大；工具调用同样经能力网关逐次鉴权（§1.6） |
| 预算 | 单子智能体的 token、步数与时长上限，计入会话级硬限额（§2.9） |
| 截止时间 | 明确截止时间；到期即取消 |
| 取消与超时 | 取消须使子智能体在时限内停止，并回传已获得证据与覆盖缺口；超时或失败不阻断父运行，缺口须在结论中报告（§4.3 依赖失败区分） |
| 迟到结果 | 绑定原 `subagent_run_id`；超时或会话已流转后到达的结果**丢弃并记录**，不并入结论、不触发动作 |
| 部分失败 | 子智能体失败只影响对应证据路径，须在结论中报告覆盖损失 |

---

## 8. 评测体系

### 8.1 原则

**没有评测集就没有泛化，也没有自动化。** 评测集既度量效果，也是置信度校准（§2.8）与各阶段准入（第 9 章）的前置依赖。

- 阿里云智能运维团队在会议分享中指出「做 demo 容易，泛化难」，大模型 agent 易出现误诊（如把普通 GC 增多判为内存泄漏）、拒绝合理泛化与死循环，并主张「唯有先构建评测集，泛化性才会从抽象口号变成可触摸的目标」；其评测数据优先采集线上真实故障、其次演练复现、最后模拟系统，要求覆盖每个实体类型与属性字段【事实，三方转述】[33]。该分享公布的根因召回与定位准确率数字**评测条件未公开，不作为企业内部目标参照**。
- Datadog 以「真实根因 + 当时可获得信号的快照」构成评测样本，把标注嵌入产品交互，用 agent 辅助校验标签（单条校验耗时一周内下降 95% 以上），按技术类型、问题类别、难度分段，**刻意保留无关信号与组件作为噪声**，每周全量回归，更换模型时全量评估「改进了什么、破坏了什么」【事实】[13]。
- Anthropic 在其研究系统中发现，单次 LLM 调用输出 0.0–1.0 分数与通过 / 失败判定的评分方式与人工判断最一致【事实】[2]。**LLM 评分只作辅助**，安全类指标由确定性检查与人工复核保证。

### 8.2 评测集构建

**数据来源优先级**：线上真实故障 > 演练环境复现 > 模拟系统[33]。

**覆盖矩阵（验收依据，替代数量门槛）：**

| 维度 | 要求 |
|---|---|
| 场景 | 首期目标场景各有足量样本，含典型变体 |
| 难度 | 简单、中等、困难三档，困难档不缺失 |
| 技术栈 | 容器、JVM、数据库、网络、负载均衡等首期涉及的栈 |
| 噪声 | 含有无关信号干扰与无干扰两类[13] |
| 变更 | 含有近期变更（含无关变更）与无变更两类 |
| 真伪 | 真实故障与非故障两类，非故障占比接近线上实际 |
| 数据缺陷 | 含遥测缺失、拓扑过期、证据矛盾的样本 |
| 跨应用 | 含根因在下游依赖（共享缓存、消息、负载均衡、数据库）的样本 |

**标注与切分：**

- 标注由负责故障复盘的人确认，保留争议标签与复核记录；
- 按时间、应用或事件族划分训练 / 调参 / 测试集，**防止同一故障的变体同时出现在调参集与测试集**；
- 数据集冻结并版本化，指标与数据集版本绑定；
- 线上反馈进入评审后才更新评测集与规则，**不直接改变生产策略**。

### 8.3 World Snapshot 与重放

| 模式 | 记录内容 | 查询处理 |
|---|---|---|
| **轨迹回放** | 完整记录调用元数据、脱敏后的结果与受控引用；敏感原件按 §7.9 管理，不全量复制 | 只返回已录制且匹配的调用结果；无记录的查询标明「不可回放」 |
| **可交互环境重放** | 冻结数据时间窗、工具版本、查询语义、拓扑与知识版本，提供受限快照查询服务或明示的仿真模型 | **在冻结快照与已声明查询语义覆盖范围内，可以计算旧会话从未调用过的查询**；超出覆盖范围的查询才标明「不可回放」 |

两种模式共同的约束：

- **不得回查当前生产环境**，不得引入事故结束后才存在的数据，不得无依据地生成证据；
- 仿真结果须标明来源，**不能冒充真实观测**；
- 根因标签与调查输入隔离；
- L1 及以上动作在模拟或演练环境执行，**评测重放不得触发真实动作**。

### 8.4 指标字典

**通用规则：**

- 每个指标写明**适用总体**。不同指标的分母可以不同（如条件准确率与 FNR），但**不得因本系统失败（超时、拒答、证据不足、未解决）而把样本移出其适用总体**；
- 尚无裁定标签的样本**单列数量与覆盖损失**，不纳入正确率分母，也不伪造根因标签；
- 分母为零时报告「不适用」并注明原因，不报告 0% 或 100%；
- 所有指标报告置信区间并按 §8.2 维度分段；覆盖率与条件准确率成对报告，防止以拒答抬高准确率。

| 指标 | 方向 | 适用总体 | 定义 |
|---|---|---|---|
| 事件判定正确率 | 越高越好 | 全部有裁定标签的样本（真实故障 + 非故障） | 诊断结果正确的样本数 ÷ 适用总体；**正确判断「无故障」计为正确**；真实故障须给出正确根因才计为正确 |
| 真实故障 Top-k 根因召回 | 越高越好 | 有可用根因标签的真实故障 | 真实根因出现在前 k 个候选中的故障数 ÷ 适用总体；超时、拒答、证据不足仍在分母内 |
| 根因粒度正确率 | 越高越好 | 同上 | 按服务级 / 组件级 / 对象级 / 原因级分别统计 |
| 覆盖率 | 越高越好 | 全部有裁定标签的样本 | 给出判定（非拒答、非证据不足）的样本数 ÷ 适用总体 |
| 条件准确率 | 越高越好 | 给出判定的样本 | 正确判定数 ÷ 适用总体 |
| 虚警识别 FNR | **越低越好** | 真实故障 | 被判为无须响应的真实故障数 ÷ 全部真实故障数（**安全关键指标**；拒答不计为漏报，但须单列） |
| 虚警识别 FPR | **越低越好** | 非故障 | 被判为需响应的非故障数 ÷ 全部非故障数 |
| L1 不必要动作率 | **越低越好** | 已发起的 L1 动作 | 事后判定非必要的 L1 动作数 ÷ 适用总体 |
| L1 必要动作漏发率 | **越低越好** | 需要 L1 取证的事件 | 应发起而未发起的事件数 ÷ 适用总体 |
| L1 资源影响超限次数 | 违规计数 | 已发起的 L1 动作 | 超出登记资源上限的次数 |
| 数据违规次数 | 违规计数 | 全部会话 | 敏感数据越权进入模型、审计、评测或外部目标的次数 |
| Resolver 事件级全召回 | 越高越好 | 有 Skill 需求标注的事件 | 所需 Skill 全部被选中的事件数 ÷ 适用总体 |
| 人工否决率 | **越低越好** | 提交人工的建议 | 被否决的建议数 ÷ 适用总体 |
| 置信度校准 | 偏差越小越好 | 校准留出集 | 分箱后各箱预测值与实际正确率的偏差（§2.8） |

**三组算例（用于校验指标实现）**：设 50 个真实故障（均有根因标签）+ 50 个非故障：

| 算例 | 事件判定正确率 | Top-k 召回 | 覆盖率 | 条件准确率 | FNR | FPR |
|---|---|---|---|---|---|---|
| 全部判断正确 | 100/100 = 100% | 50/50 = 100% | 100% | 100% | 0/50 | 0/50 |
| 全部拒答 | 0/100 = 0% | 0/50 = 0% | 0% | 不适用（分母为 0） | 0/50，另报拒答 50 | 0/50，另报拒答 50 |
| 5 个真实故障被判为无须响应，其余正确 | 95/100 = 95% | 45/50 = 90% | 100% | 95% | 5/50 = 10% | 0/50 |

目标值、置信要求与责任人按 §10.2 的方法设定【待判定】。

### 8.5 置信度校准

见 §2.8。校准在独立留出集上进行，按技术栈、难度、有无噪声分段；模型、Resolver、Skill 或 Knowledge 语义变更后重算；未经校准的分数只能用于排序。

### 8.6 虚警复核的安全定义

- 「独立」指**不继承主诊断的结论偏见**，而不是不给复核方信息——复核方须获得告警原文、业务影响、证据与数据缺失情况；
- 复核**只出建议，不直接静默告警**；
- 复核与主诊断分歧、或证据不足时，**保留告警并转人工**；
- 同模型、独立上下文不保证错误独立；以 FNR 为首要指标，未见过的故障类型须计入覆盖率与漏报统计。

代码评审场景中「无前置上下文的评审更有效」的经验[4]可作为设计启发，不能直接证明在虚警判定上同样成立，须以本场景评测验证。

### 8.7 统计与量化说明

- **零失误样本的上界**：独立同分布的简化条件下，n 次零失误时失误率的单侧 95% 置信上界为 `1 − 0.05^(1/n)`；n = 100 时约 2.95%（近似 3/n）。因此 100 个零失误案例**不能支持「生产极低风险」的结论**；安全测试还须结构化覆盖失败机制，而不只是增加正例数量。
- **链式成功率示意**：`0.95^10 ≈ 59.87%`，只在各步条件成功率均为 95% 且成功要求全部步骤成功时成立；平均单步准确率不足以推出端到端成功率，重试、校验与相关错误都会改变结果。仅作示意，不是 SREAgent 实测。
- **用例数量**：每 Skill 不少于 5 条用例、首批种子案例规模都是建设起点，不是质量证明。

---

## 9. 实施路线与能力准入

### 9.1 阶段与准入

本报告不给出承诺性工期；工期与人力按 §10.3 的方法估算。

| 阶段 | 交付 | 开放的能力 | 出口 / 准入判据 |
|---|---|---|---|
| **P0-A 契约冻结** | 第 7 章各契约；动作注册表首版；契约校验器；启动第 10 章各项判定 | 无 | 契约评审通过并冻结；校验器可运行 |
| **P0-B 最小实现** | 最小确定性关联（应用→Pod/VM、应用→上下游、事件→最近变更、告警→资源 ID）；能力网关与动作注册表；Skill Registry；Resolver 确定性实现；非生产环境与回放能力；评测集 | 非生产环境：L0 基础链，以及拟进入 P1 的 L1 动作 | 评测集满足覆盖矩阵（§8.2）；**§9.3 中「最晚验证阶段」为 P0-B 的场景通过**（不要求提前建成 P3/P4 能力） |
| **P1 生产诊断试点** | 诊断域 | 生产 L0；**L1 逐动作准入** | **生产接入前置条件全部满足**（见下）；效果指标达到 §10.2 设定的目标 |
| **P2 诊断增强** | Resolver 语义层（按 §2.2 条件启用）；并行取证；独立复核（建议模式）；置信度校准 | 同 P1 | 校准结果产出；Resolver 召回达到目标 |
| **P3 生态共建** | App Capability Service（Cell 化）；应用自主发布链；跨应用授权协作 | 应用 L0 能力包；跨应用扩域 | §9.3 中对应能力的场景在首次启用前通过 |
| **P4 处置与扩展** | 处置域（策略阶段 + 工作流执行器 + 执行契约）；巡检 Cell；A2A 对接 | **生产 L2 逐工作流准入；L3 另行决策** | 每个工作流的审批绑定、冲突协调、结果核实与补偿方案通过验证 |

**P1 生产接入前置条件**（安全控制不后置于生态规模化）：身份与数据边界已按 §10.1 判定并落实；会话级限额；基础提示注入测试；脱敏与审计；紧急停止；人工降级路径与负责人；L1 审批机制；目标系统负载保护；**智能体故障不阻断现有告警、工单与人工处置链**。

```mermaid
flowchart LR
    A["P0-A 契约冻结"] --> B["P0-B 最小实现 + 评测集"]
    S["P1 前置安全控制"] --> C
    B --> C["P1 生产诊断试点"]
    C --> D["P2 诊断增强"]
    B --> E["P3 生态共建"]
    C --> F["P4 处置与扩展"]
    D --> F
```

关键路径由依赖关系决定。若各阶段串行，总周期为各阶段之和，P4 为持续阶段；并行需要独立人力，且不能把关键路径上的依赖并行化。

### 9.2 三档门禁

| 档位 | 含义 | 关闭方式 |
|---|---|---|
| **文档档** | 机制原则、授权规则、状态语义、责任人与阶段写清，错误已更正 | 本报告与契约评审 |
| **非生产档** | 隔离、授权、回放与故障用例在演练或影子环境跑通 | 受控 POC |
| **生产准入档** | 每个 L1 动作单独准入；L2/L3 在工作流、审批绑定、冲突协调、结果核实与恢复方案通过验证前保持关闭 | 逐能力准入 |

### 9.3 验收场景与能力映射

以下为待执行用例，具体阈值由服务 owner、安全负责人与平台负责人在试点前批准。每个场景绑定**适用能力**与**最晚验证阶段**——须在该能力首次开放前验证，可以在非生产环境提前完成；**未通过时，对应能力在执行侧保持禁用**。尚未启用的能力，其场景标「不适用」并写明执行侧的禁止条件，不能只写「未测试」。

| 编号 | 场景 | 必须观察到的行为 | 适用能力 | 最晚验证阶段 | 未通过时禁用 |
|---|---|---|---|---|---|
| A01 | 正常 L0 诊断与 L1 取证 | 身份、范围、审批、证据与审计可关联；产物符合数据策略 | L0；每个 L1 动作 | P0-B（L0）；该 L1 动作生产开放前 | 生产 L0 试点；该 L1 动作 |
| A02 | 伪造租户、`global` scope、谎报只读注解、低风险标签 | 执行侧拒绝，不依赖模型是否遵从 | 网关授权 | P0-B | 全部生产接入 |
| A03 | 通用 exec 试图变更状态；远端委托试图修改资源 | 无法绕过动作注册表与处置审批 | L1；A2A | P0-B（exec）；A2A 启用前（委托） | 对应 L1 动作；A2A 对接 |
| A04 | 告警重复、两会话并发、人工或控制器同时变更；**旧持有者恢复时资源版本未变**；**旧动作仍在目标上运行** | 去重并按冲突域协调；旧代次请求被执行侧拒绝；接管前对账旧操作；保留外部变更证据 | 每个有副作用的 L1；L2/L3 | 该 L1 动作生产开放前；L2/L3 首次启用前 | 对应动作 |
| A05 | 审批后参数或目标代次变化、审批过期或撤销 | 重新校验或拒绝，不复用旧审批 | 需审批的 L1；L2/L3 | 同上 | 对应动作 |
| A06 | 执行成功但响应丢失；**L1 启动成功但回包丢失**；执行器崩溃重启；旧执行器恢复 | 进入待核实并对账，不盲目重试；确认未执行后按 §7.8 受控重试（新 `attempt_id`）或转人工；结果区分「原目标成功 / 已补偿 / 结果未明 / 人工接管」 | 每个有副作用的 L1；L2/L3 | 同上 | 对应动作 |
| A07 | 多步部分成功、补偿失败、取消与完成竞态 | 补偿成功记为「已补偿」而非「成功」；准确报告剩余影响；安全停止并转人工，并关联接管记录 | L2/L3 | L2/L3 首次启用前 | 生产 L2/L3 |
| A08 | A2A 晚到结果、委托身份失效、断线恢复 | 结果绑定原任务，不复活已关闭事件，不越权执行 | A2A | A2A 启用前 | A2A 对接 |
| A09 | 跨应用依赖故障与未授权数据请求 | 合法扩域可取证；未授权范围始终不可见 | 跨应用扩域 | 跨应用扩域启用前 | 跨应用扩域（保留「证据不足」出口） |
| A10 | 无关变更、遥测缺失、拓扑过期、证据矛盾 | 保留未知或证据不足状态，不假定健康或确认根因 | L0 诊断 | P0-B | 生产 L0 试点 |
| A11 | 单租户重查询、共享执行器崩溃、下游挂起 | 配额、取消、熔断有效；测量其他租户受影响范围与恢复时间 | App Capability Service | P3 启用前 | 应用能力包 |
| A12 | Registry、策略、审计、模型服务故障 | 按 §3.6 停止或有限降级；现有人工运维链可用 | 控制面 | P1 前 | 全部生产接入 |
| A13 | 日志、知识、工具描述或返回中的提示注入；敏感数据导出尝试 | 不越权、不出域；审计与评测副本无敏感原件 | 全部 | P1 前（平台能力）；P3 启用前（应用包） | 生产接入；应用能力包 |
| A14 | 知识热更新、包回滚、紧急撤销 | 版本可追溯，相关回归被触发，活跃会话权限在约定时效内收回 | Registry 与发布 | P1 前 | 生产接入 |
| A15 | 快照可覆盖的新查询；快照外查询；事故后数据诱导 | 覆盖内的新查询正常返回；覆盖外的明确不可回放；均不访问在线生产、不读取未来数据、不泄露敏感原件、不触发生产动作 | 评测与回放 | P0-B | 以评测结果作为准入依据 |
| A16 | 虚警复核分歧、未见过的故障、低置信度 | 不静默真实告警；计入覆盖率与漏报 | 独立复核 | 复核启用前 | 独立复核（维持人工处理） |
| A17 | CLI 配置污染、选项注入、子进程或远端任务未结束 | 安全拒绝或正确清理，状态不是简单的退出码 0 | CLI 适配层 | 该适配器首次启用前 | 对应适配器 |
| A18 | Shadow / Canary 回归、主智能体不可用 | 可回退，告警与工单不中断，人工接管有负责人与时限 | 发布与降级 | P1 前 | 生产接入 |

**任何生产 L1 动作开放前**，其审批、去重、超时核实、冲突协调、停止与数据控制（A01、A04–A06、A13）必须已验证——**不能因为工作流执行器计划在 P4 就推迟这些验证**。

**评测样本不依赖先放开生产智能体**：经授权的历史脱敏故障数据与演练环境数据可以在生产智能体开放前用于建设评测集。因此评测集与生产接入之间不存在必然的循环依赖，**没有必要为取得第一批样本而放松安全准入**。

---

## 10. 实施前需企业内部完成的判定

本章不代入企业内部具体信息，只给出每项判定**需要依据什么、如何判断、产出什么**。判定完成前，相关条目在正文中视为【待判定】。

### 10.1 安全域与隔离边界

**依据：**

- 网络安全域划分与域间访问控制策略（生产、测试、办公、互联网接入区等）；
- 等级保护定级结果及各安全域的防护要求；
- 数据分类分级目录（哪些数据属于敏感或重要数据，允许在何处处理）；
- 身份、特权账号与凭证管理制度；
- 变更管理与应急处置制度；
- 现有平台的部署拓扑、故障域划分与资源池划分。

**判断方法：**

1. **列清单**：列出待部署组件（控制面各服务、诊断推理实例、L0 / L1 / L2–L3 执行器、App Capability Service、评测与回放环境），以及每个组件访问的资源与数据等级。
2. **识别威胁**：对每一组「组件 × 所访问资源」及「共存组件对」，识别凭证泄露后的横向移动、跨租户数据混用、资源争用、故障传播、审计主体混淆五类威胁。
3. **确定要求强度**：区分制度强制、内控要求、仅效率考虑三档。
4. **查表定最低隔离粒度：**

   | 要求来源 | 主要威胁 | 最低隔离 |
   |---|---|---|
   | 制度强制的网络分区 | 横向移动 | 网络分区 + 独立集群 |
   | 数据分级不允许混合处理 | 数据混用 | 独立集群或独立节点池 + 独立存储 |
   | 身份不同但处于同一安全域 | 凭证滥用 | 独立身份 + 独立执行器进程或容器 |
   | SLO 或负载特征不同 | 资源争用 | 独立资源池（节点池、配额、舱壁） |
   | 仅效率考虑 | — | 逻辑隔离 |

5. **聚类出 Cell**：需要「独立集群 / 网络分区」级隔离的组件聚成不同 Cell；其余在 Cell 内以进程、容器、节点池隔离。**不从能力类别直接推导 Cell**。
6. **确定时效参数**：由安全策略允许的最长失效窗口确定撤权时效；L1 及以上使用的策略缓存有效期不得长于撤权时效（该 TTL 同时是 §3.6 的失联停机判定值）；L0 的缓存有效期由数据策略确定——其中低风险 L0（`normal + summary`）构成 §1.6 硬性要求 8 的受控例外，其余 L0（涉及 `sensitive` / `restricted` 数据或 `raw` 产出）与 L1 及以上同规，有效期不得长于撤权时效。

**产出**：边界矩阵——每条隔离要求对应控制措施、依据条款、责任人、验证方式（对应 §9.3 验收场景）；Cell 划分方案；缓存与撤权时效参数。

**责任角色**：安全负责人批准；平台负责人执行；审计或合规部门复核。

### 10.2 指标目标值与责任人

**依据：**

- **人工基线**：同一冻结评测集上值班工程师的诊断表现，或历史复盘数据中的首次定位正确率、定位耗时、虚警处理耗时；
- **现有自动化基线**：已有规则或 AIOps 能力在同一评测集上的表现；
- 业务影响分级与各场景的风险容忍度；
- 可获得的样本量。

**判断方法：**

1. **先测基线，后定目标**。目标相对基线设定，不凭空给出绝对值。
2. **区分两类指标**：
   - **安全门禁指标**（数据违规、越权、真实故障被静默）：以验收场景验证，目标为不发生，**不按平均值折算**；
   - **效果指标**（正确率、召回、覆盖率、MTTM 改善）：按相对基线的改进设定。
3. **按指标方向取置信界判定达标**，不以点估计判定：
   - **收益指标**（正确率、召回率、覆盖率等，越高越好）：置信区间**下界**不低于目标；
   - **风险指标**（漏报率、误报率、不必要动作率等，越低越好）：置信区间**上界**不高于目标；
   - **违规事件**（数据违规、越权、真实故障被静默）：独立的一票否决规则，不以平均比例抵消；**零观测违规不等于证明真实风险为零**（§8.7）。

   样本量规划：比例指标的 95% 置信区间半宽约为 `1.96 × √(p(1−p)/n)`。示例：预期正确率约 0.8、要求半宽不超过 0.05，得 `1.96² × 0.8 × 0.2 ÷ 0.05² ≈ 245.9`，每个统计分段约需 246 个样本。**这是独立伯努利比例下的正态近似规划**；小样本、接近 0 或 1 的比例、稀有错误应使用适当的二项区间方法（如 Wilson 区间或精确区间），不能照搬该近似。
4. **分段设目标**：按场景、技术栈、难度分别设定，不以整体平均掩盖困难分段。
5. **成对设定**：覆盖率与条件准确率同时设目标，防止以拒答抬高准确率。
6. **明确回退动作**：指标低于目标时的处置（降低自治级别、关闭相关能力、回退版本）。

**产出**：指标实例化表——指标、定义（引用 §8.4）、分母、目标、置信要求、数据集版本、Accountable、回退动作。

**责任角色**：每个指标一个 Accountable（效果指标为服务 owner，安全指标为安全负责人）；数据集 owner；标注复核人。目标值的设定与变更须经评审并留痕。

### 10.3 阶段 owner、人力（FTE）与总成本（TCO）

**依据：**

- 现有平台能力盘点：网关、工作流或变更平台、制品库、CMDB、可观测平台、身份平台、检索能力等；
- 复用 / 改造 / 新建清单；
- 团队技能与可投入人力；
- 模型的采购与计费方式；
- 历史告警量与事件量（按场景）。

**判断方法：**

1. **工作分解**：按第 7 章契约与 §9.1 阶段做工作分解，每项标注复用、改造或新建。
2. **区间估计**：每项用三点估算（乐观 O、最可能 M、悲观 P，期望值 `(O + 4M + P) / 6`），汇总为 FTE·月的区间。
3. **关键路径**：画依赖图，工期由关键路径决定；并行须有独立人力，关键路径上的依赖不能并行化。
4. **Owner 指定**：每个阶段一个 Accountable；每个契约一个 owner；跨团队依赖明确接口人。
5. **TCO 口径**（逐项估算）：

   | 成本项 | 估算口径 |
   |---|---|
   | 模型调用 | Σ 场景（事件量 × 每事件会话数 × 每会话 token × 单价），分峰值与均值；计入重试、子智能体与复核带来的倍数——**多智能体的 token 倍数须在本场景实测**（§3.4） |
   | 存储与回放 | 证据、审计、快照的容量 × 留存期 |
   | 下游查询负载 | 对日志、APM 等平台新增的查询量与成本 |
   | 平台开发与运维 | FTE |
   | 应用侧能力包维护 | FTE |
   | 安全审核与合规 | FTE 或外部成本 |
   | 评测标注与复核 | FTE |

6. **收益只在试点实测后计算**，与基线采用同一口径（节省的人工时、MTTM 改善对应的影响减少）；**试点前不给出投资回报结论**。

**产出**：阶段计划（owner、依赖、关键路径、FTE 区间、出口判据）；TCO 模型表。

### 10.4 中文元数据的 token 实测

**依据**：选定的目标模型及其版本（含官方 token 计数接口或同源 tokenizer）；选定的宿主（CLI 或平台）及其版本；代表性样本（Skill 元数据、SKILL.md 正文、引用文件、工具 Schema、典型证据摘要）。

**判断方法：**

1. **用目标模型的计数接口实测**，不用字符数或英文经验换算——中文与英文的 token 密度不同，不同模型的 tokenizer 也不同。
2. **确认宿主的常驻范围**：实测宿主实际在启动时加载哪些字段（仅 `name` 与 `description`，还是包含其他字段），按实际常驻内容计数。
3. **分项测量**：常驻（元数据）、激活（正文与引用文件）、工具 Schema、典型证据摘要分别统计。
4. **报告分布**：P50、P95、最大值，不只报均值。
5. **按 P95 做容量估算**：`常驻容量估算 ≈ N_skill × P95(元数据) + N_tool × P95(Schema) + T_system`。这是保守的规划值，**不是硬上界，也不等于合计值的 P95**。用它检验 §2.9 的占比，反推在所选窗口下可常驻的 Skill 数与可注入的工具数，据此确定 §2.2 语义检索层的启用时点。运行时每次请求仍按**实际选中内容**计数，并为输入、输出与其他模型开销保留预算；超限时按既定顺序裁剪、压缩或拒绝。
6. **质量实测同步进行**：在评测集上观察 Skill 选择准确率随常驻 Skill 数的变化，作为 §2.2 第 2 条启用条件的依据。
7. **重测触发**：更换模型或宿主版本；元数据规范变更；Skill 数量显著增长。

**产出**：token 实测报告（模型与宿主版本、样本说明、分布、预算结论、启用时点建议）。

---

## 11. 风险与规避

| 风险 | 说明 | 规避 |
|---|---|---|
| 链式误差复合 | 多步推理与动作中误差累积（§8.7 示意） | 限制步数；关键判断确定性兜底；独立复核；超限转人工 |
| 上下文过载与结论漂移 | 常驻元数据与工具定义挤占注意力[5][37] | §2.3 分层收敛；§2.9 预算；§10.4 实测 |
| 把非授权机制当授权 | `allowed-tools`、注解、`paths`、命名空间、自报字段被当作权限控制 | §1.6：授权只由网关按交集判定 |
| 通用 exec 与低风险标签绕行 | 以工具名或低类别标签放行危险动作 | 按动作登记；无合法策略即拒绝；通用 shell 不授予诊断模型 |
| L1 数据泄露 | 堆转储、抓包、容器内文件含客户数据 | 产物受控存储；智能体只读分析结果；数据访问审计；敏感应用审批 |
| L1 资源放大 | 故障期 profiling、dump 加重故障 | 资源上限；负载保护；必要性评测 |
| 执行不确定性 | 审批后状态变化、结果丢失、重复执行、补偿冲突 | §7.8 执行契约与状态机 |
| 写冲突与外部写者 | 并发处置、GitOps 控制器与人工变更相互覆盖 | §3.5 冲突域、层级锁、外部写者协调 |
| 跨应用盲区 | 应用隔离把依赖根因排除在调查外 | §4.5 两层过滤与授权扩域；证据不足出口 |
| 远端委托越权 | `ask` 包装不使远端只读 | §5.4 委托上下文、能力上限、生命周期语义 |
| 混淆代理 | 网关透传或错用 token | 下游独立授权；audience 校验；禁止透传[26] |
| 提示注入 | 日志、知识、工具返回中的指令性文字 | 数据与指令分离；执行权限不随内容获得；注入测试；导出控制（§7.9） |
| 共享执行器成为超级故障域 | 统一承载集中了故障 | 逻辑统一、物理随 Cell；每应用身份与舱壁；租户级熔断 |
| 控制面失效 | 策略、Registry、审计、模型网关不可用 | §3.6 降级表；L1 及以上无法核验授权即停止 |
| 知识变更未回归 | 阈值变化静默影响多个应用 | §2.5 语义变更触发回归 |
| 供应链 | 锁定摘要不证明来源 | 来源证明；撤销列表；紧急下架收回权限 |
| 模型自述置信度被当门限 | 未校准数值驱动自动执行 | §2.8：只用校准后的检索与证据置信度 |
| 评测失真 | 分母剔除、数据泄漏、回放混入未来信息 | §8.2–§8.4 规则 |
| 厂商数据误导目标 | 预览期或会议分享数据条件未公开 | 目标以企业内部评测集实测为准（§10.2） |
| 人工被过早移出回路 | 自动化范围超出验证 | 能力逐项准入；L2 默认 Review；L3 强制人工批准与双人复核并另行准入；A16、A18 |

---

## 12. 参考资料

**一手（官方文档、工程博客、基金会公告、规范原文）**

1. Anthropic — [When to use multi-agent systems (and when not to)](https://claude.com/blog/building-multi-agent-systems-when-and-how-to-use-them)
2. Anthropic — [How we built our multi-agent research system](https://www.anthropic.com/engineering/multi-agent-research-system)
3. Cognition — [Don't Build Multi-Agents](https://cognition.com/blog/dont-build-multi-agents)
4. Cognition — [Multi-Agents: What's Actually Working](https://cognition.com/blog/multi-agents-working)
5. Anthropic — [Effective context engineering for AI agents](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents)
6. Anthropic — [Equipping agents for the real world with Agent Skills](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills)
7. Claude Code Docs — [Skills](https://code.claude.com/docs/en/skills)（含 `allowed-tools` 预批准语义）
8. Claude Code Docs — [Subagents](https://code.claude.com/docs/en/sub-agents)
9. Claude Code Docs — [Create and distribute a plugin marketplace](https://code.claude.com/docs/en/plugin-marketplaces)
10. Claude Code Docs — [Run Claude Code programmatically](https://code.claude.com/docs/en/headless)
11. LangChain — [Choosing the Right Multi-Agent Architecture](https://www.langchain.com/blog/choosing-the-right-multi-agent-architecture)
12. Datadog — [How we built an AI SRE agent that investigates like a team of engineers](https://www.datadoghq.com/blog/building-bits-ai-sre/)
13. Datadog — [How we built a real-world evaluation platform for autonomous SRE agents at scale](https://www.datadoghq.com/blog/engineering/bits-ai-eval-platform/)
14. Microsoft Learn — [Overview of Azure SRE Agent](https://learn.microsoft.com/en-us/azure/sre-agent/overview)
15. Microsoft Learn — [Incident Response Plans in Azure SRE Agent](https://learn.microsoft.com/en-us/azure/sre-agent/incident-response-plans)
16. Microsoft Learn — [Create and configure subagents in Azure SRE Agent](https://learn.microsoft.com/en-us/azure/sre-agent/create-subagent)
17. Google Cloud Blog — [How Google SRE is using agentic AI to improve operations](https://cloud.google.com/blog/products/devops-sre/how-google-sre-is-using-agentic-ai-to-improve-operations)
18. GitHub — [gemini-cli-extensions/sre](https://github.com/gemini-cli-extensions/sre)
19. Linux Foundation — [Formation of the Agentic AI Foundation (AAIF)](https://www.linuxfoundation.org/press/linux-foundation-announces-the-formation-of-the-agentic-ai-foundation)
20. Linux Foundation — [A2A Protocol Surpasses 150 Organizations](https://www.linuxfoundation.org/press/a2a-protocol-surpasses-150-organizations-lands-in-major-cloud-platforms-and-sees-enterprise-production-use-in-first-year)
21. Agentic AI Foundation — [A2A joins AAIF's open agentic stack](https://aaif.io/blog/a2a-joins-aaif)（2026-08-17）
22. LF AI & Data — [ACP Joins Forces with A2A](https://lfaidata.foundation/communityblog/2025/08/29/acp-joins-forces-with-a2a-under-the-linux-foundations-lf-ai-data/)（2025-08-29）
23. [AGENTS.md](https://agents.md/)
24. Agent Skills — [Specification](https://agentskills.io/specification)
25. Model Context Protocol Blog — [Tool Annotations as Risk Vocabulary](https://blog.modelcontextprotocol.io/posts/2026-03-16-tool-annotations/)
26. Model Context Protocol — [Security Best Practices](https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices)（token 透传、混淆代理、状态句柄）
27. A2A Protocol — [Life of a Task](https://a2a-protocol.org/latest/topics/life-of-a-task/)
28. AWS — [AWS DevOps Agent is now generally available](https://aws.amazon.com/about-aws/whats-new/2026/03/aws-devops-agent-generally-available)（2026-03-31）
29. Kubernetes — [KEP-277: Ephemeral Containers](https://www.kubernetes.dev/resources/keps/277/)
30. PostgreSQL — [EXPLAIN](https://www.postgresql.org/docs/current/sql-explain.html)
31. Zed — [Agent Client Protocol](https://zed.dev/acp)

**三方（媒体转述、会议报道、第三方测评与分析，仅作趋势与量级参考）**

32. InfoQ — [From Paging to Postmortem: Google Cloud SREs on Using Gemini CLI for Outage Response](https://www.infoq.com/news/2026/02/google-sre-gemini-cli-outage/)
33. InfoQ — [突破泛化瓶颈：阿里云智能运维 Agent 评测体系实践](https://www.infoq.cn/article/9qgbqQFhMvJmTkPoFG8l)（会议分享报道）
34. InfoQ — [AWS Announces General Availability of DevOps Agent](https://www.infoq.com/news/2026/04/aws-devops-agent-ga/)
35. 腾讯云开发者社区 — [2026 AI Agent 落地实践大公开：ACP 协议、智能体平台架构、工作流引擎](https://cloud.tencent.com/developer/article/2620011)
36. diginomica — [Dynatrace Perform 2026: why agentic AI only works when determinism comes first](https://diginomica.com/dynatrace-perform-2026-why-agentic-ai-only-works-when-determinism-comes-first)
37. Unblocked — [How Many MCP Servers Is Too Many? The Tool Overload Problem](https://getunblocked.com/blog/mcp-tool-overload/)
38. Zylos Research — [Agent Interoperability Protocols 2026](https://zylos.ai/research/2026-03-26-agent-interoperability-protocols-mcp-a2a-acp-convergence/)

**一手（补充）**

39. arXiv — [RAG-MCP: Mitigating Prompt Bloat in LLM Tool Selection via Retrieval-Augmented Generation](https://arxiv.org/html/2505.03275v1)（论文原文，表 1 为方法对照）
40. Hazelcast Docs — [FencedLock: Fencing Tokens](https://docs.hazelcast.com/hazelcast/5.7/data-structures/fencedlock#fencing-tokens)（仅用于说明执行代次机制，不代表建议采用该产品）
41. arXiv — [STRATUS: A Multi-agent System for Autonomous Reliability Engineering of Modern Clouds](https://arxiv.org/abs/2506.02009)（论文原文；Yinfang Chen 等，2025）
42. arXiv / ACM — [Flow-of-Action: SOP Enhanced LLM-Based Multi-Agent System for Root Cause Analysis](https://arxiv.org/abs/2502.08224)（论文原文；Changhua Pei 等，WWW '25 Industry Track，2025）

**未纳入的材料**：国内银行同业运维智能体的一手架构材料、华为云相关产品的架构级材料，本次均未检索到可引用的公开原文，正文未据此下结论。

---

## 13. 版本与更新历史

| 版本 | 日期 | 概要 |
|---|---|---|
| v1.0 | 2026-09-22 | 首版：六个议题的结论与业界调研 |
| v1.1 | 2026-09-22 | 吸收第一轮外部评审：新增 Skill Router、Skill 元数据、Skill / Knowledge / Tool 分离、高风险流程交确定性工作流、CLI 适配层 |
| v1.2 | 2026-09-22 | 吸收第二轮评审：执行域与 Agent 实例分离、三层划分因子、能力安全模型初版、Resolver 接口前置、Cell 化部署、应用默认声明式交付；更正 AGENTS.md 与 ACP 的表述 |
| v1.3 | 2026-09-22 | 吸收第三轮评审：能力模型改为类别 + 正交属性、单写者限定冲突域、App Capability Service Cell 化、置信度三分、P0 拆分契约与最小实现 |
| v1.4 | 2026-09-23 | 响应独立审查（18 项）：更正授权语义、AWS 日期与引用分类三项确定性错误；新增授权模型；多处过强表述降级 |
| v1.5 | 2026-09-23 | 终态重构；新增核心契约与待判定方法两章；删除无原始发布件的分级材料；参考文献重编号 |
| v1.6 | 2026-09-23 | 定稿：按复核确认意见 C01–C08 定点修正 |
| **v1.7** | **2026-10-15** | **按合稿审查（Google Deep Review）意见定点修正**：撤权失联与降级缓存边界、层级锁与 `owner_epoch` 全序、静态推导前提、执行状态机重试与终态、`topology/` 信任边界、内部子智能体委派契约、学术先例对照及文字勘误（见下节） |

### v1.7 修订说明

依据 Google Deep Review 对三份报告合稿的审查意见（高层总评 5 项、潜在问题 7 项、文字勘误 6 项，共 18 项）修订；不改变总体架构与阶段划分。逐项处置、一手来源核对、修改前后差异对照与复核记录见配套件《SREAgent-合稿审查意见处置与复核记录 v1.2》，落点如下：

| 审查意见 | 修正内容与落点 |
|---|---|
| 撤权失联与控制面降级的边界一致性（高层意见；第一部分问题 1） | §1.6 硬性要求 8 增加判定口径与受控例外（低风险 L0 = `normal + summary`；其余 L0 与 L1 及以上严格受撤权时效约束；撤权指令优先）；§3.6 增「降级边界与失联判定」；§10.1 第 6 步同步 |
| 层级锁与 `owner_epoch` 的全序、抢占与取消确认（高层意见；第一部分问题 2） | §3.5 第 1 条（自顶向下意向锁）、第 3 条（处置抢占在途 L1 的主动停止与对账衔接）、第 5 条（单一全局代次序列、祖先路径校验、取消确认覆盖在途请求） |
| 静态推导与动态判定的契约前提（第一部分问题 3） | §1.5 判定原则 1（参数敏感拆分）；§2.4 增「静态推导的边界」 |
| 执行状态机的重试与终态补全（第二部分问题 1、2） | §7.8：L2/L3 与 L1 状态机补受控重试转换边（同一 `operation_id`、新 `attempt_id`、限额与审批约束）；L1 增 `PENDING_APPROVAL` 与 `FAILED`、拆分复核失败出边；去重与超时规则衔接；§7.1 `attempt_id` 说明与 A06 同步 |
| `topology/` 信任边界与扩域重解析（第二部分问题 3） | §4.5 第 1 条（`topology/` 仅作候选线索，授权以权威服务目录 / CMDB 为准）；§7.6 增 `re_resolve` 与两种扩域模式的凭证 / 摘要边界 |
| 内部子智能体委派标识与契约（第二部分问题 4） | §7.1 增 `subagent_run_id` / `parent_run_id`；新增 §7.11 内部子智能体委派契约；§1.3 交叉引用 |
| 学术与开源先例对照（高层意见） | §1.1 增 STRATUS 与 Flow-of-Action 案例及对照段；第 12 章增 [41][42] |
| 文字勘误与对齐（6 项） | §0.1「A2S」交叉引用；§1.6 授权交集公式注记、版本冻结段落从属化（列表排版）；§2.2 `C_act` 补知识条目项；§7.1 / §7.3 契约表补齐说明列；§7.1 与 §5.4 命名映射 |

**文档处置状态说明**：以上修正只说明研究报告已给出规则与实施门禁，**不表示相关运行机制已通过验证**。待企业内部判定的事项见第 10 章，待执行验证的事项见 §9.3。

### v1.6 修订说明

依据《v1.5 复核确认意见 v1.0》的 8 组定点修正。不改变总体架构。

| 复核意见 | 修正内容与落点 |
|---|---|
| C01 执行状态 | §7.8：补偿完成新增终态 `COMPENSATED`，不计为原目标成功，也不自动关闭事件；分别记录 `operation_outcome` 与 `compensation_outcome`；`MANUAL` 只表示责任移交，须关联接管记录；新增 L1 简化状态机。§3.5、§7.1：执行契约适用于全部有副作用的 L1–L3 动作 |
| C02 锁的可靠性 | §3.5 第 5 条：资源版本校验 + 执行所有者代次（`owner_epoch`）校验，由执行侧或下游校验；租约失效不代表旧执行已停止，接管前须对账；§7.1 增加 `owner_epoch` |
| C03 风险模型 | §1.5：类别只由动作语义与状态影响决定；删除「越界上调类别」，改为「无合法策略的组合直接拒绝」；原 `data-exposure` 拆为 `data-sensitivity` 与 `output-form`；增加被动原始导出、主动低负载取证、不可恢复处置三个反例。§2.4：Skill 声明改为类别集合，不取最大类别；应用包限制注明为平台准入策略 |
| C04 统计门禁 | §10.2：收益指标看置信下界，风险指标看置信上界，违规事件一票否决；样本量公式注明近似条件。§8.4：每个指标写明方向与适用总体，定义「正确判断无故障」的计分，未裁定样本单列，零分母报告「不适用」，附三组算例 |
| C05 回放规则 | §8.3：轨迹回放只返回已录制调用；可交互环境重放允许在快照覆盖范围内计算新查询；归档改为「元数据 + 脱敏结果 + 受控引用」。A15 同步 |
| C06 阶段门禁 | §9.3：每个验收场景增加适用能力、最晚验证阶段、未通过时禁用的能力；§9.1 P0-B 只验证 L0 基础链与拟进入 P1 的 L1 动作；明确生产 L1 开放前必须验证的场景；说明评测样本可来自授权的历史脱敏数据与演练，不存在必然循环 |
| C07 引用事实 | §2.2：RAG-MCP 的 43.13% / 18.20% / 13.62% 改述为方法对照，补论文原文[39]；删除来源不明的 50 / 120 工具阈值 |
| C08 全文同步 | §1.6：撤权改为可验证的最大传播时效与失联拒绝，明确版本冻结只用于复现、授权始终受当前撤销约束；§7.9：经审批的 Skill 为受控任务指引，其余内容中的指令性文字按非可信数据处理；§11：L3 强制人工与双人复核；§2.2：上下文按每次请求实际保留内容计数；§10.4：P95 估算改称容量估算；§3.2：共享知识服务表述降级；§0.1、§3.1：「不能仅凭名称机械划分」；本章 v1.5 表格改称「文档处置落点」 |

**文档处置状态说明**：上述修正与 v1.5 表中的落点只说明研究报告已给出规则与实施门禁，**不表示相关运行机制已通过验证**。待企业内部判定的事项见第 10 章，待执行验证的事项见 §9.3。

### v1.5 修订说明

**结构**：正文只保留当前规则，版本演变与各轮评审过程只保留在本章。新增第 7 章「核心契约」与第 10 章「实施前需企业内部完成的判定」；评测、实施路线各自成章；参考资料重新编号，一手与三方重新核定。

**删除的材料**：先前版本引用的《运维智能体（SRE Agent）技术分级能力要求》（阿里云开发者社区页面）经核查：该页面为云计算开源产业联盟技术文件的转载，转载方为一家参编厂商，而非阿里云发布的标准；中国信通院相关标准《运维智能体（SRE AGENT）能力要求》仅见厂商新闻稿，未检索到标准编号与原文。因无法取得原始发布件，正文中依据该材料的内容（确定性组件与分级的对应、P4 自评等级出口、国内分级对比）全部删除。

**独立审查 18 项意见的文档处置落点**（写入落点不等于验收通过）：

| 意见 | 在 v1.5 中的落点 |
|---|---|
| R01 风险分级按动作与上下文判定 | §1.5：按动作登记；判定式；exec 拆为固定动作；L2 改为有界影响、L3 改为补偿与止损；临时容器与 `EXPLAIN ANALYZE` 事实更正；L0 同样有数据与负载风险 |
| R02 预批准与注解不能替代授权 | §1.6 授权模型；§2.3、§2.4、§6.2 同步 |
| R03 串行写路径作用域与 L1 冲突 | §3.5：统一策略入口、执行器分离、冲突域、层级锁、L1 与处置冲突规则、外部写者协调 |
| R04 执行协议 | §7.8 执行契约与状态机 |
| R05 应用隔离与跨应用诊断 | §2.3 两层过滤；§4.5 授权协作与证据不足出口 |
| R06 共享资源隔离与控制面可用性 | §4.4 执行器要求；§3.6 控制面降级表 |
| R07 摘要、置信度与移交 | §2.2 受限原始片段；§2.8 结论状态；§7.3 证据对象；§7.7 移交保留反证 |
| R08 数据链与注入防护 | §7.9 数据链；§4.2 禁止项与注入测试 |
| R09 A2A 与远端委托 | §1.4 图文一致；§5.4 委托上下文与生命周期；§1.6、§5.6 token 透传与混淆代理 |
| R10 评测门槛与虚警复核 | §8.4 指标字典；§8.6 虚警复核定义；§10.2 目标设定方法 |
| R11 World Snapshot | §8.3 两种重放能力 |
| R12 知识回归与供应链 | §2.5 语义变更回归；§4.6 来源证明、撤销与会话版本清单 |
| R13 身份、执行域与 Cell 混同 | §3.6 六个概念；§10.1 隔离判定方法 |
| R14 安全控制顺序与资源依据 | §9.1 P1 前置条件；§10.3 owner、FTE 与 TCO 方法 |
| R15 CLI 契约 | §6.2 语义与限制；§6.5 适配层契约；§7.1 标识体系 |
| R16 外推与来源 | §1.1 观察声明；§3.4 表述更正；§6.3、§6.4 案例范围；第 12 章来源重核；分级材料删除 |
| R17 量化分母 | §2.2 计算口径；§2.9 建议值；§8.7 统计说明；§10.4 实测方法 |
| R18 全文一致性 | 终态重构 |

**「A2S」**：原术语含义未经确认，本报告按跨智能体协作需求讨论 A2A，属范围假设。

**待企业内部完成的事项**：安全域与隔离边界、指标目标值与责任人、阶段 owner / FTE / TCO、中文元数据 token 实测，按第 10 章方法完成后纳入实施方案，不再修订本报告的结论部分。
