# 策展 · X (Twitter) 🔥

> 📖 本站完整內容索引（documentation index）：[llms.txt](/llms.txt)

> 作者：Thariq (@trq212) · 平台：X (Twitter) · 日期：2026-06-03

> 原始來源：https://x.com/trq212/status/2061907337154367865

## 中文摘要

# 為每個任務打造專屬 harness：Claude Code 中的動態工作流程 (Dynamic Workflows)

上週，我們在 Claude Code 中發布了動態工作流程。現在，Claude 可以即時編寫專屬於當前任務的 harness。

雖然預設的 Claude Code harness 是為程式開發而建，但它對許多其他類型的任務也很有用，因為事實證明，許多任務本質上都與程式開發任務相似。然而，對於某些特定類型的任務，我們必須在 Claude Code 之上構建自訂 harness 才能達到最佳效能，例如研究、安全性分析、Agent 團隊協作或程式碼審查 (Code Review)。

工作流程讓你能夠動態建立 harness，讓 Claude 能夠在 Claude Code 內部原生解決上述所有問題，甚至更多。你也可以與他人分享並重複使用這些工作流程。

在這篇文章中，我將分享我初步使用工作流程的經驗與心得，讓你能夠充分發揮其優勢。

話雖如此，最佳實踐仍在發展中！動態工作流程通常會消耗更多 token，因此請謹慎思考何時以及如何使用它們。

註：本文同步發布於 Claude Blog

## 範例 Prompt

在深入探討技術細節之前，我想先提供一些範例 Prompt，讓你思考工作流程能帶來的各種可能性：

- 「這個測試每執行 50 次大約會失敗 1 次。請建立一個工作流程來重現它，提出假設並在 worktrees 中進行對抗性測試，/goal 在理論驗證成功前不要停止。」

- 「使用工作流程，檢查我過去 50 次的 session，挖掘出我持續在犯的錯誤，並將重複出現的錯誤轉化為 CLAUDE.md 規則。」

- 「使用工作流程搜尋 Slack 中過去六個月的 #incidents，找出沒有人提交過 ticket 的重複性根本原因。」

- 「拿我的商業計畫書來執行一個工作流程，讓不同的 Agent 分別從投資人、客戶和競爭對手的角度進行嚴格檢視。」

- 「這裡有一個包含 80 份履歷的資料夾，使用工作流程為後端職位進行排名，並對前十名進行複查。使用 AskUserQuestion 工具針對評分標準對我進行面試。」

- 「我需要為這個 CLI 工具取個名字。使用工作流程進行腦力激盪，列出一堆選項，並舉辦一場錦標賽來選出前 3 名。」

- 「使用工作流程將我們所有的 User 模型重新命名為 Account。」

- 「檢查我的部落格草稿，並使用工作流程對照程式庫驗證每一項技術主張，我不希望發布任何錯誤的內容。」

## 動態工作流程的運作方式

動態工作流程會執行一個 JavaScript 檔案，其中包含一些有助於生成並協調子 Agent 的特殊函式：

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219841-diaHJ0t9PDbQAAYqhjpg.jpg)

動態工作流程也包含標準的 JavaScript 函式（如 JSON、Math 和 Array），以協助處理資料。

特別值得一提的是，動態工作流程可以決定 Agent 使用哪些模型，以及子 Agent 是否在各自的 worktree 中執行，這讓 Claude 可以根據需求選擇所需的智慧程度與隔離性。

如果工作流程中斷（例如因為使用者的操作或關閉終端機），恢復 session 後，工作流程將能從中斷的地方繼續執行。

## 為什麼需要動態工作流程

當你要求預設的 Claude Code harness 執行任務時，它需要在同一個 context window 中同時進行規劃與執行。對於許多程式開發任務來說，這非常有效，但對於長期執行、大規模平行處理或高度結構化的對抗性任務，有時可能會失效。

這是因為 Claude 在單一 context window 中處理複雜任務的時間越長，就越容易出現幾種特定的失敗模式：

- **Agentic 懶惰**：指 Claude 在完成特別複雜、多部分的任務時，在取得部分進展後就宣告任務完成（例如在安全性審查中只處理了 50 個項目中的 20 個）。

- **自我偏好偏差**：指 Claude 傾向於偏好自己的結果或發現，特別是在被要求根據評分標準來驗證或評判這些結果時。

- **目標漂移**：指在多次對話後，對原始目標的忠實度逐漸喪失，特別是在壓縮（compaction）之後。每個摘要步驟都會造成資訊流失，像邊緣案例需求或「不要做 X」這類限制條件可能會因此遺失。

建立工作流程有助於透過協調多個擁有各自 context window、目標明確且隔離的 Claude 來克服這些問題。

## 動態 vs. 靜態工作流程

你可能之前已經使用 Claude Agent SDK 或 `claude -p` 建立過靜態工作流程，用來協調多個 Claude Code 實例。

