EPISODE · Jun 2, 2026 · 10 MIN
@trq212:為每個任務打造專屬 harness:Claude Code 中的動態工作流程 (Dynamic Workflows) 上週,我們在 Claude Code…
from EasyVibeCoding Podcast · host Thariq
為每個任務打造專屬 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 的特殊函式: 動態工作流程也包含標準的 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。 使用動態工作流程時的實用模式 你可以直接要求 Claude 製作一個工作流程,或者使用觸發詞「ultracode」來確保 Claude Code 建立一個工作流程,從而開始使用動態工作流程。 但建立關於動態工作流程如何運作的心智模型,將有助於你理解何時該使用它們,以及如何透過 Prompt 引導 Claude。 Claude 在構建工作流程時,可能會使用並組合以下幾種常見模式: 分類與執行 (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 製作動態工作流程。我發現工作流程在非技術性工作中甚至更有用。 遷移與重構 Bun 是透過工作流程從 Zig 重寫為 Rust 的。你可以在 Jarred 的 X 串文中閱讀更多關於它是如何完成的。 關鍵在於將任務拆解為一系列需要處理的步驟,例如呼叫點 (callsites)、失敗的測試、模組等。在 worktree 中為每個修復生成一個子 Agent 來進行修改,然後讓另一個 Agent 進行對抗性審查並合併它們。考慮告訴 Agent 不要使用資源密集型指令,這樣你就可以在不耗盡機器資源的情況下實現最大程度的平行處理。 深度研究 我們在 Claude Code 中發布了一個深度研究 skill (/deep-research),它使用了動態工作流程。具體來說,它會分發網路搜尋、獲取來源、對抗性驗證其主張,並合成一份引用報告。 但你可能不只為了網路搜尋而進行這類研究。例如,要求 Claude 從 Slack 的內容中編寫狀態報告,或是透過深入探索程式庫來研究某個功能是如何運作的。 深度驗證 另一方面,如果你有一份報告,想要檢查並追溯其中引用的每一項事實主張,你可能會想要產生一個工作流程,讓一個 Agent 識別出所有的事實主張,然後生成子 Agent 來詳細檢查每一項。你也可以讓驗證 Agent 檢查來源子 Agent,以確保其來源具有高品質。 排序 你可能有一份清單,想要根據你認為 Claude Code 擅長評估的某種定性指標進行排序,例如:根據 Bug 的嚴重程度對支援 ticket 進行排序。但如果你試圖在一個 Prompt 中對 1000 多行進行排序,品質會下降且無法放入 context。建議改為執行錦標賽、兩…
What this episode covers
為每個任務打造專屬 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 的特殊函式: 動態工作流程也包含標準的 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。 使用動態工作流程時的實用模式 你可以直接要求 Claude 製作一個工作流程,或者使用觸發詞「ultracode」來確保 Claude Code 建立一個工作流程,從而開始使用動態工作流程。 但建立關於動態工作流程如何運作的心智模型,將有助於你理解何時該使用它們,以及如何透過 Prompt 引導 Claude。 Claude 在構建工作流程時,可能會使用並組合以下幾種常見模式: 分類與執行 (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 製作動態工作流程。我發現工作流程在非技術性工作中甚至更有用。 遷移與重構 Bun 是透過工作流程從 Zig 重寫為 Rust 的。你可以在 Jarred 的 X 串文中閱讀更多關於它是如何完成的。 關鍵在於將任務拆解為一系列需要處理的步驟,例如呼叫點 (callsites)、失敗的測試、模組等。在 worktree 中為每個修復生成一個子 Agent 來進行修改,然後讓另一個 Agent 進行對抗性審查並合併它們。考慮告訴 Agent 不要使用資源密集型指令,這樣你就可以在不耗盡機器資源的情況下實現最大程度的平行處理。 深度研究 我們在 Claude Code 中發布了一個深度研究 skill (/deep-research),它使用了動態工作流程。具體來說,它會分發網路搜尋、獲取來源、對抗性驗證其主張,並合成一份引用報告。 但你可能不只為了網路搜尋而進行這類研究。例如,要求 Claude 從 Slack 的內容中編寫狀態報告,或是透過深入探索程式庫來研究某個功能是如何運作的。 深度驗證 另一方面,如果你有一份報告,想要檢查並追溯其中引用的每一項事實主張,你可能會想要產生一個工作流程,讓一個 Agent 識別出所有的事實主張,然後生成子 Agent 來詳細檢查每一項。你也可以讓驗證 Agent 檢查來源子 Agent,以確保其來源具有高品質。 排序 你可能有一份清單,想要根據你認為 Claude Code 擅長評估的某種定性指標進行排序,例如:根據 Bug 的嚴重程度對支援 ticket 進行排序。但如果你試圖在一個 Prompt 中對 1000 多行進行排序,品質會下降且無法放入 context。建議改為執行錦標賽、兩兩比較 Agent 的管道(比較判斷比絕對評分更可靠),或是進行平行分桶排名後再合併。每次比較都是一個獨立的 Agent,因此確定性循環會保留括號,只有執行順序會保留在 context 中。 記憶與規則遵循 如果你有一組特定的規則,發現 Claude 即使在 CLAUDE.md 中設定了還是會忽略或難以遵循,請建立一個工作流程,列出必須由驗證 Agent 檢查的規則——每個規則…
NOW PLAYING
@trq212:為每個任務打造專屬 harness:Claude Code 中的動態工作流程 (Dynamic Workflows) 上週,我們在 Claude Code…
No transcript for this episode yet
Similar Episodes
Mar 26, 2026 ·1m
Jan 2, 2026 ·47m
Dec 21, 2025 ·46m