iT邦幫忙

2025 iThome 鐵人賽

DAY 15
0

昨天我們學會了 Coordinator/Dispatcher 模式,讓 Agent 團隊有了基本的分工能力。但我們不只需要總監分配任務,更需要像工廠生產線、派對籌備、研究團隊、作家工作室那樣的多樣化協作模式。

今天要介紹的四種進階模式,就是讓你的 Agent 團隊從「會分工」升級到「會協作」的關鍵!


Sequential Pipeline:煉金工坊的生產線

還記得你去麵包店買麵包嗎?不是隨便抓個麵粉就能變出麵包,而是:

  • 揉麵師傅先把麵糰揉好
  • 烘焙師傅接手放進烤箱
  • 包裝師傅最後精美包裝

每個步驟都要等前一個完成,這就是「Sequential Pipeline」(依序管線) 的精髓!

這個模式的三大特點

  1. 接力賽式執行:每個 Agent 依序執行,上一個的結果傳給下一個
  2. 狀態自動傳遞:像接力棒一樣,state 自動往下傳
  3. 適合多步驟流程:任何需要前後銜接的任務都能用

什麼時候用這招?

  • 資料處理:驗證 → 清理 → 分析 → 報告
  • 文件流程:草稿 → 校對 → 格式化 → 發送
  • 審批流程:申請 → 審核 → 核准 → 通知

Python 範例

from google.adk.agents import SequentialAgent, LlmAgent

validator = LlmAgent(
    name="驗證員", 
    instruction="檢查輸入資料", 
    output_key="驗證結果"
)

processor = LlmAgent(
    name="處理員", 
    instruction="根據 {驗證結果} 處理資料", 
    output_key="處理結果"
)

reporter = LlmAgent(
    name="報告員", 
    instruction="根據 {處理結果} 產生報告"
)

pipeline = SequentialAgent(
    name="資料生產線",
    sub_agents=[validator, processor, reporter]
)

Mermaid 流程圖

https://ithelp.ithome.com.tw/upload/images/20250929/20178806DtVZg4v61s.png


Parallel Fan-Out/Gather:煉金師的平行實驗

想像你要辦一場盛大的派對,如果一個人慢慢做,可能要忙一整天:

  • 先去買飲料 (1 小時)
  • 再買食物 (1 小時)
  • 最後佈置場地 (1 小時)

但如果你有三個朋友,大家同時出發:

  • 朋友 A 去買飲料
  • 朋友 B 去買食物
  • 朋友 C 佈置場地

一小時後,三個人帶著成果回來集合,派對準備就緒!這就是「Parallel Fan-Out/Gather」(平行展開/收集) 的威力。

這個模式的三大關鍵

  1. 同時進行:多個 Agent 各自執行不同任務,互不干擾
  2. 獨立儲存:每個 Agent 寫入不同的 state key,避免互搶資料
  3. 結果匯總:所有結果收集完後,由後續 Agent 統整分析

什麼時候用這招?

  • 多來源資料抓取 (同時查詢多個 API)
  • 批次檢查作業 (同時進行多項驗證)
  • 平行分析任務 (同時從不同角度分析同一議題)

Python 範例

from google.adk.agents import SequentialAgent, ParallelAgent, LlmAgent

fetch_weather = LlmAgent(
    name="天氣小幫手", 
    instruction="查詢天氣", 
    output_key="天氣"
)

fetch_news = LlmAgent(
    name="新聞小幫手", 
    instruction="查詢新聞", 
    output_key="新聞"
)

gather = ParallelAgent(
    name="平行收集",
    sub_agents=[fetch_weather, fetch_news]
)

synthesizer = LlmAgent(
    name="綜合分析員",
    instruction="根據 {天氣} 和 {新聞} 統整資訊"
)

workflow = SequentialAgent(
    name="平行再整合",
    sub_agents=[gather, synthesizer]
)

Mermaid 流程圖

https://ithelp.ithome.com.tw/upload/images/20250929/20178806CQRKxgJmYr.png


Hierarchical Task Decomposition:煉金師的學徒體系

記得《哈利波特》裡的魔法學校嗎?鄧不利多 (校長) 不會親自教每個學生,而是:

  • 校長 (高層):決定學校整體方向,分配任務給教授
  • 教授 (中層):將課程拆解,分派作業給學生
  • 學生 (基層):專心完成自己的研究和作業
  • 最後,所有成果層層向上彙整

