# AIOps Workflow Requirements ## 1. 文档目标 本文档用于定义 `aiops-workflow` 项目的职责边界、MVP 需求范围、核心对象模型、输入输出契约与实施优先级。 这份文档基于主架构文档中对三层项目域的划分,重点回答以下问题: 1. `aiops-workflow` 在整体 AIOps 架构中的定位是什么。 2. `aiops-workflow` 在 MVP 阶段必须交付哪些能力。 3. 它和 `aiops-platform`、`aiops-tools` 的边界如何清晰切开。 4. 如何保证 workflow 输出稳定、可解释、可评测、可演进。 本文档默认面向 `workflow-first` 路线,而不是 multi-agent 优先路线。 ## 2. 项目定位 ### 2.1 核心定义 `aiops-workflow` 负责“如何做诊断、如何组织证据、如何输出结构化 RCA 与建议”。 它不是平台主控层,也不是底层工具适配层,而是位于两者之间的智能工作流中枢。 其核心职责是: - 接收 `aiops-platform` 提供的 Incident 上下文。 - 按既定 workflow 执行诊断、检索与推理。 - 调用 `aiops-tools` 暴露的查询类工具补齐证据。 - 输出平台可直接消费的结构化结果。 ### 2.2 不负责的事情 `aiops-workflow` 明确不负责: - 持有 `Incident` 主状态 - 审批流转 - 执行动作控制 - 页面展示 - 直接对生产环境进行写操作 - 直接耦合底层监控系统协议细节 ### 2.3 核心设计原则 - Workflow 优先于 multi-agent - 查询能力可以直接调用 tools - 执行能力必须回到平台决策 - 输出必须结构化,不能只返回自由文本 - 所有 workflow 都要可版本化、可回放、可评测 ## 3. 目标用户与调用方 ### 3.1 直接调用方 - `aiops-platform` - 后续可能的复盘任务调度器 - 评测回归任务调度器 ### 3.2 主要使用者 - AI 工程师:维护 workflow、Prompt、Schema、评测集 - 平台后端工程师:对接调用契约与任务状态 - SRE / 运维专家:审核知识库、诊断逻辑、建议动作质量 ## 4. MVP 成功标准 MVP 阶段,`aiops-workflow` 至少应达到以下结果: 1. 可稳定执行 `incident_diagnosis` 工作流。 2. 可调用 2-3 个查询类工具补齐证据。 3. 可返回统一格式的 `RCA Result` 与 `actions`。 4. 输出结果可被平台直接落库和展示。 5. 具备基础评测回归能力,避免工作流更新后质量失控。 建议的 MVP 指标: | 指标 | 说明 | MVP 目标 | | --- | --- | --- | | Workflow 成功率 | 工作流执行完成率 | 高于 95% | | Schema 合法率 | 输出满足平台 schema 的比例 | 高于 99% | | 诊断 P95 时延 | 从触发到输出结果的时延 | 小于 60 秒 | | 引证覆盖率 | 结果中包含有效 evidence 的比例 | 高于 90% | | RCA Top1 准确率 | 在评测集上的首选结论命中率 | 持续追踪 | ## 5. 范围边界 ### 5.1 MVP 必须范围 - Workflow 注册与版本管理 - `incident_diagnosis` 工作流 - `action_planning` 工作流 - 查询类工具编排 - RAG 检索策略基础能力 - 结构化输出 schema - 任务状态查询 - 评测样例与回归检查 - 失败与降级策略 ### 5.2 MVP 可选增强 - `postmortem_summary` 工作流 - Prompt 模板变量管理界面 - 多知识域检索重排 - 更细粒度的步骤级 tracing ### 5.3 明确不在 MVP - Multi-agent 编排框架 - 执行类动作直连生产系统 - 复杂可视化管理后台 - 全自动根因图谱推理平台 - 训练/微调平台 ## 6. 核心对象模型 建议 `aiops-workflow` 先围绕以下对象建模: | 对象 | 说明 | 关键字段 | | --- | --- | --- | | `WorkflowDefinition` | 工作流定义 | id, name, purpose, owner | | `WorkflowVersion` | 工作流版本 | version, status, schema_ref, prompt_refs | | `SkillDefinition` | 可复用能力单元 | id, workflow_ref, input_schema, output_schema | | `PromptAsset` | Prompt 模板资产 | id, version, variables, content | | `KnowledgeCollection` | 知识集合 | id, source_type, tags, index_ref | | `RetrievalPolicy` | 检索策略 | top_k, filters, rerank_policy | | `ToolContract` | 工具调用契约 | tool_name, input_schema, output_schema | | `WorkflowRun` | 一次工作流执行实例 | run_id, workflow_id, status, started_at | | `WorkflowStepRun` | 步骤运行实例 | step_name, tool_name, status, duration_ms | | `EvaluationCase` | 评测样例 | case_id, input, expected_output | | `SchemaContract` | 输出契约 | fields, required, enum_constraints | ## 7. MVP 功能需求 ## 7.1 Workflow Registry ### 7.1.1 能力目标 系统应能管理工作流定义与版本,而不是把 workflow 当成散乱脚本。 ### 7.1.2 必须能力 - 注册 workflow - 维护 workflow 名称、用途、负责人 - 管理版本状态 - draft - active - deprecated - 记录 workflow 依赖的 Prompt、Schema、Knowledge、Tools ### 7.1.3 验收标准 1. 可查看某个 workflow 的当前生效版本。 2. 更新 workflow 时可保留历史版本。 3. 平台调用时可明确命中哪个版本。 ## 7.2 `incident_diagnosis` 工作流 ### 7.2.1 目标 这是 MVP 最核心的工作流,用于根据 Incident 上下文给出结构化诊断结果。 ### 7.2.2 输入要求 最小输入建议包含: - `incident_id` - `title` - `severity` - `service` - `env` - `fingerprint` - `time_window` - `recent_changes` - `related_incidents` - `topology` ### 7.2.3 执行步骤 建议固定为以下链路: 1. 解析 Incident 上下文 2. 决定需要调用的查询工具 3. 调用 metrics / logs / k8s / changes 查询 4. 调用 RAG 补充 SOP 和历史案例 5. 汇总证据并生成候选结论 6. 输出结构化 RCA ### 7.2.4 输出要求 必须返回: - `summary` - `rca.conclusion` - `rca.confidence` - `rca.impact_scope` - `rca.evidence[]` - `actions[]` ### 7.2.5 验收标准 1. 输出必须满足平台约定 schema。 2. 结果中至少包含一条 evidence。 3. 低置信度时不能输出高风险自动执行模式。 ## 7.3 `action_planning` 工作流 ### 7.3.1 目标 根据已形成的 RCA 与上下文,给出可执行但受控的动作建议。 ### 7.3.2 必须能力 - 根据 RCA 生成动作建议列表 - 为每个动作给出风险等级 - 为每个动作给出推荐模式 - `auto` - `approval` - `suggest_only` - 提供回滚建议 ### 7.3.3 约束 - 仅输出建议,不直接执行 - 不允许 workflow 自行持有执行凭证 - `confidence` 低于阈值时自动降级 ### 7.3.4 验收标准 1. 每个动作都带 `risk` 和 `mode`。 2. 中高风险动作默认不能为 `auto`。 3. 建议动作可以被平台直接渲染展示。 ## 7.4 `postmortem_summary` 工作流 ### 7.4.1 目标 该工作流建议作为 P1 能力,用于在 Incident 关闭后生成复盘初稿。 ### 7.4.2 建议输出 - Incident summary - 关键时间点摘要 - 主要证据 - 初步改进建议 - 待人工确认的问题清单 ### 7.4.3 MVP 处理方式 MVP 可先保留设计,不强制交付。 ## 7.5 Prompt 资产管理 ### 7.5.1 必须能力 - Prompt 版本化 - Prompt 与 workflow 绑定 - 变量占位支持 - 记录 Prompt 更新时间和负责人 ### 7.5.2 设计要求 - Prompt 不应散落在代码或平台表单中不可追踪地修改 - Prompt 变更必须可回溯,并可在评测中验证 ## 7.6 RAG 管理能力 ### 7.6.1 范围 `aiops-workflow` 需要管理“如何检索”,不一定亲自实现底层向量数据库服务。 ### 7.6.2 MVP 必须能力 - 管理知识集合引用 - 定义检索过滤条件 - 定义召回数量 `top_k` - 定义是否进行 rerank - 返回引用证据 ### 7.6.3 知识来源建议 - SOP 文档 - 历史 Incident / Postmortem - 变更处理手册 - 常见故障 FAQ ### 7.6.4 验收标准 1. workflow 输出中能引用知识来源。 2. 检索异常时可降级,不致使整体任务崩溃。 ## 7.7 Tools 编排能力 ### 7.7.1 必须支持的查询类工具 - `query_metrics` - `query_logs` - `query_k8s` - `query_changes` ### 7.7.2 调用原则 - workflow 只调用标准化工具契约 - 不直接关心 Prometheus / Loki / K8s 原生协议差异 - 工具异常要回传为结构化错误 ### 7.7.3 明确禁止 - 直接调用生产执行接口 - 绕过平台审批去执行变更 - 将 tool 返回的自由文本直接当最终结论 ### 7.7.4 验收标准 1. tools 调用记录可关联到 workflow run。 2. tool 错误会降低置信度并触发降级逻辑。 ## 7.8 输出 Schema 契约 ### 7.8.1 必须能力 - 明确定义 output schema - 校验 required 字段 - 校验枚举字段 - 拒绝不合法输出进入平台主链路 ### 7.8.2 核心字段建议 ```json { "summary": "数据库连接池耗尽导致 API 延迟升高", "rca": { "conclusion": "连接池配置与突发流量不匹配", "confidence": 0.86, "impact_scope": ["api-gateway", "order-service"], "evidence": [ {"type": "metric", "ref": "promql://latency_p95"}, {"type": "log", "ref": "loki://timeout_errors"} ] }, "actions": [ { "name": "临时扩容 order-service", "risk": "low", "mode": "auto", "rollback": "scale down deployment/order-service" } ] } ``` ### 7.8.3 验收标准 1. schema 校验失败时返回明确错误码。 2. 平台侧不需要解析自由文本才能使用结果。 ## 7.9 运行态与任务管理 ### 7.9.1 必须能力 - 异步任务运行 - 任务状态查询 - 步骤级状态展示 - 超时控制 - 取消任务 ### 7.9.2 任务状态 - `queued` - `running` - `succeeded` - `failed` - `timeout` ### 7.9.3 验收标准 1. 平台可以查询任务当前状态。 2. 失败任务能返回失败原因。 3. 超时任务进入明确降级路径。 ## 7.10 评测与回归能力 ### 7.10.1 必须能力 - 保存评测样例 - 定义期望输出或期望结论 - workflow 更新后可批量回归 - 对比关键指标变化 ### 7.10.2 核心评测维度 - RCA 是否正确 - evidence 是否充分 - schema 是否合法 - 动作建议是否越权 - 置信度是否异常偏高 ### 7.10.3 验收标准 1. 每次重要 workflow 变更前后都能跑回归集。 2. 回归结果可沉淀为版本发布依据。 ## 7.11 可观测性与审计 ### 7.11.1 必须记录的信息 - workflow 名称与版本 - run_id - 输入摘要 - tools 调用记录 - token / cost 使用量 - 执行耗时 - 输出摘要 - 错误信息 ### 7.11.2 边界说明 `aiops-workflow` 可以记录 workflow 运行审计,但 Incident 主审计仍由 `aiops-platform` 持有。 ## 7.12 失败与降级策略 ### 7.12.1 必须实现 - LLM 超时降级 - tool 不可用降级 - 检索失败降级 - schema 不合法降级 ### 7.12.2 建议行为 - 返回部分结果 + 低置信度标记 - 阻断自动动作建议 - 明确提示人工接管 ### 7.12.3 错误码建议 - `AI_TIMEOUT` - `TOOL_UNAVAILABLE` - `SCHEMA_INVALID` - `RAG_UNAVAILABLE` - `WORKFLOW_FAILED` ## 7.13 安全要求 ### 7.13.1 必须约束 - 不保存生产执行凭证 - 不直接调用写操作工具 - 不暴露敏感原始凭证到 Prompt - 对输入上下文中的敏感字段进行最小化传递 ### 7.13.2 合规要求 - workflow 运行日志可追踪 - Prompt 与知识来源可审计 - 结果生成过程可解释 ## 8. 与平台的接口要求 ### 8.1 诊断触发接口 - 平台触发 `incident_diagnosis` - workflow 返回 `task_id` - 平台异步查询结果 ### 8.2 结果接口要求 成功结果必须包含: - `task_id` - `incident_id` - `status` - `summary` - `rca` - `actions` ### 8.3 会话追问能力 建议预留人工追问接口,用于平台详情页的补充诊断,但不应影响主 workflow 结果的结构化输出约束。 ## 9. 推荐的仓库内文档与资产结构 如果后续 `aiops-workflow` 独立成仓,可参考如下结构: ```text workflow/ AIOps_Workflow_Requirements.md workflows/ incident_diagnosis/ action_planning/ postmortem_summary/ prompts/ schemas/ evals/ knowledge/ ``` ## 10. 分阶段实施建议 ### Phase 1 - 打通 `incident_diagnosis` - 接入 `query_metrics`、`query_logs`、`query_k8s` - 固化结构化 RCA schema ### Phase 2 - 增加 `action_planning` - 完善 RAG 引用质量 - 建立评测回归集 ### Phase 3 - 增加 `postmortem_summary` - 引入更细粒度版本治理 - 评估局部 agent 化是否有必要 ## 11. 结论 `aiops-workflow` 在整个架构中的价值,不是“单独做一个 AI 服务”, 而是把诊断能力沉淀成稳定、可复用、可评测的 workflow 资产。 如果 `aiops-platform` 解决的是“事件怎么流转”, `aiops-tools` 解决的是“数据怎么查、动作怎么控”, 那么 `aiops-workflow` 解决的就是: - 证据如何组织 - 诊断如何形成 - 结果如何结构化输出 因此它的第一优先级不是做复杂 agent 协作, 而是先把 `incident_diagnosis -> evidence -> RCA -> actions` 这条链路做稳定、做可审计、做可回归。