Build a proactive agent workflow with Claude Code(用 Claude Code 打造主動式代理工作流程)

這場由 Anthropic 應用人工智慧團隊的 Maya 主講的研討會,聚焦於如何讓 Claude Code 從一個「等你按下 Enter 才動作的工具」進化成「主動發現問題並採取行動的隊友」。講者介紹了 Claude Code 中的全新功能 Routines(例程),說明它如何解決自建主動式代理所面臨的託管、觸發與人機協作三大痛點,並透過 Anthropic 內部「自動同步文件」的真實案例,示範如何從觸發器、背景資訊與可操控性三個角度設計自己的自動化流程。


原影片連結:https://www.youtube.com/watch?v=eSP7PLTXNy8

影片重點

  • 主動式代理(proactive agent)不應等到使用者按 Enter 才開始工作,目標是把 Claude Code 從「工具」變成「隊友」。
  • 自行打造主動式代理有三大挑戰:在哪裡執行(託管與持久化)、何時觸發(排程或事件)、以及人是否要介入(可觀察、可操控)。
  • Routines(例程) 是 Claude Code 的新功能:只需定義提示、要連接的儲存庫、連接器與觸發器,其餘的託管與會話狀態都交給 Claude Code 處理。
  • 例程執行的每一次會話都是完整的 Claude Code 會話,可透過網頁、CLI、桌面版即時觀看、介入、引導與恢復。
  • 觸發器分兩種:基於排程(時間觸發)與基於事件(原生 GitHub 事件,或透過 POST 到 webhook 的自訂事件)。
  • 設計例程要回答三個問題:何時觸發(Trigger)、需要哪些背景與工具(Context)、如何確保輸出品質(Steerability)。
  • Anthropic 內部案例:Claude Code 的每週 PR 數量年初至今成長 200%,導致文件難以跟上,於是用例程自動比對原始碼與文件差異並開 PR。
  • 品質把關可用「生成者—評論者(generator-critic)」多代理互評模式,也可讓人類即時介入監控與引導。
  • 更多應用場景:部署驗證器、On-call 調查員、待辦(backlog)分流與優先排序。
  • 只要在 Claude Code 輸入 /schedule slash 指令,就能建立你的第一個例程。

詳細內容

00:19 講者與主題介紹

講者 Maya 來自 Anthropic 的應用人工智慧(Applied AI)團隊,工作約一半時間投入自家第一方產品與功能開發,另一半時間協助客戶在 Anthropic 模型的基礎上打造自己的產品、功能與代理。本場研討會的主題是:如何使用 Claude Code 建立主動式代理程式工作流程。

她先向現場觀眾提問,了解有多少人用過 Claude Code 的例程功能、有多少人曾嘗試在 cron 任務中執行 Claude Code。結果顯示,願意自行搭建與維護這些基礎設施的人寥寥無幾——這正是 Anthropic 內部同樣感受到的痛點。

01:05 為什麼主動式代理勝過被動工具

講者指出,編碼代理不應該等到你按下 Enter 才開始工作。目前的 Claude Code 已是非常強大的編碼工具,但團隊希望把它變成真正的「編碼隊友」——一個會主動注意到東西壞了、並採取行動的夥伴,而不是被動等待輸入提示的工具。

這場演講的目標,就是介紹名為「例程(Routines)」的功能,讓 Claude Code 從「今天的工具」轉變為「明天的團隊成員」。整場演講將涵蓋四件事:當今主動式代理面臨的挑戰、Routines 新功能、Anthropic 內部自動建立文件的實例,以及如何把例程應用到你自己的工作流程。

02:35 建立主動式代理的三大挑戰

第一個難題是代理應該在哪裡執行。你通常不希望它們跑在本機電腦上,因為一旦關機或當機,代理的會話就結束了。這意味著你得自行處理託管、資料持久化與身份驗證,等於要在提示之外搭建一整套基礎設施,雖然可行,但工作量大、樣板程式碼多。

第二個難題是何時觸發這些會話。你可以基於 cron 排程,或是向某個端點發送 POST 請求來啟動,但同樣需要自建大量基礎設施。

第三個難題是人機協作的分寸。有時你希望人參與其中,有時又希望人保持距離。目前啟動無頭(headless)雲端的 Claude Code 會話時,很難即時了解代理到底在做什麼,你無法觀看、操控、綁定,甚至無法恢復代理會話。這些正是例程要解決的三個問題。

05:48 Routines:Claude Code 的全新功能

Routines 是 Claude Code 的自動化功能:你只需定義提示、要連接的儲存庫、可用的連接器以及觸發器,即可啟動遠端雲端的 Claude Code 會話,其餘部分全由 Claude Code 處理。設計時主要考量三件事。

