跳至内容

Claude Code 例行任务:让您的编码代理按计划在云端运行

了解 Claude Code 例行任务如何在云端按计划或基于 GitHub 事件运行您的编码代理,让 PR 审查与审计在您合上电脑后也能完成。
更新 2026年6月17日

每一项重复性的 Claude Code 任务都有相同的隐性成本。想想每晚的 PR 审查、每周的依赖审计,或发布前的文档检查。每次都需要您开着终端会话,盯着它运行。合上电脑,工作就被搁置。

例行任务(Routines) 消除了这部分成本。

例行任务在由 Anthropic 管理的云端基础设施上运行 Claude Code,即使您的电脑合上,它也会继续工作。您只需编写一次任务,指向您的代码库,它就能在没有会话打开的情况下,按计划或基于事件触发执行。

本教程将带您构建第一个例行任务。您将创建一个定时任务,观察其运行,然后扩展其范围与能力。

若想更深入,我们的实践课程 Claude Code in Action 涵盖从上下文管理与 计划模式到自定义命令、MCP 服务器、hooks 与 SDK 的全部内容。

什么是 Claude Code 例行任务?

例行任务是一份保存的 Claude Code 配置:一段提示词、一个或多个代码库,以及一组连接器。您打包一次,它就会在 Anthropic 管理的云端基础设施上自动运行。

这三部分各司其职:

  • 提示词(Prompt)。最关键,因为例行任务在每一步都不会征求您的确认。提示词必须完整承载任务本身与完成定义。
  • 代码库(Repositories)。Claude 在每次运行开始时都会克隆这些代码库,并在其中开展工作。
  • 连接器(Connectors)。您账号上的 claude.ai 集成,如 Slack 或 Linear。例行任务可以在运行期间从中读取并向其写入。例如,一个分拣支持请求的任务可能会读取某个 Slack 频道并在 Linear 中创建问题。

例行任务使用的连接器需要在 claude.ai 平台中添加,MCP 服务器亦是如此。您的本地配置不会自动沿用。

Title: 图示左侧为三个触发源(计划、API、GitHub),均为等权重方框,箭头汇聚到中间单个高亮的例行任务方框,再指向右侧的云端运行方框。要点:一次保存的例行任务可通过三种方式触发,并在合上笔记本电脑时仍在云端运行。 - Description: A diagram showing three trigger sources on the left (schedule, API, GitHub), each an equally weighted box, with arrows converging into a single highlighted routine box in the center, which then points to a cloud-run box on the right. The takeaway is that one saved routine can be fired three different ways and runs in the cloud with the laptop closed.

例行任务可通过三种方式触发:按计划、通过 API 调用、或通过 GitHub 事件。单个例行任务可以同时组合这三者。

例行任务 vs /loop

/loop/schedule 的区别在于它们解决的问题不同。

一个 /loop 任务存在于您当前的会话中。它只会在 Claude Code 在您机器上运行且空闲时触发,关闭终端就会停止。因此,它适合用来轮询您此刻正在关注的构建。

关于 /loop 与其他重要命令的更多信息,建议阅读我们的 Claude Code 终端 教程。

例行任务在云端运行,并独立于任何会话而存在

 

云端例行任务

/loop

运行位置

Anthropic 云

您的机器

是否需要本机

是否需要会话

最小间隔

1 小时

1 分钟

有第三种本地选项。 桌面定时任务 在您的电脑上运行,适用于需要本地文件与工具的工作。它们只会在机器唤醒时运行,但不要求打开 Claude 应用。

我们将要构建的例行任务

心智模型已建立。接下来您需要一个可供例行任务处理的目标。在本教程中,我们创建了 pr-review-demo,一个带有一个未合并拉取请求的小型 Python 项目。

它包含一个 cartlib 包来处理购物车:以分(整数)存储价格,应用会员与批量折扣,并叠加州销售税得到最终金额。主分支上的包是正确的。

未合并的拉取请求添加了免邮优惠券,其中包含我们有意植入的真实缺陷。它是跨文件的单位不匹配,单看任何一个文件都不可见,只有跟踪值在两个文件间的传递才能发现。这为后续教程提供了可处理的真实问题。

Fork 该仓库以便在您自己的副本上跟做。它只是一次性练习,所用模式可迁移到您为例行任务指定的任意仓库。

跟做所需的先决条件

您需要一个 claude.ai 账号,订阅 Pro、Max、Team 或 Enterprise 套餐,并启用网页版 Claude Code。例行任务位于 claude.ai/code/routines

/schedule 命令通过您的 claude.ai 订阅登录进行认证,而非 Anthropic API Key 或 Bedrock、Vertex、Foundry 等认证。它还需要较新的 CLI,因此如果您的版本较旧,请运行 claude update

