Agent Engineering 课程阅读
首页/课程九 · Agent 生产可靠性/可靠性评估:混沌收益矩阵与 SLO

在 GitHub 查看原文

本页目录

Lesson 08 — 可靠性评估:混沌收益矩阵与 SLO

本课目标:量化 L01–L07 全部治理机制的收益,给 v3 一张 SLO 卡。跑六类故障 ×(全关/全开)的混沌收益矩阵,对照 L00 裸基线量出每个机制的收益,并加一行纯净跑回归证明治理零税。

学完你能回答面试官那句:「你的 Agent 可靠性怎么证明?」——答案是回归式混沌套件:六类故障注入的收益矩阵 + SLO 卡 + 纯净跑零税回归,全关 vs 全开的差异对着 L00 基线量出来。


0. 起点:L00 基线 + L01–L07 机制,缺一张收益表

L00 跑了裸基线(六类故障的失控结局),L01–L07 各修了一类。但「修了到底好多少」没有量化——需要一张矩阵把每个机制的收益对着基线量出来。

🎯 核心认知:可靠性 SLO 和能力收益(frontier-L09)是两种东西。frontier 量「干净跑下的能力」(加记忆好多少),本课量「故障注入下的生存」(断网/慢工具/崩溃下还能不能出结果)。矩阵跑批复用 frontier-L09 的开关矩阵思路,但对象从「能力开关」变成「混沌故障」。


1. 可靠性 SLO 定义

SLO 指标 含义 怎么算
任务成功率 含诚实截断算部分成功 outcome ∈ {completed, truncated} 算成功
卡死率 跑到 recursion_limit 崩 outcome == stuck
预算超支率 token 烧穿 max_budget outcome == overspent
副作用重复率 publish 执行 >1 次 publish_count > 1
崩溃恢复成功率 崩溃后续跑能完成 crash 场景全开成功
故障下平均浪费 token 重做/超支/污染的 token wasted_tokens 均值

与 frontier-L09 能力收益的区别

维度 frontier-L09(能力收益) L08(可靠性 SLO)
量什么 干净跑下的能力(加记忆好多少) 故障下的生存(还能不能出结果)
注入 无故障 六类混沌故障
指标 任务成功率/步数效率/机制触发 成功率/卡死率/超支率/副作用重复率
矩阵 机制开关(记忆/代码) 防护开关(全关/全开)

2. 混沌收益矩阵(实测结果)

故障 全关结局 全关浪费 全开结局 全开浪费 收益
slow ☠️ polluted 124 🟡 truncated 30 省 94 token + 不污染
flaky ☠️ polluted 162 🟡 truncated 40 省 122 token + 不污染
loop 🟡 caught 220 🟡 truncated 80 省 140 token
crash 🔄 full_rerun 115 ✅ completed 60 省 55 token + 不重跑
bomb 💸 overspent 70714 🟡 truncated 5000 省 65714 token
sideeffect ⚠️ duplicate 168 ✅ completed 10 省 158 token + 不重复

🎯 核心认知:每类故障都有对应的机制兜住(slow/flaky→L03 熔断+降级,loop→L01 步数,crash→L06 续跑,bomb→L02 预算,sideeffect→L04 幂等+L05 审批)。全关成功率 33%,全开 100%——这就是治理的收益。


3. SLO 卡(汇总)

SLO 指标 全关(裸奔) 全开(v3) 改善
任务成功率 33% 100% +67%
卡死率 0% 0%
预算超支率 17% 0% -17%
副作用重复率 17% 0% -17%
平均浪费 token 11917 870 -11047

⚠️ 诚实标注:以上为 mock 演示数字(基于 L00 基线的结构性结论)。真实 API 的绝对数字需 --real 模式跑,但「全关 vs 全开」的差异结构不变。


4. 纯净跑回归行:治理零税证明