第一,隨時可聯絡。這些代理跑在 Claude Code 的託管基礎設施上,託管、會話狀態與連接器都由平台代管,無需打開你的筆記型電腦。

第二,主動觸發。可透過可自訂的觸發器,讓代理按時間排程或依事件啟動;平台原生支援 GitHub 事件,也能處理你自訂、發布到 webhook 端點的事件,並把事件負載(payload)作為上下文。

第三,互動且可控。透過例程啟動的每個 Claude Code 會話,都與你在終端機啟動的一樣是完整會話——可以打開、觀看、跟進、控制,並透過網頁、CLI 與桌面版恢復對話。

08:05 實戰案例:自動化文件同步

講者分享 Anthropic 內部的真實用例:Claude Code 的每週 PR 數量自年初以來成長了 200%。這對工程團隊的生產力是好事,也讓使用者能很快用到新功能,但對負責維護 Claude Code 與 Agent SDK 文件的工程師(暱稱「文件女王」Sarah)卻是沉重負擔。

Sarah 成為例程的早期愛用者。在終端機中,她輸入 /schedule,接著寫下例程內容:「請每週對照我們的文件倉庫檢查所有合併到主分支的新變更,如果發現任何變更,請建立一個 PR 來更新文件。」Claude 收到後會反問一些設定問題,例如:每週幾點啟動、建立 PR 後是否要在 Slack 通知你?當你回答完這些問題,Claude 就會建立好一個例程。

09:41 設計例程的三大決定

講者歸納出建立任何例程都要做的三個決定。

一、觸發器(Trigger):這個活動何時該啟動?例程支援兩種方式——基於排程(如每週比對原始碼與文件的差異),或基於事件(如每次發布新版本時,比對發布分支與文件;或工程師在部署變更時貼上「需要文件」標籤,當帶標籤的 PR 合併就觸發)。

二、背景(Context):代理要成功需要知道哪些資訊?你可能需要授權它存取一個或多個程式碼庫。以文件案例來說,Claude 需要能存取原始碼以找出新變更,也要能存取文件倉庫以建立 PR。你也可以連接更多連接器,例如把行銷簡報放在 Google 雲端硬碟並連接 Drive 連接器,讓 Claude 沿用一致的用語;或連接 Slack 連接器,讓 Claude 在開 PR 後通知你。

三、可操控性(Steerability):如何確保 Claude 的產出品質?一種做法是投資「代理間互評」,借鑑多代理系統中的「生成者—評論者(generator-critic)」模式——一個例程負責建立文件 PR,另一個例程在 PR 建立時觸發、在人介入前先留下評論。另一種做法是讓人在網頁上即時觀看 Claude Code 會話、在過程中提問、把它推往不同方向,或恢復先前的會話。最後別忘了驗證輸出,例如實際渲染 Claude 修改與建立的文件頁面,確認符合預期。

13:07 Demo:排程觸發與 GitHub 事件觸發

在 Claude.ai 的左側面板點進 Code 按鈕,可以看到先前建立的例程:它連接到 Claude Code 原始碼與文件兩個儲存庫,每週一上午 10:00 執行,並連接 GitHub 與 Slack。點進某次會話,可以看到 Claude 讀取指令後,先查看原始碼庫最近合併的 PR 與變更日誌,再與文件庫比對,發現差異後便提交 PR。

接著講者示範基於 GitHub 事件的例程:新建一個文件自動化流程,設定為每當在 Claude Code 文件倉庫中開啟新的 issue 就觸發,指示 Claude 調查該 issue、判斷是否為文件缺漏、若是則開 PR 並在指定頻道回報。她現場建立一個 issue(新版本文件缺了一些工具),刷新頁面後便看到新一輪會話啟動,issue 的背景資訊也被當作上下文傳入。過程中她還示範了即時引導 Claude 結束會話,展現例程啟動後仍能即時控制代理。

16:17 更多應用場景:部署驗證器與待辦分流

講者用同樣的「觸發器 / 背景 / 可操控性」框架,示範如何把常見的軟體工程挑戰轉成例程。

部署驗證器:假設你剛對某服務部署了變更,想確認它運作正常、不需回滾。觸發器可用持續交付管線在每次部署後發送的 webhook;背景則授予 Claude 存取該服務原始碼與監控工具(如 Datadog、Grafana),並連接 Slack、Email 或 Twilio 簡訊以便通知;可操控性方面,起初讓 Claude 先做調查、由你決定是否回滾,隨著你越來越信任它的判斷,最終可放手讓 Claude 依監控數據自行回滾。

其他場景還包括 On-call 調查員,以及身為 PM 時處理大量待辦(可能是 GitHub issues 或 Slack 貼文)的分流工作——設定每週例程讀取所有問題,授權存取 GitHub 與 Slack,用 Claude 協助排定優先順序,並為最重要的問題開 PR。

18:01 總結