但由於靜態工作流程需要處理所有邊緣案例，它們通常比較通用。有了 Claude Opus 4.8 和動態工作流程，Claude 現在已經足夠聰明，可以為你的使用情境量身打造一個自訂的 harness。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219768-iaHJ1Dc3waUAA8Eeopng.png)

# 使用動態工作流程時的實用模式

你可以直接要求 Claude 製作一個工作流程，或者使用觸發詞「ultracode」來確保 Claude Code 建立一個工作流程，從而開始使用動態工作流程。

但建立關於動態工作流程如何運作的心智模型，將有助於你理解何時該使用它們，以及如何透過 Prompt 引導 Claude。

Claude 在構建工作流程時，可能會使用並組合以下幾種常見模式：

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219441-diaHJ0u2cbMAA3ufPjpg.jpg)

**分類與執行 (Classify-and-act)**

使用一個分類器 Agent 來決定任務類型，然後根據任務路由到不同的 Agent 或行為。或者，在最後使用分類器來決定輸出結果。

**分發與合成 (Fan-out-and-synthesize)**

將任務拆解為許多較小的步驟，在每個步驟上執行一個 Agent，然後合成這些結果。這對於有大量較小步驟，或者每個步驟都能從乾淨的 context window 中受益（避免干擾或交叉污染）的情況特別有用。合成步驟是一個屏障——它會等待所有分發的 Agent 完成，然後將它們的結構化輸出合併為一個結果。

**對抗性驗證 (Adversarial verification)**

為每個生成的 Agent 執行一個獨立的子 Agent，根據評分標準或準則對其輸出進行對抗性驗證。

**生成與過濾 (Generate-and-filter)**

針對某個主題生成多個想法，然後根據評分標準或驗證進行過濾，去除重複項目，只回傳最高品質、經過測試的想法。

**錦標賽 (Tournament)**

與其分配工作，不如讓 Agent 進行競爭。生成 N 個 Agent，每個 Agent 使用不同的方法嘗試相同的任務。接著由 Prompt 或模型使用評審 Agent 以兩兩配對的方式評判結果，直到選出優勝者。

**循環直到完成 (Loop until done)**

對於工作量未知的任務，循環生成 Agent 直到滿足停止條件（沒有新的發現，或日誌中不再有錯誤），而不是執行固定的次數。

# 使用情境

請發揮創意，思考何時以及如何要求 Claude Code 製作動態工作流程。我發現工作流程在非技術性工作中甚至更有用。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219692-iaHJ018ZjbcAA4nFmpng.png)

## 遷移與重構

Bun 是透過工作流程從 Zig 重寫為 Rust 的。你可以在 Jarred 的 X 串文中閱讀更多關於它是如何完成的。

關鍵在於將任務拆解為一系列需要處理的步驟，例如呼叫點 (callsites)、失敗的測試、模組等。在 worktree 中為每個修復生成一個子 Agent 來進行修改，然後讓另一個 Agent 進行對抗性審查並合併它們。考慮告訴 Agent 不要使用資源密集型指令，這樣你就可以在不耗盡機器資源的情況下實現最大程度的平行處理。

## 深度研究

我們在 Claude Code 中發布了一個深度研究 skill (`/deep-research`)，它使用了動態工作流程。具體來說，它會分發網路搜尋、獲取來源、對抗性驗證其主張，並合成一份引用報告。

但你可能不只為了網路搜尋而進行這類研究。例如，要求 Claude 從 Slack 的內容中編寫狀態報告，或是透過深入探索程式庫來研究某個功能是如何運作的。

## 深度驗證

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219338-iaHJ0vMJ8acAAM9Uojpg.jpg)

另一方面，如果你有一份報告，想要檢查並追溯其中引用的每一項事實主張，你可能會想要產生一個工作流程，讓一個 Agent 識別出所有的事實主張，然後生成子 Agent 來詳細檢查每一項。你也可以讓驗證 Agent 檢查來源子 Agent，以確保其來源具有高品質。

## 排序

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219272-iaHJ0wACFbMAAAvWljpg.jpg)

你可能有一份清單，想要根據你認為 Claude Code 擅長評估的某種定性指標進行排序，例如：根據 Bug 的嚴重程度對支援 ticket 進行排序。但如果你試圖在一個 Prompt 中對 1000 多行進行排序，品質會下降且無法放入 context。建議改為執行錦標賽、兩兩比較 Agent 的管道（比較判斷比絕對評分更可靠），或是進行平行分桶排名後再合併。每次比較都是一個獨立的 Agent，因此確定性循環會保留括號，只有執行順序會保留在 context 中。

## 記憶與規則遵循

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219469-iaHJ0wF76acAAyRMojpg.jpg)

如果你有一組特定的規則，發現 Claude 即使在 CLAUDE.md 中設定了還是會忽略或難以遵循，請建立一個工作流程，列出必須由驗證 Agent 檢查的規則——每個規則對應一個驗證者。建立一個懷疑論者人格的子 Agent 來審查這些規則，確保它們符合邏輯，將有助於避免過多的誤報。

