MapleCheng

在浩瀚的網路世界中無限潛水欸少年郎!

0%

當你的 AI 助理需要一個團隊:多 Agent 協作架構的設計思路

最近我做了一件有點瘋狂的事:我開始幫我的 AI 助理「組團隊」。

不是開玩笑。當你讓一個 AI Agent 同時處理需求分析、架構設計、寫 code、code review,結果就跟讓一個人同時當 PM、架構師、工程師、QA 一樣——每個都做,每個都做不好。

單一 Agent 的極限

身為一個小公司的技術主管,我大量使用 AI Agent 來輔助開發。日常工作流程大概是這樣:收到需求、拆 issue、寫 code、review、merge。聽起來很順對吧?

但問題來了——

當我把這整套流程丟給一個 Agent 處理時,踩到了幾個反覆出現的坑:

  • Issue 不依規範做:Agent 拿到任務就開始寫 code,不會主動問「這個需求是不是有模糊的地方?」
  • Pipeline 經常亂做:該先建 DTO 的跑去改 Controller,該等後端完成的前端已經開始 mock 了
  • 開發階段失憶:跑到第五步忘了第二步的設計決策,又做出矛盾的東西
  • PR Review 流於形式:「看起來沒問題,APPROVED」——拜託,你連 i18n key 不存在都沒發現

這些問題的根源其實很簡單:context 污染。一個 Agent 同時扮演多個角色,每個角色需要的背景知識不同、關注的重點不同,全部塞在同一個 context window 裡,結果就是什麼都知道一點、什麼都做不精。

人類團隊的啟發

回頭看人類團隊怎麼運作的。一個健康的開發團隊會有:

  • PM 負責需求釐清,確保大家理解一致
  • Tech Lead 負責技術決策,確保架構合理
  • Developer 專注寫 code,不用煩惱需求是什麼意思
  • QA 用另一雙眼睛看產出,專門挑毛病

每個角色有自己的 context、自己的關注點、自己的品質標準。這不是多餘的分工,是讓每個人能專注做好一件事的必要條件。

那 AI Agent 為什麼不能這樣?

多 Agent 架構設計

想通這一點之後,我開始設計一個多 Agent 協作架構。核心概念是:一個總指揮 + 多個專家 Agent,透過明確的協定溝通

角色分工

整個架構的角色大概長這樣:

            
            graph TD
    User[👤 User] --> CS[Chief of Staff
總助理] CS --> PM[PM Agent
需求分析] CS --> TL[Tech Lead Agent
技術決策] CS --> DEV[Developer Agent
寫 Code] CS --> QA[QA Agent
Code Review] PM -.->|Escalation| CS TL -.->|Escalation| CS DEV -.->|Escalation| CS QA -.->|Escalation| CS
  • Chief of Staff(總助理):最懂使用者的 Agent,負責接收需求、理解意圖、派工給對的人、整合產出。不寫 code,不做技術決策。
  • PM Agent:專門做需求分析和任務拆解,產出清晰的 spec
  • Tech Lead Agent:負責架構設計和技術方向,確保 spec 落地可行
  • Developer Agent:專注寫 code,嚴格按照 spec 和技術決策執行
  • QA Agent:code review,用比開發者更嚴格的標準檢查產出

每個 Agent 是獨立的 session,有自己的 system prompt、自己的 context、自己的專業知識。這樣 Developer 不會被需求分析的 context 干擾,QA 不會因為「我剛剛才寫的 code」而放水。

為什麼要一個總指揮?

你可能會問:為什麼不讓 Agent 之間直接溝通?為什麼需要一個 Chief of Staff 當中間人?

原因很實際:Agent 之間直接溝通會失控

沒有中央控制的話,PM 可能覺得需求很清楚了,但 Developer 覺得不清楚;QA 打回 PR,Developer 不知道該找 Tech Lead 還是自己硬改。訊息在 Agent 之間來回傳,沒有人知道全局狀態。

Chief of Staff 的存在就是為了解決這個問題。它是唯一有全局視角的 Agent,知道每個任務的狀態、每個 Agent 的產出、以及使用者真正要什麼。

三大核心協定

光有角色分工還不夠。Agent 之間怎麼溝通、什麼時候該停下來問人、失敗了怎麼恢復——這些才是讓整個系統真正運作的關鍵。

我設計了三個核心協定:

1. Intake Protocol(進場協定)

派工之前,必須完成一份需求釐清 checklist。不是問 Agent「你懂了嗎」(它永遠說懂),而是要求它產出一份結構化的理解確認:

  • 這個需求要解決什麼問題?
  • 影響範圍是哪些模組?
  • 有沒有技術風險或模糊地帶?
  • 成功標準是什麼?

