Claude Code 的 Routines:哪些在云端运行,哪些留在你的机器上,以及怎么选

Routines 是 Claude Code 在你不在场时运行已保存提示词的方式:按计划、由 API 调用或由 GitHub 事件启动,作为一个 cloud session,在你仓库的全新克隆上运行。它们目前处于研究预览阶段。Claude Code 还有两种在本地安排工作的方式,即桌面应用的定时任务和 /loop,而三者的行为并不相同:最小间隔、对本地文件的访问、权限确认,以及笔记本睡眠时会发生什么。本指南结合文档中的限制把三者摆在一起,再解释为什么我们自己的七个夜间代理运行在一台本地机器上。

Claude Code 现在有三种不用你亲手输入就能运行提示词的方式,名字重叠到谁都会搞混:Routines、桌面应用的定时任务,以及 /loop。桌面应用甚至在同一个页面里创建前两种。它们的区别在于自动化工作时唯一要紧的那一点:代理在哪里运行,因此它能看到什么。

本指南结合文档中写明的限制逐一介绍这三者(2026 年 10 月 4 日核实;Routines 处于研究预览阶段,Anthropic 表示其行为、限制和 API 都可能变化)。然后说明我们自己的做法:每天晚上我们这边有七个代理启动,没有一个是 routine。原因很具体,未必适用于你。

routine 是什么

routine 是一份保存好的 Claude Code 配置:一段提示词、一个或多个 GitHub 仓库和一组连接器,打包一次,自动运行。它运行在 Anthropic 托管的云端基础设施上,或者在你的组织把它转过去时运行在组织的自托管环境上。你的笔记本可以合上。

每次运行都是一个完整的 cloud session。由此带来四个后果,要记住的就是这四点:

  • 每次都是全新克隆。 每个仓库在运行开始时从默认分支克隆。除非你的提示词另有说明,Claude 会把工作推送到一个以 claude/ 为前缀的分支。你机器上任何未提交的东西,对 routine 来说都不存在。
  • 没有权限确认。 没有权限模式选择器。会话会运行 shell 命令,使用提交到仓库里的 skills,调用所含每个连接器的每个工具,包括写操作,中途不会停下来询问。
  • 是连接器,不是你的本地 MCP 服务器。 你 claude.ai 账户的所有连接器默认都会包含,文档建议你移除 routine 用不到的那些。用 claude mcp add 在本地添加的服务器留在你的机器上,不在这个列表里。提交一个 .mcp.json 是另一条入口。
  • 它以你的身份行事。 Routines 属于你的个人账户。提交和 pull request 带着你的 GitHub 用户,Slack 消息和 Linear 工单使用你关联的账户。

Routines 适用于 Pro、Max、Team 和 Enterprise 套餐。你可以在 claude.ai/code/routines、桌面应用(Code 标签页、Routines、New routine、Cloud)或 CLI 中创建。

三种触发器

一个 routine 可以带一个触发器,也可以同时带多个。

定时。 按你的本地时间每小时、每天、工作日或每周运行,或者在未来某个时刻只运行一次。最小间隔是一小时。文档里有个值得知道的细节:正好排在整点的运行可能会晚几分钟启动,所以在乎时间时,选 9:07 而不是 9:00。

API。 每个 routine 都有自己的端点和自己的 bearer 令牌,令牌在网页上生成(CLI 不能创建或撤销令牌)。一个 POST 就会启动一个会话并返回它的 URL:

curl -X POST https://api.anthropic.com/v1/claude_code/routines/trig_01ABCDEFGHJKLMNOPQRSTUVW/fire \
  -H "Authorization: Bearer sk-ant-oat01-xxxxx" \
  -H "anthropic-beta: experimental-cc-routine-2026-04-01" \
  -H "anthropic-version: 2023-06-01" \
  -H "Content-Type: application/json" \
  -d '{"text": "Sentry alert SEN-4521 fired in prod."}'

text 字段并不是作为指令到达 routine 的。它被包在一个标明其为不可信数据的块里,所以保存的提示词必须明确表示要用它(“调查 routine-fire-payload 块中描述的告警”),否则这段文本只是不起作用的上下文。这个默认设置是对的:任何持有令牌的人都能发送文本。

GitHub。 pull request 事件和 release 事件,可以按作者、标题、正文、基础分支、头分支、标签、草稿状态和合并状态筛选。仓库上必须安装 Claude GitHub App。每个事件启动各自的会话,超出每小时上限的事件会被丢弃。

