技術架構

框架定位:ADK(Agent Development Kit)是 Google 開源的 AI 智能代理開發框架,模組化設計、支援 Gemini 與 Google 生態系,但對模型與部署方式無嚴格綁定 (Agent Development Kit)。它讓開發者以軟體工程方式設計、部署及編排多智能體架構,從簡單任務到複雜工作流程皆適用。

核心元件:ADK 核心由「代理(Agent)」、「工具(Tool)」、「會話/狀態(Session/State)」、「記憶(Memory)」等構成。Agent 可使用大型語言模型(LlmAgent)執行推理,也可用流程式控制型代理(工作流程代理:SequentialAgent、ParallelAgent、LoopAgent)實作確定性流程。工具則賦予代理非對話能力,例如執行 API 請求、資料庫查詢、程式碼執行等。

工作流程與多代理協同:ADK 支援複雜流程編排,可組合多種工作流程代理(序列、並行、循環)和 LLM 驅動的動態路由,使代理能以分層式隊伍方式運作。例如,主代理可根據任務自動轉介給不同子代理;代理說明欄位(description)提供清晰角色資訊,LLM 以此做代理間任務分配。

會話與記憶管理:ADK 透過會話(Session)與狀態(State)維護單次對話歷史與上下文,並提供長期記憶(Memory)功能,在多次會話間保存用戶資料或狀態。執行引擎(Runner)負責管理事件(Event)流、觸發工具調用、協調代理互動,並與後端(如 Gemini API)通訊。

豐富工具生態:ADK 內建多樣化工具,包括程式碼執行、網頁搜尋、資料庫存取等;也支援第三方工具(LangChain、CrewAI),以及使用其他代理作為工具(AgentTool)。例如天氣代理示例中,主代理配合自訂 `get_weather` 函式完成天氣查詢。

與 Google 服務整合:ADK 可無縫整合 Google Cloud 生態,如 Gemini 模型與 Vertex AI 部署等。代理能透過預建連接器存取企業資料(例如 AlloyDB、BigQuery、NetApp 等)與 Apigee 管理的既有 API,而且支援應用整合工作流程(Application Integration)串連各種服務。

開發者工具:ADK 提供指令列工具(CLI)與開發者 UI,可本地開發、檢視代理定義、追蹤事件、單步除錯等。並內建評估功能,可建立多回合測試集,系統化評估代理回應與過程表現。整體而言,ADK 將智能代理開發流程化,支援從程式撰寫、除錯到容器化部署(如在 Cloud Run、GKE 或 Vertex AI Agent Engine 上)。

通訊協定與介面

代理間通信(A2A 協定):ADK 支援 Google 主導的 Agent2Agent(A2A)開放協定,使不同系統間的代理可互通。A2A 協定以 HTTP/JSON 為基礎,透過 REST API(如 /tasks/send)發起任務,並使用 Server-Sent Events (SSE)向客戶端推送任務狀態更新和產出。A2A 定義「代理卡」元資料、任務(Task)及訊息(Message)結構,使代理能宣告能力、發起請求、傳遞多種內容類型(文字、檔案、表單資料)。

實時串流:ADK 原生支援雙向串流,適用於語音、文字或多媒體交互。透過 WebSocket 通道,客戶端與代理可即時傳送文字及音頻資訊。例如開發者示例使用 FastAPI 建立 /ws/{session_id} WebSocket 端點,客戶端與代理雙向交換訊息,代理端透過 WebSocket 將回應和狀態更新串流回客戶端。這底層通常與 Gemini Multimodal Live API 相連,採用 WebSocket 對話,每則請求/回應皆以 JSON 事件傳遞。

外部系統整合:代理與外部服務或裝置互動時多半使用標準協定,例如 HTTPS/REST 或 gRPC。ADK 的工具(FunctionTool、OpenAPI Tool 等)可呼叫各種外部 API 執行任務,如查詢資料庫、讀寫檔案、控制裝置等。開發者亦可編寫自訂工具,透過現有 SDK 或協定(如 MQTT、WebHook)對接物聯網裝置。透過 Apigee 或 Google Cloud 連接器,代理能安全地與內部系統通訊,實現跨域資料存取與服務調用。