這就是「Hierarchical Task Decomposition」(階層式任務分解) 的運作邏輯!

這個模式的三大優勢

  1. 清晰的責任鏈:每一層都知道自己該做什麼
  2. 靈活的組合:可以多層巢狀,像堆積木一樣彈性
  3. 專業分工:每個 Agent 專注自己擅長的領域

什麼時候用這招?

  • 複雜專案管理 (大專案拆成小任務)
  • 研究報告撰寫 (主題 → 章節 → 段落)
  • 軟體開發流程 (架構 → 模組 → 功能)

Python 範例

from google.adk.agents import LlmAgent
from google.adk.tools import agent_tool

web_searcher = LlmAgent(
    name="網路搜尋員", 
    description="查找資料"
)

summarizer = LlmAgent(
    name="摘要員", 
    description="摘要內容"
)

research_assistant = LlmAgent(
    name="研究助理",
    model="gemini-2.0-flash",
    description="整合資料並摘要",
    tools=[
        agent_tool.AgentTool(agent=web_searcher), 
        agent_tool.AgentTool(agent=summarizer)
    ]
)

report_writer = LlmAgent(
    name="報告撰寫員",
    model="gemini-2.0-flash",
    instruction="請研究助理協助完成主題報告",
    tools=[agent_tool.AgentTool(agent=research_assistant)]
)

Mermaid 階層圖

https://ithelp.ithome.com.tw/upload/images/20250929/20178806BCUyoVUYWq.png


Iterative Refinement:煉金師的反覆淬煉

還記得作文課嗎?老師總說「好文章是改出來的」:

  1. 先寫初稿 (可能很粗糙)
  2. 自己讀一遍,修改不順的地方
  3. 再讀一遍,調整邏輯和用詞
  4. 重複這個過程,直到滿意為止

這個「寫 → 檢查 → 改進」的循環,就是「Iterative Refinement」(迭代式精煉) 的核心!

這個模式的三大特色

  1. 循環執行:透過 LoopAgent 反覆執行一組 Agent
  2. 逐步優化:每次迭代都根據前次結果調整
  3. 智慧停止:可設定最大次數,或讓 Agent 自己判斷何時「夠好了」

什麼時候用這招?

  • 程式碼優化 (寫程式 → 測試 → 重構 → 再測試)
  • 文案精煉 (寫初稿 → 檢查 → 修改 → 再檢查)
  • 品質控管 (生產 → 檢驗 → 改進 → 再檢驗)

Python 範例

from google.adk.agents import LoopAgent, LlmAgent, BaseAgent
from google.adk.events import Event, EventActions
from google.adk.agents.invocation_context import InvocationContext
from typing import AsyncGenerator

refiner = LlmAgent(
    name="修正員",
    instruction="根據 state['current_text'] 與 state['需求'],產生或優化內容,結果存回 state['current_text']",
    output_key="current_text"
)

checker = LlmAgent(
    name="檢查員",
    instruction="檢查 state['current_text'] 是否符合 state['需求'],回傳 'pass' 或 'fail'",
    output_key="check_status"
)

class StopIfPass(BaseAgent):
    async def _run_async_impl(
        self, 
        ctx: InvocationContext
    ) -> AsyncGenerator[Event, None]:
        status = ctx.session.state.get("check_status", "fail")
        should_stop = (status == "pass")
        yield Event(
            author=self.name, 
            actions=EventActions(escalate=should_stop)
        )

loop = LoopAgent(
    name="反覆優化",
    max_iterations=5,
    sub_agents=[refiner, checker, StopIfPass(name="停止判斷員")]
)

Mermaid 迴圈圖

https://ithelp.ithome.com.tw/upload/images/20250929/20178806ORjtRd3Nju.png


這四種進階模式,代表了 Agent 協作的四種核心思維:

  • Sequential Pipeline:重視流程的順序性連貫性
  • Parallel Fan-Out/Gather:追求效率的平行化整合能力
  • Hierarchical Task Decomposition:強調組織的層次性專業分工
  • Iterative Refinement:注重品質的持續改進精益求精

掌握這四種模式,你的 Agent 團隊就能像專業工廠、派對主辦人、研究團隊、作家工作室一樣靈活運作。


上一篇
ADK Multi-Agent 協作 (一)
下一篇
「去你的,Google這招太奸詐了!」—— 讓人類成為 AI 協作的最後一哩路
系列文
不只是反覆 TRY AGAIN,煉金師懂得調配試煉的秘方。19
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言