首页/新闻资讯/正文详情

别等 Agent 上线后补评估:先用 DeepEval 写失败样本

发布时间:2026/9/25 5:47:08 来源:云帆数科 栏目:资讯中心
别等 Agent 上线后补评估:先用 DeepEval 写失败样本
# 别等 Agent 上线后补评估先用 DeepEval 写失败样本很多团队接入 AI Agent、RAG 或客服机器人时最容易晚一步做的事情就是评估。先把模型、prompt、工具调用、RAG 检索串起来等 demo 能跑再补一个“评估模块”。这条路看起来快但问题也很明显上线前你并不知道系统在哪些地方会稳定失败只知道它在几个样例里看起来还行。DeepEval 适合解决的不是“给模型打一个漂亮分数”而是把 LLM 应用的质量检查变成一组可以反复运行的测试。Doramagic 的 DeepEval 项目说明书把它整理成几个关键面LLMTestCase 测试用例、GEval、AnswerRelevancyMetric、TaskCompletionMetric、幻觉检测、deepeval test run、deepeval generate golden、trace / integrations以及本地评估和 Confident AI 云端同步之间的边界。我会把 DeepEval 放在 Agent 工作流里的“发布前闸门”不是上线后的报表层。## 先写失败样本而不是先挑指标很多人一上来会问我应该用 G-Eval、answer relevancy还是 hallucination metric这个问题不坏但顺序错了。更好的起点是先写失败样本- RAG 明明检索到了上下文但回答没有引用关键事实- Agent 工具调用成功了但调用了错误工具- 输出语气很自信但 retrieval_context 里没有支撑- 任务走完了但中间 trace 显示重复尝试或走错分支- 模型回答“看起来对”但违反了产品政策、权限边界或用户约束。这些样本先写出来指标才有意义。否则阈值只是一个数字无法解释为什么 0.7 合格、0.69 不合格。## 最小可用测试用例DeepEval 的测试用例结构很直接。一个最小例子可以先不用复杂工程化pythonfrom deepeval.test_case import LLMTestCasecase LLMTestCase(input用户问退款政策是什么,actual_output用户可以在 30 天内免费退款。,expected_output我们提供 30 天全额退款且不收取额外费用。,retrieval_context[All customers are eligible for a 30 day full refund at no extra costs.],)这类用例的价值不在代码有多复杂而在它强迫你把输入、实际输出、期望输出和检索上下文分开。对 RAG 或 Agent 来说这个拆分很重要输出不应该只看自然语言是否顺眼还要看它是否真的使用了允许使用的上下文。## 指标要贴近失败类型DeepEval 提供的指标很多但我不会一开始就把所有指标都塞进 pipeline。先按失败类型选- 如果担心答案脱离问题用 AnswerRelevancyMetric。- 如果担心 Agent 没有完成任务用 TaskCompletionMetric。- 如果需要自定义判断标准用 GEval 写清 criteria。- 如果是 RAG 场景必须把 retrieval_context 纳入测试而不是只看最终回答。一个实用规则是每个指标必须对应一个“失败时该谁修”的问题。失败后应该能判断是 prompt、检索、工具路由、测试数据还是产品边界没写清楚。如果指标失败后只能得到“模型表现不好”那这个指标还不够具体。## trace 比最终答案更适合调 AgentDeepEval 说明书里提到端到端评估和可追踪评估两种模式。对普通聊天机器人最终答案评估已经有价值对 Agent更重要的是路径。一个 Agent 最终回答正确不代表过程可靠。它可能- 先调用了不该调用的工具- 对同一个步骤重试多次- 在低置信检索结果上继续推理- 把中间错误吞掉只输出一个顺滑结论。所以评估 Agent 时我会要求 trace 至少能回答四个问题1. 选择了哪个工具2. 使用了哪些上下文3. 哪一步失败或重试4. 最终回答引用了哪些证据。没有 trace 的评估很容易只是在评估文案质量。## golden 生成不能替代人工复核deepeval generate golden 很适合降低测试集启动成本。它支持从文档、上下文、空白输入或已有 golden 扩展测试用例。这个能力很有用但也容易被误用。我不会把生成出的 golden 直接当真值。更安全的做法是- 先生成 20 到 50 条候选- 人工删掉语义重复、答案含糊、来源不清的样本- 标出 5 到 10 条“必须失败时报警”的关键样本- 每次 prompt、检索器、工具路由或模型版本变化后优先跑这组关键样本。这样 DeepEval 才像回归测试而不是一次性评测截图。## 云端同步和本地评估要分清DeepEval 支持本地评估也支持登录 Confident AI 后同步报告、数据集、trace 和监控。这里要先写清权限边界。如果只是本地验证起步可以很小bashpip install -U deepevaldeepeval test run test_chatbot.py如果要登录云端、同步报告或追踪生产数据就不再是同一个风险级别。你需要明确- 是否会上传输入、输出、检索上下文或 trace- 是否包含用户数据、内部文档或密钥痕迹- 谁能看到评估报告- 失败样本是否可以脱敏- CI 里是否允许自动同步。这不是对 DeepEval 的否定而是所有 eval / observability 工具都应该提前写清的数据边界。## 给 AI 宿主的接入规则如果要让 Claude Code、Codex、Cursor 或其他 AI 宿主使用 DeepEval我会先给它一段明确规则text你可以使用 DeepEval 设计 LLM 应用评估但必须先说明1. 被评估对象是 RAG、Agent、聊天机器人还是单个 prompt2. 失败样本是什么3. 每个 metric 对应哪类失败4. 阈值为什么这样设置5. 是否需要 trace6. 是否涉及云端同步、API key 或用户数据。不要把 LLM-as-a-Judge 分数当成绝对真值。不要把生成的 golden 样本直接当人工标注。不要声称本地已经安装或跑通除非有单独运行日志。这段规则比“帮我加 DeepEval”更有用。它把评估从一个工具安装任务变成一个发布前质量合同。## 我会怎么开始第一天不要做复杂平台化。我会先选一个真实场景例如 RAG 问答或客服任务写 10 条测试- 3 条正常成功样本- 3 条容易幻觉的样本- 2 条检索上下文缺失样本- 1 条权限边界样本- 1 条空结果样本。然后只接一个指标不接一堆指标。先让失败能被解释再扩展到更多 metric、trace、golden 生成和 CI。DeepEval 的价值不在“让 AI 看起来更可控”而在让失败变得更早、更具体、更容易复现。对 Agent 来说这比上线后多看一个平均分重要得多。## 资料角色- 上游项目confident-ai/deepeval负责真实代码、安装命令、release 和 API 事实https://github.com/confident-ai/deepeval- Doramagic 项目页把 DeepEval 整理成可带走、可装载、可验证的能力资产https://doramagic.ai/zh/projects/deepeval/- Doramagic 说明书适合在接入前阅读测试用例、指标、trace、golden 生成、pitfall 和边界提示https://doramagic.ai/zh/projects/deepeval/manual/