實際應用範例

  • 虛擬助理:ADK 可構建自然對話式助理,支援文字、語音或影片交互。利用 Gemini 多模態串流能力,開發者幾行程式碼即可實現雙向音視訊聊天,創造人性化互動體驗。例如 Google Cloud Next 2025 展示的互動型影片助理即基於 ADK 及 Gemini 建構。
  • 智慧客服/聯絡中心:ADK 架構用於客戶支持情境,可與企業 CRM、知識庫等系統整合。例如 Google 客戶互動套件(Customer Engagement Suite, CES)的代理人即使用 ADK 開發 (Build and manage multi-system agents with Vertex AI | Google Cloud Blog)。透過多智能體協作,系統能將一般問候或多輪詢問自動委派給專門代理,並接入後端資料(如客戶記錄、訂單狀態)回應查詢
  • 多代理協作任務:在複雜任務中,ADK 可建立專用子代理來分工。例如示例中「天氣代理(WeatherAgent)」負責查詢天氣資訊,其說明欄位已設定「使用 get_weather 工具提供天氣資訊」,而簡單問候則自動轉給「GreetingAgent」處理。此分層架構讓每位代理聚焦任務,增強系統可維護性與擴充性。
  • 物聯網自動化:ADK 可以連接並控制 IoT 裝置。透過自訂工具或 Google Cloud IoT API,智能代理可接收語音指令並調用設備 API 完成操作(如開關燈具、調整溫度)。其後端可整合雲端服務(例如通過 Apigee 管理的 IoT 服務),從而在非同步的物聯網環境中維持安全通信(無需複製數據即可直接訪問企業資料來源)。

開發者入門指南

  • 環境建置:使用 Python(建議 3.10 以上)並建立虛擬環境。官方推薦使用 python -m venv 或類似工具,並在虛擬環境中執行安裝。安裝 ADK 套件只需執行: pip install google-adk。確認安裝後,可使用 pip show google-adk 檢視版本。
  • 雲端設定:若要使用 Google 模型或部署到 Vertex AI,需先在 Google Cloud 建立專案、啟用 Vertex AI API,並設置服務帳戶金鑰或預設憑證。取得 Gemini Developer API 金鑰、OpenAI API 金鑰等(視選用模型而定),並將其加入環境變數或 ADK 配置檔。若使用範例代理,通常會在代理目錄下放置 .env 文件(參考 .env.example),內含 API 金鑰、專案 ID、區域等設定。
  • 範例專案:Google 官方提供多個 ADK 範例代理(GitHub 存放庫 google/adk-samples),涵蓋各種常見場景。開發者可 clone 這些範例,並依照 README 填寫 .env 檔後執行。每個範例包含必要的工具定義、代理配置與測試集,可作為開發參考。初學者亦可依循官方快速上手教學(Quickstart),建立第一個簡單代理並測試對話流程。
  • 使用 CLI 與工具:ADK 提供命令列工具,可快速啟動與測試代理。常見命令包括 adk run <agent>(在終端執行代理),adk web(啟動 Web UI 介面檢視事件與狀態),以及 adk eval(執行評估測試)等。在本地環境執行時,開發者可透過 CLI 即時觀察代理的對話歷程、狀態變化與工具輸出。開發者 UI 則可視覺化代理架構與交互流程,方便除錯。
  • 常見問題與排錯:開發過程中可能遇到依賴錯誤或憑證問題,建議檢查 Python 版本與套件相容性(是否安裝最新版 ADK),以及各種憑證是否正確設定。若使用 Gemini 或 Vertex,需確認 IAM 權限及 API 已啟用。參考官方文件提供的範例指令與模式(model 名稱、調用方式),並以 ADK CLI 的詳細除錯輸出定位問題。GitHub 社群和 Issue 追蹤系統也提供常見錯誤的解決方案。

參考:

官方 ADK 文檔

讓構建多智能體應用變得輕鬆容易

相關教學:

How to Build Multi AI Agents with Google Agent Development Kit (ADK) For Beginners
颠覆开发流程!Google开源ADK打造多模态AI智能体:详细介绍+开发实践!支持ollama、MCP|自动化运营社交媒体