本课目录(25 节)
- **4.1.1 什么是智能体调试与评测**
- (1)为什么不能等搭完再测?
- (2)单次调试与批量评测的区别
- **4.1.2 单次调试:边搭边测、逐轮验证**
- **(1)单次调试的五步法**
- (2)**如何根据单次结果定位问题**
- **4.1.3
- (1)什么时候需要评测集
- (2)评测任务
- a.新建评测任务
- **第一步:基准评测配置**
- 裁判模型打分:
- 规则打分:
- 代码打分:
- 仅输出结果不打分:
- **第二步:对比评测配置**
- 不进行对比评测(默认) :
- 多模型对比评测:
- 多提示词对比评测:
- **是否进行对比打分**
- b.查看评测报告
- c.评测结果标注
- **4.1.4 调试—优化—评测—回归的完整闭环**
- 从“可评测”到“可上线”:交付与运维清单
- **4.1 小结**
4.1 智能体调试与评测基础
智能体调优不是等应用全部搭完后再“统一验收”。真实项目里,更常见的做法是:搭建过程中先在测试环境里一条一条试问、逐个节点排查;应用基本成型后,再用评测集做批量验证、效果对比和回归评测。
本 节 学 什 么
学完这一节,你应该能区分“单次调试”和“批量评测”的使用阶段;能在测试环境里围绕用户输入、知识命中、变量、节点输出、工具调用和最终回复进行单轮排查;能判断什么时候需要建立评测集;能理解“调试—优化—评测—回归”的完整闭环。
4.1.1 什么是智能体调试与评测
智能体调试与评测不是同一件事。调试更像“边搭边修”,评测更像“阶段验收”。前者解决当前链路是否跑通、某个问题为什么答错;后者解决一批样本下整体效果是否稳定、某个版本是否比另一个版本更好。
| 概念 | 发生阶段 | 典型动作 | 主要产出 |
|---|---|---|---|
| 单次调试 | 搭建过程中,每配置一个关键能力后。 | 在测试环境输入一条问题,查看命中知识、变量流转、节点输出、工具调用和最终回复。 | 定位具体问题,并立即修改 Prompt、知识库、节点或工具配置。 |
| 批量评测 | 应用基本成型后,上线前或重要版本变更后。 | 用评测集批量运行几十到几百条样本,结合自动打分和人工标注分析结果。 | 形成效果指标、Badcase 列表、上线依据和回归结论。 |
核心判断
搭建阶段不要急着做大规模评测。先用单次调试把主链路跑通,把明显错误修掉;等应用能力基本稳定后,再用评测集做覆盖性验证。
(1)为什么不能等搭完再测?
智能体应用往往由 Prompt、知识库、工作流节点、工具接口、变量、模型参数等共同组成。如果等到全部搭完才开始测试,问题会叠在一起,排查成本会非常高。
-
问题来源会变得难以归因:同一个错误可能来自 Prompt、知识没命中、节点变量为空、工具返回异常或模型输出格式不稳定。
-
修改成本会被放大:越晚发现问题,越可能牵连后续节点、数据结构和业务流程。
-
演示样例容易产生误判:少数几个问题答对,不代表真实用户的大量问法都能稳定处理。
-
上线风险不可控:缺少单次调试和批量评测,无法说明应用是否达到了业务验收标准。
| 错误做法 | 推荐做法 |
|---|---|
| 先把所有模块一次性搭完,再统一测试。 | 每完成一个关键环节就做单次调试,确认输入、输出和变量都符合预期。 |
| 只看最终回复是否“差不多”。 | 同时看中间链路:知识命中、节点输出、工具调用、异常兜底和最终答案。 |
| 只用几条演示问题判断效果。 | 演示问题用于快速调试;成型后用评测集做覆盖性验证。 |
(2)单次调试与批量评测的区别
单次调试和批量评测不是替代关系,而是先后衔接。单次调试解决“当前问题为什么不对”,批量评测解决“整体效果是否稳定”。
| 维度 | 单次调试 | 批量评测 |
|---|---|---|
| 使用时机 | 搭建过程中,高频发生。 | 应用基本成型后,上线前或重要改版后。 |
| 样本数量 | 一次 1 条或少量问题。 | 几十到几百条评测样本。 |
| 目标 | 定位具体链路问题。 | 衡量整体效果、版本差异和上线风险。 |
| 观察重点 | 日志、变量、节点、工具、最终回复。 | 准确率、召回率、命中率、完成率、满意度、响应时长、Token 成本。 |
| 结果形式 | 调试记录和修改动作。 | 评测报告、Badcase 列表、指标趋势和回归结论。 |
实际项目中的推荐节奏是:先用单次调试把主链路跑通,再用小样本做专项验证,最后使用评测集做批量评测。
4.1.2 单次调试:边搭边测、逐轮验证
测试环境的价值,是让搭建者在不影响正式用户的情况下,反复输入问题、观察链路、修改配置并验证结果。单次调试不是随机问一句,而是带着明确目的去试。
(1)单次调试的五步法
-
明确本轮调试目标:是看知识是否命中、Prompt 是否有效、工具是否可用,还是流程节点是否能跑通。
-
输入一条可解释的问题:问题不要太随机,最好能对应某个知识点、流程节点或边界条件。
-
观察完整链路:不仅看最终回复,还要看中间变量、检索结果、节点输出和工具返回。
-
记录问题与修改动作:每次只改一个主要变量,避免同时改 Prompt、知识库和流程导致无法归因。
-
重新试跑验证:确认问题是否被修复,同时用一两条相邻问题检查是否引入新问题。
常见的调试问题类型可参考下表:
| 调试问题类型 | 适合验证什么 |
|---|---|
| 标准问题 | 验证主路径是否跑通。 |
| 口语化问题 | 验证意图理解和同义表达。 |
| 缺少信息的问题 | 验证是否会追问必要字段。 |
| 边界问题 | 验证拒答、转人工或合规边界。 |
| 复杂组合问题 | 验证多知识、多节点或多工具协同。 |
调试习惯
每次单次调试建议保留“问题、期望结果、实际结果、定位原因、修改动作、复测结果”六项记录。后续建立评测集时,这些记录就是最有价值的样本来源。
(2)如何根据单次结果定位问题
每次在测试环境里进行单次调试时,最终回复只是整条执行链路的最后结果。一个回答不符合预期,并不一定意味着 Prompt 写得不好,也不一定说明模型能力不足。智能体运行过程中还包含意图识别、知识检索、变量传递、节点执行、工具调用、格式生成、异常兜底等多个环节,任何一个环节出错,最后都可能表现为“回答不对”。
因此,单次调试的重点不是反复追问,直到某一次回答看起来满意,而是要根据问题现象反推最可能出错的环节。比如,同样是“回答错误”,可能是意图识别走错了分支,也可能是知识库没有命中;同样是“流程失败”,可能是变量没有提取出来,也可能是节点条件判断写错;同样是“输出格式不稳定”,可能是 Prompt 没给清楚格式约束,也可能是后续解析逻辑缺少容错。
下面这张表可以作为搭建过程中的单次调试快速诊断表。使用时,先观察本轮试跑中最明显的问题现象,再根据表格中的“优先怀疑”判断应该先检查哪一层配置,最后按照“排查动作”进入对应位置查看日志、变量、检索结果、节点输出或工具返回。
| 问题现象 | 优先怀疑 | 排查动作 |
|---|---|---|
| 回答方向完全错 | 意图识别、系统 Prompt、分支判断。 | 检查用户问题进入了哪个分支;看 Prompt 是否明确任务边界。 |
| 知识库里有答案但没有命中 | Chunk 切分、检索数量、相似度阈值、关键词表达。 | 查看检索结果;尝试同义问法;检查文档标题、FAQ 和 Chunk 内容。 |
| 命中了知识但回答仍错误 | Prompt 未要求基于引用回答,模型自由发挥过多。 | 强化“仅依据命中内容回答”;增加引用要求和不确定时的兜底策略。 |
| 流程走错节点 | 条件判断、变量提取、节点连接。 | 查看关键变量值;确认条件表达式和节点顺序。 |
| 工具调用失败 | 工具入参、权限、接口状态、返回格式。 | 检查入参字段、账号权限、接口返回和异常分支。 |
| 输出格式不稳定 | Prompt 格式约束不足,缺少示例或解析保护。 | 补充输出模板、字段说明、示例和 JSON 容错策略。 |
| 回答太慢或成本太高 | 上下文过长、检索过多、节点过多、模型选择过重。 | 减少无效上下文;拆分节点;控制检索数量;选择更合适的模型。 |
**4.1.3
评测集:批量测试**
(1)什么时候需要评测集
评测集的作用,是用一批相对稳定、可重复运行的样本,验证智能体在核心场景下的整体表现。它不是用来替代搭建过程中的单次调试,也不是越早建立、越大越好。
在应用刚开始搭建时,需求、Prompt、知识库、Workflow、工具调用方式往往都还在变化。如果这时就投入大量精力设计完整评测集,很容易出现两个问题:一是评测样本很快过期,二是评测结果难以归因。比如应用主链路还没跑通时,批量评测失败并不能说明模型效果差,可能只是变量没传、知识没接好、工具没配置成功。
因此,评测集更适合在应用主链路基本稳定、核心场景已经明确后建立。它主要用于三类任务:
-
覆盖性验证 :确认高频问题、复杂问题、边界问题是否都能稳定处理。
-
版本对比 :确认 Prompt、模型、知识库或 Workflow 调整后,新版本是否真的更好。
-
回归验证 :确认修复旧问题后,没有引入新的错误。
下面这张表可以作为判断是否需要建立或更新评测集的参考。
| 触发条件 | 说明 | 建议动作 |
|---|---|---|
| 应用即将上线 | 需要证明核心问题能稳定回答或处理。 | 建立覆盖高频问题、复杂问题和边界问题的上线评测集。 |
| Prompt 或模型发生重要变更 | 需要确认新版本是否比旧版本更好。 | 使用同一批样本做对比评测,避免只凭主观体验判断。 |
| 知识库大规模更新 | 新增、删除或重构文档可能影响命中结果。 | 跑知识类回归样本,检查命中率和答案准确性。 |
| Workflow 或工具链路调整 | 节点拆分、变量、接口或权限变化可能引入新问题。 | 跑流程类样本,检查完成率、异常兜底和输出格式。 |
| 线上出现集中 Badcase | 真实用户反馈说明原评测覆盖不足。 | 把 Badcase 清洗后沉淀回评测集,作为下一轮回归样本。 |
(2)评测任务
a.新建评测任务
新建评测任务主要分为两个步骤:基准评测配置和对比评测配置,在下文中进行详细说明。
第一步:基准评测配置
基准评测配置支持选择评测集,根据应用配置批量运行以获取结果,并设置评分方式,支持裁判模型、规则或代码等多种评分方式。无论选择哪种评分方式,运行后的结果均支持批量下载和界面人工标注。
提示
- 说明:
- 名称: 评测任务的名称,20字以内,不可重复。
- 评测集: 用于运行应用批量评测任务的评测样本集合。可选择已上传的评测集,支持多选,最多不超过5个。选择的评测集列名必须保持一致,否则系统会提示错误。
- 打分方式: 选择对批量运行后的评测集结果的打分方式,包括:裁判模型打分、规则打分、代码打分、仅输出结果不打分。
🖼 图:4.1-01 智能体调试与评测基础
裁判模型打分:
通过大模型评估评测集批量运行结果,包含裁判模型和裁判提示词两部分:
裁判模型:选择作为大模型裁判的模型,支持选择不同模型,并可配置模型参数。
裁判提示词:用于对评测结果进行打分的模型提示词,支持通过快捷键引入评测集中的查询(query)、预置列、自定义列、应用的输出内容以及其他系统变量。请确保裁判模型提示词与评测集内容的匹配程度,以保证裁判模型能够正确打分。例如,若按照参考答案进行打分,则需要在评测集中上传参考答案(例如:reference_output)。同时支持点击模板,查看提示词模板库中更多适合的提示词。
注意:
裁判模型打分会产生token消耗,请在严格验证提示词准确性后再启动任务,以避免不必要的消耗。
规则打分:
按照预定义的规则对输出结果进行打分。支持单条规则和多条规则组合 。
代码打分:
通过编写代码对输出结果进行打分,目前支持Python语言。可直接引用评测集中的 query 、预置列和自定义列。
仅输出结果不打分:
仅批量运行评测集,不进行任何打分,直接输出结果。选择此方式时,相当于执行任务批处理。
第二步:对比评测配置
对比评测功能用于在同一应用内对多组模型或多个提示词进行效果对比,帮助快速评估不同配置在相同任务下的表现差异。支持的对比方式包括:
-
不进行对比评测
-
多模型对比评测
-
多提示词对比评测
该功能仅支持标准模式的应用。在选择进行对比评测时,可对对比结果进行以下处理方式:
-
仅输出多个结果:生成多个结果,不进行对比打分。
-
对比打分:使用裁判模型对每条样本的多个结果进行评分。
不进行对比评测(默认) :
按照当前应用的测试环境配置运行,不进行模型或提示词的对比。
多模型对比评测:
支持添加最多2组对比模型,与当前配置模型进行对比。如果对比模型与当前配置模型相同,系统会提示错误。
多提示词对比评测:
支持添加最多2组对比提示词,与当前配置提示词进行对比。如果对比提示词与当前提示词相同,系统会提示错误。
是否进行对比打分
-
仅输出多个结果,不进行对比打分 (默认) :仅输出多组对比结果,不进行优劣判断。
-
对每条样本的多个输出结果,使用裁判模型进行对比打分 :基于多个版本的运行结果,使用裁判模型进行对比打分,判断优劣。需要选择对比打分裁判模型和对比打分裁判提示词,和裁判模型以及裁判提示词类似。
b.查看评测报告
跑批完或评测完后可以查看报告,报告中包含基本信息、评测配置信息、基准评测结果、对比打分评测结果、基准评测性能报告、对比评测性能测试报告等内容并支持输出图表,将已有的测试结果数据进行可视化展示。
c.评测结果标注
评测任务完成后,用户可对运行结果进行人工标注,以提升评测的准确性和参考价值。标注后的结果将体现在评测报告和下载的结果文件中。
🖼 图:4.1-02 智能体调试与评测基础
注意:
- 建议在应用评测进行过程中,不要对知识库内容进行更改,包括新增和导入、删除和修改知识库设置,避免影响评测结果。
- 不建议对 Plan-and-Execute 协同方式的 Multi-Agent 应用进行评测,该模式下无法进行完整的应用评测。
4.1.4 调试—优化—评测—回归的完整闭环
一个稳定的智能体,不是一次搭建出来的,而是在不断调试、优化和回归中逐步稳定下来的。
| 阶段 | 主要动作 | 判断标准 |
|---|---|---|
| 单次调试 | 在测试环境逐条试问,查看链路和输出。 | 主链路能跑通,明显错误能定位。 |
| 专项优化 | 根据问题类型调整 Prompt、知识库、RAG、Workflow、Agent 或工具配置。 | 修改后同类问题明显改善。 |
| 批量评测 | 使用评测集批量运行,结合自动评测和人工评测分析结果。 | 关键指标达到上线或阶段验收标准。 |
| 回归验证 | 每次重要修改后重新运行核心样本。 | 修复旧问题的同时,没有引入新的高风险问题。 |
| 运营沉淀 | 把线上 Badcase、人工标注和高频问题补充进评测集。 | 评测集持续覆盖真实业务变化。 |
从“可评测”到“可上线”:交付与运维清单
| 阶段 | 必须完成的动作 | 交付证据 |
|---|---|---|
| 上线前 | 定义业务基线、测试集和验收指标;验证峰值并发下的响应时间、成功率和稳定性;确认权限、降级、转人工、监控和回滚方案。 | 测试集结果、性能/压测记录、问题清单、修复记录、剩余风险与上线建议。 |
| 灰度上线 | 先限定用户或流量范围,观察回答准确率/采纳率、问题解决率、转人工率、点踩/满意度、接口错误率和响应时延。 | 灰度日报、异常记录、反馈列表和是否扩大范围的决策。 |
| 客户培训 | 除功能演示外,明确适用场景、不适用边界、高风险问题处理流程、常见问题和反馈渠道。 | 培训材料、操作手册、边界说明和问题升级联系人。 |
| 持续运营 | 收集反馈并分级,进入“问题定位—修复—回归—迭代发布—效果复测”闭环;重要变更可灰度后再全量。 | 版本记录、回归报告、发布记录和指标趋势。 |
| 范围变更 | 客户临时增加大量场景时,先评估资料、接口、工期、安全和验收影响,再走范围变更或分期交付。 | 变更影响评估、双方确认的新范围和阶段里程碑。 |
提示
**生产环境出现高风险错误时:**第一响应不是继续调 Prompt。先确定受影响的用户、版本和场景,必要时限制入口、关闭相关能力或降级到人工;同时保留请求、命中知识、工具调用和输出日志。随后分析根因、制定修复措施,用回归样本复测并记录处理结果,再决定恢复范围。
提示
**日志也属于受保护数据:**只采集定位和运营所需的最小范围,对姓名、手机号、证件号、薪资、健康等敏感字段脱敏;限制可访问人员,明确保留周期和删除机制,并在适用场景完成告知与授权。日志不能因为“用于调优”而无限期、全量保存。
本 节 结 论
智能体调试与评测的正确顺序是:搭建过程中先做单次调试,应用成型后再做批量评测;调试解决具体问题,评测证明整体效果;每次优化后都要做回归,才能避免“修好一个问题,又引入三个新问题”。
4.1 小结
-
调试发生在搭建过程中,重点是单次验证和链路排查。
-
评测发生在应用基本成型后,重点是批量样本、指标分析和上线依据。
-
单次调试不要只看最终回复,还要看知识命中、变量、节点、工具和性能。
-
评测集应来自真实业务问题、调试记录和线上 Badcase,而不是凭空编一批题。
-
每次重要优化后都要做回归,确保整体效果持续变好。
提示
进 入 下 一 节 下一节 4.2「Prompt 与模型效果调优」会继续讲:当单次调试发现模型理解、执行、表达或格式控制有问题时,应该如何设计 Prompt、选择模型并验证优化效果。
随堂测
逐题作答,即时反馈
1. 关于单次调试与批量评测的区别,下列说法与本课一致的是?
2. 本课给出的“单次调试五步法”,正确顺序是?
3. 关于 ADP 评测任务的配置,下列说法与课文一致的是?