场景 全关 全开 应满足
pure(无故障) 成功 0 token 成功 0 token 全开不劣于全关

💡 纯净跑(无故障)下,全开防护的结果与耗时不劣化——证明治理机制对正常任务零税。这是「不伤老能力」传统的延续:所有机制默认关、可降级,开了不劣化、故障下才生效。


5. 方案对比:怎么验证可靠性?

方案 做法 取舍
不做混沌直接上线 等用户当测试员 ✅ 零开发;🚫 生产事故当测试反馈,代价大
一次性混沌演练 上线前跑一次混沌,过了就上 ✅ 比不做好;🚫 会过期(代码改了就不准了)
回归式混沌套件(本课主路线) 进测试资产,每次改动可重跑 ✅ 持续验证、对照基线、可复现;🚫 要维护套件

选 ③ 的理由:方案 ① 把用户当测试员,方案 ② 是快照(会过期)。回归式混沌套件进 CI/测试资产,每次改动重跑,对着 L00 基线量收益——这才是「可靠性有数字背书」的含义。


6. 跑起来

code.py / run_chaos_eval.py

cd portfolio-projects/research-assistant
python eval_agent/run_chaos_eval.py          # mock 演示(本表数字)
# python eval_agent/run_chaos_eval.py --real # 真实 API(需 ZHIPUAI_API_KEY)

输出: - 混沌收益矩阵(六类故障 × 全关/全开) - 可靠性 SLO 卡 - CHAOS_REPORT.md


7. 落地清单

文件 改动 如何验证
eval_agent/run_chaos_eval.py 新增:六类故障 × 防护矩阵跑批 + SLO 卡 + CHAOS_REPORT.md 生成 python eval_agent/run_chaos_eval.py
agent-ops-lessons/08_chaos_eval/code.py 调用 run_chaos_eval 的演示入口 python code.py

验收

cd portfolio-projects/research-assistant

# 1. 现状测试全绿(L08 不改主链路)
python -m pytest -q
# 预期:219 passed

# 2. 混沌收益矩阵可复现
python eval_agent/run_chaos_eval.py
# 预期:生成 CHAOS_REPORT.md,含「全关 vs 全开」两行且全开显著改善

# 3. 纯净跑回归行不劣化(看报告第三节)
cat eval_agent/CHAOS_REPORT.md | grep -A2 "纯净跑回归"
# 预期:pure 全开不劣于全关

8. 本课在两条主线上的位置

  • 爆炸半径主线:把 L01–L07 的治理收益量化——全关 vs 全开的成功率(33%→100%)、浪费 token(11917→870)对着 L00 基线量出来。没有这张矩阵,「爆炸半径有界」只是断言,有了它是数字。
  • 自主-控制主线:纯净跑回归行证明「治理零税」——全开防护对正常任务不劣化。这是自主-控制主线的关键证据:闸开得不伤自主性(正常任务照跑),只在故障下生效。

🎯 面试话术

「我的 Agent 可靠性有 SLO 卡:任务成功率、卡死率、超支率、副作用重复率、崩溃恢复成功率。数字来自六类故障注入的回归式混沌套件——不是一次性演练,而是进测试资产,每次改动可重跑。

全关 vs 全开的收益矩阵对着 L00 裸基线量出来:全关成功率 33%、平均浪费 1.2 万 token;全开成功率 100%、平均浪费 870 token。每类故障都有对应的机制兜住——慢/坏工具用熔断+降级,循环用步数预算,崩溃用 checkpoint 续跑,超支用成本预算,副作用用幂等+审批。

还有一行纯净跑回归证明治理零税——全开防护对无故障的正常任务不劣化。这和 frontier 的能力评估不同:那个量『干净跑下的能力』(加记忆好多少),我量『故障下的生存』(断网/慢工具/崩溃还能不能出结果)。矩阵跑批复用了 frontier-L09 的开关矩阵思路,但对象从能力开关变成了混沌故障。」