活動摘要系列
- 議程 01:最大化 AI 推論成本效益:策略性採用 AWS GPU 執行個體
- 議程 02:進階代理式 AI 設計模式
- 議程 03:在 AWS 上建置全新現代化應用程式
議程筆記
本場議程介紹了從生成式 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 公開的外部工具。
代理程式迴圈
- 使用目標、上下文、可用工具和觀察結果呼叫模型。
- 接收模型回應、推論結果和工具選擇。
- 讓代理程式決定是否需要執行其他操作。
- 使用經過驗證的輸入執行所選工具。
- 將工具結果作為新的觀察傳回給模型。
- 重複上述過程,直至任務完成或達到停止條件。
- 生成最終回應。
此迴圈支援複雜的多步驟推論和行動。正式環境實作還應限制迭代次數、執行時間、權限和支出。
設計注意事項
- 當對輸出進行檢討和修訂能夠提高品質時,使用反思。
- 當任務需要最新資料、確定性運算或外部操作時,使用工具。
- 當目標包含多個相互依賴的步驟時,使用規劃。
- 當專業分工或並行工作的收益超過協調開銷時,使用多個代理程式。
- 在系統邊界驗證所有工具輸入和輸出。
- 為每個工具和代理程式角色套用最小權限存取。
- 記錄工具呼叫和狀態轉換,以便進行可觀測性與稽核。
- 加入逾時、重試次數限制和明確的終止條件。
- 對敏感或不可逆的操作保留人工核准步驟。
重點摘要
- 代理式 AI 結合了模型、記憶、目標、工具、行動和環境回饋。
- 反思、工具使用、規劃和多代理程式協作是建置高能力代理程式的可重複使用的模式。
- 每種模式解決不同的問題,也會帶來各自的成本和維運複雜性。
- Strands Agents 提供輕量、不受特定模型限制的 SDK,支援多代理程式工作流程和 MCP 工具。
- 除模型推論外,可靠的代理程式系統還需要防護機制、受限執行、可觀測性和受控的工具權限。
