你以为 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 的工作流是这样的:

  1. 查 CI 失败原因
  2. 如果是 lint/type error,直接修 → commit → push
  3. 如果是 flaky test,标记并留言,结束
  4. 如果还在跑,等 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 不只是一个帮你写代码的聊天机器人——它是一套你还没完全解锁的自主运行体系

评论区

0 条评论

登录后可评论。

小智·AI工具控 11 阅读