跳到主要内容

先接真实对话,再写 eval:静默失败这条我记下来了

abanana
abanana

· 阅读约 6 分钟

今天翻到 Agnost AI,YC S26 那批的,官网 agnost.ai。本来只是想看看对话式智能体的分析工具现在都堆了些什么功能,结果发现 demo 不用注册,点开任意一条洞察就能看细节,我就随手戳了几条。最后让我坐下来写这篇笔记的,不是它能聚多少类意图,而是它文案里反复出现的一个词:静默失败。

拆开看看这个词具体指什么。官方给的例子有两类:一类是 trace 全程显示成功、用户请求也正常返回了,但用户实际上根本没拿到有用的东西;另一类是智能体在回复里说「PDF 已经发到你邮箱了」,而它其实压根没发。这两类的共同点是,都不会在你的错误面板上留痕——第一类没有异常抛出,第二类连工具调用的返回值都是成功的,只是那个返回值本身在撒谎。

第二种我自己碰到过。工具调用返回 200,日志扫过去一片绿,我也就当成没事了,直到有用户跑来问「你说的那个文件在哪」。所以「静默失败」对我来说不是个营销词,它确实是一个单独的失败类别,跟报错混在一起看是永远看不出来的。

接下来这个判断是我真正想记下来的:eval 抓不住静默失败,至少抓不住第一次出现的静默失败。 eval 本质上是你预先列出来的一份失败清单,你能写出来的断言,都是你已经知道要防的东西;而静默失败之所以静默,恰恰是因为它不在那份清单上。你把能想到的边界情况全写成用例,跑完全绿,然后线上继续发生你没想到的事——这不是 eval 写得不够多,是这种形式本身的边界就在这儿。

顺着这个判断,接入的顺序就该反过来。不是先攒一套 eval 再接数据,而是先把真实对话接进来,让它把反复出现的问题聚在一起、按影响程度排序,等你看到一条具体的、带 trace 的失败,再回头把它固化成 eval。这个产品给的修复建议里带 evals,正好是这条闭环的后半截;前半截的原料只能来自真实对话,靠拍脑袋想不出来。

它还检测幻觉、未兑现的承诺和政策违规这几类。前两类是用户体验问题,能不能发现直接影响留存;第三类平时没人管,出事的时候是最贵的。这三类被放在同一张表里按影响排序,我觉得这个设计挺对,因为合规那条平时根本不会有人主动去看。

具体怎么接,官方说法是两步。第一步装技能:

npx skills add AgnostAI/skills --skill agnost-ai

第二步是粘贴一段官方给的提示词,剩下的交给它。官方强调不需要重建智能体、也不用改它现在的运行方式,可以直接接到已有的事件和对话上。

「两步接入」这种话我一般不信,所以把实际要求的动作拆开看了一遍。至少有一件事得先做:正式开启之前,先拿一条 trace 在 staging 环境里走一遍。这一步不是走形式,要确认三样东西:

  1. 事件是不是真的上报上来了,别开了开关结果一条数据都没有;
  2. 对话和事件里的字段对不对得上,尤其是后面要靠它做回溯的那个用户标识;
  3. 一条洞察点进去,能不能回链到那条具体的对话和 trace。

第三样最关键,因为这个产品的可用性基本都压在这条回链上。如果一条洞察点进去看不到原始对话和 trace,那它给的优先级排序你就只能信,没法自己判断。我点的那几条是通的,能跳到具体的对话和那次 trace;前两样得等接自己数据的时候才能验。

这里有个坑,顺手记一下:官方文档明确写了不会替用户自动脱敏 PII。💡 传输走 HTTPS、仪表盘访问要认证,这些是传输层和访问层的保障,不等于帮你处理数据内容本身。所以接入之前该做的假名化还是得自己做——用户 ID 换成假名,手机号、邮箱这类字段在发出去之前处理掉,别指望平台那边兜底。这一条我看了两遍,因为很容易在「它是个正经 SaaS,安全应该有保障」这种想法下跳过去。

免费档的量级也说一下:每月 1,000 个事件、数据保留 7 天。7 天做不了任何趋势分析,但验证链路、确认能不能真的看到静默失败,这个额度是够用的。往上是每月 49 美元、一万个事件、保留 30 天。我的建议是先用免费档把流程走通再考虑升级,因为你要先确认自己会不会真的回去翻那些洞察——这件事只有接了数据才知道,别人说没用。

还有一点,它每条洞察是按影响程度排序的。这类「智能聚类」我以前是有点怀疑的,因为大部分最后都会聚成一堆点开发现是同义词的类别。但这里的排序背后有回链撑着,至少你能自己去核对它排得对不对,而不是对着一个百分比干瞪眼。准不准可以后面再评估,回链通不通是当天就能验证的事,我习惯先验证能验证的那个。

写到这儿得说清楚:我自己的数据还没接,这篇是把接入路径和文档先拆了一遍,等下周挪出时间按上面这个顺序走一遍。创始人那边说愿意直接跟用户一起看碰到的问题、判断哪些值得修,再帮着转成提示词、产品流程或者评估——这种话我一般当客气话听,但至少说明这东西现在还没大到没人管你的阶段,有问题能问到人。

划重点:

  1. 静默失败跟报错不是同一类问题,trace 显示成功不代表用户真的拿到了东西,「PDF 已发送」这种承诺尤其要单独盯;
  2. eval 只能覆盖你已经想到的失败,没想到的那些得先靠真实对话暴露出来,再回过头固化成 eval——顺序反了,就一直在补自己想出来的坑;
  3. 接入的第一步不是打开开关,是先在 staging 里拿一条 trace 验证回链,以及自己把 PII 处理掉,免费档够干这件事。

你可以先去 agnost.ai 戳一下那个不用注册的 demo,随便点开一条洞察,看它能不能一路点到具体的 trace。这一步比读任何产品介绍都直接,也顺便能判断它聚出来的东西跟你真正关心的那类失败对不对得上。

abanana
abanana

把自己踩过的坑整理成一篇能复现的笔记,写给三个月前的自己看。

查看主页 →