跳至正文
来两杯美式
返回

给生产 Agent 做体检(六):从诊断明细到 PM 能用的报告——评估结果的产品化

By 来两杯美式
发布于

评估系统的最后一公里,不是把分数算得更准,而是让非工程读者看得懂、动得了。前五篇解决的都是”怎么算”:数据质检、结构化输出、容错归一化、任务编排。这一篇解决”怎么讲”——同一份诊断数据,工程师要的是明细和字段,产品经理要的是结论和下一步动作。如果报告只为前者设计,那它只是一个查询界面,不是一个决策工具;PM 打开后仍然要自己在十几个模块之间建立联系,评估系统的价值就停在最后一步。

这一篇的核心观点是:报告的信息架构本身就是产品设计。我们最终把首页组织成三个问题的顺序回答——Agent 是否健康、有什么问题、如何优化——每块只回答一个问题;健康判断收敛为显式规则产生的三个词之一;首页只给建议不做拍板,决策动作留在详情页;覆盖率先行展示,任何结论都能下钻到会话级证据并导出验收案例。回头看,走到这一步用了三次迭代,其中第一版”三块并排”是一个实打实的败笔。

下面按迭代顺序展开。

报告产品化总览:左侧是三块并排的败笔与 PM 三问漏斗,右侧是第三版报告首页线框——健康块、问题块、优化块、分析附录与详情抽屉,底部是证据闭环三段

一、两类读者,一份报告

先说清楚读者是谁。诊断流水线的直接消费者是工程师:他们关心诊断覆盖率、失败模式枚举、JSON 字段是否完整。但报告的最终读者是产品经理和 Agent 运营——他们不写代码,打开报告时脑中的问题是:“这个 Agent 现在能不能放心用?哪里最该改?改什么?”

这两类读者的阅读方式差异很大:

维度工程师产品经理
阅读单位一条诊断、一个字段一个结论、一批事项
阅读顺序任意跳转,按需查询线性阅读,期待被引导
关心的问题数据对不对、流水线稳不稳先做什么、为什么、值不值
对细节的态度越细越好需要时才下钻

第一版报告低估了这个差异。它把分析产物按流水线阶段纵向罗列:覆盖率、问题率、优先优化事项、高风险低频问题、失败模式分布、改造对象统计、问题处置分布、暂待观察项、原始证据……每个模块单看都没错,但整体上没有一个叙事主线。PM 需要自己在模块之间搭桥,才能回答”先解决什么”。

于是有了第二版:把报告从”分析结果展示页”调整为”产品决策工作台”,顶部拼一句结构化的管理结论(例如”本次共发现 28 个问题实例,最优先处理’退款进度答非所问’,首要改造方向为知识库与工作流”),正文以可执行优化事项为核心单位,并给每个事项配上”本期处理 / 继续观察 / 暂不处理”的团队决策状态。

二、败笔复盘:三块并排,PM 分不清先看哪

第二版上线后暴露了一个新问题,也是这篇想坦诚复盘的败笔。

当时首页把「管理结论」「优化决策」「建议优化方向」三块并排放在一起。三块都在讲结论、问题和改法,语义高度重叠:

对做报告的人来说,这三块各有职责;对 PM 来说,这是同一件事被讲了三遍,而且分不清先看哪、每块回答什么。更糟的是”优化决策”区把决策下拉、筛选、保存状态全部堆在首页,PM 还没理解问题,就被要求做决定。

复盘下来,问题出在信息架构没有对应读者的心智路径。PM 打开一份已完成的报告,心理上要按顺序回答三个问题:

  1. 这个 Agent 是否健康?
  2. 有什么问题?
  3. 如何优化?

三问是天然的单向漏斗:先要一个总判断,再看问题分布,最后才是行动。而”三块并排”把漏斗压成了平面,每一块都想当主角,结果谁都不是主角。信息架构上有一条朴素的纪律:导航顺序 = DOM 顺序 = 阅读顺序。如果页面结构本身不表达优先级,靠加粗和颜色是救不回来的。

第三版重构就是把首页拆回三问,外加一块承接工程细节的”分析附录”。

三、三问叙事:每块只回答一个问题

