AWSome Day Hong Kong 2025 活動摘要

進階代理式 AI 設計模式

議程筆記

本場議程介紹了從生成式 AI 助手到自主代理式 AI 系統的演進,涵蓋反思、工具使用、規劃和多代理程式協作四種核心設計模式,並演示了開放原始碼 Strands Agents SDK 如何支援代理程式開發。

向代理式 AI 演進

生成式 AI 助手:

  • 遵循一套明確的規則。
  • 自動執行重複性任務。
  • 模仿人類邏輯和推論的某些方面。

生成式 AI 代理程式:

  • 透過推論和行動實現特定目標。
  • 與基於規則的助手相比,可以處理更廣泛的任務。
  • 能夠與工具及其環境互動。

代理式 AI 系統:

  • 具有更高程度的自主性。
  • 協調推論、規劃、工具、記憶和行動。
  • 可以自動完成整個工作流程,而不僅僅是單個任務。

什麼是 AI 代理程式?

  • AI 代理程式是一種自主軟體系統,使用人工智慧(尤其是大語言模型)代表人員或其他系統進行推論、規劃並完成任務。
  • 代理程式觀察環境、朝目標推進、選擇行動,並在需要時使用工具。
  • 記憶提供以往觀察和互動的上下文。
  • 工具將代理程式連接到外部能力。
  • 行動使代理程式能夠影響或查詢其環境。

代理式 AI 的核心設計模式

反思:

  • 使 AI 系統能夠評估自身的輸出、決策和推論。
  • 幫助識別錯誤和不一致之處。
  • 生成改進建議。
  • 支援透過多個週期進行迭代最佳化。

工具使用:

  • 將代理程式的能力擴展到語言生成之外。
  • 將代理程式連接到 API、資料庫、計算器、搜尋系統和影像處理服務。
  • 支援與外部系統進行動態互動。
  • 支援資料擷取、計算和系統操作等任務。

規劃:

  • 將複雜目標拆分為可管理的子任務。
  • 將各個步驟組織成結構化策略。
  • 按順序執行任務,同時監控進度。
  • 在新資訊或故障要求調整時修訂計畫。

多代理程式協作:

  • 將複雜問題分解給多個代理程式。
  • 為每個代理程式分配專屬角色或能力。
  • 允許代理程式交換資訊並共享中間結果。
  • 將各自的輸出整合為最終結果。

模式 1:反思

自我評估:

  • 模型審查自己的回應或擬採取的行動。

錯誤識別:

  • 模型查找事實錯誤、遺漏、矛盾和薄弱之處。

改進建議:

  • 模型提出改進結果的具體修改建議。

迭代改進:

  • 系統重複執行評估和修訂,直至得到可接受的結果或達到設定的上限。

反思可以提高品質,但每次迭代都會增加延遲和模型成本。因此,應用程式應定義停止條件並避免無限迴圈。

模式 2:工具使用

利用外部資源:

  • 代理程式可以呼叫 API、查詢資料庫、擷取文件或呼叫其他軟體。

擴展能力:

  • 工具可執行語言模型自身無法可靠完成的精確計算和操作。

動態互動:

  • 代理程式根據目前任務選擇工具,並使用工具傳回的結果確定下一步。

典型應用程式:

  • 擷取最新資料或私人資料。
  • 執行計算。
  • 處理影像或文件。
  • 建立工作單或更新業務系統。
  • 執行受控的基礎設施操作。

代理程式生成的工具輸入不可信,因此必須透過驗證、授權和最小權限來限制工具存取。

模式 3:規劃

任務分解:

  • 將複雜目標拆分為更小、可獨立執行的任務。

策略性組織:

  • 確定依賴關係,並按有效順序安排任務。

高效率執行:

  • 按計畫執行,並監控完成情況和故障。

靈活調整:

  • 當工具失敗、假設發生變化或出現新資訊時重新規劃。

對於需要多種工具、存在依賴關係或無法透過模型單次回應可靠完成的任務,規劃尤其有用。

模式 4:多代理程式協作

任務劃分:

  • 將問題拆分為可委派的工作。

專業分工:

  • 為每個代理程式指定明確的角色,例如研究員、分析師、開發人員或審查人員。

協作:

  • 允許代理程式交換上下文和中間發現。

結果整合:

  • 在生成最終答案之前,合併並協調各項輸出。

多代理程式系統可以改善專業分工和並行處理,但也會帶來協調成本、重複工作和額外的故障模式。只有當角色分離能帶來明確價值時,才應使用多代理程式系統。

Strands Agents

  • Strands Agents 是一個開放原始碼 Python SDK,只需少量程式碼即可建置 AI 代理程式。
  • 它採用模型驅動的方法建置和執行代理程式。
  • 它可以從對話式助手擴展到自主的多步驟工作流程。
  • 它支援本機開發和生產部署。

輕量且靈活:

  • 提供簡單、可自訂的代理程式迴圈。

不受特定模型限制:

  • 支援 Amazon Bedrock、Anthropic、Ollama 和自訂模型供應商。

進階能力:

  • 支援多代理程式系統、自主代理程式和串流。

內建模型上下文通訊協定支援:

  • 提供與 MCP 伺服器的原生整合。
  • 允許代理程式發現並使用透過 MCP 公開的外部工具。

代理程式迴圈

  1. 使用目標、上下文、可用工具和觀察結果呼叫模型。
  2. 接收模型回應、推論結果和工具選擇。
  3. 讓代理程式決定是否需要執行其他操作。
  4. 使用經過驗證的輸入執行所選工具。
  5. 將工具結果作為新的觀察傳回給模型。
  6. 重複上述過程,直至任務完成或達到停止條件。
  7. 生成最終回應。

此迴圈支援複雜的多步驟推論和行動。正式環境實作還應限制迭代次數、執行時間、權限和支出。

設計注意事項

  • 當對輸出進行檢討和修訂能夠提高品質時,使用反思。
  • 當任務需要最新資料、確定性運算或外部操作時,使用工具。
  • 當目標包含多個相互依賴的步驟時,使用規劃。
  • 當專業分工或並行工作的收益超過協調開銷時,使用多個代理程式。
  • 在系統邊界驗證所有工具輸入和輸出。
  • 為每個工具和代理程式角色套用最小權限存取。
  • 記錄工具呼叫和狀態轉換,以便進行可觀測性與稽核。
  • 加入逾時、重試次數限制和明確的終止條件。
  • 對敏感或不可逆的操作保留人工核准步驟。

重點摘要

  • 代理式 AI 結合了模型、記憶、目標、工具、行動和環境回饋。
  • 反思、工具使用、規劃和多代理程式協作是建置高能力代理程式的可重複使用的模式。
  • 每種模式解決不同的問題,也會帶來各自的成本和維運複雜性。
  • Strands Agents 提供輕量、不受特定模型限制的 SDK,支援多代理程式工作流程和 MCP 工具。
  • 除模型推論外,可靠的代理程式系統還需要防護機制、受限執行、可觀測性和受控的工具權限。