AI agent 时代的 SRE
英文版:English
把 SRE 还原到第一性原理,它就是一件事:运营「系统应该做什么」与「实际在做什么」之间的回路。发现偏差,解释偏差,收敛偏差,并让它保持收敛。AI agent 没有改变这个定义,改变的是回路里谁干什么。这不是预测,是我工作周的实况:agent 在跑我的生产取证,一套 agent harness 在跑我的 oncall triage,这份简历背后的证据本身也是由 agent 流水线蒸馏出来的。这一页写的是从内部看到的这场变化。
发展到今天,变了什么
oncall 的执行层交给了 agent。 一次分布式存储系统的 compaction score 卡死在约 4,500 不动,我没有串行排查,而是并行派出三个只读 agent:一个枚举日志,一个走 tablet 元数据端点,一个检查 catalog 回收站。三条线索收敛到同一个孤儿 tablet,它属于一张早已 drop 的表,被调度器结构性排除在外。一条推理链会被带偏,三条独立证据链指向同一个对象,那是裁决。这种「扇出再收敛」的取证方式如今是我的默认姿势,不是实验。
同样的变化被固化进我的 oncall triage harness:agent 接到告警后自主调查,但在我设计的结构里运行。阶段锁定,不能跳步;结论必须引用证据,一条查询结果、一行日志、一个文件位置。mutation 零自动执行,每一次状态变更都只能提出,由人逐一批准。过去每次被 page 后头三十分钟的跑腿活,现在归 agent。
知识资产换了形态。 写给人读的 runbook 是叙事,对 agent 真正复利的是判别器:一个便宜的检查,把 root cause 候选集劈成两半。同一条死路当故事记十遍没有价值,记成一次「若 A 正常,砍掉这一整支」,过去的调查就变成未来的路由。我的 triage 知识库就按这个单元组织,决策树按检查的便宜与昂贵排序,因为答案会随 infra 变化而腐烂,探查顺序几乎不变。
人的位置移动了,杠杆也变了。 我的时间花在设计 harness 和裁决它的产出上,而不是执行步骤。回报是覆盖面:这份简历的证据由一条可重跑的挖掘流水线产出,把 82 个工作 session 蒸馏成带出处的结构化 highlight,再汇成 dossier。一个人加一套 harness,如今能 own 过去需要几个人的面。
还有什么需要工程师做
先立一个区分。Kubernetes controller 是确定性的,所以不需要 guardrail;agent 是概率性的 controller,所以 policy 层是生产环境的硬性前提,不是可选项。剩下需要人做的工程,大多从这个事实推出来。
意图与约束定义。 得有人写 Spec,也就是带机器可校验验收条件的目标终态;得有人放置 Hook:记录证据的 audit hook,硬性拦截不可逆动作的 deny hook,暂停等人批准的 HITL hook。这是对决策的 admission control,它不能委托给被准入的那个东西自己来做。约束是安全的来源,模型是能力的来源,把两者搞混,agent 就会同时显得热心而危险。
mutation 主权。 我的 harness 强制读写不对称:agent 极擅长读和诊断,在写上则是结构性危险。复利全部发生在诊断侧,所以诊断侧放开跑;写侧只允许 propose。写操作的最终批准权留在人手里,一是因为爆炸半径是业务判断,二是因为 agent 的失败是静默的:一个幻觉出来的结论,返回的等价于 HTTP 200。你无法为你检测不到的东西设 budget,在未被检测的错误之上自动化 mutation,不是提速,是用速度给错误洗白。
eval 与 agent 的 SLO。 没有 eval 的 agent 是不可运营的,那等于在上线感觉。单步可靠性会复合恶化,95% 的单步成功率跑二十步只剩约 36%,所以 SRE 工具箱可以平移但要改造:把任务完成率和收敛时间定成最初的 SLI;维护一套带预期结果的 eval 数据集,每次改动都跑;把人工审核当成 error budget 的一种花费方式,只花在不可逆的那一档,而不是处处默认。一天批两百次的人等于什么都没批。budget 烧穿时,自主权应该自动收缩。
平台原语。 agent 系统需要的和生产系统一模一样:一个拿现状对照 Spec 的 reconcile loop,覆盖决策过程而不只是输出的可观测性,以及显式的收敛判据。我的工作总结是三句话:限制它,看见它,让它回正。
最终判断。 我的 harness 里那条规则,agent emits evidence, human decides policy,和我在数据库引擎工作里坚持的原则是同一条:engine 输出估计值,调用方决定路由策略。机制可以共享、可以委托、甚至可以贡献给上游;policy 承载的是你的风险偏好和你的问责,它留在名字挂在 pager 上的那个工程师身上。我职业里的两条线,存储引擎和 agent 运营,恰好在这句话上合流。
这就是 SRE 走向 AI infrastructure 这条路径的内在逻辑。不是转行:还是那个回路,目标状态对照实际状态,安全地收敛,只是进入了下一种形态。