来源说明:本文依据 Awesome QA Skills 的 AI Agent Testing Prompt 和 Skill 整理。重复试验示例、质量循环、图示和 FAQ 是帮助读者应用原要求的编辑性展开;可靠性结论仍须依据项目重复方案和实际轨迹证据。

AI 智能体测试既看任务有没有完成,也要核对它是怎么完成的。每个测试都需要任务成功 oracle(预先定义、用来判断目标是否达成的标准)和运行轨迹(按 run/step ID 记录每一步操作和工具交互)。看起来合理的答案仍可能掩盖步骤跳过、越权调用、记忆污染或错误的停止决策。

新手入门:从一个受限任务开始

  1. 先选一项范围清楚的多步任务,写明成功标准、允许使用的工具和资源、禁止的副作用与停止条件。
  2. 审计输入的完整性、可信度、时效性和可比性:记录哪些已确认、缺失、冲突、可能过时或超出范围,哪些只是暂时假设;注明来源、版本和证据状态,也记录环境、时间预算及不可触碰的边界。
  3. 固定样本 ID,并记录模型、Prompt、工具、数据与环境版本;涉及敏感数据时先脱敏或使用隔离环境。
  4. 运行时保留 run/step ID、工具参数、授权决定、响应和状态变化;没有轨迹时不要推断执行过程。
  5. 分别判断最终结果、过程约束和证据完整性。单次运行只报告这次观察,不据此判断可靠性。

定义任务目标和允许路径

每个样本记录任务 ID、成功 oracle、允许使用的工具与资源、禁止的副作用和停止条件,再把最终结果与 run/step 轨迹对照。

维度观察什么最终答案可能掩盖的问题
任务结果是否满足预先定义的成功 oracle结果看起来完整,但不满足真正目标
规划步骤顺序、依赖关系和新信息到来后的调整跳过前置步骤,或无依据地改变计划
跨步骤一致性约束、状态和用户目标是否在多步间保持一致后续步骤丢失早先限制或使用过时状态
工具使用工具选择、参数、权限和结果解释通过不安全或无关的调用得到表面正确的答案
记忆哪些状态会保留、重置或泄漏上一用户或上一任务的数据影响当前运行
恢复步骤失败后的重试、降级和人工交接重试产生重复副作用(幂等性问题),或阻塞后仍继续执行
终止成功、目标失败、预算耗尽、取消、安全阻断或环境错误把缺少终止证据误当成任务完成
成本与时延实际消耗与项目定义的预算或目标只看答复质量,忽略运行成本或超时

工具权限要与安全边界一起核对。项目没有给出成本、时延或通过门槛时,将它们列为待确认,不自行设定数值。

对可能波动的行为重复试验

固定样本 ID,记录模型、Prompt、工具、数据和环境版本,并按项目提供的重复方案执行,不自行编造样本门槛。按样本报告通过/失败次数,并标出偶发失败。一次成功只证明观察到一次成功,不证明可靠性。

例如,一个多步客服任务可能给出正确的最终答复,但轨迹显示它查询了未获授权的数据,那么过程检查仍应失败。任务结果正确性和过程合规要分开判定;任一不满足,都可能导致整体不能通过。保留 run 和 step ID,方便复核决策过程。

可以把一次多步任务按同一 sample ID 记录:预先写下成功 oracle、允许的工具与资源、禁止的副作用和终止条件;运行时保存模型、Prompt、工具、数据与环境版本,再把每个 step 的输入、调用参数、授权决定、工具响应和状态变化关联到 run ID。下面的记录只用于说明:

观察结果解释
最终答复符合 oracle,且每一步都满足该用例定义的过程断言这次运行满足该用例的结果和过程条件
最终答复正确,但轨迹包含未获授权的数据查询过程失败,不能用答案正确抵消
最终答复看似正确,但关键 step 或终止记录缺失证据不足,无法判断完整执行路径

这张表说明的是单次运行结果;重复试验应按项目方案执行并逐次报告,再判断表现是否稳定。

每个用例都要有 oracle 和证据

