凌晨 2 點,你的 CI/CD 管線發現了一個關鍵錯誤。你醒了嗎?沒有。但 Claude Code 已經在分析日誌、定位問題、準備修補丁,並在一個草稿 PR 裡等待你晨間咖啡時的審查。
這不是科幻小說,而是 Anthropic 最新推出的 Claude Code Routines 功能。Routines 是一個保存的 Claude Code 配置——包含提示詞、一個或多個倉庫、以及一組 MCP 連接器——打包一次,然後自動運行。最重要的是,Routines 在 Anthropic 管理的雲端基礎設施上執行,所以即使你的筆電關機,它們也會持續工作。
每個 routine 都可以附加一或多個觸發器:Scheduled(按排程運行)、API(通過 HTTP 請求觸發)、或 GitHub(對倉庫事件做出回應)。更妙的是,單個 routine 可以組合觸發器——一個 PR review routine 可以每天晚上運行,也可以從部署腳本觸發,還能對每個新 PR 做出回應。
Routines 目前處於研究預覽階段,行為、限制和 API 表面可能會有變化。這項功能在 Pro、Max、Team 和 Enterprise 方案中可用,前提是啟用了「Claude Code on the web」。你可以在 claude.ai/code/routines 創建和管理,或在 CLI 中使用 /schedule。
實際應用場景
官方文檔列出了六個典型應用場景,每個都配對了觸發器類型和 Routines 最擅長的工作類型:無人值守、可重複、且明確的結果。
Backlog maintenance。 一個排程觸發器每週一晚運行,通過連接器訪問你的 issue tracker。Routine 讀取自上次運行以來打開的 issues,應用標籤,根據引用的代碼區域分配負責人,並將摘要發送到 Slack,讓團隊開始新的一天時有一個整理好的隊列。
Alert triage。 你的監控工具在錯誤閾值被跨越時調用 routine 的 API 端點,將 alert body 作為 text 傳遞。Routine 拉取 stack trace,與倉庫中的最近 commits 進行關聯,並開啟一個帶有建議修補丁和回連到 alert 的草稿 PR。值班人員審查 PR,而不是從一個空白的 terminal 開始。
Bespoke code review。 一個 GitHub 觸發器在 pull_request.opened 時運行。Routine 應用你團隊自己的 review 清單,為安全、性能和風格問題留下內聯註釋,並添加摘要註釋,以便人工審查者專注於設計而非機械檢查。
Deploy verification。 你的 CD 管線在每次生產部署後調用 routine 的 API 端點。Routine 對新構建運行 smoke checks,掃描錯誤日誌尋找回歸問題,並在部署窗口關閉前將 go 或 no-go 發布到發布頻道。
Docs drift。 一個排程觸發器每週運行。Routine 掃描自上次運行以來合併的 PR,標記引用已更改 API 的文檔,並針對文檔倉庫開啟更新 PR,供編輯者審查。
Library port。 一個 GitHub 觸發器在 pull_request.closed 時運行,過濾到一個 SDK 倉庫中的合併 PR。Routine 將更改移植到另一種語言的並行 SDK,並開啟一個匹配的 PR,保持兩個庫同步,無需人類重新實現每個更改。
這些場景的共同點是:它們都是重複性、可自動化、且需要上下文感知的工作。傳統方式下,這些工作需要人工介入,或者需要編寫複雜的腳本。Routines 的好處在於:你用自然語言描述你想要的,Claude Code 負責執行。
如何創建一個 Routine
創建 routine 可以從網頁、Desktop 應用或 CLI 進行。這三個介面都寫入同一個雲端帳戶,所以你在 CLI 中創建的 routine 會立即出現在 claude.ai/code/routines。
在 Desktop 應用中,點擊 New task 並選擇 New remote task;選擇 New local task 則創建一個本地 Desktop scheduled task,它在你的機器上運行,不是 routine。
創建表單設置 routine 的提示詞、倉庫、環境、連接器和觸發器。
Routines 自主運行為完整的 Claude Code 雲端會話:沒有權限模式選擇器,運行期間沒有批准提示。會話可以執行 shell 命令、使用提交到克隆倉庫的 skills,以及調用你包含的任何連接器。Routine 能到達什麼由你選擇的倉庫及其分支推送設置、環境的網絡訪問和變量、以及你包含的連接器決定。將每個都縮小到 routine 實際需要的範圍。
Routines 屬於你的個別 claude.ai 帳戶。它們不與隊友共享,並計入你帳戶的每日運行配額。Routine 通過你的連接 GitHub 身份或連接器所做的任何事情都顯示為你:commits 和 pull requests 携帶你的 GitHub 用戶,Slack 消息、Linear tickets 或其他連接器操作使用那些服務的連接帳戶。
從網頁創建
- 訪問 claude.ai/code/routines 並點擊 New routine。
- 給 routine 一個描述性名稱並寫下 Claude 每次運行的提示詞。提示詞是最重要的部分:routine 自主運行,所以提示詞必須自包含且明確說明要做什么以及成功看起來像什麼。提示詞輸入包括一個模型選擇器。Claude 在每次運行時使用選定的模型。
- 選擇一個或多個 Claude 要工作的 GitHub 倉庫。每個倉庫在運行開始時被克隆,從默認分支開始。Claude 為其更改創建
claude/前綴的分支。要允許推送到任何分支,為該倉庫啟用 Allow unrestricted branch pushes。 - 為 routine 選擇一個雲端環境。環境控制雲端會話可以訪問什麼:Network access(設置每次運行期間可用的網絡訪問級別)、Environment variables(提供 Claude 可以使用的 API 密鑰、令牌或其他秘密)、Setup script(在每個會話開始前運行安裝命令,如安裝依賴或配置工具)。提供一個 Default 環境。要使用自定義環境,在創建 routine 之前創建一個。
- 在 Select a trigger 下,選擇 routine 如何開始。你可以選擇一個觸發器類型或組合幾個。對於排程,選擇預設頻率:hourly、daily、weekdays 或 weekly。對於 GitHub 事件,選擇倉庫、要回應的事件和可選過濾器。對於 API,在這裡選擇 API,然後保存 routine。URL 和 token 在保存後生成,因為它們依賴於 routine ID。
- 審查連接器。默認情況下包含所有你連接的 MCP 連接器。移除 routine 不需要的那些。連接器在每次運行期間給 Claude 訪問外部服務如 Slack、Linear 或 Google Drive 的能力。
- 點擊 Create。routine 出現在列表中,並在它的某個觸發器下次匹配時運行。要立即開始運行,點擊 routine 詳情頁面上的 Run now。每次運行創建一個新會話,你可以在那裡看到 Claude 做了什麼,審查更改,並創建 pull request。
從 CLI 創建
在任何會話中運行 /schedule 以對話方式創建排程的 routine。你也可以直接傳遞描述,如 /schedule daily PR review at 9am。Claude 會引導你完成網頁表單收集的相同信息,然後將 routine 保存到你的帳戶。
CLI 中的 /schedule 僅創建排程的 routine。要添加 API 或 GitHub 觸發器,在 claude.ai/code/routines 上從網頁編輯 routine。
CLI 也支持管理現有 routine。運行 /schedule list 查看所有 routine,/schedule update 更改一個,或 /schedule run 立即觸發。
從 Desktop 應用創建
打開 Desktop 應用中的 Schedule 頁面,點擊 New task 並選擇 New remote task。Desktop 應用在同一個網格中顯示本地排程任務和 routines。
配置觸發器
當它的某個觸發器匹配時,routine 開始。你可以將排程、API 和 GitHub 觸發器的任何組合附加到同一個 routine,並隨時從 routine 編輯表單的 Select a trigger 部分添加或刪除。
添加排程觸發器
排程觸發器按遞增韻律運行 routine。在 Select a trigger 部分選擇預設頻率:hourly、daily、weekdays 或 weekly。時間以你的本地時區輸入並自動轉換,所以 routine 在那個牆鐘時間運行,無論雲端基礎設施位於何處。
由於 stagger,運行可能在排程時間後幾分鐘開始。每個 routine 的偏移量是一致的。
對於自定義間隔如每兩小時或每月第一天,在表單中選擇最近的預設,然後在 CLI 中運行 /schedule update 設置特定的 cron 表達式。最小間隔是一小時;運行更頻繁的表達式會被拒絕。
添加 API 觸發器
API 觸發器給 routine 一個專用的 HTTP 端點。用 routine 的 bearer token POST 到端點開始一個新會話並返回會話 URL。用這個將 Claude Code 接線到警報系統、部署管道、內部工具或任何你可以發送認證 HTTP 請求的地方。
API 觸發器從網頁添加到現有 routine。CLI 目前不能創建或撤銷 token。
- 打開 claude.ai/code/routines,點擊你要通過 API 觸發的 routine,然後點擊鉛筆圖標打開 Edit routine。
- 滾動到提示詞下方的 Select a trigger 部分,點擊 Add another trigger 並選擇 API。
- 模態框顯示此 routine 的 URL 以及示例 curl 命令。復制 URL,然後點擊 Generate token 並立即復制 token。Token 只顯示一次,之後無法檢索,所以將它存儲在安全的地方如警報工具的秘密存儲中。
- 用
Authorization: Bearerheader 中的 token POST 到 URL。觸發 routine 部分顯示完整示例。
每個都有自己的 token,範圍僅限觸發該 routine。要輪換或撤銷,返回同一個模態框並點擊 Regenerate 或 Revoke。
觸發一個 Routine
向 /fire 端點發送帶有 Authorization header 中的 bearer token 的 POST 請求。請求 body 接受一個可選的 text 字段,用於特定運行的上下文,如 alert body 或失敗日誌,與 routine 保存的提示詞一起傳遞給 routine。值是自由形式文本且不解析:如果你發送 JSON 或其他結構化載荷,routine 將其作為字面字符串接收。
從 shell 觸發 routine 的示例:
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. Stack trace attached."}'
成功請求返回一個 JSON body,包含新會話 ID 和 URL:
{
"type": "routine_fire",
"claude_code_session_id": "session_01HJKLMNOPQRSTUVWXYZ",
"claude_code_session_url": "https://claude.ai/code/session_01HJKLMNOPQRSTUVWXYZ"
}
在瀏覽器中打開會話 URL 以實時查看運行,審查更改,或手動繼續對話。
/fire 端點在 experimental-cc-routine-2026-04-01 beta header 下發布。請求和響應形狀、速率限制和 token 語義在功能處於研究預覽期間可能會變化。破壞性更改在新日期的 beta header 版本後面發布,兩個最近的前一個 header 版本繼續工作,以便調用者有時間遷移。
完整的 API 參考,包括所有錯誤響應、驗證規則和字段限制,見 Claude Platform 文檔中的 Trigger a routine via API。/fire 端點僅對 claude.ai 用戶可用,不是 Claude Platform API 表面的一部分。
添加 GitHub 觸發器
GitHub 觸發器在連接倉庫上發生匹配事件時自動開始新會話。每個匹配事件開始其自己的會話。
在研究預覽期間,GitHub webhook 事件受每 routine 和每帳戶每小時上限限制。超過限制的事件會被丟棄,直到窗口重置。在 claude.ai/code/routines 查看你當前的限制。
GitHub 觸發器僅從網頁 UI 配置。
- 打開 claude.ai/code/routines,點擊 routine,然後點擊鉛筆圖標打開 Edit routine。
- 滾動到 Select a trigger 部分,點擊 Add another trigger 並選擇 GitHub event。
- Claude GitHub App 必須安裝在你要訂閱的倉庫上。觸發器設置會提示你安裝它(如果尚未安裝)。在 CLI 中運行
/web-setup授予克隆的倉庫訪問權限,但它不安裝 Claude GitHub App,也不啟用 webhook 傳遞。GitHub 觸發器需要安裝 Claude GitHub App,觸發器設置會提示你這樣做。 - 選擇倉庫,從支持的事件列表中選擇一個事件,並可選添加過濾器。保存觸發器。
支持的事件
GitHub 觸發器可以訂閱以下任何事件類別。在每個類別中,你可以選擇特定操作,如 pull_request.opened,或回應類別中的所有操作。
- Pull request:當 PR 被打開、關閉、分配、標記、同步或以其他方式更新時
- Pull request review:當 PR review 被提交、編輯或駁回時
- Pull request review comment:當在 PR diff 上創建、編輯或刪除註釋時
- Push:當 commits 被推送到分支時
- Release:當 release 被創建、發布、編輯或刪除時
- Issues:當 issue 被打開、編輯、關閉、標記或以其他方式更新時
- Issue comment:當在 issue 或 PR 上創建、編輯或刪除註釋時
- Sub issues:當添加或刪除子 issue 或父 issue 時
- Commit comment:當對 commit 或 diff 評論時
- Discussion:當 discussion 被創建、編輯、回答或以其他方式更新時
- Discussion comment:當創建、編輯或刪除 discussion 註釋時
- Check run:當 check run 被創建、請求、重新請求或完成時
- Check suite:當 check suite 完成或被請求時
- Merge queue entry:當 PR 進入或離開合併隊列時
- Workflow run:當 GitHub Actions workflow run 開始或完成時
- Workflow job:當 GitHub Actions job 被排隊或完成時
- Workflow dispatch:當 workflow 被手動觸發時
- Repository dispatch:當發送自定義 repository_dispatch 事件時
過濾 Pull Requests
使用過濾器縮小哪些 pull requests 開始新會話。所有過濾條件必須匹配才能觸發 routine。可用的過濾字段:
- Author:PR 作者的 GitHub 用戶名
- Title:PR 標題文本
- Body:PR 描述文本
- Base branch:PR 目標的分支
- Head branch:PR 來源的分支
- Labels:應用於 PR 的標籤
- Is draft:PR 是否處於草稿狀態
- Is merged:PR 是否已被合併
- From fork:PR 是否來自 fork
一些過濾器組合示例:
- Auth module review:base branch
main,head branch 包含auth-provider。將任何觸摸身份驗證的 PR 發送到專注審查者。 - External contributor triage:from fork 是
true。將每個基於 fork 的 PR 通過額外的安全和風格審查路由,直到人員查看。 - Ready-for-review only:is draft 是
false。跳過草稿,所以 routine 僅在 PR 準備好審查時運行。 - Label-gated backport:labels 包含
needs-backport。僅當維護者標記 PR 時觸發移植到另一分支的 routine。
會話如何映射到事件
每個匹配的 GitHub 事件開始一個新會話。GitHub 觸發的 routine 不可用會話重用,所以兩次 push 或兩次 PR 更新產生兩個獨立會話。
管理 Routines
點擊列表中的 routine 打開其詳情頁。詳情頁顯示 routine 的倉庫、連接器、提示詞、排程、API token、GitHub 觸發器和過去運行的列表。
點擊任何運行將其打開為完整會話。從那裡你可以看到 Claude 做了什麼,審查更改,創建 pull request,或繼續對話。每次運行會話像任何其他會話一樣工作:使用會話標題旁的下拉菜單重命名、存檔或刪除它。
從 routine 詳情頁你可以點擊 Run now 立即開始運行,無需等待下次排程時間。使用 Repeats 部分中的切換暫停或恢復排程。暫停的 routine 保持其配置但不運行,直到你重新啟用。點擊鉛筆圖標打開 Edit routine 並更改名稱、提示詞、倉庫、環境、連接器或任何 routine 的觸發器。Select a trigger 部分是你添加或刪除排程、API token 和 GitHub 事件觸發器的地方。點擊刪除圖標刪除 routine。routine 創建的過去會話保留在你的會話列表中。
倉庫和分支權限
Routines 需要 GitHub 訪問權限來克隆倉庫。當你用 /schedule 從 CLI 創建 routine 時,Claude 檢查你的帳戶是否已連接 GitHub,如果沒有則提示你運行 /web-setup。
每個添加的倉庫在每次運行時被克隆。Claude 從倉庫的默認分支開始,除非你的提示詞另有指定。
默認情況下,Claude 只能推送到帶 claude/ 前綴的分支。這防止 routine 意外修改受保護或長壽命的分支。要為特定倉庫移除此限制,在創建或編輯 routine 時為該倉庫啟用 Allow unrestricted branch pushes。
連接器
Routines 可以使用你連接的 MCP 連接器在每次運行期間從外部服務讀取和寫入。例如,一個分流支持請求的 routine 可能從 Slack 頻道讀取並在 Linear 中創建 issues。
創建 routine 時,默認包含所有你當前連接的連接器。移除任何不需要的,以限制 Claude 在運行期間可以訪問的工具。你也可以直接從 routine 表單添加連接器。
要在 routine 表單之外管理或添加連接器,在 claude.ai 訪問 Settings > Connectors 或在 CLI 中使用 /schedule update。
環境
每個 routine 在控制網絡訪問、環境變量和設置腳本的雲端環境中運行。在創建 routine 之前配置環境,給 Claude 訪問 API、安裝依賴或限制網絡範圍的能力。
使用和限制
Routines 像交互式會話一樣消耗訂閱使用量。除了標準訂閱限制外,routine 每個帳戶每天可以開始的運行次數有上限。在 claude.ai/code/routines 或 claude.ai/settings/usage 查看你當前的消耗和剩餘每日 routine 運行。
當 routine 達到每日上限或你的訂閱使用限制時,啟用了額外使用量的組織可以在計費超限上繼續運行 routine。沒有額外使用量,額外運行會被拒絕,直到窗口重置。在 claude.ai 上的 Settings > Billing 啟用額外使用量。
五年後回頭看今天,我們會說什麼?是「當時我們還要手動審查 PR」,還是「那時就該知道自動化是唯一的出路」?答案,由現在的決定。Routines 不是關於讓 AI 代替我們思考,而是關於讓 AI 處理那些不需要思考的部分,這樣我們可以把時間花在真正重要的事情上。
對台灣的開發團隊來說,這或許是一個轉折點:不是技術有多先進,而是我們如何選擇使用它。是讓它成為效率工具,還是讓它成為思考的拐杖——這個選擇,現在就在我們手中。