在 CLI 里:/schedule

/schedule 通过对话创建一个定时 routine,/routines 是它的别名。

/schedule daily PR review at 9am
/schedule in 2 weeks, open a cleanup PR that removes the feature flag
/schedule list
/schedule update
/schedule run

自定义 cron 表达式要用 /schedule update 设置。从 CLI 添加 GitHub 触发器需要 Claude Code v2.1.225 或更高版本;API 触发器只能在网页上创建。

如果 /schedule 回答 “Unknown command”,常见原因是认证:这个命令要求用 claude.ai 订阅登录。shell 里的 ANTHROPIC_API_KEY、settings.json 里的 apiKeyHelper,或者通过 Bedrock 或 Vertex 登录,都会让它被隐藏。

依赖它之前要知道的限制

Routines 和任何交互式会话一样消耗你的订阅用量。此外,每种启动运行的方式都有每小时上限,没有超额:

操作上限计算范围
定时运行,含一次性运行每小时 100 次你的账户
Run now、API 触发、重新设定一次性运行每小时 30 次每个 routine
API 触发每小时 100 次你的账户

文档里还有三点在实践中容易踩坑。GitHub 连接缺失或过期,会让 routine 跳过运行最多 72 小时,然后自行关闭。订阅暂停会让 Routines 挂起。另外,绿色的运行并不代表任务成功:它表示会话启动并退出时没有基础设施错误。

两种本地选项

桌面应用的定时任务就是同一个 New routine 按钮里的 Local 选项。它们在你的机器上运行,使用你文件的当前状态,包括未提交的改动,除非你勾选了 worktree 选项。每个任务有自己的权限模式。问题在文档的一句话里:只有桌面应用在运行、电脑处于唤醒状态时,任务才会运行。睡眠期间该跑的运行会被跳过,唤醒后应用只会针对过去七天里最近一次错过的时间补跑一次。提示词保存在 ~/.claude/scheduled-tasks/<task-name>/SKILL.md。

/loop 在一个打开的 CLI 会话里重复执行提示词:/loop 5m check the deploy。它继承会话的权限和 MCP 服务器,最多容纳 50 个任务,重复任务七天后过期。关掉终端它就停了。它适合用一个下午盯着一次构建或一个 pull request,不适合夜间作业。

按文档的说法并排比较:

Routine(云端)桌面应用的定时任务/loop
运行在Anthropic 的云端你的机器你的机器
机器需要开着否是是
需要打开的会话否否是
本地文件否,全新克隆是是
权限确认无按任务继承会话
最小间隔1 小时1 分钟1 分钟

怎么选

三个问题就能定。

这项工作是否完全在仓库里、在连接器后面就能完成? 给 issue 打标签、评审每个新的 pull request、对照已合并的改动检查文档:routine 就是合适的工具。不用让任何机器保持唤醒,结果以分支的形式送达。

这项工作是否需要只存在于你机器上的东西? VPN 后面的数据库、你已登录的浏览器、未提交的文件、本地 MCP 服务器:那就留在本地。routine 会从一个这些都没有的克隆开始。

它需要比每小时更频繁地运行,或者在一分钟内做出反应吗? 同样用本地,或者如果外部系统能调用它,就用 API 触发器。

为什么我们的七个夜间代理不是 Routines

我们每天晚上 20:00 在一台 Mac mini 上运行七个定时代理。它们阅读当天的提交、修复 bug、修正这个网站、在社交网络上发帖,并发邮件汇报。完整的配置和提示词在另一篇文章里。Routines 出现时,我们问了那个显而易见的问题:为什么还要让一台机器开着?

四个原因,都对照上面的文档核实过。

  1. 它们在一个共享的、未提交的工作树里工作。 这些代理会拉取代码,阅读彼此当晚的报告,边做边提交。其中几个在同一个小时里动同一个检出。每次运行都用全新克隆,就会丢掉同一支团队两个步骤之间的交接。
  2. 其中一个从真实的浏览器发帖。 社交代理从一个登录了三个社交网络的 Chrome 会话发帖。这个会话在这台机器上。云端 VM 里没有这样的浏览器。
  3. 它们使用本地 MCP 工具。 待办清单、项目记忆、提示词库和开发命令,都是运行在那台机器上的应用所提供的 MCP 服务器。它们不是 claude.ai 连接器。
  4. 它们不全是 Claude Code。 routine 用 claude.ai 订阅运行 Claude Code。我们的调度器则启动任务指定的任何 CLI。

