Agent 死循环怎么办:智能体停止条件与预算规则提示词(步数与花费上限、原地打转的识别、卡住后怎么上报)
智能体反复重试同一个失败的操作、在两个方案之间来回改、任务早该结束却停不下来,或者一觉醒来发现它烧掉了大量调用额度时用: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 分支可以继续。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。


0 条评论
还没有评论,来抢沙发~