講者的最終總結是:主動式代理勝過被動式代理,目標是讓 Claude 從工具變成隊友——從等你按 Enter 才建立 PR 的代理,變成能對問題做出反應、自行開 PR 的代理。例程幫你處理所有基礎設施,讓你能專注於自己的領域與流程專業知識。她鼓勵大家從今天開始:只要在 Claude Code 加入一條 /schedule slash 指令,就能建立你的第一個例程。

我的想法

這場演講最值得玩味的一點,是它把「主動式代理」的討論從模型能力拉回到工程與協作介面的層次。多數人談 agent 時聚焦於模型有多聰明,但 Maya 點出的三大挑戰——在哪裡跑、何時觸發、人如何介入——其實都是傳統的分散式系統與 DevOps 問題。Routines 的價值不在於讓模型更強,而在於把 cron、託管、身份驗證、事件路由這些「膠水工程」收斂成一個受管平台,這和過去 CI/CD 從自建 Jenkins 走向託管 GitHub Actions 的演進如出一轍。

其中「生成者—評論者」互評模式特別實用,它把測試工程裡「同儕審查」的概念直接搬進代理工作流程——與其追求單一代理一次做對,不如用第二個代理當守門員,這在容易產生幻覺的 LLM 場景中是相當務實的護欄。

不過也要提醒:把回滾、開 PR 這類具副作用的動作交給排程觸發的自動化代理,風險管理必須跟上。影片示範的「先建議、人核可,再逐步放權」是很好的漸進式信任路徑,實務上建議搭配權限最小化、審計日誌與明確的回退機制,別因為方便就一步到位給全自動權限。對於想嘗試的人,從一個「唯讀、只通知不動作」的低風險例程(例如每日文件差異報告)開始,會是安全又能快速見效的起手式。

進階測驗:用 Claude Code 打造主動式代理工作流程

測驗目標:驗證你是否能在實際情境中應用 Claude Code Routines(例程)的觀念。
共 5 題,包含情境題與錯誤診斷題。

1. 部署驗證器的觸發設計 情境題

你想用例程建立一個「部署驗證器」:每次服務部署完成後, 讓 Claude 檢查監控指標、判斷是否需要回滾。 你的持續交付(CD)管線會在每次部署後對外送出通知。 依影片建議,觸發器最適合怎麼設定?
  • A. 用每 5 分鐘一次的排程觸發,反覆輪詢是否有新部署
  • B. 讓 CD 管線在部署後對例程支援的 webhook 發送 POST 請求來觸發
  • C. 在本機筆電上跑 cron,部署後自己啟動 Claude Code
  • D. 每次都手動打開 Claude Code 並貼上提示

2. 自動同步文件需要哪些背景 情境題

你要複製影片中的案例:每週比對原始碼與文件的差異, 若發現文件過時就自動開 PR 更新文件。 在設計例程的「背景(Context)」時,最關鍵該授權哪些存取權?
  • A. 只要能存取文件倉庫即可,原始碼不需要
  • B. 只要連接 Slack 就能完成整個流程
  • C. 同時存取原始碼庫(找出新變更)與文件倉庫(建立 PR)
  • D. 只需授權 Google 雲端硬碟連接器

3. 如何確保代理產出的品質 情境題

你的例程會自動為文件開 PR,但你擔心產出品質不穩定, 希望在人真正審查前先有一道自動把關。 依影片提到的「可操控性(Steerability)」做法,最貼切的是哪一個?
  • A. 提高模型溫度讓輸出更有創意
  • B. 把提示寫得更長就能保證正確
  • C. 關閉所有人為介入,完全信任代理
  • D. 用生成者—評論者模式,另設一個例程在 PR 建立時觸發並先留評論

4. 為什麼自建代理總是「斷線」 錯誤診斷

同事抱怨:他把主動式代理直接跑在自己的筆記型電腦上, 「每次闔上筆電或電腦當機,代理的工作就中斷、會話就沒了」。 依影片對挑戰的分析,這個問題的根本原因是什麼?
  • A. 提示寫得不夠清楚,Claude 才會停下來
  • B. 代理跑在本機,缺乏託管、資料持久化等基礎設施,關機即結束會話
  • C. 沒有連接 Slack 連接器
  • D. 觸發器選成事件觸發而非排程觸發

5. 建立第一個例程的指令 錯誤診斷

新手想在 Claude Code 中建立第一個例程,於是輸入: /routine 每週檢查文件差異並開 PR 但找不到影片示範的建立方式。依影片說明,正確的起手指令應該是什麼?
  • A. /cron,因為例程本質就是 cron 任務
  • B. /deploy,先部署才能排程
  • C. /schedule,接著寫下例程要做的事,Claude 會反問設定問題
  • D. /webhook,例程只能靠 webhook 建立
0

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *