用途:驱动一个不会失控的自动修复循环。VERIFY 是 shell 命令,退出码 0 即通过(如 pytest、tsc、lint),优先于 LLM 自判,因为模型无法绕开红色的退出码。终止护栏是强制且全确定性的。适用于智能体反复“编辑后再检查”的场景(修失败测试、满足类型检查或 lint),需要硬性保证停止:有界迭代、有界墙钟时间、停滞即停、升级处理,并希望可回放运行日志与反思经验轨迹。
主要能力:确定性部分(已构建测试)包括控制循环、全部护栏、状态哈希进度检测、运行日志产物、反思;隔离适配器(verified: false)为 LLM 批判/修订步骤及可调护栏值,位于 harness/loop-runner.config.yaml,默认修订步骤为 no-op/shell 桩,因此整个循环可在无 LLM 情况下运行和自测。
使用方式:运行自测 python3 harness/scripts/loop-runner.py selftest(5 个确定性护栏场景,无 LLM、无依赖)。运行真实循环:python3 harness/scripts/loop-runner.py run --config harness/loop-runner.config.yaml --verify "pytest -q" --revise "<shell cmd, or the real LLM-revise adapter>" --state "src/**" --log harness/out/loop-runner-run.json。CLI 标志覆盖配置。退出码:0 SUCCESS · 2 MAX_ITER · 3 TIMEOUT · 4 NO_PROGRESS · 5 ESCALATE。
限制:非 LLM 的“完成”评判;护栏值不可在配置外调整;无自动调用(disable-model-invocation: true)。max_iter 为硬兜底,始终开启不可禁用;budget_seconds 为 0 时关闭;缺少 --state 则 no_progress_k 关闭;escalate_after_iter 为 0 时关闭。自测必须保持通过且不得写入真实 wiki。在 verified: false 下按 fail-safe 处理。