CS146S 第九周阅读材料笔记:Agents Post-Deployment

Stanford University · Fall 2025 · 讲师:Mihail Eric 课程网站:themodernsoftware.dev


📖 阅读材料总览

# 标题 来源 核心主题
1 Introduction to Site Reliability Engineering Google SRE Book, Ch.1 SRE 基础理论:定义、原则、Error Budget
2 Observability Basics You Should Know Last9 Blog Traces & Spans:分布式追踪基础
3 Kubernetes Troubleshooting with AI Resolve AI Blog AI Agent 自动排查 K8s 问题
4 Your New Autonomous Teammate (Product Deep Dive) Resolve AI Blog AI Production Engineer 产品架构
5 Role of Multi Agent Systems in Making Software Engineers AI-native Resolve AI Blog 多 Agent 系统 + AI-native 工程
6 Benefits of Agentic AI in On-call Engineering Resolve AI Blog Agentic AI 改造 On-call 的五大收益

阅读材料 1:Introduction to Site Reliability Engineering

来源: Google SRE Book, Chapter 1(Ben Treynor Sloss,Google SRE 创始人)

核心内容

SRE 的定义: "当你让软件工程师来设计运维功能时,就会产生 SRE。" Ben Treynor Sloss 是 Google 负责技术运营的高级副总裁,也是 SRE 一词的创造者。

SRE 团队构成:

  • 50-60% 是标准 Google 软件工程师
  • 40-50% 是接近 Google SWE 标准(85-99% 的技能),但额外拥有 UNIX 系统内核和网络(L1-L3)专业知识
  • 两个轨道的工程师在实际表现上没有实际差异——多元背景反而产生更高质量的系统

核心原则:Error Budget(错误预算)

SRE 的关键创新是将开发速度 vs 系统稳定性的隐性冲突变成一个可量化的框架:

  • 产品开发团队想要快速发布新功能
  • 运维团队想要系统永远不出问题
  • SRE 的解决方案:设定一个错误预算(比如 99.99% 可用性 = 允许每季度 13 分钟宕机)
  • 如果错误预算用完了→停止发布新功能,直到下一个周期
  • 如果错误预算还有余量→可以加速发布

Postmortem 文化:

  • 所有重大事故都应写 Postmortem,无论是否触发了 Page
  • 没有触发 Page 的 Postmortem 更有价值——因为它们指向监控盲区
  • Google 实行无指责文化——目标是暴露缺陷并用工程手段修复,而非追究个人责任

📚 课程关联: SRE 的"无指责 Postmortem"与第七周 code review 的核心理念一致——Blake Smith 说 code review 最重要的功能是"保持团队心智模型对齐",Postmortem 最重要的功能是"暴露系统缺陷"。两者都是团队学习机制,而非惩罚机制。


阅读材料 2:Traces & Spans: Observability Basics You Should Know

来源: Last9 Blog

核心概念

Traces(追踪): 捕获一个请求在分布式系统中从头到尾的完整旅程。

Spans(跨度): Traces 的构建块。每个 Span 代表旅程中的一个工作单元——如数据库查询、API 调用、函数执行。

Trace
├── Span (API Gateway)
│   ├── Span (Auth Service)
│   └── Span (User Service)
│       └── Span (Database Query)
└── Span (Response Formatting)

Span 包含的数据:

  • 时间戳(开始和结束)
  • Status(成功、错误等)
  • Attributes(自定义键值对,如 user_id, cart_size)
  • 父子关系(嵌套结构)

采样策略(Sampling)——追踪所有请求会产生海量数据:

  • Head-based sampling: 在请求开始时决定是否采样
  • Tail-based sampling: 在请求完成后决定(更适合捕获错误)
  • Priority sampling: 总是追踪重要操作,对常规操作采样

可观测性三大支柱(M.E.L.T.):

  • Metrics: 系统级趋势(请求率、错误率、平均延迟)——"每分钟有多少 checkout 请求失败?"
  • Logs: 详细的文本记录——用于调试
  • Traces: 个别请求的完整路径——"这个请求经过了哪些服务,每步花了多长时间?"