所以我们用的是 AgentsRoom 的定时任务:一个触发器就是一段提示词、一个代理或一支团队,加上一个频率,在我们选定的机器上启动。它是应用内的调度器,不是服务器:只要 AgentsRoom 在那台机器上开着它就会触发,下次启动时补跑错过的运行,还能为下一次运行设置操作系统的唤醒定时器。这和 Claude 桌面应用的定时任务是同样的约束,区别在于代理可以是 Codex、Antigravity 或任何其他 CLI,而且触发器也可以由 webhook 触发,或在工单交付时触发。

这些都不会让 Routines 变成错误的选择。如果我们的夜间工作是“用我们的清单评审每个 pull request”,我们会把它做成带 GitHub 触发器的 routine,然后关掉 Mac mini。而当需求是为一个任务准备一台一次性机器、而不是一项重复作业时,那又是另一种工具,见 “Claude remote agents”到底指什么。

常见问题

Claude Code 的 Routines 和定时任务是一回事吗?

不完全是。routine 在云端运行,是一个完整的 Claude Code cloud session,基于你仓库的全新克隆,可以按计划、由 API 调用或由 GitHub 事件启动。桌面应用的定时任务在你自己的机器上运行,使用你的本地文件,并且只在 Claude 桌面应用打开、电脑处于唤醒状态时运行。/loop 在一个打开的 CLI 会话里重复执行一段提示词。桌面应用的 Routines 页面可以创建前两种:点 New routine,再选 Cloud 或 Local。

Claude Code 的 routine 最多能多频繁地运行?

定时触发器的最小间隔是一小时:比这更频繁的 cron 表达式会被拒绝。预设选项有每小时、每天、工作日和每周,/schedule update 可以设置自定义的 cron 表达式。在订阅用量之外,一个账户每小时最多启动 100 次定时运行,Run now 和 API 触发对每个 routine 的上限是每小时 30 次。桌面应用的定时任务和 /loop 可以低至一分钟。

运行 Routines 需要我的电脑开着吗?

不需要。routine 运行在 Anthropic 托管的云端基础设施上,或者在你的组织把它转过去时运行在自托管环境上,所以合上笔记本它也照常工作。代价是它看不到你的机器:它从默认分支的全新克隆开始,只带着你 claude.ai 账户的连接器和它所在云端环境的网络访问。你用 claude mcp add 在本地添加的 MCP 服务器不可用,除非你把它们添加为连接器,或者提交一个 .mcp.json。

Routines 要额外付费吗?

文档里没有单独的价格:在 Pro、Max、Team 和 Enterprise 套餐上,Routines 和交互式会话一样消耗订阅用量。当一个 routine 触及你的用量上限时,后续运行会被拒绝,直到窗口重置;如果开启了用量额度,则会按超额计费继续运行。每小时的运行次数上限没有超额可言。

routine 能运行 Codex、Antigravity 或其他 CLI 吗?

不能。routine 是一份保存好的 Claude Code 配置,而 /schedule 要求用 claude.ai 订阅登录:当 Claude Code 通过 API 密钥或云服务商认证时,这个命令会被隐藏。要调度其他 CLI,你需要 Claude Code 之外的调度器:cron 加上该 CLI 的无头模式、CI 的定时计划,或者一个能为任意 CLI 启动代理的工具,这正是 AgentsRoom 定时任务所做的事。

为什么我的 routine 什么都没做却显示绿色?

因为状态描述的是会话,而不是任务。文档说得很直白:绿色状态表示会话启动并退出时没有基础设施错误,并不表示你提示词里的任务成功了。被拦截的网络请求、缺失的连接器工具和任务层面的失败,只会出现在会话记录里。打开那次运行,或者问 CLI:在 Claude Code v2.1.227 及以上版本中,/schedule 后面跟一个关于该 routine 的问题,会列出它最近的运行并读取日志。

下载 AgentsRoom

在一个窗口中运行你所有项目的所有 AI 代理。

免费下载 AgentsRoom

配套应用:随时随地监控你的 Agent

使用 Claude、Codex、Antigravity CLI 或其他 AI 提供商。

获取扩展程序
Chrome Web Store

把 Bug 和需求直接发送到您的公开待办清单。

多项目管理
多供应商
多代理运行
实时状态
文件差异与提交
移动应用
实时预览
代理团队
浏览器自动化
Backlog 驱动开发
提示词库
技能库
查看所有功能

继续阅读