SRE Agent 设计笔记 03:证据先于工具
状态:大纲
核心论点
设计 oncall triage agent 时,第一步不是接 MCP、不是调 Grafana API,而是定义证据格式。结构化 triage trace 的 schema 决定了产出质量的上限,工具集成只是填充 schema 的手段。手段可以换,格式不能乱。
大纲
1. 叙事 vs 结构
- 人类 incident case 是叙事体:「凌晨 3 点收到告警,先看了 dashboard……」
- Agent 需要结构化 trace:Signal → Routing → Decision Trace → Evidence Chain → Verifier Checklist
- 从叙事到结构的转换不是 fine-tuning 能解决的,是信息编码方式的根本变化
2. Structured Triage Trace Schema
各字段的设计理由:
- Signal:告警的原始信息,未经 agent 解读
- Routing Logic:从 signal 到故障域的映射逻辑
- Decision Trace Table:每步有 Step / Action / Tool Call / Observation / Inference / Confidence
- Evidence Chain:支撑结论的观测证据序列
- Blast Radius:影响范围、human gates、rollback path
- Verifier Checklist:二值门控,全部通过或 escalate
2.1 三层持久化(Plan / Process / Result)
证据链的持久化不只是「结果的证据」,而是三层:
- Plan persistence(执行前):agent 开始 MCP 查询之前,先写出打算查什么、需要用户执行什么命令。用户在 agent 动手前就能看到方向是否正确。对应 output 的 Section 0: Investigation Plan。
- Process persistence(执行中):每步 MCP 查询实时写入 investigation log,加 Decision 字段(「基于这个结果,下一步做什么」)。不是等结束后回填,session 中断后新 agent 读文件即可继续。对应 Section 6: Investigation Log + Decision + Timestamp。
- Result persistence(执行后):最终输出(Slack response + internal notes + evidence + 操作命令)。verify.py 检查完整性和一致性。
动机来自一个观察:「证据」不只是「结论由什么支撑」,还包括「agent 打算做什么」和「agent 实际做了什么」。三层都持久化才构成完整的可审计链条。这也解决了 oncall 场景中一个实际问题:agent 调查到一半 session 中断,断点续传需要 process 层的实时记录。
3. 验证者检查证据链,不检查答案正确性
- 一个正确答案如果没有支撑证据,在生产系统中不可接受
- Verifier 的工作:逐项检查链是否完整、每步是否有对应观测证据
- 这区分了「demo」和「infrastructure」
4. 六个故障域集群
从实际 case 提炼,不是从分类学推导:
- Routing(哪一跳断了)
- Scheduling(为什么放不上去)
- Stateful(下游是否拥塞)
- Signal Fidelity(信号是否真实)
- Identity/Access(谁缺权限)
- Change Management(什么变更了)
原则:no trace → no routing table。routing table 从真实 case 积累,不从理论推导。
5. 三层执行架构
- Orchestrator:signal → 故障签名匹配 → 路由到集群策略
- Worker:bounded MCP call,无状态执行,有 input/output contract
- Verifier:审计证据链完整性(必须独立于 Worker)
- Human Gate:设计原语,不是补丁
6. 为什么工具集成放在最后
- 先有 schema 再接工具,确保工具产出的数据有地方放、有格式约束
- MCP 集成、VictoriaMetrics 查询、Loki 日志读取都是填充手段
- 如果先接工具再想格式,容易被工具返回的数据结构牵着走
涵盖的 Topic
- Topic 5: 证据先于工具
- Topic 10: 六个故障域 + routing table 从 case 积累
源文件引用
contexts/thought_review/ai_triage_control_plane_2026-03-30.md— 六个故障域集群定义,结构化 triage trace schema,三层架构,Verifier 设计contexts/thought_review/agentic_control_theory_primitives_20260413.md— 证据链作为 Loop 的验证基础contexts/thought_review/agent_sre_production_systems_synthesis_20260330.md— 验证者检查证据链完整性,不检查答案正确性contexts/thought_review/eval_as_measurement_system_20260331.md— cost inversion 作为「证据先于工具」的经济学基础