这道题其实是在问,你怎么知道搭出来的东西好不好用,对吧?我会从[[RAG]]和[[Agent]]两个方向分别讲,因为它们衡量的侧重点不一样。RAG主要看检索质量,比如用户问个问题,你是不是把相关文档捞出来了;Agent更看工具调用和规划能力,比如它能不能正确调API、多步推理对不对。但真正落地,很多系统是RAG和Agent混在一起的,比如一个客服助手既要查知识库又要调订单接口,所以评估也得结合起来。
先说RAG。检索模块我重点看 Recall@K 和 MRR,也就是正确答案在前K个结果里有没有、排得靠不靠前。生成模块最核心的是 [[Faithfulness]],就是生成内容是不是忠实于检索到的文档,别自己瞎编。这个我会用NLI模型自动判,比如[[RAGAS]]框架。还有[[Hallucination]] Rate,就是虚构信息的比例。端到端的话,人工打分看有用性、简洁性,但成本高,一般自动筛一遍再人工抽检。
Agent这边,核心能力包括规划、工具调用、推理和自主性。规划能力我主要看任务完成率和步骤合理性,比如让Agent处理一个退款,它是不是先查订单状态再调退款接口,步骤顺序对不对。工具调用看工具选择准不准、参数填得对不对。我会在模拟环境里跑,比如沙箱里模拟订单系统、库存系统,然后监控中间状态。对抗测试也很关键,比如故意给模糊指令、让工具报错,看Agent会不会卡住或者乱来。
实际落地的挑战,我碰到的有几个。先看评测数据构建,真实场景数据稀缺,得靠合成数据加人工标注,但合成数据容易偏离真实分布。然后看动态环境不可复现,Agent行为有随机性,同一个问题跑两次结果可能不一样,所以得多次采样取统计指标。另外还要看指标和用户体验有Gap,比如Recall高但用户觉得答案啰嗦,所以必须引入真实用户反馈闭环。成本权衡也挺头疼,完整人工评估太贵,我一般用自动筛选加人工抽检的分层策略。
这里有个延伸点,就是 多轮对话场景下,记忆和状态的一致性怎么评估。比如用户先问“我的订单号是123”,Agent记住了,下一句问“它到哪了”,Agent能不能正确关联。这个比单轮评测复杂得多,目前业界也没特别成熟的方案。
所以总的来说,我会先把 关键用户旅程 定义清楚,比如高频的退换货场景,然后针对这些场景建立轻量级监控看板,比如Faithfulness、任务完成率,再逐步扩展。如果指标和体验对不上,我更倾向信人工反馈而不是自动分数。毕竟系统是给人用的,不是刷榜的。