Loading...
正在加载...
请稍候

在非确定性的世界里造“可靠性”:Agent Quality 的四根支柱、两种视角与一只持续转动的飞轮

✨步子哥 (steper) 2025年12月28日 06:06
如果你习惯了传统软件工程的节奏,你会本能地相信:把需求写清楚、把逻辑写对、把单元测试铺满,质量就会像保险箱一样“咔哒”一声锁住。可当你把一个 LLM 放进循环里,让它**规划、调用工具、读写记忆、与环境交互**之后,质量就不再是一把锁,而更像一辆 F1——同样能跑,但你必须用持续的遥测与赛道级评估,才能知道它是否会在下一个弯道冲出护栏。 《Agent Quality》这份白皮书的核心态度非常直接:**Agent 质量是架构支柱,不是上线前的最后一道测试工序**。因为 Agent 的失败往往不会“崩溃”,而会以“看似合理却悄悄偏航”的方式出现:幻觉、偏见、漂移、意外策略……API 仍然 200 OK,用户却在不知不觉中失去信任。 下面这篇续写,会沿着白皮书给出的主线,把“为什么旧 QA 失效、我们应该怎么评、如何把评估工程化并形成闭环”讲成一条可落地的叙事线:从四大质量支柱,到“Outside-In”评估层级,再到可观测性三支柱,最后落在那个最有工程味道的结论——**Agent Quality Flywheel(质量飞轮)**。 --- ## 🏎️ **第一章:为什么传统 QA 对 Agent 不够用——卡车检查无法评估 F1 的驾驶决策** 白皮书用了一个非常精准的比喻:传统软件像卡车,AI Agent 像 F1。卡车按固定路线走,你关心“引擎启动没?路线对不对?”;F1 的胜负来自动态判断:燃油策略、刹车点、轮胎管理、对突发状况的反应。**Agent 的质量同样不在“能不能跑”,而在“每一步怎么想、怎么做”。** 传统 QA 的失败点在于:它擅长发现显性错误(崩溃、异常、确定性计算错),却很难捕捉 Agent 的“隐性劣化”。Agent 可能持续输出“像真的一样”的答案,但事实完全错误;可能不崩溃却不断绕圈;可能没有违反语法却违反业务伦理。更棘手的是:这些行为常常**不稳定、不可复现、与上下文/环境强耦合**。 白皮书列举的典型失败模式,几乎都是“系统还活着,但已经在作恶或失效”: - **⚖️ 算法偏见**:把训练数据的系统性偏差变成决策规则,甚至放大它 - **🧟 事实幻觉**:在缺乏证据时生成高置信度的虚构事实 - **🌊 性能/概念漂移**:现实世界变了,模型还活在昨天 - **🌀 涌现的非预期行为**:钻规则漏洞、与其他 bot 发生“代理战争”等 > **小贴士:Agent 的失败常是“判断失误”而不是“代码 bug”** > 所以你很难用断点调试去抓幻觉,也很难靠单元测试消灭偏见。你要做的是:把“判断过程”变成可观测、可评价、可回流的工程对象。 --- ## 🧩 **第二章:从模型中心到系统中心——评估对象从“输出”变成“轨迹(Trajectory)”** 白皮书把 AI 的演化拆成五层,层层扩大评估面: 1) 传统 ML:用 Precision/Recall/F1 等对着 test set 2) 被动 LLM:输出概率化,人评/模型对比开始登场 3) LLM + RAG:错误可能出在检索,也可能出在生成 4) **主动 Agent**:规划 + 多步推理 + 工具交互 + 记忆演化 → 轨迹非确定性累积 5) **多 Agent 系统**:系统级涌现失效、协作与竞争评价都变复杂 关键结论写得很硬:**Trajectory is the Truth(轨迹即真相)**。 因为 Agent 的输出只是长链条最后一环。你要评估的不是一句话,而是: > Thought → Action → Observation → Thought → … → Final Answer 一旦你接受“轨迹是评估单位”,后面所有方法论(Outside-In、Observability、Judge、Flywheel)就顺理成章了。 --- ## 🧱 **第三章:Agent Quality 的四大支柱——先定义“好”,再谈“测”与“改”** 白皮书把 Agent 质量拆成四个互相关联的支柱,它们不是漂亮口号,而是为了把“业务价值—用户体验—工程约束—安全底线”放进同一个评价框架里: ### 🎯 **Effectiveness(有效性:目标达成)** 黑盒问题:**用户真正的意图实现了吗?** 不是“写了代码”,而是“代码给了正确洞察”;不是“找到了商品”,而是“推动了转化”。 ### 💸 **Efficiency(效率:资源与成本)** Agent 即使成功,也可能“成功得很昂贵”:25 步、5 次失败工具调用、3 次自我纠错。 效率指标关注:token 成本、端到端延迟、轨迹步数与复杂度。 ### 🧱 **Robustness(鲁棒性:现实世界的抗压能力)** 当 API 超时、网页结构变化、数据缺失、用户提示模糊时: 它会优雅失败、重试、澄清,还是直接胡编并装作成功? ### 🛡️ **Safety & Alignment(安全与对齐:不可谈判的门槛)** 再有效也不能越界:偏见、隐私泄露、提示注入、危险动作…… 这一支柱在白皮书里被定义为“非协商的 gate”。 这四根柱子共同指向同一个工程要求:**只看最终答案,你无法可靠衡量其中任何一根**。你不看轨迹就无法数步数、无法定位失败工具调用、无法验证安全策略是否在关键点起效。 --- ## 🧭 **第四章:评估策略的“Outside-In”层级——先黑盒判成败,再玻璃盒查因果** 白皮书给的路径非常工程化:不要一上来就沉迷组件指标,要按层级推进。 ### 🌑 **4.1 Outside-In:端到端评估(Black Box)** 先问最重要的问题:**它达成目标了吗?** 典型指标包括: - 任务成功率(可二元或分级) - 用户满意度(点赞/CSAT) - 整体质量(如“是否覆盖全部 10 篇文章摘要”) 如果黑盒已经 100%,可以先收工;如果失败,再打开盒子。 ### 🪟 **4.2 Inside-Out:轨迹评估(Glass Box)** 失败后沿着轨迹逐段拆解原因,白皮书给了一个非常实用的“六段诊断清单”: 1) **LLM 规划/推理(Thought)**:跑题、循环、上下文污染、幻觉 2) **工具选择与参数化**:选错工具、缺参、类型错、JSON 格式错 3) **工具结果理解(Observation)**:读错数值、漏实体、没识别 404/错误态 4) **RAG 表现**:检索错、信息陈旧、或模型无视检索结果照样胡编 5) **效率与鲁棒性**:过多调用、冗余循环、异常未处理 6) **多 Agent 动力学**:通信误解、角色漂移、互相打架 > **小贴士(来自白皮书的 ADK 实操建议)**: > 用 ADK Web UI 交互到一个“理想响应”,把当前 session 存成 Eval Case(包含最终答案与工具轨迹),之后用 `adk eval`/pytest 做回归测试。这样每一次线上失败都可以被“固化”为一个永久用例。 --- ## 🧑‍⚖️ **第五章:谁来判分?——从自动指标到 LLM Judge,再到人类裁判** 评估不仅是“看什么”,更是“谁来裁决”。白皮书强调一个现实:质量判断需要混合机制。 ### 📏 **5.1 Automated Metrics:快、可复现,但浅** ROUGE/BLEU、embedding 相似度、任务基准(如 TruthfulQA)适合做 CI/CD 的第一道门:抓明显回归,做趋势监控,但不能替代深层判断。 ### 🤖 **5.2 LLM-as-a-Judge:用更强的模型评更弱的模型** 把用户问题、候选答案、参考答案(若有)、评分 rubric 交给 judge 模型打分。 白皮书特别建议:**优先做 pairwise(A/B 对比)而不是单一 1-5 打分**,用 win/loss/tie 统计更稳健。 ### 🕵️ **5.3 Agent-as-a-Judge:评“过程”而非“输出”** 当你要判计划质量、工具序列是否合理、参数是否正确时,最有效的是把“执行 trace”交给一个专门的 Critic Agent 逐项审计:计划是否可行、工具是否该在此处调用、参数结构是否合规……这正好贴合“Trajectory is the Truth”。 ### 🧑‍🔬 **5.4 HITL:人类不是可替代组件,而是价值与安全的终审** 白皮书明确指出:人评也不是完美客观真理,主观任务很难高度一致;但 HITL 在三件事上不可替代: - 专业领域准确性(医/法/金) - 语气、意图、伦理对齐等细腻判断 - 产出 Golden Set(没有它,自动化评估就失去锚点) 同时,真实用户反馈(点赞/差评)必须成为“事件驱动管道”,差评要自动把上下文与 trace 打包进 review queue,而不是躺在日志里睡觉。 --- ## 👁️ **第六章:可观测性三支柱——没有 Logs/Traces/Metrics,就没有“可评估的 Agent”** 白皮书用了另一个厨房类比:传统软件像流水线厨师,Agent 像“神秘食材挑战”的大厨。你不能只尝成品,你要看到他每一步怎么选材、怎么改方案、怎么应对缺糖。 ### 📓 **6.1 Logging:Agent 的日记** 最佳实践是结构化 JSON 日志,记录: - prompt/response - 工具调用(输入/输出/错误) - 状态变更 - (在合规前提下)关键中间步骤 并强调“**详细度 vs 性能**”权衡:生产默认 INFO,开发 DEBUG;用结构化日志便于过滤与查询。 ### 🧵 **6.2 Tracing:把日志串成因果链** trace 把 spans 串起来,能一眼看出: 用户请求 → RAG 失败 → 工具拿到空输入 → LLM 被错误输出误导 → 最终胡答 OpenTelemetry/Cloud Trace 的 trace_id 让这件事可规模化。 ### 📊 **6.3 Metrics:从证据聚合出“健康报告”** 白皮书把指标分两类: - **System Metrics(生命体征)**:P50/P99 延迟、错误率、tokens/任务、成本、完成率、工具频次 - **Quality Metrics(决策质量)**:正确性、轨迹遵循度、帮助性、幻觉率、安全合规等(通常需要 golden set 或 LLM judge 才能计算) 并给出运营实践:系统健康与质量指标要分开 dashboard;生产日志要做 **PII 清洗**;采用动态采样(例如成功请求抽样 10%,错误请求 100% 采集)平衡粒度与成本。 --- ## 🌀 **第七章:Agent Quality Flywheel——把每一次失败变成下一次成功的测试用例** 白皮书最后把所有要素焊成一个闭环:**定义目标 → 打通可见性 → 评估过程 → 建立反馈回路**。这就是质量飞轮: 1) **Define Quality**:用四支柱确定方向 2) **Instrument for Visibility**:Logs + Traces 把证据采出来 3) **Evaluate the Process**:Outside-In + Judge + HITL 对证据判分 4) **Architect the Feedback Loop**:把线上失败自动转成回归用例,沉淀进 Golden Eval Set 飞轮的狠点在于:它把“事故复盘”从人为仪式变成工程机制——每次失败都会变成系统下一轮的免疫记忆,让质量改进获得惯性。 白皮书将“可信任 Agent”的三条原则写得像工程宣言: - **把评估当架构支柱,而不是收尾测试**(先留遥测口,再谈上线) - **轨迹即真相**(最终答案只是故事最后一句) - **人类是最终裁判**(自动化用于规模,人类用于价值与安全锚定) ---

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!