先建立与输入相关的风险或失败模型,再将高优先级问题转成候选用例。每个用例写明前置条件、动作或刺激、预期行为及所需证据。把静态分析、设计用 fixture 和真实运行分开。如果项目没有给出成功标准、权限或停止门槛,应列为待确认问题,不要自造规则。

按项目风险规则使用 P0/P1/P2/P3 或等价分级,并说明优先级依据。每个结论关联来源、证据状态和验证方法;高风险项还应列出责任角色或下一步。高影响、高概率或难以探测的失败路径应优先设计,但不能把优先级当成已验证的严重度。

交付物可以包括能力矩阵、任务集、轨迹断言、安全与恢复场景、评分规则、观察指标、阻塞项和下一步。确认事实、当前假设和未知项都要保留。这个 Skill 帮助组织验证工作,不会为 Agent 或发布背书。

工具契约和副作用的细项见智能体工具调用测试:https://inaodeng.com/zh-cn/qaskills/agent-tool-testing/;产品内置 AI 功能见 AI 功能测试:https://inaodeng.com/zh-cn/qaskills/ai-feature-testing/;不可信指令与攻击路径见提示注入测试:https://inaodeng.com/zh-cn/qaskills/prompt-injection-testing/。

重点:把 Agent 测试纳入质量循环

每轮都保留同一组样本和原始轨迹,用证据判断测试方法或系统改动是否有效:

AI 智能体测试质量循环:固定任务与约束,按计划运行样本,复核最终结果和 run/step 轨迹,分类缺口并修订用例或环境,再用相同样本回归

  1. 固定基线: 保存任务、成功 oracle、允许工具、禁止副作用、停止条件、模型与环境版本。
  2. 按计划运行: 使用项目指定的重复方案;没有方案时先标待确认,不自设样本数量。
  3. 联合复核结果与轨迹: 将最终答案与每个 step 的输入、调用、授权、响应和状态变化关联起来。
  4. 分类失败和缺口: 区分任务规则、Prompt、工具契约、记忆、恢复、环境波动和证据缺失。
  5. 修订一个有依据的因素: 记录变更版本与理由,保留原始失败样本。
  6. 回归原样本并加入新样本: 报告每次结果和偶发失败;没有运行的项目仍标记未执行。

最佳实践:让结果和过程都可复核

  • 用来源明确的成功 oracle 评估任务结果;将过程合规、权限和副作用单独判定。
  • 先覆盖高影响、高概率或难探测的风险,再逐步扩展能力和环境组合。
  • 保存全部 run/step 证据和版本信息,不挑选单次成功作为可靠性结论。
  • 涉及生产、安全或隐私时使用最小权限、脱敏数据、mock 或隔离环境。
  • 把停止、升级、回滚和人工接管条件写进场景;缺少条件时先标待确认。

安装与调用

安装 Skill:

npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh/testing-types/ai-agent-testing

提供任务目标、成功 oracle、允许的工具和资源、禁止的副作用、停止条件,以及脱敏的 run/step 轨迹。先从一个边界清楚的样本开始:

请用 ai-agent-testing 评审下面这个多步任务。任务目标与成功 oracle:[…]
允许使用的工具和资源:[…]
禁止的副作用与停止条件:[…]
已有的脱敏 run/step 轨迹:[…]
请分别判断结果是否符合 oracle、过程是否满足约束;列出缺失证据和待确认项,不要自行补造通过阈值,也不要把设计用例说成已执行测试。

常见问题

最终答案正确,就算这个用例通过吗? 不一定。还要检查轨迹是否满足用例中的权限、工具、步骤和停止条件;如果关键轨迹缺失,应标为证据不足。

要重复运行多少次? 按项目已经定义的重复方案执行。若方案或稳定性门槛未提供,先列为待确认,不要自行设定次数或通过阈值。

没有 run/step 轨迹,能判断 Agent 过程合规吗? 不能。可以评审任务设计或现有输出,但过程判断应标记为证据不足,并说明最小需要补充的轨迹。

参考

分享