節點是有邊界的工作
一個節點最好只負責一件事,接受明確輸入並輸出可驗證的結構。這樣下一個節點不用猜測,也才有替換或平行化的空間。
Graph Engineering · Claude Dynamic Workflows
多步驟 agent 不必永遠「A 做完才輪到 B」。先畫出真正會傳遞資料的邊,再讓獨立工作平行、讓需要全體結果的地方匯流,並把驗證與停止條件放進圖裡。
原文的核心不在於把 agent 拆得越多越好,而在於辨認每個工作單元的輸入、輸出與依賴關係。
一個節點最好只負責一件事,接受明確輸入並輸出可驗證的結構。這樣下一個節點不用猜測,也才有替換或平行化的空間。
如果下一步沒有讀取上一步的結果,兩者就沒有真正的邊;把它們排成隊只是等待,不是流程設計。
展平、去重、過濾與路由是確定性工作,應交給程式;需要理解、取捨與綜整時,才呼叫 agent。
圖不是抽象裝飾;它直接決定 latency、成本、容錯方式與你能掌握的工作範圍。
A → B → C 是最簡單的退化圖。它可運作,但每一段都會等待,任一節點停滯就阻塞後續工作。
先拆工作,再讓多個獨立節點平行處理,最後合併。研究、程式碼審查與市場掃描都很適合這個形狀。
Agent 可以判斷風險或類型;但由程式根據分類選擇下一條邊,讓控制流對相同輸入保持可預期。
把結果送往下游前,先由獨立檢查器嘗試推翻它。可用不同視角驗證,或用評審團決定哪些發現能留下。
未知規模的探索應設定停止條件,例如連續兩輪沒有新發現;去重對象必須是所有已見項目,而非只對已確認結果。
若每個項目不需要等整批資料,讓它個別往下一階段流動。只有跨集合去重、比較或總體決策才值得設置 barrier。
以 schema 或明確資料形狀界定合約。驗證失敗應在節點邊界處重試或失敗,而不是把不可靠的自由文字丟給下一步解析。
問下一步是否真的讀取前一步輸出。若沒有,切斷這條假邊,改為同時執行;這通常是最直接的速度提升來源。
例如 flatMap、Set 去重與欄位過濾,都是便宜、可重現且即時的邊操作;不要花模型呼叫去做管線接頭。
對重要發現,以正確性、安全性、可重現性等不同鏡頭進行獨立檢查。這能降低同一個 agent 同時產生與認可自己答案的偏誤。
重複、受限的擷取或分類可使用較便宜的模型,關鍵綜整再用高能力模型;預設採 pipeline,只有需要全體結果時才建立等待屏障。
平行蒐集不同角度,程式去重壓縮,再由綜整節點寫出結論;引用或關鍵主張可再經獨立驗證。
每個路由或模組由一個節點檢查,發現先經安全、正確性、重現性驗證,再由最終節點彙整風險。
小型變更走快速檢查;高風險變更觸發更完整的平行審查。分類可以是模型判斷,分流規則則應由程式明訂。
每輪發現新項目後加入 seen 集合,驗證存活者,直到連續空輪才結束;避免反覆花費成本重新發現已被否決的死路。
把獨立工作扇出、把資料整理留給程式、把信心關卡放在邊上。當一個任務的依賴關係被畫清楚,速度、成本與可驗證性才能一起被工程化。