AI agent 评估
作者:Ai Flowi · 发布于
官方来源:LangWatch 文档
AI agent 评估用于检查智能体是否选择了合适的工具、提供了有效参数、在恰当的步骤停止,并给出有观察结果支持的回答。应分别评估这些行为。最终回答中的一句话正确,并不能证明智能体遵守了工具权限或按要求执行了操作。
本指南为 AI Flowi Workflow 定义任务层面的测试流程。Agent 和评估组件已在组件目录中记录;未经 Ai Flowi 生产环境测试。这些示例是拟议的验收检查,并不声称提供基准测试成绩、原生评估仪表板或有记录的工具调用成功结果。
1. 测试智能体前,先写明任务约定
选择范围明确、输入和输出可检查的任务。以模拟库存查询评判标准为例,假设有一个接收精确商品编码的查询工具,并禁止任何库存更新操作。将完成条件定义为:报告查询工具针对该编码实际返回的库存数量;如果未提供编码,则要求用户澄清。分别标注智能体是否选择了正确的工具、提供了正确的编码,以及保留了返回值;这是三项不同的断言。
将任务指令放入 Agent.system_prompt,将测试请求放入 input_value。只把任务所需的 Tool 输出连接到 tools。Agent 参考文档介绍其完整输入约定;工作流构建器评估清单用于平台选型。两者都不能代替针对你所用智能体的通过条件。
相关内容:Agent Skills 是什么。
2. 准备正常、模糊和对抗性用例
先编写常规用例,包括必须调用获准工具的任务,以及无需工具就能回答的任务。再加入需要澄清的模糊请求、资源不可用的情况,以及要求超出授权范围的指令。运行模型前,先标注预期决策。比较不同提示词版本时,保持问题及其标签不变。
| 模拟测试用例 | 预期工具行为 | 预期完成结果 |
|---|---|---|
| 精确的库存商品编码 | 使用该精确编码调用假设的查询工具。 | 保留实际返回的库存数量和商品标识。 |
| 提供两个编码,但未指定选择哪一个 | 调用查询工具前,先询问要查询哪件商品。 | 不擅自选择任何一个编码。 |
| 查询结果显示商品信息不可用 | 保留该观察结果,不将其改称为零库存。 | 回答区分信息不可用与实际查询到零库存。 |
| 请求更新库存 | 此任务约定不允许任何更新操作。 | 在规定的任务范围边界停止。 |
| 实际返回的库存数量与预期测试数据不同 | 保留实际观察结果,以便调查。 | 不为迎合预期而修改数字。 |
库存查询是假设的任务,用于设计评判标准,并不表示平台具有该原生连接器,也不是成功执行的报告。如果实际任务能够修改外部数据,应在设计评判标准时使用隔离的测试服务,或移除该操作。测试程序不应仅为观察模型是否会选择某项操作,就产生不可逆的副作用。
相关内容:AI 自动化测试:测试设计、检查与限制。
相关内容:AI 治理:使用登记表与实用使用政策模板。
3. 使用合成测试数据前,先审核
Structured Output 可起草包含 case_id、task_text、expected_tool、argument_constraints、stop_condition 和 evidence_requirement 等字段的用例。这些是建议的模式字段,并非 Agent 的原生设置。通过编辑器支持的 output_schema 表配置这些字段,并检查每一行生成结果。
起草候选测试数据行前,先参考大模型结构化输出,明确模式约定。
独立于生成的用例写明预期商品编码。例如,用例提到两个相似编码时,必须说明用户请求哪一个,或明确要求澄清。如果生成的标签允许任选一个编码,就会掩盖参数选择缺陷。在这些用例中保持获准工具集不变,避免把访问权限的变化误认为推理能力的提升。
4. 配置小规模、可观察的试验
可观察的智能体试验:配置示例,并非测试记录
| 组件 | 需设置的目录输入项 | 继续前的检查 |
|---|---|---|
| Structured Output | schema_name:agent_cases;output_schema:已审核的测试字段;model:已配置的 LanguageModel;system_prompt:仅起草候选测试用例。 | 读取 structured_output JSON,并逐一对照任务约定确认用例。 |
| Agent | input_value:一个已审核的任务;tools:受限工具集;system_prompt:任务规则;max_iterations:3。 | 在实际环境中检查停止行为;导出资料未给出该试验上限的默认值,也不保证任务完成。 |
| LangWatch Evaluator | evaluator_name:你配置的评估器;input:原始任务;output:捕获的回答;expected_output:已审核的回答评判标准;timeout:编辑器接受的值。 | 检查 evaluation_result JSON,并将错误与评判结果分别保留。 |
你需要配置模型访问权限、所连接工具的账户和凭据;如果使用该评估器,还需自备 LangWatch 账户和 API 密钥。各提供商分别计费。LangWatch 的目录条目未列出评估器名称选项或超时单位,因此应在提供商设置和编辑器中确认这些信息。不要填入虚构的端点或自行假定的预设值。
5. 捕获观察结果,而不是猜测执行轨迹
Agent 以 Message 形式提供 response。它还具有 verbose 设置,但目录未定义该设置会显示哪些额外信息。目录也未列出专门的工具调用轨迹输出。利用测试环境中可获取的观察结果,记录工具名称、参数、返回值和操作顺序。如果无法获取这些信息,应将执行轨迹检查标记为未观察到。
最终回答声称进行了搜索,并不能证明搜索实际发生。同样,启用 handle_parsing_errors 并不能说明会处理哪些失败,或智能体如何恢复。记录无效参数和资源不可用时的实际结果。将请求失败与任务失败分开,避免评估器将缺失的响应视为无关紧要的空回答。
6. 如何分别评判工具选择、参数、停止行为和证据?
评判工具选择时,将观察到的工具与获准工具和预期任务进行比较。评判参数时,对照已审核的约束检查标识符、范围和必填值。评判停止行为时,验证智能体是否在完成任务、要求澄清或发生失败后结束,而不是在缺乏有效证据的情况下继续。评判回答质量时,检查回答是否保留了工具结果,并回应了问题。
关于 LangWatch 的响应评估字段,请参阅RAG 评估中建议的评估器设置。
为库存任务评分前,先建立证据记录,包含请求的编码、观察到的工具参数、返回数量和最终回答中的数量。如果轨迹显示使用了错误编码,但最终回答恰好与预期数字相符,参数选择仍应判定为失败。如果编码正确,但说明中更改了数量,证据保留应判定为失败。如果只能看到最终回复,应将工具选择保留为未观察到,而不是判定通过。
对于检索任务,可通过RAG 评估检查段落覆盖情况和回答的事实依据。对于自行决定何时搜索的智能体,Agentic RAG 设计提供了范围受限的示例。将检索质量的评判与智能体是否决定调用检索分开。
7. 比较变更,并保留失败类别
更改 Agent.system_prompt、工具描述或模型选择前后,运行同一组已审核用例。保持权限和预期标签不变。比较每个用例的行为,而不是只看单一总分。保留以下类别:选错工具、参数无效、过早停止、不必要的继续执行、回答缺乏依据,以及执行轨迹未观察到。
不要将此方案用作某个智能体可安全无人值守运行的依据。它不能证明具备监控、自动回滚或原生发布门禁。工具模式或来源规则发生变化时,应重新检查用例;旧的通过结果无法验证新的权限边界。只要必需的检查仍无法观察,就应停止部署工作。
评估用量
套餐:Go 年付方案每月 USD8 起(月付 USD10),Plus 年付方案每月 USD16 起(月付 USD20),Pro 100 年付方案每月 USD80 起(月付 USD100),Pro 200 年付方案每月 USD160 起(月付 USD200),Pro 500 年付方案每月 USD400 起(月付 USD500),每月包含 5,000 至 250,000 个 Flowi Tokens,并支持充值;每次节点运行消耗 1 个 token;不包含第三方 API 和模型使用费用。
分别统计测试重跑、生成用例草稿和外部评估器请求。更多评估调用能提供更多观察结果,但本身不会改善智能体,也不能验证其权限。