另有两项独立的 GitHub 先决条件。其一,/web-setup 授予克隆权限,定时例行任务需要该权限。其二,需要单独安装 Claude GitHub App,以启用稍后介绍的 GitHub 触发器。

使用 /schedule 构建 Claude Code 例行任务

有了目标仓库后,就可以通过 CLI 构建例行任务。在任意会话中运行 /schedule。您可以直接传入描述:

/schedule daily PR review at 9 am

随后,Claude 会引导您填写与网页表单相同的字段:名称、提示词、代码库、环境、连接器与计划。它会在您本地时区确认计划,并为您转换,所以 9 点会自动变成正确的 cron 表达式,无需您手写。

Title: 终端截图显示 /schedule 命令,Claude 以对话方式收集例行任务的提示词、目标仓库与运行计划,并保存。 - Description: A terminal screenshot showing the /schedule command followed by Claude conversationally collecting the routine's prompt, target repository, and run schedule before saving it.

如果您的账号尚未连接 GitHub,Claude 会提示您运行 /web-setup。运行后,再次执行 /schedule 以继续先前进度。

撰写能在无人值守下运行的提示词

提示词决定了例行任务的成败。

普通会话是对话式的,您可以边走边纠正 Claude。例行任务无人纠正。它冷启动、跑到结束,无法提出澄清问题。提示词必须明确任务、仓库,以及完成的判定标准。

比较这两条。第一条说得太少:

Review the open PR.

它既未指明仓库或评审标准,也没有评论位置,更没有完成定义。冷启动的运行无法补齐这些空白。第二条提示词则逐一回答:

Review the open pull request in pr-review-demo. The cartlib package works entirely in integer cents. Read the checkout flow and the values it pulls from config.py, and check that every amount stays in cents end to end. If any value is mixed in using the wrong unit, leave an inline comment on that line explaining the error and its effect on the customer's total. Then, post a summary comment stating whether the PR is safe to merge.

该提示词指明了仓库,并陈述代码必须保持的“不变式”:所有金额以分为单位。它点出了两个关键文件,并将“完成”定义为留下行内评论与合并结论。这为无人值守的运行设定了明确目标。当 /schedule 询问代理应执行何事时,将其粘贴进去。

默认会包含您所有连接器,因此新建的例行任务可以访问您账号已连接的一切。此处暂时可以,后文会收紧范围。

完成流程后,Claude 会保存例行任务并确认其已生效,包括其代码库、计划、模型与下次运行时间。

Title: 终端截图确认新例行任务已生效,列出其仓库、工作日计划、模型、下次运行时间,以及用于管理或运行的链接。 - Description: A terminal screenshot confirming the new routine is live, listing its repository, weekday schedule, model, next run time, and a link to manage or run it.

该例行任务也会出现在列表中 claude.ai/code/routines打开其详情页即可一览全貌:状态、仓库、计划、连接器、完整提示词,以及 立即运行 按钮。

Title: 网页端某例行任务详情页截图,显示其激活状态、目标仓库、工作日计划、已连接工具、完整指令,以及空的运行历史和“立即运行”按钮。 - Description: A screenshot of a routine's detail page on the web showing its active status, target repository, weekday schedule, connected tools, the full instructions, and an empty run history with a Run now button.

点击 立即运行 可立刻执行,无需等到早上 9 点。

阅读运行记录

运行从默认分支拉取的全新仓库克隆开始。您提交的内容都在其中。仅在您本机设置的内容不在其中,因此例行任务看到的仓库与您同事所见一致。

完成后,运行列表会显示绿色状态。绿色意味着会话运行并正常退出,未遇到基础设施错误。但这并不代表提示词中的任务一定成功。三类失败会隐藏在绿色对勾后,仅能在对话记录中发现:

  • 环境阻止的网络请求。
  • 例行任务预期可用却无法访问的连接器工具。
  • 任务层面的失败:运行本身干净结束,但结果做错了。

Title: 某例行任务的运行历史截图,显示一条已完成的运行(绿色状态)及用于筛选运行类型的选项卡。 - Description: A screenshot of a routine's run history showing a completed run with a green status indicator and filter tabs for run type.

因此请打开运行记录进行确认。点击任一运行可将其作为完整会话阅读,查看 Claude 的操作、审阅 diff、打开拉取请求,或继续对话。

在演示仓库中,对话记录显示了问题所在。Claude 阅读 checkout.py,发现优惠券被赋值为 5 而非 500。它解释说这会将 5 美元按 5 美分应用,导致每单多收 4.95 美元,并给出一行修复方案。随后通过 GitHub 连接器在 PR 上发布审查意见。

Title: 打开的例行任务运行记录截图,显示 Claude 对该拉取请求的审查,包括识别的缺陷、对顾客总价的影响、建议修复,以及发布到 PR 的摘要评论。 - Description: A screenshot of an opened routine run transcript showing Claude's review of the pull request, including the identified bug, its effect on the customer's total, the proposed fix, and a summary comment posted to the PR.