如果 checklist 有任何一項不清楚,不派工。回去跟使用者確認。

這聽起來很囉唆,但實際上省掉了大量「做到一半發現方向錯了」的浪費。人類團隊的 kickoff meeting 其實也是在做一樣的事。

2. Escalation Protocol(上報協定)

這是我覺得最重要的一個。

Agent 最大的問題就是「不知道自己不知道」。遇到模糊的需求,它不會說「我不確定」,它會猜一個答案然後繼續做。遇到技術決策點,它不會停下來討論,它會直接選一個方案(通常是最簡單的那個)。

Escalation Protocol 就是強制 Agent 在特定情境下停下來:

  • 需求有多種解讀方式 → 停,回報給 Chief of Staff
  • 技術方案有 trade-off → 停,列出選項和各自的優缺點
  • 連續失敗超過兩次 → 停,不要繼續盲目重試
  • 發現前一個階段的產出有問題 → 停,回報而不是自己偷偷改

關鍵在於:停下來不是失敗,是品質保證

寫進 system prompt 裡的措辭很重要。不能寫「如果遇到問題可以上報」,要寫「遇到以下情境你必須停止並上報,繼續執行是違反協定的」。對 LLM 來說,強制性的指令比建議性的指令有效得多。

3. Resume Protocol(恢復協定)

Pipeline 中斷了怎麼辦?Agent session 超時了怎麼辦?

Resume Protocol 要求在 pipeline 的關鍵節點設置 checkpoint。每個 checkpoint 記錄:

  • 目前完成了哪些步驟
  • 每個步驟的產出是什麼
  • 下一步應該做什麼
  • 當前的決策上下文

這樣即使中斷了,新的 Agent session 可以從 checkpoint 恢復,而不是從頭開始。

            
            stateDiagram-v2
    [*] --> Intake: 新需求
    Intake --> Planning: ✅ Checklist 通過
    Intake --> Intake: ❌ 需求不清
    Planning --> Development: ✅ Spec 確認
    Planning --> Escalation: ⚠️ 技術風險
    Development --> Review: PR 建立
    Development --> Escalation: ⚠️ 連續失敗
    Review --> Done: ✅ Approved
    Review --> Development: ❌ Changes Requested
    Escalation --> Planning: 決策完成
    Done --> [*]
          

更重要的是,關鍵節點要加入 human-in-the-loop。不是每一步都要人確認(那就失去自動化的意義了),而是在「影響範圍大」或「不可逆」的節點讓人看一眼。

比如:需求分析完成後讓人確認方向對不對、PR merge 前讓人看一下 review 結果。這兩個點的投入產出比最高。

實際跑起來的感受

說實話,這套架構還在迭代中。但即使是初版,也已經解決了幾個讓我很頭痛的問題:

需求品質變好了。有了 Intake Protocol,Agent 不再拿到 issue 就蒙頭寫 code。它會先產出一份理解確認,如果有模糊的地方會被擋下來。

Code Review 變嚴格了。讓獨立的 QA Agent 來 review,因為它沒有「這是我自己寫的」的包袱,會用更客觀的標準檢查。之前一個 i18n key 不存在的 bug 就是被 QA Agent 抓到的。

失敗恢復變順了。以前 pipeline 中斷,只能從頭來。現在有 checkpoint,可以從上次停的地方繼續。

當然也有問題:

  • Agent 之間的溝通成本不低,token 消耗增加了
  • 有時候 Escalation 太頻繁,反而拖慢速度(還在調整觸發條件)
  • 每個 Agent 的 system prompt 需要精心設計,這本身就是一個工程

寫給同樣在折騰 AI 工作流的人

如果你也在用 AI Agent 處理複雜的開發流程,我的建議是:

不要期望一個 Agent 搞定所有事。 跟人一樣,專注做一件事的品質永遠比同時做五件事好。

流程管理不是可選的。 AI Agent 不會自己發展出好的工作習慣。你不寫 protocol,它就自由發揮,而自由發揮的結果通常不是你要的。

Human-in-the-loop 的位置很重要。 不是越多越好,也不是越少越好。找到「投入最少、攔截最多問題」的那幾個點。

停下來比做錯好。 這是我從 Escalation Protocol 學到最深的一課。教 Agent 說「我不確定」比教它「什麼都試試看」有價值得多。

說到底,管理 AI Agent 團隊跟管理人類團隊其實沒有本質區別——都是在解決分工、溝通、品質控制的問題。只是 AI 不會抱怨加班,但也不會主動告訴你它搞砸了。

如果這篇能讓你少走一些我踩過的彎路,那我凌晨兩點畫架構圖的時間就沒白費了 😂