OpenTelemetry 已成为实现 traces 和 spans 的标准框架——开源、厂商中立、跨语言。

最佳实践:

  • 有意义的 span 命名(如 service_name/operation
  • 正确的粒度(为重要操作创建 span,而非每个函数)
  • 正确的 context propagation(确保追踪上下文在所有通信通道中流转)
  • 有用的 attributes(添加有助于排查的属性,如 user_id, feature_flag)

常见错误:

  • Over-instrumentation:创建太多 span 导致性能问题
  • Missing context:未能跨服务传播上下文
  • Inconsistent naming:不同的命名标准导致追踪难以解读

📚 课程关联: 可观测性是第六周安全/测试的"运行时"对应——第六周关注"代码中有什么漏洞"(SAST/DAST),第九周关注"运行中发生了什么"(Traces/Metrics/Logs)。


阅读材料 3:Kubernetes Troubleshooting with AI

来源: Resolve AI Blog

核心问题

Kubernetes 虽然自动化了很多运维,但其动态和临时性的本质带来新挑战:

  1. Noisy Alerts That Cry Wolf: K8s 控制平面不断调整工作负载以匹配期望状态,期间产生大量虚假告警
  2. Noisy Neighbors: 相邻 Pod 资源竞争
  3. Misbehaving Add-ons: 插件行为异常
  4. Resource Starvation: 资源匮乏
  5. Subtle Memory Leaks: 细微的内存泄漏——"潜伏在表面之下"

Resolve AI 的 K8s 排查方式

传统排查: 凌晨 2 点收到告警 → kubectl → 发现问题"神秘自愈" → 但根因仍在

AI 排查(Agentic AI):

  1. Always-On Expertise: AI 不需要睡觉——告警触发时立即进入集群,在你打开电脑之前就提供可操作的洞见
  2. Correlates Issues Across Cluster: 利用知识图谱检查 Pod、Node、Namespace 之间的类似异常
  3. Runs Automated Investigations: 自动测试假设("是 OOM 错误吗?" "Pod 失败是因为启动命令配置错误吗?")——自动执行 runbook
  4. Provides Resolutions: 如果找到解决方案就建议执行,否则列出明确的下一步

📚 课程关联: "Correlates Issues Across Cluster" = 第二周的 Agent 跨工具协调能力。传统工程师需要在多个仪表盘之间手动关联信号,AI Agent 可以自动完成这个过程——这正是 Agent 架构的核心价值。


阅读材料 4:Your New Autonomous Teammate(Product Deep Dive)

来源: Resolve AI Blog

AI Production Engineer 产品架构

Knowledge Graph(知识图谱):

  • 从集成 Resolve AI 的那一刻起,它开始全面映射你的环境
  • 构建一个动态知识图谱——覆盖整个系统和工具
  • 实时更新:新部署、系统事件、配置变更、代码变更时持续更新
  • 使 Resolve AI 能够快速遍历所有依赖关系、Pod 和部署

告警触发时的工作流:

  1. 像值班工程师一样立即开始调查
  2. 自主创建和执行即时 runbook
  3. 审查:metrics、dashboards、code changes、deployments、logs
  4. 不到一分钟就已定位根因理论并建议修复步骤

"Vibe Debugging"(氛围调试):

  • Resolve AI 提出的新概念
  • 工程师用自然语言描述问题 → AI Agent 自动执行整个调查循环
  • AI 不是一次追踪一个假设,而是并行探索所有相关假设
  • 同时从多个系统收集证据:Git 仓库、Grafana 仪表盘、K8s API、CI/CD 管道

真实案例: 调查 svc-entity-graph 服务的内存问题

  • Agent 自动查询 Git 仓库找到时间窗口内的 1 个最近提交
  • 同时搜索 Grafana,从数百个仪表盘中找到正确的那个,分析 13 个不同图表,定位出与内存问题最相关的 2 个
  • 同时从上游服务拉取网络流量遥测数据
  • 交叉验证 K8s API 的 Pod 配置以排除基础设施错误
  • 最后通过 CI/CD 管道中同一变更的回滚来确认整个理论

公司背景:

  • $35M Seed 轮,Greylock 领投
  • 创始人 Spiros 共同创建了 OpenTelemetry(可观测性标准)
  • 客户:Coinbase, Zscaler, Toast 等
  • 客户反馈:MTTR 减少 70%+,on-call 生产力提升 75%,每位工程师每周节省 20 小时

📚 课程关联:

  • "Vibe Debugging" 与第八周 "Vibe Coding" 形成平行对照——Karpathy 提出 Vibe Coding(用自然语言描述代码),Resolve AI 提出 Vibe Debugging(用自然语言描述问题)
  • Knowledge Graph = 第四周 Context Engineering 的生产环境版本——CLAUDE.md 给 Agent 提供项目上下文,Knowledge Graph 给 Agent 提供整个生产系统的上下文

阅读材料 5:Role of Multi Agent Systems in Making Software Engineers AI-native

来源: Resolve AI Blog(基于 Stanford 研究生 AI 课程的演讲)

AI-Assisted vs AI-Native

维度 AI-Assisted AI-Native
界面 工程师仍然直接操作系统和工具,用 AI 加速个别步骤 工程师主要通过 AI 来编排工作
工作流 工程师→工具→AI 辅助→结果 工程师→自然语言请求→AI 系统→响应/行动
事件响应 你仍在生成假设、决定哪些证据重要、手动关联信号 AI Agent 自动分类调查优先级、并行生成竞争假设、迭代基于跨系统证据优化理论
示例 "你能分析这些日志吗?" "解决这个 checkout 失败"

为什么单一 Agent 不够?

复杂的生产环境需要多 Agent 系统

  • 单一 LLM 或单一 Agent 在复杂生产环境中失败
  • 需要不同 Agent 专注不同领域:一个检查系统日志,另一个关注应用指标,第三个审查代码变更
  • 多 Agent 协作能够处理常规和新颖问题

从 AI-Assisted 到 AI-Native 的转变:

  • AI-Assisted:工程师用 AI 加速编码(Copilot, Cursor)
  • AI-Native:AI 成为工程师操作生产系统的主要界面
  • 目标:工程师在更高抽象层次运作,监督运行生产系统的 AI

📚 课程关联:

  • "AI-Assisted vs AI-Native" 完美对应课程从第一周到第九周的演进:W1-W3 是 AI-Assisted(LLM 辅助编码),W4-W8 越来越接近 AI-Native(Agent 管理整个开发流程)
  • "Multi Agent Systems" = 第四周 Claude Code 的 subagent 架构在生产环境的扩展——Claude Code 用多个 subagent 处理不同编码任务,Resolve AI 用多个 Agent 处理不同运维任务
  • 第二周的 MCP 协议在这里再次出现:Resolve AI 使用 MCP 来连接和编排不同系统

阅读材料 6:Top 5 Benefits of Agentic AI in On-call Engineering

来源: Resolve AI Blog

五大收益

# 收益 详细说明
1 即时调查 告警触发时,Agentic AI 立即行动——动态生成和执行实时 runbook,分析 metrics/dashboards/code changes/deployments/logs,不到一分钟定位根因。不会累、不需要睡觉、24/7 精确工作
2 持续学习 每次事故后动态更新知识——不像静态 runbook 很快过时。关键人员离开时,其专业知识不会丢失——Agentic AI 保留并进化机构知识
3 一致性 人类工程师对类似问题采取不同方法→不一致的结果。Agentic AI 遵循一致的工作流,同时适应每个事故的独特上下文
4 多 Agent 协作 一个 Agent 专注系统日志,另一个关注应用指标——并行工作。既能处理常规问题,也能适应新颖问题
5 从被动到主动 从"救火"转向"战略创新"——Agentic AI 处理常规任务,工程师专注架构改进

关键转变

"Agentic AI isn't just the next step in automation—it's a paradigm shift in incident management."

传统自动化:预定义脚本 → 触发条件 → 执行固定步骤 Agentic AI:理解上下文 → 生成假设 → 并行调查 → 自主决策 → 持续学习

📚 课程关联:

  • "持续学习"对应第七周 Graphite 的 acceptance rate/upvote rate——两者都是通过反馈循环持续改进
  • "从被动到主动"呼应第五周产品设计原则——工具应该让人专注高价值工作(设计/架构),而非低价值重复性工作(排查/调试)

🔗 六篇阅读材料的交叉主题

主题 1:可观测性是 AI 运维的基础

Google SRE Book(阅读材料 1)定义了运维的基本原则 → Last9(阅读材料 2)提供了可观测性的技术基础(Traces/Spans/Metrics) → Resolve AI(阅读材料 3-6)在此基础上构建 AI Agent。

关键洞见:没有良好的可观测性,AI 运维就是空中楼阁。 AI Agent 的"智能"完全依赖于它能获取的数据质量。

主题 2:从手动 → 自动化 → Agentic

手动运维(传统 SRE)
  → 收到告警 → 打开仪表盘 → 手动检查日志 → 生成假设 → 逐一验证
  
自动化(Runbook/脚本)
  → 收到告警 → 执行预定义脚本 → 如果匹配已知模式则修复
  
Agentic AI(Resolve AI)
  → 收到告警 → AI 自动理解上下文 → 并行生成多个假设 → 跨系统收集证据 → 自主判断 → 建议或执行修复

这个演进链条与课程从 W1 到 W9 的脉络完全一致:

  • W1-W3:手动编码 → AI 辅助编码
  • W4-W8:AI 辅助 → AI 驱动
  • W9:AI 驱动 → AI 自主(在生产运维领域)

主题 3:知识保留 vs 知识流失

传统方式 AI 方式
专家离职 → 知识丢失 Knowledge Graph 持续积累
Runbook 很快过时 Agent 从每次事故学习
文档总是不完整 AI 自动构建系统全景

这与第七周 Blake Smith 的"心智模型对齐"深度相关——code review 让团队的心智模型保持同步,Knowledge Graph 让整个组织的运维知识保持同步。

主题 4:Vibe Coding → Vibe Debugging(课程新对称性)

Vibe Coding(W8) Vibe Debugging(W9)
自然语言 → 代码 自然语言 → 调查结论
Andrej Karpathy 提出 Resolve AI 提出
工具:v0, Bolt, Lovable 工具:Resolve AI
风险:安全漏洞(CVE-2025-48757) 风险:误判根因、自动执行错误修复
"Anyone can build an app" "Anyone can debug production"

主题 5:Multi-Agent 无处不在

场景 Multi-Agent 实现
W4 Claude Code Main agent + subagents(不同编码任务)
W7 Graphite AI reviewer(不同检查维度)
W8 v0 Composite model family(不同生成任务)
W9 Resolve AI 多个 investigation agents(日志/指标/代码/K8s)

共同架构模式: 将复杂任务分解为专业化子任务,每个子任务由专门的 Agent/Model 处理。


📚 第 1-9 周课程脉络

W1: LLM + Prompt Engineering(基础能力)
 ↓
W2: Agent + MCP Protocol(自主能力)
 ↓
W3: AI IDE + Specs-Driven(开发环境)
 ↓
W4: Agent Manager + Context Engineering(管理架构)
 ↓
W5: Product Design + Terminal ADE(产品思维)
 ↓
W6: Security + Testing(防护体系)
 ↓
W7: Code Review(质量保障——合并前的最后检查点)
 ↓
W8: Automated UI + App Building(极致应用——从"AI 辅助开发"到"AI 替代开发")
 ↓
W9: Agents Post-Deployment(部署后——AI 运维、监控、事件响应)

第九周完成了 AI 软件开发的完整生命周期:

  • W1-W5:Build(从想法到代码)
  • W6-W7:Verify(测试和审查)
  • W8:Deploy(生成和部署应用)
  • W9:Operate(监控和维护生产系统)

下一周(W10)将是展望未来——软件开发的下一个十年。


⚠️ 注意

本周 Slides 尚未获取(Monday 11/17 Mihail 讲座 + Friday 11/21 Resolve AI 嘉宾讲座)。获取 Slides 后将补充完整的讲座笔记。