反向操作也行：挖掘你最近的 session 和程式碼審查意見，找出你持續在做的修正，用平行 Agent 將它們分群，對每個候選規則進行對抗性驗證（這條規則能防止真正的錯誤嗎？），然後將留下來的規則提煉回 CLAUDE.md。

## 根本原因調查

當你提出幾個獨立的假設並進行測試時，除錯效果最好，但如果你只使用一個 context window，Claude 可能會陷入自我偏好偏差。

工作流程可以透過生成來自不同證據的假設的 Agent，從結構上防止這種情況。例如，針對日誌、檔案和資料分別使用不同的 Agent。每個假設隨後可以面對一組驗證者和反駁者。

這不僅適用於程式碼。工作流程可用於銷售（為什麼 3 月銷售額下降？）、資料工程（為什麼這個管道失敗了？）或任何事後檢討練習。

## 大規模分類 (Triaging)

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219634-iaHJ0wNb8bUAA33h5jpg.jpg)

每個團隊都有支援隊列、Bug 報告或其他人類無法完全處理的積壓工作。

分類工作流程會對每個項目進行分類，與已追蹤的項目進行去重，並採取行動。這可能意味著嘗試修復或升級給人類使用者。

分類工作流程的一個實用模式是「隔離」。這涉及禁止讀取不受信任的公開內容的 Agent 採取高權限操作，這些操作改由負責根據資訊採取行動的 Agent 來執行。

將分類工作流程與 `/loop` 搭配使用，讓 Claude 持續執行此操作。

## 探索與品味

當探索解決方案的不同方法時，工作流程非常有用，特別是當它基於品味（如設計或命名）且能從評分標準中受益時。

嘗試要求 Claude 探索一堆解決方案，並給予審查 Agent 一個關於什麼是好解決方案的評分標準。當審查 Agent 覺得符合標準時，任務即完成。解決方案也可以透過基於評分標準的錦標賽進行排序或選擇。

## Evals (評估)

你可以透過在 worktree 中生成獨立的 Agent，然後生成比較 Agent 來對照評分標準比較和評分特定輸出，從而為特定任務執行輕量級的 Evals。例如，根據特定標準評估並改進你所建立的 skill。

## 模型與智慧路由

建立一個針對你的任務進行調整的分類器 Agent，由它決定使用哪個模型。當你的任務涉及許多工具呼叫，且在執行前進行研究可以識別出最適合該工作的模型時，這會很有幫助。

例如，對於「解釋 auth 模組如何運作」這個任務，最佳模型取決於 auth 模組中有多少檔案以及程式庫的結構。分類器 Agent 可以進行這項研究，然後根據任務的預期複雜度路由到 Sonnet 或 Opus。

## 何時不該使用動態工作流程

工作流程是新功能。雖然在許多使用情境下它能創造出色的結果，但並非每個任務都需要它，且可能會消耗顯著更多的 token。

最好發揮創意使用工作流程，以你以前沒想過的方式推動 Claude Code。對於一般的程式開發任務，試著問自己：它真的需要更多運算嗎？例如，大多數傳統的程式開發任務並不需要 5 位審查員組成的評審團。

# 構建動態工作流程的技巧

**Prompting**

使用我們上述提到的特定技術進行詳細的 Prompting，能為動態工作流程創造最佳結果。

工作流程不僅適用於大型任務。你可以 Prompt 模型使用「快速工作流程」。例如，你可以建立一個針對某個假設的快速對抗性審查。

**與 `/goal` 和 `/loop` 結合**

當使用可以重複的工作流程（例如分類、研究或驗證）時，將它們與 `/loop` 搭配以定期執行，並使用 `/goal` 設定明確的完成要求。

**Token 使用預算**

你可以為動態工作流程設定明確的 token 使用預算，以限制任務消耗的 token 數量。你可以使用類似「使用 10k token」的預算來進行 Prompt，這將設定上限。

**儲存與分享動態工作流程**

你可以透過在工作流程選單中按「s」來儲存工作流程。你可以將它們簽入 `~/.claude/workflows` 或透過 skill 分發。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219265-iaHJ0wWqbasAAcvgujpg.jpg)

若要透過 skill 分享它們，請將你的 JavaScript 工作流程檔案放入 skill 資料夾中，並在 `SKILL.MD` 中引用它們。為了獲得更大的靈活性，你可能希望 Prompt Claude 將 skill 中的工作流程視為範本，而不是必須逐字執行的腳本。

![](https://pub-75d4fe1e4e80421b9ecb1245a7ae0d1a.r2.dev/curated/1780465219575-iaHJ0wbLFbIAAu2FHjpg.jpg)

## 一個全新的世界

工作流程是一種擴展 Claude Code 的實用新方法。我鼓勵你將此視為一個起點，關於如何最好地使用它們，還有很多值得探索的地方。請讓我們知道你的發現。

Thariq Shihipar 和 Sid Bidasaria (@sidbid) 是 Anthropic 的技術人員，致力於 Claude Code 的開發。

## 標籤

Claude Code, 功能更新, Agent, CLI, 自動化, Anthropic, Claude
