SuperAPI AI 工具集

autonomous-loop

通用与其它

查看项目

更新于 10-15 23:42

技能介绍

用途:autonomous-loop 是 Cavekit 的自主执行循环说明,让单次 /ck:make 调用在无需用户干预下运行数十轮智能体迭代,同时遵守每任务预算、会话预算与显式用户审批门。

主要能力:循环由 Claude Code 会话、stop-hook.sh 与 cavekit-tools.cjs 的 routeDecision() 组成。停止事件触发钩子,钩子读取 session_id 与 transcript_path、获取或刷新锁、扫描最近 20 行记录查找完成哨兵;未完成则返回 {"decision":"block","reason":<下一提示>},Claude Code 将其视为新用户消息继续会话。涉及文件均在 <project>/.cavekit/ 下,包括 .loop.json、.loop.lock、state.md、token-ledger.json、task-status.json、.progress.json、.auto-backprop-pending.json、history/backprop-log.md、capabilities.json。

使用方式:/ck:make 调用 node "${CLAUDE_PLUGIN_ROOT}/scripts/cavekit-tools.cjs" setup-loop 写入 .loop.json 并重置 state.md。结束循环需在最后一条消息末尾单独一行输出 <promise>CAVEKIT COMPLETE</promise>,钩子按字面匹配最近 20 行。终止哨兵包括 CAVEKIT_LOOP_DONE、CAVEKIT_MAX_ITERATIONS、CAVEKIT_BUDGET_EXHAUSTED、CAVEKIT_LOCK_CONFLICT。锁为 JSON 文件,含 owner、pid、host、heartbeat_at,超过 5 分钟未心跳视为过期可被抢占。调试可用 status、route、teardown-loop 命令,或设置 CAVEKIT_DEBUG=1 写入 .cavekit/.debug.log。

限制:循环激活时不要手改 state.md 的 phase 字段;不要设置同样阻塞的停止钩子;任务未全部完成时不要发出完成哨兵。不要直接删除 .loop.lock,应使用 cavekit-tools release-lock --owner <tag>。