重构后的首页结构是四个区块,顺序固定:

  1. Agent 是否健康(#agent-health
  2. 有什么问题(#problem-landscape
  3. 如何优化(#optimization-actions
  4. 分析附录(#analysis-appendix

顶栏导航文案与锚点一一对应,导航顺序和页面 DOM 顺序完全一致——PM 从上往下读,就是被引导的思考路径。

三块之间的职责切分要足够狠,狠到有些信息被刻意”驱逐”:

注意一个关键设计:问题清单和优化清单是同一批数据的两种读法,不是两套数据。正式事项池由 optimizationActionsriskActions 合并后按优先级排序,问题块读它时展示”坏在哪”,优化块读它时展示”怎么改”。这保证了两个视角永远一致,也避免了重复的聚类逻辑。

至于暂待观察项、数据质量指标、运行版本、导出入口,全部收进”分析附录”。工程细节没有被删掉,只是不再抢占 PM 的阅读路径。

四、健康判断:显式规则,三个词之一

三问的第一问是”是否健康”,这要求报告给出一个明确的判断,而不是一堆指标让读者自己掂量。

我们的做法是把判断规则显式化,写死在代码里而不是让 LLM 现场总结:

条件结论标题
存在严重问题实例(severeProblemInstances > 0需干预
无严重问题,且问题占比 ≥ 15%需关注
其余情况健康

三条规则,三个词,边界清晰:

判断依据不再写成一段长文,而是做成三列指标卡:问题占比、严重问题数、诊断覆盖率。其中覆盖率卡必须注明一句”只代表结论可信度,不代表 Agent 质量”——这是第二篇踩过的坑的延续:覆盖率低说明结论可能站不住,但绝不等于 Agent 表现差,两类数字在视觉和文案上必须严格区分。覆盖率也不参与健康打分,只在低于阈值时于结论文案末尾追加一句”当前覆盖率偏低,结论仅供参考”。

结论文案用模板拼接而非 LLM 生成,例如有问题但无严重问题时输出”{问题占比}% 的对话存在体验问题”;部分完成的报告句首加”基于已完成诊断”。另一个细节:健康判断不依赖是否存在正式优化事项——没有达到行动门槛的事项时,只要统计上仍有问题,照样判”需关注”,避免”没有建议就等于没有问题”的误读。

五、决策边界:首页只给建议,不拍板

第二版曾在首页放了完整的决策 UI:全部/待决策/本期处理/继续观察/暂不处理的筛选,表格里的决策下拉,保存中/已保存/重试保存的状态流转。第三版把这些从首页全部移除,“本期处理/继续观察/暂不处理”的三态决策只保留在点击事项打开的详情抽屉里。

为什么?因为决策和阅读是两种动作,不该混在一屏:

这是一条信息架构纪律:报告页承担理解,详情页承担决策。已有的决策数据不丢,详情抽屉里的决策控件和对应的持久化接口原样保留,只是入口收窄了一层。

六、证据闭环:覆盖率先行,结论可追溯

评估报告最大的信任风险是”结论看起来很有道理,但没人知道它建立在什么数据上”。我们的对策是把证据链做成显式的三段:

第一段,覆盖率先行。 首页明确展示诊断覆盖率、分析范围和分母口径(呼应第二篇:诊断之前先定义人口——哪些对话进入诊断、哪些被风险筛掉、哪些失败隔离)。覆盖率低时结论自动降级措辞。PM 看到”需关注”三个字之前,先看到这个判断建立在多大的样本上。

第二段,下钻到会话级证据。 报告里的汇总数字——问题实例数、失败模式分布——都不是死数字,而是可点击的下钻入口。点击”问题实例”统计卡,右侧抽屉展开所有失败或部分成功的诊断实例,每条包含用户问题、Agent 回答、观察事实、诊断结果、失败模式、严重程度,以及存在时的前序会话上下文。点击失败模式分布图中的某个柱形(比如”退款进度答非所问”),抽屉则只展示命中该模式的实例。抽屉用游标分页支撑大量实例,报告页滚动位置保持不变。从”问题簇”到”具体对话”的每一跳都可点击,任何一个汇总结论都能被还原成原始证据。

第三段,导出验收案例。 每个优化事项在详情里附带验收案例列表和 CSV 下载。优化上线后,拿这批案例回归验证”改了之后这些问题对话是否变好”,让评估从一次性报告变成可复测的基线。全量诊断 CSV 也在附录提供,供工程师离线分析。

三段合起来:先声明数据边界,再让每个结论可下钻,最后让每次优化可验收。

七、优化事项:从问题簇到行动建议

三问的最后一问”如何优化”,数据来源是问题聚类:诊断阶段给每条对话打上失败模式和严重程度,聚类阶段把相似问题归成簇,再为达到行动门槛的簇生成优化事项。事项的候选池有一条明确规则:RISK 类事项全量进入,ACTION 类按优先级取前 10。高风险低频问题即使样本少也必须出现在首页,并带危险标记——这类问题出现一次就可能造成资损,不能因为频率低被排序淹没。

事项的完整信息在详情抽屉里按固定顺序展开:观察事实 → 根因假设与置信度 → 建议动作 → 预期影响 → 验收案例 → 对话证据。顺序本身是刻意设计的:先看事实(别急着信结论),再看假设(允许质疑),然后才是动作。

首页的问题分布图有一个值得一提的迭代小案例。最初的柱形图只展示各失败模式的实例数,PM 反馈”知道退款类问题最多,但不知道里面有没有严重的”。于是我们给每根柱形加上了最严重级别标注——柱形高度回答”有多少”,标注回答”有多严重”。看似只是加一个标签,实际逼着回答一个产品问题:分布图的读者要做的判断是”先看哪类问题”,而这个判断需要频次和严重度两个维度,缺一个就会误导排序。类似的还有把旧的”问题处置分布”环形图移除,改为决策筛选标签上的数量摘要——同一信息服务工作流比独立成图更有用。

八、局限与后续

这套报告设计还有三个已知局限:

九、系列总结

六篇写完,回顾整条主线:第一篇定义了只用对话文本的黑盒诊断工作流——不接内部埋点、不改 Agent 代码,从最终产物反推健康状态;第二篇讲诊断之前先定义人口,用数据质检和风险筛选保证分母干净;第三篇用严格 JSON Schema 让 LLM 稳定输出结构化诊断;第四篇承认 LLM 输出必然不完美,用归一化、一次修复和失败隔离兜住长尾;第五篇解释为什么不用消息队列,而用数据库做任务编排换取可靠与简单;这一篇收尾,把前面所有算出来的东西,变成 PM 能读、能动、能追溯的报告。

贯穿六篇的其实是同一句话:模型负责语义判断,应用负责协议边界。 哪一步交给 LLM(判断这段对话有没有问题、归因到什么、严重到什么程度),哪一步用确定性工程兜住(schema 校验、字段归一化、重试与隔离、任务状态机、健康打分规则、信息架构),这条线画清楚,评估系统才能既保留语义判断的灵活性,又保住工程实现的可依赖性。报告的产品化也不例外——健康结论里的三个词、三问的区块顺序、首页与详情的决策边界,都是把”讲不清楚的语义”翻译成”确定的协议”。评估系统如此,Agent 本身也如此。


分享这篇文章:
通过邮件分享这篇文章✓ 链接已复制
查看系列全部文章
  1. 01.把存量系统交给 Agent,先想清楚 API、Skill、MCP 各是什么
  2. 02.存量系统 Agent 化,物理上到底怎么「接」
  3. 03.单点跑通之后,怎么把 Agent 能力沉淀成全公司可复用
  4. 04.DeepSeek Harness:把 Agent 宿主变成可组合的基础设施,企业能拿它做什么
  5. 05.一个系统,两种访客:给浏览器和 Agent 设计同一套身份体系
  6. 06.定时是 Agent 平台的另一半:Trigger/Action Registry 与调度原语分层
  7. 07.Agent 刚才干了什么:审计、调用日志与敏感数据豁免
  8. 08.提示词安全攻防全解析:越狱、注入与信息泄露
  9. 09.给生产 Agent 做体检(一):只用对话文本的黑盒诊断工作流
  10. 10.给生产 Agent 做体检(二):诊断之前,先定义人口——数据质检与风险筛选
  11. 11.给生产 Agent 做体检(三):让 LLM 稳定输出结构化诊断——严格 JSON Schema 实践
  12. 12.给生产 Agent 做体检(四):LLM 输出不完美怎么办——归一化、一次修复与失败隔离
  13. 13.给生产 Agent 做体检(五):不要消息队列——基于数据库的任务编排与可靠性
  14. 14.给生产 Agent 做体检(六):从诊断明细到 PM 能用的报告——评估结果的产品化
  15. 15.AI Agent:从工具到同事,中间隔着一层「自主性」
  16. 16.Agent 评测工程化(一):为什么不能只看平均分
  17. 17.Agent 评测工程化(二):Rubric 不是 Prompt,而是可执行的质量协议
  18. 18.Agent 评测工程化(三):从低分样本到问题簇
  19. 19.Agent 评测工程化(四):红线、一票否决与 1-5 分
  20. 20.Agent 评测工程化(五):让 LLM-as-judge 稳定输出结构化结果
  21. 21.Agent 评测工程化(六):评测前,先把 Agent 输出拆开
  22. 22.Agent 评测工程化(七):从评分报表到 PM 决策工作台
  23. 23.Agent 评测工程化(八):不用消息队列,也能跑长任务
  24. 24.Agent 评测工程化(九):把一次性评测变成持续优化体系

上一篇
生态 > 模型:大模型竞争的本质不是模型本身
下一篇
给生产 Agent 做体检(五):不要消息队列——基于数据库的任务编排与可靠性