你以为 Claude Code /loop 只是定时检查状态?今天它的 Self-Pacing 模式把 AI 自主运行彻底重新定义了——而且 90% 的人还用着最基础的那种
你以为 Claude Code /loop 只是用来定时检查状态?今天它的 Self-Pacing 模式把 AI 自主运行这件事彻底重新定义了——而且 90% 的人到现在还用着最基础的那种。
先说清楚 /loop 有几种跑法
大多数人对 /loop 的理解是这样的:
/loop 5m check CI status
每 5 分钟触发一次,无论上一次做了什么。这是一个「固定间隔」模式。
但 Claude Code 的 /loop 其实有两种完全不同的运作模式,适用场景天差地远:
第一种:固定间隔(你指定间隔)
/loop 5m check the deploy status
你告诉它间隔多久,它就多久跑一次。适合轮询、监控——等 CI、等部署、等外部 API 响应。系统会自动加 ±10% 的 jitter(最多 15 分钟),避免所有定时任务同时触发。
第二种:Self-Pacing(agent 自己决定间隔)
/loop 根据部署状态决定下一次检查时间
不告诉它间隔,让 agent 自己判断。每一轮结束时,agent 调用 ScheduleWakeup,根据当前状态选择延迟 60 秒到 3600 秒。如果 agent 不调用 ScheduleWakeup,loop 就自动结束。
这就是真正的杀招。因为 agent 有上下文——它知道你的 CI 通常跑 8 分钟,所以第一轮等 270 秒再查,而不是傻傻每 60 秒 poll 一次烧 token。270 秒正好在 prompt cache 的 5 分钟 TTL 以内,每次 wake up 都命中 cache,token 成本极低。
第三种:/goal 目标模式
你给 Claude 一个完成条件,它自己跑完所有轮次,直到条件满足才停:
/goal PR #42 所有 CI 检查通过,tests pass
每跑完一轮,一个快速小模型(默认 Haiku)会检查:条件满足了吗?没满足就继续,满足了就自动停止。你不需要在每一步之间输入任何指令。
Self-Pacing 为什么比固定间隔强?
固定间隔的核心问题是:你在替 agent 做决策。
你的 CI 跑 8 分钟,你设了每 60 秒 poll 一次 = 8 轮 token 消耗。而 agent 知道 CI 要跑 8 分钟,它自己会等 270 秒再查——第一轮就命中 prompt cache,后面的轮次 cache 也大概率命中。
Self-Pacing 的判断逻辑大致是这样的:
- 部署刚完成?等 60 秒(服务启动通常要 10-30 秒)
- health check 通过了但 SSL 证书有问题?直接去查 Nginx/certbot 状态,不等了
- CI 在跑?等 270 秒(正好卡在 prompt cache TTL 内)
- 任务全部完成?调用 ScheduleWakeup 的逻辑根本不触发,loop 直接结束
这个决策能力,固定间隔做不了。
Self-Pacing + /goal = 完全自主运行
这是最被低估的组合。
/goal PR #42 的所有 CI 失败原因被修复并推送
agent 的工作流是这样的:
- 查 CI 失败原因
- 如果是 lint/type error,直接修 → commit → push
- 如果是 flaky test,标记并留言,结束
- 如果还在跑,等 270 秒再查
整个过程,你不需要按任何确认键。配合 Shift+Tab 切换到 auto mode,Claude 的每个工具调用都通过安全分类器自动审批——常规操作自动通过,破坏性操作自动拦截。/goal 去掉每个回合的确认,auto mode 去掉每个工具的确认,两者叠加 = 真正的自主运行。
什么场景用 Self-Pacing?
场景一:部署后自动验证到通过为止
你部署了一个服务到 VPS,需要确认 health endpoint 回 200、SSL 正常、response time 合理:
/loop 部署刚完成。
1. curl https://api.example.com/health 确认 200
2. curl -I 确认 SSL 证书没过期
3. 如果全部通过,报告结果然后结束 loop
4. 如果有失败,查 docker logs 最后 50 行找原因,尝试修复,然后继续
第一轮立刻检查。如果服务还没起来(常见,Docker 重启通常要 10-30 秒),它会等 60 秒再试。全部通过就自动结束——你不需要一直盯着。
场景二:CI 红灯自动查因 + 修复
开了 PR 之后,最烦的就是等 CI。尤其是跑完才发现 lint 没通过:
/goal PR #42 所有 CI 检查通过,tests pass,lint clean
agent 自己做:查失败原因 → 修代码 → 跑测试 → 推送。你只需要等它告诉你结果。
场景三:跨机器基础设施巡检
你有几台机器要巡检,但每台的健康指标不同:
/loop 30m 巡检我的基础设施:
1. ssh mini-ts "docker ps"
2. ssh dgx "ollama list && free -h"
3. 对每台 VPS 跑 curl health check
4. 整理成状态报告
5. 如果有异常,推送 Telegram 通知
6. 跑 3 轮后结束
30 分钟间隔,跑 3 轮 = 观察 1.5 小时。这不是监控系统的替代品,而是在做完基础设施变更后持续观察确认没有问题。
为什么你自己组装比用别人的模板强?
上周有人推荐了一个 AI coding agent 预建工作流模板平台,上面有「Ship PR Until Green」「CI Failure Watcher」之类的模板。
模板有一个根本问题:它不知道你的基础设施。
你的 Docker 跑在 Kubernetes 上,我的跑在裸机 Mac mini 上。你的 CI 是 GitHub Actions,我的是 GitLab 手动部署。更重要的是——你的 Claude Code 装了哪些 hook?
用 /loop 搭配你自己的 hook,你有自己的防护网:
- danger-guard:拦截 git push –force、rm -rf 等破坏性指令
- secrets-guard:检测到读 .env 时发警告
- git-add-guard:强制禁止 git add .,必须逐文件 stage
就算 agent 在自动修复 CI 失败时想 force push——hook 会挡下来。模板没有这层保护。
什么场景不该用 Self-Pacing?
- 需要人工判断的决策:「这个 PR 要不要 merge」不适合让 agent 自动决定
- 涉及付费 API 的高频操作:每 60 秒调用一次外部 API = 账单爆炸
- Production 的破坏性操作:永远不要让 loop 自动执行 DROP TABLE 或 rm -rf,就算你觉得 hook 会挡
从今天开始
不需要一次学会所有模式。从最简单的开始:
/loop 5m git status
每 5 分钟提醒你一次有没有忘记 commit 的文件。感受一下「agent 自己跑到完」是什么体验。
等你习惯了之后,试试 self-pacing 模式:
/goal ruff check . 没有 lint 问题,有问题就修,全部通过就结束
你会发现,Claude Code 不只是一个帮你写代码的聊天机器人——它是一套你还没完全解锁的自主运行体系。
评论区
登录后可评论。