工具调用成功,不代表任务有所进展。智能体循环测试会逐轮对照计划、动作、观察和目标,检查是否得到新证据、状态是否前进,还是只在重复操作。
为什么需要这个 Skill
研究型智能体可能不断回到一个被阻断的发布者页面,同时消耗预算。如果没有逐轮轨迹,复核者只能看到最终答案,无法判断策略从哪里停滞、重试是否符合规则,或智能体为什么停止。
Skill 能帮助你评估什么
使用智能体循环测试 Skill 按证据步骤复核循环:
- 记录 task、run、step ID,计划,工具名和归一化参数,观察身份或摘要,目标相关的状态变化,以及累计时间或费用。
- 将新观察与上一轮状态比较。只有目标相关的新证据或状态前进才算进展;工具成功返回或重复输出文字本身不算。
- 核对项目提供的无进展上限、重试策略、时间和费用预算,以及经授权的停止、改变策略或升级分支。
- 报告触发步骤、终止类别、剩余工作,以及没有产生额外副作用的证据。
Awesome QA Skills: https://github.com/naodeng/awesome-qa-skills 按语言和测试阶段组织 Skill;系列总览:https://inaodeng.com/zh-cn/blog/ai-testing/introduction_of_awesome_qa_skills/ 介绍了通用安装方式。
范围与限制
这个 Skill 复核循环行为和对应轨迹,不替代工具业务契约、支付故障恢复、模型质量或人工安全判断。它不会虚构迭代上限、从最终答案推断隐藏状态,也不会把计划、静态复核或 dry-run 当成执行证据。若项目没有提供硬性上限,应由负责人确认,不能由测试人员自行设定。
需要审计的输入
| 输入 | 需要确认什么 | 缺失时怎么处理 |
|---|---|---|
| 目标与成功标准 | 哪些证据或状态可以证明任务完成? | 请负责人定义可核验的完成条件 |
| 循环轨迹 | 每轮计划、动作、观察和状态变化分别是什么? | 不要从最终答复倒推进度 |
| 上限与策略 | 项目规定了什么无进展、重试、时间和费用规则? | 标记规则缺失,不编造门槛 |
| 安全与取消规则 | 哪些信号要求立即停止? | 未确认授权规则前保持阻塞 |
| 证据处理 | 如何归一化参数并脱敏敏感值? | 隐去机密,同时保留去重和比较依据 |
把证据标记为 known、missing、conflicting、stale、out_of_scope 或 assumptions。每个假设都要注明验证方式。
建立循环轨迹
| 轨迹字段 | 复核问题 |
|---|---|
| 计划与 step ID | 本轮想获取或改变什么? |
| 工具与归一化参数 | 这是否与之前的操作实质相同?脱敏机密,同时保留安全的比较指纹。 |
| 观察身份 | 这是新结果,还是同一个被阻断或空结果? |
| 状态变化 | 目标相关证据或业务状态前进了吗? |
| 累计预算 | 已使用多少时间和费用?项目上限是多少? |
| 决策 | 继续、改变策略、停止还是升级?哪条规则授权了该决策? |
如果动作和观察重复,且目标相关状态没有前进,就记录为无进展周期。重试本身不一定有错,但必须有项目授权的理由、明确上限,以及能和前次区分开的证据。
案例:研究智能体反复访问被阻断的来源
这是设计示例,不是运行结果。研究智能体需要收集三个符合项目权威性标准的来源。某个发布者页面无法访问,轨迹显示智能体不断回到该页面。
场景与决策门槛
| 阶段 | 前置条件或刺激 | 预期复核决策 | 证据与停止条件 |
|---|---|---|---|
| 首次被阻断 | 发布者页面返回无法访问的观察结果 | 记录结果和状态变化,不要判定任务完成 | 保存 step ID、归一化请求、观察摘要和已使用预算 |
| 再次尝试 | 相同路径没有带来新来源证据 | 记为无进展周期,并应用项目规定的尝试上限 | 达到配置上限时停止重复;未规定上限则请负责人补充 |
| 改变策略 | 来源仍然无法访问 | 按授权分支改查官方仓库或注册表等来源 | 记录新来源如何满足既定权威标准 |
| 完成检查 | 已收集候选来源 | 按目标逐项核验,不以智能体说“完成了”为依据 | 只有满足文档化的成功条件才能停止;触及硬预算或安全条件时交接 |
| 结果未决 | 证据或预算不足 | 按项目策略停止或升级 | 报告剩余工作、未解决证据、终止类别和无额外副作用的证据 |
示例发现契约
源提示词规定发现编号为 ALT-##。以下示例只展示字段和证据状态,不是已测量的问题:
| 字段 | 示例 |
|---|---|
| 编号与触发条件 | ALT-01 —— 重复访问被阻断的发布者路径,没有获得新来源证据 |
| 预期关注点 | 对比步骤之间没有目标相关的状态前进 |
| 证据状态 | 拿到运行轨迹和项目上限前,状态为 UNASSESSED |
| 影响与优先级 | 解释决策成本或用户影响;缺少项目依据时为 NOT_SCORED |
| 负责人和关闭条件 | 指定智能体或工作流负责人;可重复的轨迹核对证明已按授权分支停止或改变策略后关闭 |
| 验证 | 比较 step ID、归一化参数、观察摘要、状态变化、预算与终止记录 |
交接给下一阶段
交付目标及成功规则、轨迹版本、证据状态、无进展与预算策略、触发步骤、终止类别、剩余工作、负责人、关闭条件和最小验证动作。对于工具副作用,要写清核对了什么,还有哪些未知项。
下一位复核者应能看懂智能体为何继续或停止,无需猜测。若缺少硬性上限或安全决策,应交接待决问题,不要把自创默认值写进测试方案。
相关 Skill
- AI 智能体测试:https://inaodeng.com/zh-cn/qaskills/ai-agent-testing/;提供更广泛的行为与目标上下文。
- 超时测试:https://inaodeng.com/zh-cn/qaskills/timeout-testing/;检查时间边界下的停止与失败行为。
- 智能体故障恢复测试:https://inaodeng.com/zh-cn/qaskills/agent-failure-recovery-testing/;处理动作失败后的恢复;循环测试关注的是多轮任务中的进展和终止。
容易踩的坑
- 只数迭代次数,不比较目标相关状态。
- 把工具成功调用或流畅回答当成进展证明。
- 项目没有设限时自行编造重试或预算门槛。
- 重复访问被阻断的操作,却不记录触发点、策略变化或停止理由。
- 记录未经脱敏的原始参数,而不是安全归一化后的比较结果。
安装与调用
安装单个 Skill,并提供任务目标、循环策略和轨迹证据:
npx skills add https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh --skill agent-loop-testing
请使用 agent-loop-testing Skill。
任务:评估研究智能体在收集三个可靠来源时反复访问被阻断的发布者页面
输入:[成功标准、循环策略、task/run/step 轨迹、观察结果、时间或费用记录]
范围:[纳入或排除的循环与工具]
未知项:[缺失的无进展上限、证据、来源标准或权限]
期望输出:[按风险排序的 ALT-## 发现、轨迹缺口、终止决策和验证步骤]
区分事实、推断、建议和 Human 决策。不要编造门槛或声称证据中不存在的运行记录。
常见问题
每次重复调用工具都代表循环失效吗?
不代表。要比较观察和目标相关状态。若授权策略允许且理由充分,重试可以成立;没有进展的相同动作和证据才是需要复核的信号。
项目没有设定无进展上限怎么办?
不要自行发明。记录规则缺失并指出负责确定上限的人;规则确认前,把具体停止门槛标为未评估。
智能体无法推进时应返回什么?
提供有边界的交接:阻塞条件、已经尝试的策略、仍缺少的证据、剩余工作,以及继续前需要的人工或系统动作。
参考
源 Skill 与执行契约
Agent Loop Testing 提示词:https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh/testing-types/agent-loop-testing/prompts/agent-loop-testing.md;定义输入审计、轨迹流程、`ALT-##` 发现契约和输出顺序。源目录:https://github.com/naodeng/awesome-qa-skills/tree/main/skills/zh/testing-types/agent-loop-testing;包含入口文件与配套材料。
- 智能体循环测试详情:https://inaodeng.com/zh-cn/qaskills/agent-loop-testing/
- Awesome QA Skills: https://github.com/naodeng/awesome-qa-skills