Back to skills
extension
Category: OtherNo API key required

Loop Prevention

操作循环防止规范。防止 Agent 对同一操作反复执行造成资源浪费。适用于 exec 命令、工具调用、文件读写等所有可重复操作。核心规则:同一操作最多 5 次、结果不理想换策略、检测到循环立即停止。

personAuthor: weidongklhubclawhub

Loop Prevention

防止对同一操作反复执行。适用于 exec 命令、工具调用、文件读写、API 请求等所有可重复操作。

核心规则

  1. 同一操作最多 5 次 — 超限必须停止
  2. 结果不理想时换策略 — 换参数、换工具、换思路,不要重复相同操作
  3. 检测到循环倾向立即停止 — thinking 中出现"再试一次"、连续 2 次相同操作 → 停止并向用户说明

触发信号

| 信号 | 说明 | |------|------| | 连续 2 次相同或极相似的操作 | 循环开始 | | 输出被截断后再次执行相同命令 | 截断≠失败,用重定向 | | thinking 中出现"再试一次"意图 | 自我循环预警 | | 结果越来越差但还在继续 | 必须停止 |

正确做法

输出被截断

# ❌ 反复执行
git diff

# ✅ 重定向或限制
git diff > /tmp/out.txt && head -200 /tmp/out.txt
git diff --stat

工具调用失败

# ❌ 相同参数反复调用
tool_call(same_params)

# ✅ 换参数或换工具
tool_call(different_params)
other_tool(same_params)

需要完整内容

command > /tmp/out.txt
head -50 /tmp/out.txt    # 前段
tail -50 /tmp/out.txt    # 后段
wc -l /tmp/out.txt       # 总量

检查清单

| 问题 | 行动 | |------|------| | 这个操作执行过吗? | 是 → 计数,超限则停止 | | 上次结果不理想? | 是 → 换策略 | | 在想"再试一次"? | 是 → 停止,换方法 | | 连续 2 次操作相同? | 是 → 循环信号,立即停止 |