本文提供參考架構,協助您在 Google Cloud中設計完善的多代理程式 AI 系統。多代理 AI 系統會將複雜的動態程序劃分為個別工作,再由多個專業 AI 代理協同執行,藉此進行最佳化。
這份文件適用於在雲端建構及管理 AI 基礎架構和應用程式的架構師、開發人員和管理員。本文假設您對 AI 代理程式和模型有基本的瞭解。本文並未提供設計和編碼 AI 代理程式的具體指引。
架構
下圖顯示多代理程式 AI 系統的架構範例,該系統部署於 Google Cloud。
架構元件
上一節的範例架構包含下列元件:
元件 | 說明 |
---|---|
前端 | 使用者透過前端 (例如聊天介面) 與多代理程式系統互動,前端會以無伺服器 Cloud Run 服務的形式執行。 |
代理程式 | 在本範例中,協調員代理程式會控制代理式 AI 系統。 協調代理程式會叫用適當的子代理程式,觸發代理程式流程。代理可使用 Agent2Agent (A2A) 通訊協定相互通訊,無論程式語言和執行階段為何,都能互通。範例架構顯示循序模式和疊代精進模式。如要進一步瞭解本範例中的子代理程式,請參閱「代理程式流程」一節。 |
代理程式執行階段 | 您可以將 AI 代理程式部署為無伺服器 Cloud Run 服務、Google Kubernetes Engine (GKE) 上的容器化應用程式,或 Vertex AI Agent Engine。 |
ADK | Agent Development Kit (ADK) 提供工具和架構,可開發、測試及部署代理程式。ADK 可簡化代理的建立程序,讓 AI 開發人員專注於代理的邏輯和功能。 |
AI 模型和模型執行階段 | 在這個範例架構中,代理程式會使用 Vertex AI 的 AI 模型,提供推論服務。架構圖顯示 Cloud Run 和 GKE 是您選擇使用的 AI 模型的替代執行階段。 |
Model Armor | Model Armor 可檢查並清理部署在 Vertex AI 和 GKE 的模型輸入內容和回覆。詳情請參閱「Model Armor integration with Google Cloud services」。 |
MCP 用戶端、伺服器和工具 | Model Context Protocol (MCP) 可標準化代理程式與工具之間的互動,方便存取工具。針對每個代理程式/工具組合,MCP 用戶端會透過 MCP 伺服器將要求傳送給代理程式,代理程式可藉此存取資料庫、檔案系統或 API 等工具。 |
代理流程
上述架構中的多代理系統範例具有下列流程:
- 使用者透過前端 (例如聊天介面) 輸入提示,前端會以無伺服器 Cloud Run 服務的形式執行。
- 前端會將提示轉送至協調員代理程式。
根據提示中表達的意圖,協調代理程式會啟動下列其中一個代理程式流程。
- 循序:
- 工作 - 子代理程式執行工作。
- 子代理程式會叫用子代理程式 A.1。
疊代式微調:
- 工作 B 子代理程式會執行工作。
- 品質評估子代理程式會審查工作 B 子代理程式的輸出內容。
- 如果輸出結果不盡理想,品質評估人員會叫用提示強化子代理程式來修正提示。
- 工作 B 子代理程式會使用強化提示再次執行工作。
這個週期會持續進行,直到輸出內容令人滿意或達到疊代次數上限為止。
架構範例包含人機迴圈路徑,讓人類使用者在必要時介入代理流程。
- 循序:
工作 A.1 子代理程式和品質評估子代理程式會各自叫用回覆生成器子代理程式。
回應生成器子代理程式會生成回應、執行驗證和基礎檢查,然後透過協調器代理程式將最終回應傳送給使用者。
使用的產品和工具
這項參考架構使用下列 Google Cloud 和第三方產品與工具:
- Cloud Run:無伺服器運算平台,可讓您在 Google 可擴充的基礎架構上直接執行容器。
- Vertex AI:機器學習平台,可讓您訓練及部署機器學習模型和 AI 應用程式,並自訂 LLM 用於 AI 輔助的應用程式。
- Google Kubernetes Engine (GKE):Kubernetes 服務,可讓您透過 Google 的基礎架構,大規模部署及操作容器化應用程式。
- Model Armor:這項服務可保護生成式和代理式 AI 資源,防範提示詞注入活動、敏感資料外洩和有害內容。
- 代理開發套件 (ADK):一套工具和程式庫,可開發、測試及部署 AI 代理。
- Agent2Agent (A2A) 通訊協定:開放式通訊協定,可讓代理互相通訊及互通,不受程式設計語言和執行階段限制。
- Model Context Protocol (MCP):開放原始碼標準,可將 AI 應用程式連結至外部系統。
用途
多代理 AI 系統適合用於複雜的用途,這類用途需要多個專業技能組合協同合作,才能達成業務目標。如要找出適合多代理程式 AI 系統的用途,請分析您的業務程序,並找出可透過 AI 輔助的特定工作。著重於實際的業務成果,例如降低成本和加快處理速度。這種做法有助於讓 AI 投資與業務價值保持一致。
以下列舉多代理程式 AI 系統的應用實例。
財務顧問
提供個人化的股票交易建議並執行交易。下圖顯示此使用案例的代理程式流程範例。這個範例使用連續模式。
下圖顯示以下流程:
- 資料擷取代理程式會從可靠來源擷取即時和歷史股價、公司財務報表和其他相關資料。
- 財務分析師代理程式會對資料套用適當的分析和圖表技術,找出價格變動模式並做出預測。
- 股票建議代理程式會使用分析和圖表,根據使用者的風險偏好和投資目標,生成買賣特定股票的個人化建議。
- 交易執行代理程式會代表使用者買賣股票。
研究助理
建立研究計畫、收集資訊、評估及修正研究,然後撰寫報告。下圖顯示此使用案例的代理程式流程範例。本範例中的主要流程使用循序模式。這個範例也包含疊代式精修模式。
下圖顯示以下流程:
- 規劃人員虛擬服務專員會建立詳細的研究計畫。
研究人員代理程式會完成下列工作:
- 根據研究計畫找出合適的內部和外部資料來源。
- 收集及分析必要資料。
- 準備研究摘要,並提供給評估人員。
研究人員代理會重複執行這些工作,直到評估人員代理核准研究為止。
報告撰寫代理程式會建立最終的研究報告。
供應鏈最佳化工具
最佳化庫存、追蹤貨運,以及與供應鏈合作夥伴通訊。 下圖顯示此使用案例的代理程式流程範例。本範例使用循序模式。
倉儲管理員代理程式會根據庫存、需求預測和供應商前置時間,建立補貨訂單,確保庫存量達到最佳狀態。
- 服務專員會與貨運追蹤服務專員互動,追蹤貨物運送進度。
- 代理程式會與供應商通訊代理程式互動,通知供應商訂單異動。
出貨追蹤代理程式會整合供應商的物流平台和貨運公司系統,確保訂單能及時有效出貨。
供應商通訊員代理程式會代表系統中的其他代理程式,與外部供應商通訊。
設計須知
本節說明設計因素、最佳做法和建議,供您參考這些資訊,使用這個參考架構開發拓撲,滿足安全性、可靠性、成本和效能方面的特定需求。
本節的指引僅列出部分範例。視工作負載的需求和您使用的 Google Cloud 和第三方產品與功能而定,您可能還需要考慮其他設計因素和取捨。
系統設計
本節提供指引,協助您為部署作業選擇 Google Cloud 區域 Google Cloud ,並選取合適的產品和工具。
區域選項
為 AI 應用程式選取 Google Cloud 地區時,請考量下列因素:
- 各區域的 Google Cloud 服務可用情形。
- 使用者延遲時間要求。
- 資源 Google Cloud 費用。
- 法規要求。
如要為應用程式選取適當位置,請使用下列工具: Google Cloud
- Google Cloud 區域挑選工具: 互動式網頁工具,可根據碳足跡、成本和延遲時間等因素,為應用程式和資料選取最佳 Google Cloud 區域。
- Cloud Location Finder API: 這項公開 API 提供程式輔助方式,可在 Google Cloud、Google Distributed Cloud 和其他雲端供應商中尋找部署位置。
代理程式設計
本節提供設計 AI 代理程式的一般建議。撰寫代理程式程式碼和邏輯的詳細指南不在本文討論範圍內。
設計重點 | 建議 |
---|---|
代理程式定義和設計 |
|
服務專員互動 |
|
情境、工具和資料 |
|
安全性
本節說明設計考量事項和建議,協助您在 Google Cloud 中設計拓撲,滿足工作負載的安全性需求。
元件 | 設計注意事項和建議 |
---|---|
代理程式 |
AI 代理會帶來獨特且嚴重的安全風險,傳統的確定性安全做法可能無法充分降低這些風險。Google 建議採用方法,結合確定性安全控制選項的優勢,以及動態、以推理為基礎的防禦措施。這項方法以三項核心原則為基礎:人工監督、審慎定義的代理程式自主性,以及可觀測性。以下是符合這些核心原則的具體建議。 人工監督:代理式 AI 系統有時可能會發生故障或無法正常運作。舉例來說,模型可能會生成不準確的內容,或是代理程式可能會選取不當工具。在攸關業務的代理式 AI 系統中,加入human-in-the-loop流程,讓人類主管即時監控、覆寫及暫停代理程式。舉例來說,人類使用者可以審查代理程式的輸出內容、核准或拒絕輸出內容,並提供進一步的指引來修正錯誤或做出策略性決策。這種做法結合了代理式 AI 系統的效率,以及人類使用者的批判性思考和領域專業知識。 代理的存取權控管:使用 Identity and Access Management (IAM) 控制項設定代理權限。僅授予每個代理執行工作和與工具及其他代理通訊所需的權限。這種做法有助於盡量降低安全漏洞的潛在影響,因為遭入侵的代理程式只能存取系統的其他部分。詳情請參閱「為代理程式設定身分和權限」和「管理已部署代理程式的存取權」。 監控:運用全方位追蹤功能監控代理的行為,清楚掌握代理採取的每個動作,包括推論過程、工具選擇和執行路徑。詳情請參閱「在 Vertex AI Agent Engine 中記錄代理程式」和「在 ADK 中記錄」。 如要進一步瞭解如何確保 AI 代理程式安全無虞,請參閱「AI 代理程式的安全與保障」。 |
Vertex AI |
共同責任:安全是共同的責任。Vertex AI 可保護基礎架構,並提供工具和安全控管機制,協助您保護資料、程式碼和模型。您有責任正確設定服務、管理存取權控管,以及保護應用程式安全。詳情請參閱 Vertex AI 共同責任。 安全控管:Vertex AI 支援 Google Cloud 安全控管,可協助您符合資料駐留、客戶管理的加密金鑰 (CMEK)、使用 VPC Service Controls 的網路安全,以及資料存取透明化控管機制等規定。詳情請參閱下列說明文件: 安全性:AI 模型可能會產生有害回覆,有時是為了回應惡意提示。
模型存取權:您可以設定機構政策,限制 Google Cloud 專案中可使用的 AI 模型類型和版本。詳情請參閱「控管 Model Garden 模型存取權」。 資料保護:如要探索及去識別化提示、回覆和記錄資料中的機密資料,請使用 Cloud Data Loss Prevention API。 詳情請觀看「Protecting sensitive data in AI apps」影片。 |
MCP | 請參閱「MCP 和安全性」。 |
A2A |
傳輸安全:A2A 通訊協定規定,在正式環境中,所有 A2A 通訊都必須使用 HTTPS,並建議使用傳輸層安全標準 (TLS) 1.2 以上版本。 驗證:A2A 通訊協定會將驗證作業委派給標準網路機制 (例如 HTTP 標頭),以及 OAuth2 和 OpenID Connect 等標準。每個代理程式都會在代理程式資訊卡中顯示驗證需求。詳情請參閱「A2A 驗證」。 |
Cloud Run |
連入安全機制 (適用於前端服務):如要控管應用程式的存取權,請停用前端 Cloud Run 服務的預設 使用者身分驗證:如要驗證使用者對前端 Cloud Run 服務的存取權,請使用 Identity-Aware Proxy (IAP)。使用者嘗試存取 IAP 保護的資源時,IAP 會執行驗證及授權檢查。詳情請參閱為 Cloud Run 啟用 IAP。 容器映像檔安全性:如要確保只有授權的容器映像檔會部署到 Cloud Run,可以使用 二進位授權。如要找出並降低容器映像檔中的安全風險,請使用 Artifact Analysis 自動執行安全漏洞掃描。詳情請參閱容器掃描總覽。 資料落地:Cloud Run 可協助您符合資料落地規定。Cloud Run 函式會在選取的區域中執行。 如需容器安全性的更多指引,請參閱一般 Cloud Run 開發提示。 |
本架構中的所有產品 |
資料加密:根據預設, Google Cloud會使用 Google-owned and Google-managed encryption keys加密靜態資料。如要使用您控管的加密金鑰保護代理程式資料,可以透過在 Cloud KMS 中建立及管理的 CMEK 達成。如要瞭解與 Cloud KMS 相容的服務,請參閱「相容服務」。 Google Cloud 降低資料竊取風險:如要降低資料竊取風險,請在基礎架構周圍建立 VPC Service Controls 範圍。VPC Service Controls 支援此參考架構使用的所有 Google Cloud 服務。 存取權控管:為拓撲中的資源設定權限時,請遵循最低權限原則。 部署後最佳化:在 Google Cloud中部署應用程式後,您可以使用 Active Assist 建議中心取得建議,進一步提升安全性。請查看建議,並視環境情況套用。詳情請參閱「在建議中心查看建議」。 雲端環境安全:使用 Security Command Center 中的工具偵測安全漏洞、找出並防範威脅、定義及部署安全防護機制,以及匯出資料以供進一步分析。 |
其他安全性建議
可靠性
本節說明設計注意事項和建議,協助您在 Google Cloud中建構及運作可靠的部署基礎架構。
元件 | 設計注意事項和建議 |
---|---|
代理程式 |
容錯功能:設計代理式系統時,請考量如何容許或處理代理程式層級的故障。盡可能採用去中心化做法,讓專員獨立作業。 模擬失敗:將代理程式 AI 系統部署至正式環境前,請先模擬正式環境來驗證系統。找出並修正代理程式間的協調問題和非預期行為。 錯誤處理:為利於診斷及排解錯誤,請實作記錄、例外狀況處理和重試機制。 |
Vertex AI |
配額管理:Vertex AI 支援 Gemini 模型的動態共用配額 (DSQ)。DSQ 可彈性管理隨用隨付要求,並免除手動管理配額或要求增加配額的需要。DSQ 會在活躍客戶之間,動態分配特定模型和區域的可用資源。使用 DSQ 時,個別客戶沒有預先定義的配額限制。 容量規劃:如果對模型的要求次數超過分配的容量,系統會傳回錯誤代碼 429。對於業務關鍵且需要持續高處理量的工作負載,您可以使用已佈建的處理量預留處理量。 模型端點可用性:如果資料可跨多個區域或國家/地區共用,您可以為模型使用全球端點。 |
Cloud Run | 基礎架構中斷時的穩定性: Cloud Run 是區域服務,這項服務會在區域內的多個可用區同步儲存資料,並自動平衡各可用區的流量。如果發生區域中斷,Cloud Run 會繼續執行,資料也不會遺失。如果發生區域中斷,服務會停止運作,直到 Google 解決中斷問題為止。 |
本架構中的所有產品 | 部署後最佳化:在 Google Cloud中部署應用程式後,您可以使用 Active Assist 最佳化建議中心取得建議,進一步提升可靠性。請查看建議,並視環境情況套用。詳情請參閱「在建議中心查看建議」。 |
如要瞭解 AI 和機器學習工作負載專用的可靠性原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:可靠性」。
作業
本節說明使用這個參考架構設計拓撲時,需要考量的因素,以便有效率地運作。 Google Cloud
元件 | 設計注意事項和建議 |
---|---|
Vertex AI |
使用記錄檔進行監控:根據預設,寫入 持續評估:定期對代理程式的輸出內容和軌跡或步驟進行質性評估,瞭解代理程式如何產生輸出內容。如要導入代理程式評估,可以使用 Gen AI 評估服務,或 ADK 支援的評估方法。 |
MCP |
資料庫工具:如要有效管理 AI 代理的資料庫工具,並確保代理安全處理連線集區和驗證等複雜作業,請使用 MCP Toolbox for Databases。這個位置集中儲存及更新資料庫工具,您可以在代理程式之間共用工具,並更新工具,不必重新部署代理程式。工具箱包含各種資料庫工具,例如 AlloyDB for PostgreSQL,以及 MongoDB 等第三方資料庫。 Google Cloud 生成式 AI 模型:如要讓 AI 代理程式使用 Imagen 和 Veo 等 Google 生成式 AI 模型,可以搭配生成式媒體 API 專用的 MCP 伺服器 Google Cloud。 Google 安全性產品和工具:如要讓 AI 代理程式存取 Google 安全性產品和工具,例如 Google Security Operations、Google Threat Intelligence 和 Security Command Center,請使用 Google 安全性產品的 MCP 伺服器。 |
本架構中的所有 Google Cloud 產品 | 追蹤:使用 Cloud Trace 持續收集及分析追蹤資料。追蹤資料可協助您快速找出並診斷複雜代理程式工作流程中的錯誤。您可以使用「追蹤記錄探索工具」中的視覺化效果,進行深入分析。詳情請參閱「追蹤代理程式」。 |
如要瞭解 AI 和機器學習工作負載的卓越營運原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:卓越營運」。
成本最佳化
本節提供指引,說明如何盡量降低使用這項參考架構建構 Google Cloud 拓撲的設定和運作成本。
元件 | 設計注意事項和建議> |
---|---|
Vertex AI |
費用分析和管理:如要分析及管理 Vertex AI 費用,建議您建立每秒查詢次數 (QPS) 和每秒權杖數 (TPS) 的基準指標。然後在部署後監控這些指標。基準也有助於規劃容量。舉例來說,您可以根據基準判斷何時可能需要佈建處理量。 模型選取:您為 AI 應用程式選取的模型會直接影響費用和效能。如要找出最適合特定用途的模型,在效能和成本之間取得最佳平衡,請反覆測試模型。建議您先從最經濟實惠的機型開始,再逐步改用效能更強大的選項。 符合成本效益的提示:提示 (輸入) 和生成的內容 (輸出) 長度會直接影響效能和成本。撰寫簡短、直接且提供足夠背景資訊的提示。設計提示,讓模型提供簡潔的回覆。 舉例來說,可以加入「用 2 句話歸納重點」或「列出 3 個重點」等字詞。詳情請參閱提示設計最佳做法。 脈絡快取:如要降低含重複內容且輸入詞元較多的要求成本,請使用脈絡快取。 批次要求:視情況考慮批次預測。批次要求 的費用比標準要求低。 |
Cloud Run |
資源分配:建立 Cloud Run 服務時,您可以指定要分配的記憶體和 CPU 數量。從預設的 CPU 和記憶體分配量開始。觀察一段時間的資源用量和成本,並視需要調整分配。詳情請參閱下列說明文件: 費率最佳化:如果您可以預測 CPU 和記憶體需求,就能透過承諾使用折扣 (CUD) 節省費用。 |
本架構中的所有產品 | 部署後最佳化:在 Google Cloud中部署應用程式後,使用 Active Assist 最佳化建議中心取得建議,進一步最佳化成本。請查看建議,並視環境情況套用。詳情請參閱「在建議中心查看建議」。 |
如要估算 Google Cloud 資源的費用,請使用 Google Cloud Pricing Calculator。
如要瞭解 AI 和機器學習工作負載專用的成本最佳化原則和建議,請參閱 Well-Architected Framework 中的「AI 和機器學習觀點:成本最佳化」。
效能最佳化
本節說明設計拓撲時的考量事項和建議,以符合工作負載的效能需求。 Google Cloud
元件 | 設計注意事項和建議 |
---|---|
代理程式 |
模型選取:為代理程式 AI 系統選取模型時,請考量代理程式執行工作所需的功能。 提示詞最佳化:如要快速改善及最佳化提示詞成效,並大規模消除手動重寫的需求,請使用 Vertex AI 提示詞最佳化工具。這項工具可協助您有效調整不同模型的提示。 |
Vertex AI |
模型選取:您為 AI 應用程式選取的模型會直接影響費用和效能。如要找出最適合特定用途的模型,在效能和成本之間取得最佳平衡,請反覆測試模型。建議您先從最經濟實惠的機型開始,再逐步改用效能更強大的選項。 提示工程:提示 (輸入) 和生成的回答 (輸出) 的長度會直接影響效能和費用。撰寫簡短、直接且提供足夠背景資訊的提示。設計提示,讓模型提供簡潔的回覆。舉例來說,可以加入「用 2 句話歸納重點」或「列出 3 個重點」等字詞。詳情請參閱提示設計最佳做法。 脈絡快取:如要減少含重複內容且輸入詞元較多的要求延遲時間,請使用脈絡快取。 |
Cloud Run |
資源分配:根據效能需求,設定要分配給 Cloud Run 服務的記憶體和 CPU。詳情請參閱下列說明文件: 如需更多效能最佳化指南,請參閱一般 Cloud Run 開發提示。 |
本架構中的所有產品 | 部署後最佳化:在 Google Cloud中部署應用程式後,使用 Active Assist 建議中心取得建議,進一步提升效能。請查看建議,並視環境情況套用。詳情請參閱「在建議中心尋找建議」。 |
如要瞭解 AI 和機器學習工作負載專用的效能最佳化原則和建議,請參閱 Well-Architected 架構中的「AI 和機器學習觀點:效能最佳化」。
部署作業
如要瞭解如何建構及部署多代理程式 AI 系統,請使用下列程式碼範例。這些程式碼範例可做為學習和實驗的起點,且功能齊全。如要在正式環境中發揮最佳效用,您必須根據特定業務和技術需求自訂程式碼。
- 財務顧問: 分析股市資料、制定交易策略、定義執行計畫,以及評估風險。
- 研究助理: 規劃及執行研究、評估研究結果,以及撰寫研究報告。
- 保險代理人: 建立會員資格、提供道路救援服務,以及處理保險理賠。
- 搜尋最佳化工具: 尋找搜尋關鍵字、分析網頁,並提供搜尋最佳化建議。
- 資料分析工具: 擷取資料、執行複雜的操控作業、產生視覺化內容,以及執行機器學習工作。
- 網路行銷代理商: 選擇網域名稱、設計網站、建立廣告活動,以及製作內容。
- Airbnb 行程規劃工具 (含 A2A 和 MCP):根據指定地點和時間尋找 Airbnb 房源,並取得天氣資訊。
如需程式碼範例,瞭解如何開始搭配使用 ADK 和 MCP 伺服器,請參閱「MCP 工具」。
後續步驟
- 探索 Agent Garden 中的範例代理和工具。
- 使用 Agent Development Kit (ADK) 建構代理。
- 將代理程式部署至 Google Cloud。
- 在 Cloud Run 託管 A2A 代理程式。
- 在 Cloud Run 託管 MCP 伺服器。
- 如要瞭解適用於 Google Cloud中 AI 和機器學習工作負載的架構原則和建議,請參閱 Well-Architected Framework 中的AI 和機器學習觀點。
- 如需更多參考架構、圖表和最佳做法,請瀏覽 Cloud 架構中心。
貢獻者
作者:Kumar Dhanagopal | 跨產品解決方案開發人員
其他貢獻者:
- Alan Blount | 產品經理
- Filipe Gracio 博士 | 客戶工程師、AI/機器學習專家
- Holt Skinner | 開發人員服務代表
- Jack Wotherspoon | 開發人員服務代表
- Joe Shirey | Cloud 開發人員關係經理
- Megan O'Keefe | 開發人員服務代表
- Samantha He | 技術文件撰稿者
- Shir Meir Lador | 開發人員關係工程經理
- Victor Dantas | 生成式 AI 現場解決方案架構師
- Vlad Kolesnikov | 開發人員關係工程師