ADK Go 入門 02 - ADK 三大核心概念:Agent、Tool、Model

ADK 的整個系統由三個概念支撐:Model(思考引擎)、Tool(行動能力)、Agent(決策主體)。理解三者的分工,是設計 Agent 系統的基礎。


Model:思考引擎

Model 是 LLM 的抽象層,負責接收 prompt 並產生回應。在 ADK 中,Model 不直接被使用者呼叫,而是被 Agent 持有。

ADK 內建 Gemini 系列模型的實作,也可以擴充支援其他 LLM。

1
2
3
Model
└── 接收對話 + 工具定義
└── 回傳文字 / 工具呼叫指令

Tool:行動能力

Tool 是 Agent 能夠執行的具體動作。LLM 本身只能產生文字,透過 Tool 才能真正操作外部世界。

Tool 的常見形式:

  • 自訂 Go 函式(例:查詢資料庫、計算運費)
  • 內建工具(例:GoogleSearch
  • 其他 Agent 包裝成的 Tool(Sub-agent as tool)

Toolset 是多個 Tool 的集合,通常對應某個外部系統(例:一個 MCP 伺服器暴露的所有操作)。

Agent:決策主體

Agent 是系統的核心單元。它持有 Model 和 Tools,根據 Instruction(指令)決定什麼時候呼叫哪個 Tool,或直接回應使用者。

1
2
3
4
5
Agent
├── Model(用哪個 LLM)
├── Instruction(角色與行為規則)
├── Tools(能做什麼)
└── SubAgents(可以移交給誰)

三者的關係

1
2
3
4
5
6
7
8
9
10
使用者輸入


Agent ──→ 理解意圖(靠 Model)

├──→ 需要查資料? ──→ 呼叫 Tool ──→ 取得結果 ──→ 回 Agent

├──→ 需要專業處理? ──→ transfer 給 Sub-agent

└──→ 直接回應使用者

類比說明

把 Agent 系統想成一間公司:

  • Model = 員工的思考能力
  • Tool = 員工手上的工具與系統權限
  • Agent = 各部門員工,各司其職
  • 多 Agent 系統 = 公司組織架構,主管分派工作給下屬