返回课程目录
用权限、恢复和成本控制自动化控制主线 · 6 / 12

AI Agent 何时继续、重试或停下?设计运行中的循环护栏

用可观察的进展、分开的轮次与成本预算、错误分类和写入去重规则,决定 Agent 每一步是继续、重试、换路径还是交给人。

所属问题主题Agent 架构与协作
本课完成物 · Agent 运行时循环护栏表更新于 · 2026年10月1日
本分支已读0 / 12
学习方式

先带着一个真实任务阅读,再完成页面中的工作台。能让另一位同事复核你的产物,才算完成本课。

一旦决定采用 Agent,仍然要回答更细的问题:看到这一步的工具结果后,下一步值得做吗? 一次循环可能顺利推进,也可能只是重复搜索、等待坏掉的接口,甚至把已经生效的写入再做一次。停止规则必须在运行中发挥作用,而不是等事故发生后才翻手册。

本页处理的是单次运行里的继续、改道、暂停与停止。固定工作流还是 Agent负责选择控制方式;工具调用契约规定单个工具怎样执行;恢复手册用于中断后的影响盘点与恢复。本页把这些约束应用到连续的每一步。

先定义完成证据,再判断是否有进展

不要用“模型觉得快完成了”表示进展。为当前任务写出可以从外部核对的完成证据,例如找到两份在指定日期内有效、来源不同的资料,或看到目标系统中出现唯一的预约编号。每一步还要记录上一次观察以后,证据集合究竟增加了什么、哪个阻碍被消除了。

对于只读研究,可把进展定义为新增的合格来源、被排除的错误假设,或问题范围的有效缩小。对于写入任务,进展是目标系统确认的状态变化,而不是模型又发出一条请求。相同查询反复返回相同内容,既没有新证据也没有改变计划,就应标为“无进展”;相同查询在资料更新后返回新证据,则不能仅凭调用名称相同认定卡死。

把四种预算分开记账

预算计量单位到线后的动作
模型轮次本次运行中的模型调用次数不再请求下一轮推理;输出已有证据与缺口
工具尝试每项具体操作的尝试与重试次数对该操作停止自动重试,改查状态或交人
实际时间从启动到当前的经过时间,包括等待到截止时暂停新动作,保存可复核结果
用量与费用模型请求、输入和输出 token,另记外部工具费用在剩余额度不足以完成下一步时停止或请人扩额

这些数值由业务自己决定,没有通用的“安全重试三次”。OpenAI Agents SDK 的 max_turns 限制模型循环轮次,不能代替每个工具的重试上限;其 usage 记录模型用量,也不自动包含所有外部工具账单。模型调用超时、工具调用超时和整项任务的截止时间也不是同一件事。若运行可以暂停再继续,预算必须累计,不能每次恢复都从零开始。

写护栏时同时写软提醒和硬上限。例如到预算的某个预警点,先检查剩余工作是否仍值得做;到硬上限则保存证据并停止新动作。具体数字应从试验案例、延迟要求和可接受成本倒推,而不是照抄框架默认值。

让每次观察进入同一张决策表

先问“任务是否已按验收标准完成”,完成就退出。未完成时,检查四类信号:新的可验证进展、错误能否通过同一操作的有限重试消除、下一动作是否可能产生重复外部效果,以及预算是否还允许这一步。建议把结果归入以下路径:

观察到的状态下一动作
有新证据,且下一步仍在授权和预算内继续,并写下预期的新观察
只读工具出现短暂的限流或网络故障在单工具上限内等待后重试;记录本次尝试
参数无效、资料明确不存在或权限被拒修正输入、换路径或停止;原请求不做原样重试
同一输入与同一结果重复,任务证据没有变化至多尝试一次有理由的新路径;无新路径则停下
写入超时,远端是否生效不明先查询权威状态;仍不明就暂停并交给负责人
需要人工批准、接近硬上限或已到截止时间不再启动新动作;提交证据、剩余问题和明确请求

暂时性错误与永久性错误不能混作“再试一次”。重试应指向同一项可安全重复的操作,带退避、次数和时间限制;整条任务从头重跑可能重复已经完成的步骤。真正的无进展也未必表现为错误码,所以要比较输入指纹、工具观察和任务证据,而不能只统计异常。

在副作用不明时,把重复写入关在循环外

读操作和写操作的重复风险不同。执行写入前保存业务对象、参数指纹、操作标识和预期结果;工具返回后记录已确认、明确失败或未知。若写入请求超时,Agent 不能把“没收到答复”当成“没有生效”。先按操作标识查询目标系统。只有证实未执行,或目标系统确实保证同一标识的安全重放,才可能再次提交。

Temporal 的文档说明,外部动作可能已经完成,执行者却在回报成功前中断,随后被重新执行。它也说明幂等键必须由被调用的服务落实。因而“我带了一个键”不是防重证明;还要知道键的作用域、保存时长和参数改变后的行为。该检查与单工具契约配套,但循环控制必须在每次实际下一步重新执行它。

