Claude Code 平台集成
Claude Code 平台集成
例行任务(Routines)
5 分钟阅读
使用自动任务自动化工作
让 Claude Code 自动运行。定义按时间表运行、通过 API 调用触发或响应 GitHub 事件的自动任务,全部基于 Anthropic 托管的云基础设施。
自动任务目前处于研究预览阶段。行为、限制和 API 接口可能会发生变化。
自动任务是一份保存的 Claude Code 配置:一个提示词、一个或多个代码仓库,以及一组 连接器,打包后自动运行。自动任务在 Anthropic 管理的云基础设施上执行,因此即使你的笔记本电脑关闭,它们也会继续运行。
每个自动任务可以附加一个或多个触发器:
- 计划触发:按小时、每晚或每周等重复频率运行,或在特定未来时间运行一次
- API 触发:通过向每个自动任务专属的端点发送 HTTP POST 请求并携带 Bearer Token 来按需触发
- GitHub 触发:自动响应代码仓库事件,如 Pull Request 或发布
单个自动任务可以组合多种触发器。例如,一个 PR 审查自动任务可以每晚运行、从部署脚本触发,并响应每个新 PR。
自动任务适用于已启用 Claude Code 网页版 的 Pro、Max、Team 和 Enterprise 套餐。在 claude.ai/code/routines 创建和管理它们,或通过 CLI 使用 /schedule。
Team 和 Enterprise 所有者可以在 claude.ai/admin-settings/claude-code 通过自动任务开关为所有成员禁用该功能。禁用后,现有自动任务将停止运行,成员也无法创建新的自动任务。
本页面涵盖创建自动任务、配置每种触发器类型、管理运行以及使用限制的应用方式。
示例用例
每个示例将触发器类型与自动任务适合的工作类型配对:无人值守、可重复且与明确结果相关联。
待办事项维护。 计划触发器在每个工作日晚间通过连接器运行你的问题跟踪器。自动任务读取自上次运行以来新打开的问题,应用标签,根据引用的代码区域分配负责人,并将摘要发布到 Slack,让团队以整理好的队列开始新的一天。
告警分类。 当错误阈值被突破时,你的监控工具调用自动任务的 API 端点,将告警内容作为 text 传递。自动任务提取堆栈跟踪,与代码仓库中的近期提交关联,并打开一个包含建议修复方案和返回告警链接的草稿 Pull Request。值班人员可以直接审查该 PR,而无需从空白终端开始。
定制代码审查。 GitHub 触发器在 pull_request.opened 时运行。自动任务应用团队自己的审查清单,针对安全、性能和风格问题留下行内评论,并添加总结评论,以便人工审查者专注于设计而非机械性检查。
部署验证。 你的 CD 流水线在每次生产部署后调用自动任务的 API 端点。自动任务对新构建运行冒烟测试,扫描错误日志以发现回归问题,并在部署窗口关闭前向发布频道发送通过/不通过的结果。
文档漂移。 计划触发器每周运行。自动任务扫描自上次运行以来已合并的 PR,标记引用了已变更 API 的文档,并针对文档仓库打开更新 PR 供编辑审查。
库移植。 GitHub 触发器在 pull_request.closed 时运行,筛选条件为某个 SDK 仓库中已合并的 PR。自动任务将变更移植到另一种语言的并行 SDK 中,并打开对应的 PR,使两个库保持同步,无需人工重新实现每个变更。
以下章节将介绍如何创建自动任务以及如何配置这些触发器类型。
创建自动任务
在网页版 claude.ai/code/routines、桌面应用或 CLI 中创建自动任务。这三个界面写入同一个云账户,因此你在其中一个创建的自动任务会立即显示在其他界面中。在桌面应用中,点击侧边栏中的 Routines,然后点击 New routine,并选择 Remote;选择 Local 则会创建 桌面计划任务,它在你的机器上运行而非云端。
创建表单用于设置自动任务的提示词、代码仓库、环境、连接器和触发器。
自动任务作为完整的 Claude Code 云会话自主运行:运行期间没有权限模式选择器,也没有审批提示。会话可以运行 shell 命令,使用提交到克隆仓库的 技能,并调用你包含的任何连接器。自动任务能够访问的范围取决于你选择的代码仓库及其分支推送设置、环境 的网络访问和变量,以及你包含的连接器。将每一项都限制为自动任务实际需要的范围。
自动任务属于你的个人 claude.ai 账户。它们不会与队友共享,并且会计入你账户的每日运行配额。自动任务通过你连接的 GitHub 身份或连接器执行的任何操作都显示为你本人:提交和 Pull Request 使用你的 GitHub 用户,Slack 消息、Linear 工单或其他连接器操作使用你在这些服务上关联的账户。
从网页版创建
打开创建表单
访问 claude.ai/code/routines 并点击 New routine。
命名自动任务并编写提示词
为自动任务起一个描述性的名称,并编写 Claude 每次运行时使用的提示词。提示词是最重要的部分:自动任务自主运行,因此提示词必须自成一体,明确说明要做什么以及成功的标准是什么。
提示词输入框包含一个模型选择器。Claude 在每次运行时使用选定的模型。
选择代码仓库
添加一个或多个 GitHub 代码仓库供 Claude 工作。每个代码仓库在运行开始时克隆,从默认分支开始。Claude 为其变更创建 claude/ 前缀的分支。
选择触发器
在 Select a trigger 下,选择自动任务的启动方式。你可以选择一个触发器类型或组合多个。
- 计划
- GitHub 事件
- API
为重复运行选择预设频率,或在特定时间戳安排一次性的单次运行。有关时区处理、交错执行、自定义 cron 间隔和单次运行的信息,请参阅 添加计划触发器。
审查连接器和权限
表单底部的 Connectors 和 Permissions 标签页控制自动任务可以访问的范围。
在 Connectors 下,默认包含你所有已连接的 MCP 连接器。移除自动任务不需要的任何连接器。Claude 可以使用包含的连接器中的每个工具,包括写入操作,而无需在运行期间请求权限。
在 Permissions 下,为任何需要 Claude 能够推送到现有分支(而不仅是 claude/ 前缀分支)的代码仓库启用 Allow unrestricted branch pushes。
创建自动任务
点击 Create。自动任务将出现在列表中,并在其触发器匹配时下次运行。要立即开始运行,请在自动任务的详情页面点击 Run now。
每次运行都会在你的其他会话旁边创建一个新会话,你可以在其中查看 Claude 做了什么、审查变更并创建 Pull Request。
从 CLI 创建
在任何会话中运行 /schedule 以对话方式创建计划自动任务。你也可以直接传递描述,例如重复自动任务 /schedule daily PR review at 9am 或单次任务 /schedule clean up feature flag in one week。Claude 会引导你完成网页表单收集的相同信息,然后将自动任务保存到你的账户。
CLI 中的 /schedule 仅创建计划自动任务。要添加 API 或 GitHub 触发器,请在网页版 claude.ai/code/routines 编辑自动任务。
CLI 还支持管理现有自动任务。运行 /schedule list 查看所有自动任务,/schedule update 修改某个任务,或 /schedule run 立即触发它。
配置触发器
当自动任务的某个触发器匹配时,自动任务启动。你可以将计划、API 和 GitHub 触发器的任意组合附加到同一个自动任务,并随时从自动任务编辑表单的 Select a trigger 部分添加或移除它们。
添加计划触发器
计划触发器按重复频率运行自动任务,或在特定未来时间运行一次。在 Select a trigger 部分选择预设频率:每小时、每天、工作日或每周。时间在你本地时区输入并自动转换,因此无论云基础设施位于何处,自动任务都会在该挂钟时间运行。
由于交错执行,运行可能会在计划时间后几分钟开始。每个自动任务的偏移量是一致的。
对于自定义间隔(如每两小时或每月第一天),请在表单中选择最接近的预设,然后在 CLI 中运行 /schedule update 以设置特定的 cron 表达式。最小间隔为一小时;运行频率更高的表达式将被拒绝。
安排单次运行
单次计划在特定时间戳触发自动任务一次。使用它来提醒自己在本周晚些时候处理某事、在发布完成后打开清理 PR,或在上游变更落地时启动后续任务。自动任务触发后,它会自动禁用,网页 UI 将其标记为 Ran。要再次运行,请编辑自动任务并设置新的单次时间。
通过用自然语言描述时间来从 CLI 创建单次运行。Claude 根据当前时间解析该短语,并在保存前确认绝对时间戳。
单次时间戳与重复计划一样适用相同的本地到 UTC 转换。
单次运行不计入每日自动任务运行上限。它们像任何其他会话一样消耗你套餐的常规订阅使用量。详情请参阅 使用与限制。
添加 API 触发器
API 触发器为自动任务提供一个专用的 HTTP 端点。使用自动任务的 Bearer Token 向该端点发送 POST 请求会启动一个新会话并返回会话 URL。使用此功能将 Claude Code 接入告警系统、部署流水线、内部工具或任何可以发起经过身份验证的 HTTP 请求的地方。
API 触发器从网页版添加到现有自动任务。CLI 目前无法创建或撤销 Token。
打开自动任务进行编辑
前往 claude.ai/code/routines,点击你想通过 API 触发的自动任务,然后点击铅笔图标打开 Edit routine。
添加 API 触发器
滚动到 Instructions 框下方的 Select a trigger 部分,点击 Add another trigger,然后选择 API。
复制 URL 并生成 Token
弹窗会显示该自动任务的 URL 以及示例 curl 命令。复制 URL,然后点击 Generate token 并立即复制 Token。该 Token 只显示一次,之后无法再次获取,因此请将其存储在安全的地方,例如你的告警工具的机密存储中。
调用端点
向 URL 发送 POST 请求时,在 Authorization: Bearer 请求头中发送 Token。下面的 触发自动任务 部分展示了完整示例。
每个自动任务都有自己的 Token,范围仅限于触发该自动任务。要轮换或撤销它,请返回同一弹窗并点击 Regenerate 或 Revoke。
触发自动任务
向 /fire 端点发送 POST 请求,并在 Authorization 请求头中携带 Bearer Token。请求体接受一个可选的 text 字段,用于提供运行特定的上下文,例如告警内容或失败日志,该字段会与自动任务保存的提示词一起传递给自动任务。该值是自由格式文本,不会被解析:如果你发送 JSON 或其他结构化载荷,自动任务会将其作为字面字符串接收。
以下示例从 shell 触发自动任务:
成功请求会返回包含新会话 ID 和 URL 的 JSON 主体:
在浏览器中打开会话 URL 以实时观看运行、审查变更或手动继续对话。
API 参考
有关完整的 API 参考,包括所有错误响应、验证规则和字段限制,请参阅 Claude Platform 文档中的 通过 API 触发自动任务。
/fire 端点仅适用于 claude.ai 用户,不属于 Claude Platform API 的一部分。
添加 GitHub 触发器
当连接的代码仓库上发生匹配事件时,GitHub 触发器自动启动一个新会话。每个匹配事件都会启动自己的会话。
在研究预览期间,GitHub Webhook 事件受每个自动任务和每个账户的每小时上限限制。超出限制的事件将被丢弃,直到窗口重置。请在 claude.ai/code/routines 查看你当前的限制。
GitHub 触发器只能从网页 UI 配置。
打开自动任务进行编辑
前往 claude.ai/code/routines,点击自动任务,然后点击铅笔图标打开 Edit routine。
添加 GitHub 事件触发器
滚动到 Select a trigger 部分,点击 Add another trigger,然后选择 GitHub event。
安装 Claude GitHub App
必须在你想要订阅的代码仓库上安装 Claude GitHub App。如果尚未安装,触发器设置会提示你进行安装。
在 CLI 中运行 /web-setup 会授予代码仓库访问权限以进行克隆,但它不会安装 Claude GitHub App,也不会启用 Webhook 投递。GitHub 触发器需要安装 Claude GitHub App,触发器设置会提示你执行此操作。
配置触发器
选择代码仓库,从 支持的事件 列表中选择一个事件,并可选地添加筛选条件。保存触发器。
支持的事件
GitHub 触发器可以订阅以下任一事件类别。在每个类别中,你可以选择一个特定操作,例如 pull_request.opened,或响应该类别中的所有操作。
| Event | 触发时机 |
|---|---|
| Pull request | PR 被打开、关闭、分配、标记标签、同步或以其他方式更新时 |
| Release | 发布被创建、发布、编辑或删除时 |
筛选 Pull Request
使用筛选条件来缩小启动新会话的 Pull Request 范围。自动任务要触发,所有筛选条件都必须匹配。可用的筛选字段如下:
| 筛选字段 | 匹配内容 |
|---|---|
| Author | PR 作者的 GitHub 用户名 |
| Title | PR 标题文本 |
| Body | PR 描述文本 |
| Base branch | PR 的目标分支 |
| Head branch | PR 的来源分支 |
| Labels | 应用于 PR 的标签 |
| Is draft | PR 是否处于草稿状态 |
| Is merged | PR 是否已合并 |
每个筛选条件将字段与操作符配对:等于、包含、开头为、是其中之一、不是其中之一或匹配正则表达式。
matches regex 操作符测试整个字段值,而不是其中的子字符串。要匹配任何包含 hotfix 的标题,请写 .*hotfix.*。如果没有周围的 .*,筛选条件仅匹配完全等于 hotfix 且前后没有任何内容的标题。对于不使用正则语法进行字面量子字符串匹配,请改用 contains 操作符。
以下是几个筛选组合示例:
- 认证模块审查:base branch 为
main,head branch 包含auth-provider。将任何涉及认证的 PR 发送给专注的审查者。 - 仅审查就绪:is draft 为
false。跳过草稿,以便自动任务仅在 PR 准备好审查时运行。 - 标签控制回退:labels 包含
needs-backport。仅在维护者标记 PR 时触发移植到另一个分支的自动任务。
事件如何映射到会话
每个匹配的 GitHub 事件都会启动一个新会话。对于 GitHub 触发的自动任务,事件之间不能复用会话,因此两个 PR 更新会产生两个独立的会话。
管理自动任务
点击列表中的自动任务以打开其详情页面。详情页面显示自动任务的代码仓库、连接器、提示词、计划、API Token、GitHub 触发器以及过往运行列表。
查看和交互运行
点击任何运行以将其作为完整会话打开。从那里你可以查看 Claude 做了什么、审查变更、创建 Pull Request 或继续对话。每次运行会话的工作方式与其他任何会话一样:使用会话标题旁边的下拉菜单对其进行重命名、归档或删除。
运行列表中的绿色状态表示会话已启动且退出时没有基础设施错误。这并不意味着你提示词中的任务成功了。打开运行以阅读转录文本并确认 Claude 实际做了什么。被阻止的网络请求、缺失的连接器工具和任务级失败都会显示在那里,而不是在状态指示器中。
编辑和控制自动任务
从自动任务详情页面,你可以:
- 点击 Run now 立即开始运行,无需等待下一个计划时间。
- 使用 Repeats 部分中的开关来暂停或恢复计划。暂停的自动任务保留其配置,但在你重新启用之前不会运行。
- 点击铅笔图标打开 Edit routine,更改名称、提示词、代码仓库、环境、连接器或自动任务的任何触发器。Select a trigger 部分是你添加或移除计划、API Token 和 GitHub 事件触发器的地方。
- 点击删除图标移除自动任务。自动任务创建的过往会话保留在你的会话列表中。
代码仓库和分支权限
自动任务需要 GitHub 访问权限来克隆代码仓库。当你使用 /schedule 从 CLI 创建自动任务时,Claude 会检查你的账户是否已连接 GitHub,如果没有,则提示你运行 /web-setup。有关授予访问权限的两种方式,请参阅 GitHub 认证选项。
你添加的每个代码仓库都会在每次运行时克隆。除非你的提示词另有指定,否则 Claude 从代码仓库的默认分支开始。
默认情况下,Claude 只能推送到 claude/ 前缀的分支。这可以防止自动任务意外修改受保护或长期存在的分支。要为特定代码仓库移除此限制,请在创建或编辑自动任务时为该代码仓库启用 Allow unrestricted branch pushes。
连接器
自动任务可以使用你连接的 MCP 连接器在每次运行期间读取和写入外部服务。例如,一个分类支持请求的自动任务可能会从 Slack 频道读取并在 Linear 中创建问题。
连接器是你账户上的 claude.ai 集成。你在 CLI 中使用 claude mcp add 本地添加的 MCP 服务器存储在你的机器上,而不是你的 claude.ai 账户上,因此它们不会出现在连接器列表中。要在自动任务中使用这些服务器之一,请在 claude.ai/customize/connectors 将其添加为连接器,或在已提交的 .mcp.json 中声明它,使其成为克隆仓库的一部分。
当你创建自动任务时,默认包含你当前所有已连接的连接器。移除任何不需要的连接器,以限制 Claude 在运行期间可以访问的工具。你也可以直接从自动任务表单添加连接器。
要在自动任务表单之外管理或添加连接器,请访问 claude.ai 上的 Settings > Connectors,或在 CLI 中使用 /schedule update。
环境和网络访问
每个自动任务在 云环境 中运行,该环境控制网络访问、环境变量和设置脚本。自动任务在每次运行时继承环境的网络策略。
Default 环境使用 Trusted 网络访问:可以访问包注册表、云提供商 API、容器注册表和常见开发域名的 默认允许列表,但无法访问任意域名。对其他主机的出站请求会失败,返回 403 和 x-deny-reason: host_not_allowed。MCP 连接器流量通过 Anthropic 的服务器路由,因此你添加到自动任务的连接器无需将其主机添加到 Allowed domains 即可工作。在 连接器 下移除你不需要的任何连接器。
要允许额外的域名:
打开自动任务进行编辑
在自动任务的详情页面,点击铅笔图标打开 Edit routine。
打开环境选择器
在 Instructions 框下方,选择显示环境名称的云图标,例如 Default。
打开环境设置
将鼠标悬停在列表中的环境上,然后点击右侧出现的设置图标。
更改网络访问级别
在 Update cloud environment 对话框中,将 Network access 更改为 Custom,并在 Allowed domains 中输入你的域名。勾选 Also include default list of common package managers 以在你的自定义域名旁边保留 默认允许列表。选择 Full 以获得无限制的访问权限。
保存
点击 Save changes。新策略从下次运行开始生效。
有关访问级别和默认允许列表的详细信息,请参阅 网络访问。
使用与限制
自动任务消耗订阅使用量的方式与交互式会话相同。除了标准订阅限制外,自动任务对每个账户每天可以启动的运行次数有上限。请在 claude.ai/code/routines 或 claude.ai/settings/usage 查看你当前的消耗量和剩余的每日自动任务运行次数。
当自动任务达到每日上限或你的订阅使用量限制时,开启使用额度的组织可以继续以计量超额方式运行自动任务。如果没有使用额度,额外的运行将被拒绝,直到窗口重置。在 claude.ai 的 Settings > Billing 中开启使用额度。
单次运行不计入每日自动任务上限。它们像任何其他会话一样消耗你的常规订阅使用量,但不受每个账户每日自动任务运行配额的限制。
故障排除
/schedule 显示 "No commands match" 或 "Unknown command"
当未满足某个要求时,CLI 会隐藏 /schedule,因此在你输入时命令菜单显示 No commands match "/schedule",提交后返回 Unknown command: /schedule。原因通常是以下之一:
- 你使用 Console API 密钥或云提供商(如 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry)进行身份验证。
/schedule需要 claude.ai 订阅登录。如果你的 shell 中设置了ANTHROPIC_API_KEY或ANTHROPIC_AUTH_TOKEN,或者settings.json中设置了apiKeyHelper,请先移除它们,因为这些优先于 claude.ai 登录 DISABLE_TELEMETRY、DO_NOT_TRACK、CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC或DISABLE_GROWTHBOOK设置在你的 shell 环境或settings.json文件 的env块中。这些设置会禁用功能标志获取,而/schedule依赖于它- 你正在 Claude Code 网页版会话中。请改为从 网页 UI 管理自动任务
- 你的 CLI 版本低于 v2.1.81。运行
claude update
无论 CLI 如何配置,你始终可以在 claude.ai/code/routines 创建和管理自动任务。
"Routines are disabled by your organization's policy"
你的 Team 或 Enterprise 组织中的所有者可能已在 claude.ai/admin-settings/claude-code 关闭了 Routines 开关。这是服务器端组织设置,因此无法从你的本地配置覆盖。请要求所有者为你的组织启用自动任务。
相关资源
/loop与会话内计划:在打开的 CLI 会话中计划本地任务- 桌面计划任务:在你的机器上运行并可访问本地文件的本地计划任务
- 云环境:为云会话配置运行时环境
- MCP 连接器:连接 Slack、Linear 和 Google Drive 等外部服务
- GitHub Actions:在代码仓库事件上的 CI 流水线中运行 Claude