反无限循环守护

Other

反无限循环守护 — 防止代理陷入重复执行循环。 使用场景:(1) 检测重复操作,(2) 强制终止条件,(3) 跟踪进度,(4) 防止资源耗尽。

Install

openclaw skills install anti-infinite-loop-zh

反无限循环守护

检测并防止浪费资源而无进展的重复执行循环。

问题:无限循环

症状:
├── 代理重复执行相同操作
├── 资源浪费(CPU、RAM、GPU)
├── 目标无进展
└── STC 飙升(情绪紧张)

解决方案

1. 终止条件

class 反无限循环:
    max_retries = 3              # 最大重试次数
    max_steps = 10               # 每任务最大步数
    max_time_seconds = 300       # 时间限制(5分钟)
    progress_threshold = 0.1     # 继续所需的最小改进

2. 操作跟踪

action_history = []  # 历史操作

def track_action(action):
    if action in action_history[-5:]:  # 检测到重复
        log_warning("操作重复 - 停止")
        return False  # 停止
    action_history.append(action)
    return True

3. 进度跟踪

def check_progress(before, after):
    improvement = calculate_improvement(before, after)
    if improvement < progress_threshold:
        return False  # 无进展 → 停止
    return True

4. 时间强制

def time_exceeded():
    elapsed = time.time() - start_time
    if elapsed > max_time_seconds:
        return True
    return False

看门狗

看门狗角色阈值
STC情绪紧张>0.700 = 停止
SYN操作重复>5次重复 = 停止

使用方法

from anti_infinite_loop import AntiInfiniteLoop

loop_guard = AntiInfiniteLoop()

for step in range(loop_guard.max_steps):
    action = decide_next_action()
    
    if not loop_guard.track_action(action):
        break  # 重复操作 → 停止
    
    result = execute(action)
    
    if not loop_guard.check_progress(before, result):
        break  # 无进展 → 停止
    
    if loop_guard.time_exceeded():
        break  # 超时 → 停止

指标

指标
检测延迟<10ms
内存开销<5MB
CPU 开销<1%
误报率<0.1%

文件结构

anti-infinite-loop/
├── SKILL.md
├── scripts/
│   ├── anti_infinite_loop.py
│   ├── main.py
│   └── utils.py
├── data/
├── models/
└── tests/