相关推荐

IntelliJ IDEA快捷键速成手册:从新手到高手,7天掌握90%高频操作
IntelliJ IDEA快捷键速成手册:从新手到高手,7天掌握90%高频操作

更多请点击: https://intelliparadigm.com 第一章:IntelliJ IDEA快捷键体系概览与学习路径规划 IntelliJ IDEA 的快捷键体系并非零散命令的堆砌,而是一个分层、可扩展、高度上下文感知的操作语言。它由基础导航、编辑增强、代码重构、构建调… · 2026/9/19 5:13:22

PMMA-b-PEO/PEO-b-PMMA聚苯乙烯-b-聚甲基丙烯酸甲酯
PMMA-b-PEO/PEO-b-PMMA聚苯乙烯-b-聚甲基丙烯酸甲酯

一、基本定义PMMA-b-PEO PMMA-b-PEG 两嵌段共聚物:疏水段聚甲基丙烯酸甲酯 亲水段聚环氧乙烷 。二、核心特性与应用两亲性自组装:在水中自发形成以PMMA为内核、PEO为外壳的胶束,可用于包载疏水性药物。固态电解质:PEO链段提供离… · 2026/9/11 21:15:02

柴油发电机组多少钱一台 不同功率工况成套报价明细参考
柴油发电机组多少钱一台 不同功率工况成套报价明细参考

柴油发电机组多少钱一台 不同功率工况成套报价明细参考 时间戳:2026 年 06 月 26 日 内容摘要:采购柴油发电机组时价格受功率、动力品牌、电机材质、机身款式、工况改造、配套施工多重因素影响,低价机组易存在减配、虚标功率、后期增项收费问… · 2026/9/9 2:10:24

WIFI共享小程序独立版源码实战:Flask后端+小程序前端从零搭建
WIFI共享小程序独立版源码实战:Flask后端+小程序前端从零搭建

简介:WIFI共享小程序独立版源码是一套面向本地共享WiFi商业运营的完整源码包,适合想快速搭建自主共享WiFi平台的团长、拓展员、商家及个人开发者,解决从技术部署到项目落地的全流程问题。压缩包内共2004个文件,以PHP实现后端逻辑、… · 2026/9/25 5:47:06

OpenCodex 自定义模型功能国际化落地:i18n 键注入与发布前全量验证指南
OpenCodex 自定义模型功能国际化落地:i18n 键注入与发布前全量验证指南

【免费下载链接】opencodex Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code 项目地址: https://gitcode.com/gh_mirrors/ope/opencodex 点击… · 2026/9/25 5:47:06

MikroORM 多 Schema 使用指南:实体定义、运行时切换与通配符 Schema 原理
MikroORM 多 Schema 使用指南:实体定义、运行时切换与通配符 Schema 原理

后端 【免费下载链接】mikro-orm TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases. 项目地址: https://gitcode.com/gh_mir… · 2026/9/25 5:47:06

MySQL索引失效底层原理与慢SQL排查优化实践
MySQL索引失效底层原理与慢SQL排查优化实践

1. 为什么索引失效,值得认真聊一聊每个写过SQL的工程师,几乎都经历过这样一幕:where条件的字段明明建了索引,explain一执行却是type ALL,rows显示几万几十万,慢查询日志里躺着这个SQL。第一反应是“索引没… · 2026/9/25 5:47:00

Spring Boot 集成 OpenSearch:选型、环境搭建与检索实战
Spring Boot 集成 OpenSearch:选型、环境搭建与检索实战

1. 为什么是OpenSearch:从一次授权变更引发的选型思考很多人看到“Spring Boot OpenSearch 集成”这个标题,第一反应是把它当成Elasticsearch的平替方案。这个理解方向是对的,但不够完整。OpenSearch是从Elasticsearch 7.10.2分叉出来的开源… · 2026/9/25 5:47:00

用 DIGITS 训练 FCN-Alexnet 语义分割模型:jetson-inference 端到端实操指南
用 DIGITS 训练 FCN-Alexnet 语义分割模型:jetson-inference 端到端实操指南

人工智能计算机视觉深度学习微调 【免费下载链接】jetson-inference Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson. 项目地址: https://gitcode.com/gh_mirrors/je/jetson-inf… · 2026/9/25 5:47:00

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码