Recap Series
- 第 02 場:使用 Terraform 實現 AWS 合規
- 第 03 場:從新手到開發者:一段精彩的 AWS 雲端旅程
- 第 04 場:以團隊為優先:使用 Laravel 與 Bref 進行無伺服器工程
- 第 05 場:活動開幕:AWS Community Day Hong Kong 2025
- 第 06 場:Agent-to-Agent:在 AWS 上打造可互通的 AI
- 第 07 場:運用另一種遙測資料,透過 AI Agent 加速改善
- 第 08 場:告別 Vibe Coding:運用 Kiro 實踐規格驅動開發(Spec-Driven Development)
- 第 09 場:運用 MCP 與 AI 代理進行自動化測試
- 第 10 場:以 ML 驅動的方法實現電信安全現代化
- 第 11 場:重新思考 GenAI Agent:RAG 與 MCP
- 第 12 場:運用 TAK 與 AWS 進行災害及緊急應變
- 第 13 場:從測試角度重新思考 Serverless 應用程式工作流程
- 第 14 場:運用實務 AWS FinOps 邁向雲端成功
錄影
https://www.youtube.com/watch?v=qoPjyt-MyWk
在 AWS 上打造新一代 Agent 應用程式
使用案例:咖啡廳經理 Agent
- 咖啡廳經理 Agent:使用 Crew AI 框架建置。
- 工具:串接符合 OpenAPI 規格的 API。
- 情境:Custom base(客戶)與咖啡廳經理 Agent 溝通,點選卡布奇諾或黑咖啡等品項。
- 分散式 Agent:另一個 Agent(例如供應商 Agent)與咖啡廳經理 Agent 溝通,以取得資訊或下單。
- 框架:咖啡廳經理 Agent 使用 Crew AI,分散式 Agent 則使用 Autogen。
- 身分識別提供者:Custom base 使用 Okta 作為身分識別提供者。
- 工具:API 並非託管於 AWS Lambda,但遵循 OpenAPI 規格。
AWS 對 Agentic 應用程式的支援
- Agent Core Service:AWS 提供的完整服務,支援建置與部署 Agent 應用程式。
- 模組:Agent Core Service 由六至七個相互依賴、也可獨立執行的模組組成。
- 受管服務:所有元件都是由 AWS 提供的受管服務。
Agent Core Runtime
- Serverless 託管:可部署以任何框架編寫之 Agent 的 Serverless 服務(例如 Crew AI、AWS Strands、Microsoft Autogen、Google Agentic Development Kit)。
- 模型通訊:支援與任何模型通訊,包括 AWS 生態系以外的模型(例如 OpenAI 模型)。
- 通訊協定:
- [ 1 ] MCP(Model Context Protocol):用於與工具及資源通訊。
- [ 2 ] A2A(Agent to Agent)通訊協定:讓 Agent 之間開放溝通的新通訊協定。
- 執行時間:支援快速回應的即時執行,以及最長可執行 8 小時的長時間任務。
- Payload 大小:支援最高 100 MB 的 Payload(文字、部落格內容等),未來可能進一步提高上限。
Agent Core Runtime 的運作方式
非確定性流程與工作階段隔離
- 非確定性流程:Agentic 應用程式不會依循確定性的流程,而是由 LLM 模型決定執行路徑。
- 工作階段隔離:Agent Core Runtime 使用 microVM 核心,提供開箱即用的工作階段隔離功能。
- [ 1 ] MicroVM 核心:使用者透過 Prompt 啟動工作階段時,系統會建立一個採用 microVM 核心的新工作階段。
- [ 2 ] 隔離:確保使用者之間不會共用檔案系統、記憶體或 CPU,以維護資料隱私與安全。
- [ 3 ] 範例:如果 Jonas 要求咖啡完成時通知他,而 Jane 詢問電話號碼,兩人的工作階段仍會彼此隔離。
有狀態服務
- 狀態管理:Agent Core Runtime 是會記住所有狀態的有狀態服務。
- 使用中的工作階段:同一時間最多支援 500 個使用中的工作階段。
工作階段生命週期
- 啟動工作階段:工作階段啟動時,會使用一組由服務管理的唯一工作階段 ID。
- 資源管理:
- [ 1 ] 閒置時間:閒置 5 分鐘後,服務會暫停該工作階段的 CPU 與資源,以節省成本。
- [ 2 ] 逾時:一般請求會在閒置 15 分鐘後逾時;若採用串流(例如聊天),則最長為 60 分鐘。
- [ 3 ] 長時間執行的任務:支援最長執行 8 小時的任務。
Agent Core Memory
記憶在 Agent 應用程式中的重要性
- 客戶體驗:記憶是提升客戶體驗的關鍵。例如,隔天仍能記得客戶最喜歡的咖啡品項(如卡布奇諾)。
記憶類型
- 短期記憶:儲存近期的互動與事件。
- 長期記憶:儲存可供長期使用的模式與結構化資料。
Agent Core Memory 的功能
- 內建加密:確保資料安全。
- 彈性的命名空間:可有條理地儲存記憶紀錄。
- 存留時間(TTL):使用者可設定記憶的保留期限。
- 可觀測性:內建可觀測性功能,可監控記憶體的使用情況。
短期記憶
- [ 1 ] 建立事件:使用者每次與 Agent 互動都會建立一個事件。
- 範例:使用者提出問題、Agent 回覆,每個動作都是一個事件。
- [ 2 ] 事件中繼資料:事件的額外資訊(例如地點、時間)。
- 範例:中繼資料可包含互動發生的地點(例如香港)。
- [ 3 ] Actor ID 與工作階段 ID:用於將資料儲存至資料庫的唯一識別碼。
- [ 4 ] 檢查點:過往聊天工作階段的快照,方便快速擷取。
- [ 5 ] 聊天訊息:依工作階段儲存互動中的聊天訊息。
- [ 6 ] 工作階段狀態管理:自動管理工作階段狀態及長期記憶的觸發條件。
長期記憶
- 結構化資料儲存:將原始互動轉換成結構化格式,並儲存於向量資料庫。
- 資料儲存方式:
- [ 1 ] 使用參考資料:檢查並運用現有資訊。
- [ 2 ] 事實與知識:儲存事實資料與知識。
- [ 3 ] 摘要:將資料摘要,以提高儲存效率。
- 自訂儲存區:使用者可視需要定義自己的儲存方案,否則將使用預設儲存區。
資料儲存策略
- 內建策略:無須使用者介入,即可自動管理資料儲存。
- 可自訂策略:讓使用者自訂資料的儲存方式。
- 高度自訂策略:使用者可精確定義哪些資料要納入長期記憶,以及如何儲存。
- 內建語意搜尋:協助針對查詢適當擷取記憶資料。
Agent Core Gateway
統一存取與工具整合
- 用途:提供統一存取介面,將工具與 Agent 整合。
- 智慧工具探索:內建功能可找出最適合特定用途的工具。
- 預先建置的整合:只需點按一兩下,即可輕鬆整合 Salesforce、Slack 及 SendGrid 等常用工具。
- 驗證與安全:包含身分驗證與安全功能。
連線模型
- Smithy 模型:用於支援 Smithy Target 的設定。
- OpenAPI Target:用於支援 OpenAPI Schema 的 API。
- AWS Lambda Target:用於以 AWS Lambda 函式實作的工具。
- MCP Server:Agent Core Gateway 可作為 MCP Server,而 Agent 則作為 Client,透過此 Gateway 進行通訊。
Agent Core Identity
身分管理服務
- 用途:確保所有透過 Agent Core Runtime 與 Memory 執行的程序都能安全連線。
- 輸入端授權/身分驗證:確認連線至 Agent 的使用者身分有效,且確實有意與該 Agent 通訊。
- 輸出端授權:確保 Agent 具備正確的憑證與安全措施,以便與工具通訊。
現有身分識別提供者
- 整合外部提供者:支援整合 Microsoft Enterprise 或 Okta 等現有身分識別提供者。
- 可攜性:使用者可將現有身分識別框架移植至 Agent Core Identity,無須全面遷移至 Amazon Cognito,即可取得企業級功能。
Agent Core Observability
即時可視性
- AWS CloudWatch 整合:啟用可觀測性模組後,系統會自動連線至 Amazon CloudWatch。
- 一般儀表板:提供可監控 Log、Trace 與指標的儀表板。
- OpenTelemetry 標準:支援整合採用 OpenTelemetry 標準的現有可觀測性儀表板。
遙測資料
- Log:記錄 Agent 互動期間發生的情況。
- Trace:呈現事件如何發生,並提供詳細的執行路徑。
- 指標:提供處理的 Token 數量或任務耗時等量化資料。
服務層級遙測
- 彙整:彙整所有模組(Runtime、Memory、Gateway、Identity)的遙測資料,以提供完整的服務層級資訊。
可觀測性入口網站
- Agent Runtime:顯示已部署的 Agent、工作階段、Log 與 Trace。
- Memory:顯示短期與長期記憶的儲存情況。
- Gateway:可建立及管理用於工具整合的 Gateway。
- Identity:支援整合現有的身分識別提供者。
- Observability:可在 CloudWatch 中監控 Agent、Memory Log 與 Trace。
Agent Code Starter Kit
- 簡化部署:使用 Agent Code Starter Kit 即可輕鬆設定並啟動 Agent 應用程式。
- 命令提示字元:安裝 Starter Kit,並使用「configure」及「launch」等命令設定與部署 Agent。
- 進入點定義:在設定期間定義應用程式的進入點。
示範
- 入口網站檢視:顯示包含已部署 Agent、Memory、Gateway 及身分整合的儀表板。
- CloudWatch 區段:標示 CloudWatch 中的「Agent Core Observability」區段,以進行詳細監控。
結論
- 易用性:Agent Code Starter Kit 簡化了 Agent 應用程式的設定與部署流程,讓開發人員更容易在 AWS 上建置及監控 Agentic 應用程式。
部署及設定 Agent 應用程式
使用 Agent Code Starter Kit
- Crew AI 應用程式:示範如何使用 Agent Code Starter Kit 部署 Crew AI 應用程式(而非 Strands)。
- Bedrock Agent Core Runtime:定義 Runtime 與應用程式,並指定進入點。
- 設定:
- 建議檔案:Starter Tool 會建立建議檔案,請以「yes」確認。
- Execution Wall:自動建立。
- 容器化:將應用程式放入容器。
- 授權:提供授權與安全設定選項(例如 Okta)。
- 記憶:可選擇長期或短期記憶。
- 啟動:使用 agent co launch,將應用程式部署至 Agent Core Runtime。
彈性與整合
- 框架:可完全彈性地沿用現有框架與開發實務。
- 資料庫:不受限於完整資料庫,可與現有系統整合。
A2A 通訊協定
- 簡介:A2A(Agent to Agent)是目前由 Linux 管理、並獲大型企業採用的開放標準通訊協定。
- 用途:讓不同企業能建立 Agent 並安全通訊,無須深入瞭解彼此的企業 API。
- 預設安全:與 MCP(Model Context Protocol)相輔相成,且以安全性為設計核心。
- 使用案例:示範使用 Okta 連線至供應商、讓一般應用程式與採用 A2A 的分散式 Agent 同時執行,並支援記憶及可觀測性。
參考架構
- [1] 元件:
- Runtime:託管應用程式。
- Memory:支援短期與長期記憶。
- Observability:監控與記錄。
- Gateway:連線至其他工具與服務。
- [ 2 ] 整合:
- 展示所有元件如何在 AWS Agentic 應用程式的參考架構中協同運作。
