跳转到内容

让 Claude Code 跑很久:/loop、/goal、Routines 和 Desktop scheduled tasks 该选哪个

约 12 分钟 难度:进阶 动手章

跑很久不一定要跳出当前会话。如果任务有一个能被验证的完成条件,/goal 配合 auto mode 就能在当前会话里连续跑很多轮——它没有 /loop 那样的 7 天强制过期,也不用像 /loop 一样按固定间隔等待,条件没达标就直接开始下一轮,这就是为什么它能被随手挂着跑一两天。但它仍然是「会话范围」的机制:终端或客户端进程要保持存活,重启会中断(--resume 能找回条件,但轮次和计时会重置)。真正需要「合上电脑也在跑」,或者要按固定时刻、外部事件反复触发的,才需要 Routines(云端,研究预览)或 Desktop scheduled tasks(本机,跨重启持久)。四种机制解决的是不同的问题,不是谁比谁更强的升级关系。

/loop(固定间隔)/goal(完成条件)Desktop scheduled tasksRoutines
运行位置当前会话进程内当前会话进程内本机,Claude 桌面客户端云端
终端/客户端要求必须保持打开必须保持打开客户端需在运行不需要,可关闭设备
跨重启持久不支持,重启即丢不支持(条件可用 --resume 找回,但轮次/计时重置)支持支持(云端天然持久)
触发方式固定/自主间隔,7 天后过期每轮结束自动评估,不满足就继续,无固定间隔和默认上限定时定时、Webhook、GitHub 事件等
本机文件访问无(跑在云端沙箱里)
适用场景短时会话内轮询、调试期的重复检查有明确可验证完成条件,想让当前会话连续跑到达标需要本机环境、但要求重启不丢的日常任务真正长期、脱离设备、接外部事件的自动化
  • 只是在当前调试会话里想「每隔几分钟看一眼」,用 /loop,见《loop 命令怎么用》。
  • 任务有明确的、可验证的完成条件(比如「直到测试全绿」「直到 CHANGELOG 补全」),想让 Claude 自己反复迭代直到达标,用 /goal,见《/goal 命令怎么用》。
  • 需要读写本机文件、依赖本机已装的工具链,但又不想每次重启电脑后手动重新创建,用 Desktop scheduled tasks。
  • 需要真正的「设备关了也在跑」,或者要接 GitHub 事件、Webhook 之类外部触发,用 Routines。

/goal 为什么能被随手挂着跑一两天

Section titled “/goal 为什么能被随手挂着跑一两天”

/loop 的 7 天过期和固定等待间隔,是专门为了防止「被遗忘的循环任务无限期占用资源」而设的限制;/goal 没有对应的限制——条件不满足,它就直接开始下一轮,官方文档里没有默认的轮数或时长上限。所以只要满足两个前提,/goal 确实可以连续跑很久:

  1. 终端/客户端进程别断——这是「会话范围」机制共同的硬要求,/loop 也一样;
  2. 打开 auto mode,否则默认权限模式下每次未被允许的工具调用还是会停下来等确认。

想真的挂一两天不管,最好在条件里主动写清楚兜底(比如「或者跑满 200 轮就停」),避免条件写得太模糊、评估器一直判 no 而空转浪费。

Routines 的入口是 /schedule,用自然语言描述即可:

/schedule daily code review of open PRs at 9am
/schedule list
/schedule pause <name>
/schedule run <name>

创建方式除了对话里的 /schedule,还可以在 Claude Code 网页端的 Routines 页面配置,或者调用 API 触发一次性运行(用于接入外部系统,比如 CI 流水线在特定阶段触发一次 Routine)。触发条件不止定时,还支持 GitHub 事件(比如「有新 PR 打开时跑一次审查」)。

每次触发的 Routine 是一次独立的新会话,不会复用上一次触发时的上下文,这点和 /loop 相反:/loop 是同一个会话反复追加消息,上下文会一直涨;Routine 每次都是干净的开始,没有「记忆延续」,也就不存在上下文膨胀的问题,但也意味着它记不住上一次跑的中间状态。

怎么确认任务真的在跑,而不是「看起来正常」

Section titled “怎么确认任务真的在跑,而不是「看起来正常」”

Routines 的运行计入账户的用量额度,按账户每天有运行次数上限;手动触发的一次性运行不计入这个每日上限。如果是团队账户,管理员可以在组织层面整体禁用 Routines 功能。

如果场景需要「同一个会话持续跑很久」而不是「每次触发都是新会话」(比如 /goal/loop,或者 Desktop scheduled tasks 绑定同一个会话反复触发),上下文膨胀的问题都是一样的:消息会一直累积,最终触发自动压缩。跑得越久越容易撞到这个问题,提前确认压缩阈值符合预期,比等到长跑任务中途报错才发现划算,具体配置见《自动压缩阈值配置》。

  • Desktop scheduled tasks 的具体创建入口、触发日志的查看方式,官方文档在独立页面描述,这篇没有展开逐条核实,后续需要补测。
  • Routines 目前标注为研究预览,配额规则、支持的触发事件类型可能会随版本调整,写这篇时看到的细节不保证长期有效。
  • /goal 挂着连续跑一两天时,评估器的判断准确性会不会随对话变长而下降,没有做过本机复现,详见《/goal 命令怎么用》里的未确认清单。
这一节有错或讲不清? 提个 Issue 直接改文档 请作者催更