多 Agent 協作前,先問自己是不是真的需要
多 Agent 架構很吸引人,但九成情況下單 Agent 加好工具就夠了,而且更好維護。
把任務拆給「研究員、寫作者、審稿者」三個 Agent 聽起來很合理,實際上常常換來三倍成本、三倍延遲與更難追的錯誤。
單 Agent 就夠的訊號
- 任務可以用一組工具線性完成。
- 各步驟需要共享大量上下文。
- 延遲或成本敏感。
多 Agent 真正有價值的情況
- 需要獨立視角:例如產生方案與審查方案分開,避免自己檢查自己。
- 可平行且彼此獨立:十份文件各自摘要,最後合併。
- 權限必須隔離:讀取敏感資料的 Agent 不掛任何寫入工具。
- 上下文塞不下:每個子任務各自擁有完整上下文。
協作的介面要收斂成資料
# 不好:Agent 之間傳自然語言,錯誤會被放大
review = reviewer.run(f'請審查這份稿件:{draft}')
# 較好:傳結構化結果,主流程可判斷
review = reviewer.run(draft, schema={
'issues': [{'severity': 'high|mid|low', 'where': 'str', 'why': 'str'}],
'verdict': 'pass|revise',
})
if review['verdict'] == 'revise':
draft = writer.revise(draft, review['issues'])關鍵在於「協調邏輯用程式寫,不要交給模型」。迴圈幾次、什麼條件停止、失敗怎麼辦,這些是控制流程,程式碼比自然語言可靠得多。
多 Agent 的成本是相乘的。三個 Agent 各跑五步,就是十五次模型呼叫,加上每次都帶著長上下文。