通过 CLI 管理 Claude Code 例行任务

例行任务创建后,仍通过同一命令进行管理。运行 /schedule list 查看全部,使用 /schedule update 修改某一项,或用 /schedule run 立即触发一次运行。

计划预设包括每小时、每日、工作日与每周。若需自定义间隔(例如每 2 小时、每月 1 日),先选择最接近的预设。然后运行 /schedule update 直接设置 cron 表达式。最小间隔为 1 小时,更快的频率会被拒绝。

例行任务也会计入您账号的每日运行配额,在研究预览期间,GitHub 事件还有每小时上限。超出上限的事件会被丢弃,而非排队。当前数值因套餐而异,显示于 claude.ai/code/routines

CLI 仅创建定时的例行任务。要添加 GitHub 或 API 触发器,请在 Web 应用中编辑该例行任务。

通过 GitHub 与 HTTP 触发 Claude Code 例行任务

定时计划会按时钟触发例行任务。另有两种触发器可让 GitHub 或您自有系统触发同一个例行任务。一个 PR 审查任务可以每晚运行、对每个新 PR 做出反应,同时由部署脚本触发。

两者均可通过编辑例行任务 claude.ai/code/routines 完成添加。

使用 GitHub 触发器响应拉取请求

GitHub 触发器要求在目标仓库安装 Claude GitHub App。若缺少该 App,触发器设置会提示您安装。请注意,先前的 /web-setup 仅授予克隆权限。它不会安装 App 或传递 webhooks,因此不能替代此步骤。

安装 App 后,添加触发器并选择事件。事件分为两类: 拉取请求发布,您需在其中选择具体动作。UI 提供常见预设,如“PR 已打开”“PR 已合并”“发布已发布”,其余可用自定义选项。

随后使用筛选器收窄范围。对于拉取请求,您可以按作者、标题、正文、基准分支、源分支、标签、是否草稿、是否已合并进行筛选。所有条件均需匹配,例行任务才会触发。

matches regex 运算符会匹配整个字段,而非子串。要匹配任意标题中包含 hotfix 的情形,请写 .*hotfix.*。仅写 hotfix 只会匹配标题恰为该词、且仅此而已的情况。

Title: GitHub 触发器配置面板截图,选择了“拉取请求已打开”事件,并显示基准分支与作者筛选字段,演示如何将例行任务接到演示仓库的新拉取请求上。 - Description: A screenshot of the GitHub trigger configuration panel with the pull request opened event selected and filter fields for base branch and author visible, showing how a routine is wired to react to a new pull request on the demo repository.

GitHub 触发器设置为在新拉取请求时触发,并筛选到主分支与特定作者。

对于演示仓库,将事件设为“拉取请求已打开”,并不设置筛选。现在每个新 PR 都会自动触发您先前编写的审查,无需有人守在终端。它会跨文件追踪优惠券的单位、在缺陷处留下行内评论,并给出合并结论。

每个匹配事件都会启动独立会话,因此连续两个 PR 会产生彼此独立的两次运行。

通过 HTTP 触发例行任务

API 触发器允许您的自有工具触发例行任务。在触发器选择器下选择 API,并点击 生成令牌。令牌只显示一次,之后无法找回,请立即将其存入告警工具的机密存储。

然后向例行任务的 fire 端点发起 POST,携带该令牌与 text 字段的请求体:

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

text 的值会作为纯字符串传递,不会被解析,因此请写明文说明而非 JSON。结构化输入会作为原始文本送达,例行任务将原样读取。

anthropic-beta 头为必需;该 API 仍在试验阶段,因此在将其接入 CI 前请查阅 API 参考。此后,监控工具即可在告警时调用该端点,由例行任务自主打开草稿修复 PR。

限定 Claude Code 例行任务的访问范围

例行任务自主运行,因此在指向真实仓库前,请约束其可达范围。文档将其归纳为四项控制:

  • 通过您的 GitHub 身份与连接器,例行任务“以谁的身份”行动。
  • 它可以推送到哪些分支。
  • 它可以使用哪些连接器。
  • 环境允许其通过网络访问哪些主机。

将每项范围限定到例行任务真正所需。

例行任务的身份

身份 放在首位,因为在共享仓库中,这是同事首先注意到的。例行任务通过您的 GitHub 身份或连接器所做的一切,都会以“您”的名义出现。

提交与拉取请求会带上您的 GitHub 用户名,Slack 消息与 Linear 工单会使用您已关联的账号。团队成员会看到您的名字出现在这些提交与 PR 上,因此请以能暗示“由例行任务创建”的方式来命名分支与标题。

例行任务可推送的分支

分支 次之。一次运行是完整的云端会话,不会弹出权限确认,因此它不会在编辑文件或打开拉取请求前暂停询问。