案例一:区域市场扫描重复搜索

研究助理 Agent 需要找到某城市近一年的两份独立公开资料,支撑一份进入市场的简报。第一次搜索找到两篇合格报告;第二轮换了关键词,却仍只拿到同一两篇。第三轮又提出内容相近的查询。此时没有新增来源、没有排除新假设,也没有缩小问题;模型说“还在研究”不算进展。

团队在试验中可设示例上限:最多六次模型调用、每类搜索最多两次无新证据尝试,达到时间或费用上限就停。达到无进展条件时,Agent 保留两篇已核验资料,列出仍缺的竞争者或销量证据,向研究负责人提出一个可回答的缩小范围问题。它不应为了填满简报而编造第三个来源。复核者能从轨迹看出,每次搜索为什么可能带来新信息,以及为什么最终停止。

案例二:活动名额预约出现未知结果

社区活动助手为一位已批准报名的参与者预约工作坊名额。它发出一次预约写入后,连接超时。名额可能已经占用,也可能完全没有写入。循环里的下一步不是再发一次预约,而是用活动编号、参与者编号和该次操作标识查询预约状态。

如果目标系统确认已有唯一预约,任务完成;若明确没有记录且操作仍在有效期内,可按工具契约决定是否安全重试。如果查询仍不确定,Agent 暂停,把请求时间、参数、操作标识、查询结果和可能的通知状态交给活动负责人。负责人核对后再决定。这个案例的测试应覆盖预约成功但响应丢失、明确拒绝、限流、重复请求和审批过期,确保“未知”不会在下一轮被误判为“失败”。

用失败用例检查护栏是否真的生效

至少运行六类模拟:连续两轮相同搜索结果、读取工具限流、永久无效参数、写入后响应丢失、批准尚未到达、总用量先于模型轮次触顶。每个案例记录实际动作与预期动作,并由另一位同事检查停止时留下的材料。尤其要检查预算是在恢复后继续累计,还是错误地重新放行。

工作台的最小记录应包含任务完成证据、当前进展差异、四种预算、上次操作指纹、外部效果状态、允许的下一步、停止原因和接手人。它不是另写一份事故报告;它要让当前循环的下一次动作可以被许可或阻止。若要在结束后找出一次运行首次偏离验收条件的位置,使用逐事件轨迹复核表对齐提议动作、实际工具请求和权威结果。

常见问题

只设置最大轮次够吗?

不够。一个模型轮次可能包含多次工具调用,工具也可能在某轮内反复尝试。还要分别限制具体操作、实际时间和用量;接近上限时要输出已知事实及未完成部分。

停下是否表示任务失败?

未必。正确停止可以是“证据不足,交人缩小范围”,也可以是“外部效果未知,暂停防止重复”。要把部分结果和未知状态如实交付,而不是强行生成完整答案。

不适用边界

循环护栏不能替代底层工具的权限与幂等实现,也不能自动判断所有业务错误是否可重试。高影响动作仍需独立审批。若外部系统无法核查写入结果,应保持停止并交给有权人员;不要因为运行预算尚有余额,就继续尝试产生同类外部效果。

核验来源

这篇内容参考了哪些一手资料?

来源用于核对定义、风险边界或操作事实;判断框架和工作台由 AI Vista 独立编写。

  1. Anthropic Engineering — Building effective agents核验于 2026-10-01
  2. OpenAI Agents SDK — Running agents核验于 2026-10-01
  3. OpenAI Agents SDK — Usage核验于 2026-10-01
  4. Temporal documentation — Activity definition and idempotency核验于 2026-10-01

AI 工具可能协助研究、提纲和语言编辑;事实、案例和最终措辞由编辑复核。发现错误请通过联系页提交更正。

可带走的工具

Agent 运行时循环护栏表

依据可核验进展、分项预算与外部效果状态,决定下一步。

loop / guard
什么时候用Agent 每次拿到工具结果、准备决定下一动作时
填写后得到一项有依据的继续、重试、改道、暂停或停止决定及交接记录
使用顺序01—03
  1. 01
    写任务摘要用脱敏摘要写明要交付的结果。
  2. 02
    补齐判断字段写清输入类别、风险、证据位置和接手方式。
  3. 03
    交给同事复核对方能复述结论,工具才算完成。
完成信号字段齐全,边界明确,可被复核。
编辑内容会自动保存

本课已读

完成工作台,再标记已读。

已读状态会更新课程目录与学习进度。

  1. 01字段齐全
  2. 02案例走过
  3. 03可以复核

文章实践笔记

读到这里,留下一条可复核的判断。

下方虚构示例展示写法;你的笔记只保存在当前浏览器。记录哪一步有效、哪个边界不成立,或一个值得测试的问题。

↗
关联文章AI Agent 何时继续、重试或停下?设计运行中的循环护栏查看示例与本机笔记 →
0 条示例与本机笔记观点 · 问题 · 建议