Agent 死循环怎么办:智能体停止条件与预算规则提示词(步数与花费上限、原地打转的识别、卡住后怎么上报)

智能体反复重试同一个失败的操作、在两个方案之间来回改、任务早该结束却停不下来,或者一觉醒来发现它烧掉了大量调用额度时用:AI 根据你的任务类型设计「什么时候算完成、什么时候该停、停下时怎么交代」的规则,包括步数与费用上限、原地打转的判定和升级给人的方式。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
【角色】你是负责智能体稳定性的工程师,处理过很多「跑了一夜、什么都没做成、账单却很长」的事故。
【输入】
- 智能体的任务类型与典型流程:[任务类型与流程]
- 观察到的失控现象(重复调用、来回修改、过早结束、迟迟不结束):[失控现象]
- 一次正常任务大致需要的步数、时间与花费:[正常任务的消耗]
- 是否有人值守,出问题时怎么通知到人:[值守与通知方式]
- 程序层面可以设置的限制(最大轮数、超时、费用上限、并发数):[可设置的限制]
【任务】
1. 完成标准:帮我把「任务完成」写成智能体可以自己检查的条件(例如测试全部通过、输出文件存在且通过校验、清单里的每一项都有结果)。指出我现在的任务说明里哪些完成标准是模糊的。
2. 预算设计,分两层:
   - 写进提示词的软约束:建议的步数范围、到达多少比例时应当自查进度、预算不够时优先保证什么;
   - 写进程序的硬限制:最大轮数、单次任务超时、费用上限、同一工具同一参数的最大重复次数。根据我给的正常消耗,建议各项数值为正常值的多少倍,并说明理由。
3. 原地打转的识别规则,给出可以由程序或智能体自己判断的信号:
   - 连续多次用相同或几乎相同的参数调用同一工具;
   - 同一个报错重复出现而做法没有变化;
   - 在两种状态之间来回修改(改过去又改回来);
   - 若干步内没有产生新的信息或新的产出。
   每条写明阈值建议和触发后的动作。
4. 卡住后的处理阶梯:第一次失败——读报错、换一种做法;同类失败第二次——退一步重新审视假设(是不是前提错了);第三次——停止并上报。说明为什么不应当无限重试,以及哪些错误一次都不该重试(权限被拒、对象不存在、会产生重复副作用的操作)。
5. 过早结束的防范:要求智能体在宣称完成前逐条对照完成标准,并给出证据(命令输出、文件路径);没有做到的部分必须明说。
6. 停止时的汇报格式:做到了哪一步、已产生的改动与副作用、卡在哪里及已尝试的办法、需要人决定什么、从哪里可以继续。无人值守时这份汇报写到哪里。
7. 输出一段可放进系统提示词的规则文本,以及一份程序侧的配置建议清单。
【约束】
- 数值建议要基于我提供的正常消耗推算,并写出推算方式;我没给数据的写「需要先统计几次正常运行」。
- 不假设我所用的框架支持某个具体参数名,只说要限制的量。
【输出格式】完成标准改写 → 软约束与硬限制表 → 打转识别规则 → 处理阶梯 → 防过早结束 → 停止汇报模板 → 提示词片段与配置清单。

高亮处换成你自己的内容:[任务类型与流程]、[失控现象]、[正常任务的消耗]、[值守与通知方式]、[可设置的限制]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[失控现象] 尽量附上一小段实际记录,例如「连续 9 次调用同一个安装命令,每次都因为网络超时失败」。[正常任务的消耗] 没统计过的话,先挑三次顺利的运行数一下轮数和花费,硬限制要以这个为基准。[可设置的限制] 写你所用框架或平台实际能配的项;提示词里的「最多 30 步」只是提醒,真正兜底的是程序里的限制。

常见失败与调整:

  • 只在提示词里写「不要死循环」。这句话没有可执行的判断标准,换成第 3 步那样带阈值的规则,并在程序里加硬上限。
  • 上限设得太紧,正常任务也被掐断。按正常消耗的两到三倍起步,再根据实际调整。
  • 智能体到了上限就戛然而止,什么也没留下。把第 6 步的汇报要求写进提示词,并让程序在强制终止前保留现场。

追问:「把打转识别规则写成伪代码,方便我在调度程序里实现」「我的任务有的要 5 步、有的要 200 步,预算怎么按任务规模动态给」。

示例输出

示例,仅供参考(虚构:自动修复持续集成失败的编程智能体,正常任务约 25 轮)
限制类型建议值理由
最大轮数硬限制60约为正常值的 2.4 倍,留出排查空间
同一命令同一参数重复硬限制3 次第 3 次仍失败说明换参数才有意义
进度自查点软约束第 20 轮接近正常值时确认是否偏离
单任务超时硬限制需要先统计几次正常运行的耗时未提供数据

提示词片段(节选):同一个错误出现第二次时,不要再用相同的做法重试;先写出你认为失败的原因以及这次打算改变什么。出现第三次时停止,并按下面的格式汇报。遇到权限被拒绝或目标不存在的错误,不要重试,直接汇报。

停止汇报(节选):已完成依赖升级与 2 处类型修复;卡在集成测试超时,已尝试延长超时与单独运行均失败;需要人确认测试环境的数据库是否可用;从 fix/ci 分支可以继续。

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~