护栏就是可写入的分支。默认情况下,Claude 只能推送到以 claude/ 为前缀的分支,从而避免干扰受保护或长期存在的分支,如 main

每个仓库都有一项设置:允许不受限的分支推送。开启它会移除该限制。请仅在确有需要的仓库上有意识地开启。

例行任务可使用的连接器

连接器 风险最大。默认会包含您所有的 claude.ai 连接器,Claude 可以在运行期间不经询问地使用所包含连接器的全部工具,包括写入操作。

因此将列表收紧到该例行任务所需。一个 PR 审查任务一般只需 GitHub,其他很少需要。无关的邮件或日历连接器属于例行任务不需的访问,PR 中隐藏的提示注入可能会利用这类访问对您不利。

Title: 某例行任务的访问设置截图,显示可移除的已包含连接器,并警示:Claude 可在运行期间不经询问地使用连接器工具(包括写入)。 - Description: A screenshot of a routine's access settings showing the included connectors that can be removed, with a warning that Claude can use connector tools, including writes, without asking during a run.

网络访问

网络访问 是最后一项控制。默认环境使用受信任的网络访问,可访问内置允许清单中的软件包注册表、云厂商 API、容器注册表与常见开发域名,其余均被阻止。

被阻止的请求会返回 403,并带有 x-deny-reason: host_not_allowed。只有当例行任务确实需要访问您的服务时再放宽权限。否则,这类失败会比较隐蔽,只会在对话记录中出现,而非明显报错。

下一个可构建的 Claude Code 例行任务点子

您已经会构建、触发并限定例行任务范围。以下为官方文档中的示例,每个示例都将工作内容与合适的触发方式配对:

  • 定制化代码审查。GitHub 触发:PR 打开时。应用您团队的审查清单,就安全、性能与风格留下行内评论,并添加摘要。这是将演示扩展到您的真实标准。
  • 待办维护。计划触发:每个工作日晚间。读取自上次运行以来新开的 Issue,应用标签,基于问题引用的代码区域分配负责人,并将摘要发布到 Slack。
  • 部署验证。API 触发:生产部署后由 CD 流水线调用。对新构建进行冒烟检查,扫描错误日志中的回归,并在发布频道发布 go/no-go 结论。
  • 文档漂移。计划触发:每周。扫描自上次运行以来已合并的 PR,标记引用已更改 API 的文档,并在文档仓库中打开更新 PR。

例行任务适合无人值守、可重复、且有明确结果的工作。若您能将成功标准写入提示词(如本次 PR 审查),该任务就是候选。不适合需要实时人类判断的工作。

结语

例行任务改变了您在重复性工作上的时间分配。与其每次在终端亲自运行,不如写好一次,之后只需审阅已完成的结果。您构建的 PR 审查会在您合上电脑时自动触发,待您有空时再阅读结论。

如欲进一步学习 Claude Code,以下教程与本文相辅相成:

Claude Code 例行任务常见问题

什么是 Claude Code 例行任务?

例行任务是一份保存的 Claude Code 配置:包含一段提示词、一个或多个代码库,以及一组连接器。您打包一次,它就会在由 Anthropic 管理的云端基础设施上自动运行,并可按计划、通过 API 调用或由 GitHub 事件触发。

例行任务与 /loop 有何不同?

/loop 任务以会话为作用域。它只会在 Claude Code 在您机器上打开且空闲时运行,关闭终端会停止。例行任务在云端运行,并独立于任何会话,即使您合上电脑也会继续工作。例行任务的最小间隔为 1 小时,而 /loop 为 1 分钟。

如何创建例行任务?

在任意 Claude Code 会话中运行 /schedule 命令,例如:/schedule daily PR review at 9 am。Claude 会引导您填写与网页表单相同的字段(名称、提示词、代码库、环境、连接器与计划),然后将例行任务保存到您的账号,并显示在 claude.ai/code/routines。

我合上电脑时,例行任务还能运行吗?

可以。例行任务在由 Anthropic 管理的云端基础设施上执行,而不是在您的机器上,因此定时或触发的运行即便在您合上电脑时也能完成。您可以在网页端跟进一次运行,或事后查看其对话记录。

如何控制例行任务的访问范围?

通过四项控制限定例行任务范围:其行动所用的身份、可推送的分支、可使用的连接器,以及可访问的网络主机。默认情况下,Claude 仅推送到以 claude/ 为前缀的分支,且包含您所有连接器,因此请收紧连接器列表;仅在确有需要时放宽网络访问。

主题

在 DataCamp 中学习使用 Claude!

Courses

Introduction to Claude Models

3小时
10.5K
Learn how to work with Claude using the Anthropic API to solve real-world tasks and build AI-powered applications.
查看详情Right Arrow
开始课程
查看更多Right Arrow