回顧系列
- 回顧 01:Coinbase re:Invent 回顧 (IND3312)
- 回顧 02:利用 AI 和 AWS 構建未來交易平臺
- 回顧 03:交易創新:Jefferies 在 Amazon Bedrock 上的 AI 助理 (IND3315)
- 回顧 04:FSI 如何運用代理式 AI 徹底改造 HFT 分析 (GBL302)
- 回顧 05:透過 Amazon Time Sync 改善分散式系統,Nasdaq 專題分享
- 回顧 06:Amazon Aurora HA 與 DR 的全球韌性設計模式 (DAT442)
- 回顧 07:建構代理式 AI:Amazon Nova Act 與 Strands Agents 實務應用 (DEV327)
- 回顧 08:深入探討 Amazon Aurora 及其創新 (DAT441)
- 回顧 09:深入探討 Amazon S3 (STG407)
- 回顧 10:Nasdaq:為全球金融服務打造具彈性的基礎設施(HMC327)
- 回顧 11:AWS Lambda 的最新功能 (CNS376)
- 回顧 12:使用 Kiro 進行規格驅動開發 (DEV314)
- 回顧 13:Amazon 的 FinOps:全球電子商務巨擘的雲端成本經驗 (AMZ308)
- 回顧 14:AWS 上的 Tick-to-trade 延遲交易平台
場次筆記
建構代理式 AI:Amazon Nova Act 與 Strands Agents 實務應用
簡介
- 課程簡介:代理式 AI 已成為當前 AI 領域的關鍵主題
- 目標對象是超越基礎理解、著眼於實際應用與創新的前瞻開發人員 代理式 AI 的未來趨勢
- 生成式 AI 演進概觀,強調從低代理能力(規則型、高度人工監督)逐步發展至高代理能力(獨立運作、策略決策)
- 認知目前代理式 AI 的發展階段,並強調若要提升代理自主程度,便需要先進技術、治理、信任及組織準備度 Sequoia Capital 的預測
- Sequoia Capital 在 2025 年 AI 主題演講中展望了一個未來:AI 系統將超越工具般的屬性,演進成能自主運作的智慧代理程式。
- 這些代理程式將具備推理、規劃、協作及高度自主運作的能力。
- 2030 年代經濟願景
- Sequoia Capital 預測,2030 年代的經濟,特別是在亞洲,將如同一個由眾多 AI 代理程式運作所組成的全球神經網路,形成彼此互連的網路。
- 個人成功的可能性
- 設計出獲得廣泛採用,尤其是在全球普及的 AI 代理程式,可能帶來可觀的個人財務成就,甚至有機會讓一個人變得極其富有。
- 此預測的重要性
- 這項預測對於引導開發人員,以及了解未來 AI 發展必須達成的目標至關重要。
- 一人獨角獸的興起
- Sequoia Capital 預測「一人獨角獸」將會興起,這類公司由單一個人建立及經營,估值達 10 億美元。
- 此趨勢將使勞動結構發生轉變,並催生由一個人便能經營整間新創公司的新型組織模式。
- 隨機性思維的必要性
- AI 代理程式的世界要求開發人員採取新的思考方式,擺脫傳統對準確性的期待,轉而抱持更具隨機性的思維。
- 這涉及調整開發人員連結及運用大型語言模型與 AI 技術的方式。
- 為代理式 AI 新時代做好準備
- 若要在代理式 AI 時代取得成功,不僅要做好技術準備,也必須調整心態與組織。
- 開發人員必須準備好面對組織結構及思維框架的變化,才能在這個新時代蓬勃發展。
- 2025 年代理式 AI 的基礎設施
- MCP 和 A2A 等通訊協定正在開發中,以實現 AI 代理程式及其工具之間的互通性。
- AWS 正積極參與 MCP 和 A2A 的標準委員會,貢獻數十年的分散式系統經驗,以強化這些未來的協定。
- AWS 代理式 AI 產品組合
- 由完整的架構組成,服務分為三層:
- 基礎設施
- AI 與代理程式開發軟體
- 應用程式層
- 聚焦於 AI 和代理程式開發軟體與服務,包括 Amazon Nova Act 和 Street Agents 等代理程式的 SDK。
代理式 AI 實務應用:本地天氣資訊
- 實際 AI 代理程式情境示範:使用 MCP 協定、Amazon Nova Act 及香港天文台網站開發本地天氣資訊應用程式。
- 本地天氣資訊代理程式
- 使用 Amazon Bedrock 建置、由 Emerald 提供支援,並配有特定網站 URL(香港天文台)的 AI 代理程式。
- 使用者可以使用自然語言(英文、西班牙文或中文)與代理程式互動,查詢香港目前的天氣。
- 代理程式會自主在指定網站上找到資訊,並儲存螢幕擷取畫面供驗證,展現其如同真人網頁抓取工程師般運作的能力。
- 對網頁抓取工程師的影響
- 代理式 AI 時代已經來臨,可能衝擊傳統的網頁抓取職務。開發人員可能需要使用 Nova Act 等 AWS 服務,為這項轉變做好準備。
- AI 代理程式的實作詳細資訊
- Nova Act 預測函式會引導它應擷取哪些網頁,以及要執行哪些動作。
- 使用自然語言指派任務,例如從香港天文台網站讀取並擷取 9 天天氣預報資訊。
- 開發人員的抱負
- 許多開發人員希望從頭建置自己的代理式 AI 應用程式,並保有原始碼層級的完整控制權。
- 開放原始碼 strands agents 可協助達成此目標,讓開發人員控制每一行程式碼。
- 建置自訂代理程式的挑戰
- 開發人員需要能讓代理程式與各種企業系統互動的連接器。
自訂 AI 代理程式系統所需的元件
- 工具和 MCP(訊息控制協定)對於讓代理程式執行預訂飯店、更新資訊或觸發程序等工作流程至關重要。
- 記憶體:代理程式需要短期與長期記憶體。短期記憶體會維持工作階段內的情境,而長期記憶體則讓代理程式能隨時間學習及改善。
- 大腦(大型語言模型):可使用 ReACT(推理、行動及共同溝通)、反思及思維鏈等技術,將 LLM 擴展至更複雜的框架,讓模型能夠逐步規劃、反思及推理。
- 人格:每個代理程式都有一種人格,也就是一組定義其身分與行為的規則或指示,使它有別於其他類型的代理程式(例如 HR 代理程式與 DevOps 代理程式)。
- 可觀測性與防護機制:自訂 AI 代理程式以提供可觀測性與防護機制,可確保它們維持安全、可討論,並與目標一致。
- 建置功能完備之 AI 代理程式的挑戰
- 建置真正功能完備的 AI 代理程式需要大量工作,其中可能有 80-90% 的心力與獨特的商業邏輯及流程無關。
AWS 解決方案:strands Agents
- Strands Agents:由 AWS 貢獻的開放原始碼 SDK,讓開發人員能以極少的程式碼建置 AI 代理程式。它運用最先進的大型語言模型進行規劃、思維鏈,從而簡化開發。
- 示範:使用 strands Agents 建立數學動畫
- 使用 Manim 程式庫進行數學視覺化,並結合 Strands Agents 和 Python 程式庫。
- 核心實作程式碼:
- 從 Strands 模組匯入 Agent 類別,並匯入 MCPClient 類別,以建立在框架內使用代理程式和 MCP 所需的基本元件。
- 使用 send_input 和 output 作為傳輸機制,設定與 Manim MCP 伺服器的連線。
- 建立與 Manim MCP 伺服器互動的連線、擷取可用工具,並使用這些工具初始化代理程式。
- 使用代理程式處理要求數學動畫的自然語言提示,具體而言是將 X 等於 -3 到 X 等於 3 的三次函數圖形視覺化。
- 使用 Strands Agents SDK 進行數學視覺化
- 在 Visual Studio 中,會使用兩個終端機視窗:
- 左側視窗會執行 MCP(訊息控制協定)伺服器,透過 STDIO 傳輸連線至 Manim MCP 伺服器。
- 右側視窗會執行 MCP 用戶端程式,啟動影片生成聊天介面。
- 使用者可以透過介面輸入自然語言命令,例如建立一個場景,在 9 秒內繪製指定範圍的三次函數。
- 代理程式會處理自然語言要求,並在發生問題時建立簡化版本來完成任務,展現適應性的問題解決能力。
多代理程式協作的優點
- 專業化:專業代理程式在特定領域工作,可提高精準度並提供更準確的答案。結合這些代理程式可取得更優異的成果。
- 擴展能力:系統可以新增或移除代理程式,而不影響整個系統,因此具備擴展能力。
- 可維護性:與大型單體程式碼庫相比,較小的代理程式更容易控制、監控、偵錯及測試。
- 成本效益:多代理程式系統可針對特定任務選擇適當的模型,兼顧智慧程度、速度及成本效益。
- 類比:單一代理程式與多代理程式系統
- 單一代理程式:如同一項獨自作業的專門技能。
- 多代理程式系統:如同一支協調良好的團隊,由不同角色(分析師、量化分析師、交易員、風險經理、IT)共同合作,以取得更優異的績效。
- 成功條件:協作
- 若要讓多代理程式系統成功,代理程式必須有效地共同合作。
- 多代理程式協作模式
- 代理程式即工具:一個代理程式可以將另一個代理程式當成工具使用。
- 圖形工作流程:代理程式可以連接成圖形結構,以執行複雜任務。
- 協調器代理程式:協調器代理程式會接收使用者需求、了解意圖,並呼叫專業代理程式來執行特定任務。
- 範例:旅遊規劃
- 協調器代理程式:接收使用者的旅遊需求(例如前往 Las Vegas 旅遊)。
- 研究代理程式:搜尋景點及活動(例如 antelope canyon)。
- 產品推薦代理程式:根據研究代理程式的輸出提供建議。
- 代理程式工作流程:一個代理程式的輸出會成為下一個代理程式的輸入,建立順暢的工作流程。
真實案例:量化避險基金
- 量化方法對量化研究人員至關重要,可協助他們快速驗證交易構想,更快找到適當的交易策略。
- 範例:使用移動平均線交叉策略時,研究人員可以輸入股票詳細資料(例如 Amazon)與回測時段,並取得損益及夏普比率等指標。
- 系統會提供買進和賣出條件、回測結果,以及改善交易策略的建議,包括風險評估與警示。
- 移動平均線交叉策略
- 移動平均線 (MA) 交叉策略會在圖表上使用兩條 MA(一條快速短期線及一條慢速長期線)來產生買進與賣出訊號:當快速 MA 向上穿越慢速 MA(多頭趨勢)時,會出現買進訊號;當快速 MA 向下穿越慢速 MA(空頭趨勢)時,則會出現賣出訊號。
- 運作方式
- 設定:在價格圖表上繪製兩條週期不同的移動平均線(例如簡單移動平均線 (SMA) 或指數移動平均線 (EMA))。
- 買進訊號(多頭):較短週期的 MA 向上穿越較長週期的 MA 時。
- 賣出訊號(空頭):較短週期的 MA 向下穿越較長週期的 MA 時。
- 常見 MA 組合
- 短期:9 期 EMA/SMA。
- 中期:21 期 EMA/SMA。
- 長期:50 日、100 日或 200 日 MA(常用於主要趨勢)。
- 主要交叉型態
- 黃金交叉:50 日 MA 向上穿越 200 日 MA 的多頭訊號,表示可能出現強勁的上升趨勢。
- 死亡交叉:50 日 MA 向下穿越 200 日 MA 的空頭訊號,表示可能出現下降趨勢。
- 限制與改良
- 落後指標:MA 以過去價格為基礎,因此交叉通常會在價格走勢已經開始後才發生,導致進場或出場過晚。
- 震盪市場:在橫向或盤整市場中,此策略會產生許多錯誤訊號(反覆受挫)。
- 架構圖
- 協調代理程式(量化研究代理程式)會呼叫不同的工具和子代理程式。
- 工具:市場資料工具及回測工具。
- 子代理程式:策略生成代理程式及結果摘要代理程式。
- Bedrock Core Agent Gateway
- 將 API、Lambda 函數或現有服務封裝成與 MCP 相容的工具,為開發人員提供安全的代理程式工具建置方式。
- 步驟
- 使用 Lambda 函數將歷史市場資料儲存在 S3 table 中,並將其定義為閘道的目標。
- 使用稱為 gateway create MCP gateway command 的代理程式建立閘道。
- 將 Lambda 函數定義為閘道的目標。
- 使用 Cognito 進行身分驗證,以確保安全存取。
- 定義工具的輸入和輸出參數(例如 get market data)。
用於建置工具的 Agent Gateway
- 使用 Agent RAM 託管策略生成代理程式,並讓它成為量化研究代理程式的工具。
- 將 Gateway 整合為工具
- 建立閘道後,可將它做成目前研究代理程式的工具。
- 步驟:
- 指定引數與回傳類型。
- 使用 Cognito 進行身分驗證。
- 使用 HTTP 用戶端呼叫閘道,以擷取用於回測的歷史市場資料。
- 定義及部署策略生成代理程式
- 部署策略生成代理程式,以提供安全且快速的代理程式託管方式。
- 步驟:
- 使用 strengths import agent 定義代理程式。
- 指定使用 backtrader 框架生成交易策略程式碼的指示。
- 將代理程式部署至執行階段。
- 指定進入點,並在連接埠 8080 上執行代理程式。
- 使用 agent call config 指定檔案和相依性。
- 使用 agent call launch 啟動執行階段代理程式
- 使用 agent get status 檢查其狀態
- 將代理程式做成工具
- 定義工具(市場資料工具)和策略生成代理程式後,將代理程式做成工具。
- 步驟:
- 生成交易策略。
- 指定引數(例如買進和賣出條件)。
- 叫用代理程式。
- 協調器代理程式(量化研究代理程式)
- 協調器代理程式會協調工具和代理程式。
- 步驟:
- 匯入代理程式。
- 定義量化研究代理程式的系統提示,使其取得歷史市場資料、生成策略、執行回測並分析結果。
- 使用「代理程式即工具」模式整合四項工具:
- 市場資料、
- 生成策略、
- 執行回測、
- 建立結果摘要。
- 如果發生問題,量化研究代理程式將重新學習結果。
Kiro CLI
- 使用 Kiro CLI 執行命令,這對偵錯很有幫助,因為它能快速驗證輸出。
- 使用 Kiro CLI 執行 Quant Agent
- Kiro CLI 用於執行 quant agent,並運用 tool execute patch,以及指定 10 天期簡單移動平均線交叉 30 天期簡單移動平均線策略的 JSON 檔案。
- 代理程式約在 6 秒內生成交易策略。
- 接著,代理程式會透過 HTTP 要求從閘道擷取市場資料。
- 會擷取約 200 個資料點以進行回測。
- 使用 backtrader 框架執行回測。
- 輸出包含初始價值、利潤、總報酬,以及改善交易策略的建議。
- 回測結果會儲存在稱為 memory 的代理程式中,並在最後一步從該處擷取。
群集模式
- 與「代理程式即工具」模式不同,群集模式涉及代理程式在沒有單一協調器的情況下,動態地溝通及協作。
- 群集會維護所有代理程式皆可存取的共用情境,其中包括其他代理程式、輸入、輸出及歷史互動的相關資訊。
- 匯入 Swarm 類別,並以交接次數上限及重複交接偵測來定義四個代理程式,以防止無限迴圈。
- 「重複交接」是指在不同個人、團隊、系統或網路存取點之間,頻繁且不必要地轉移任務或責任。
- 範例:
- 使用四個代理程式撰寫部落格:
- 研究代理程式:進行研究。
- 創意代理程式:建立內容。
- 批判代理程式:質疑所建立的內容。
- 摘要代理程式:彙整最終結果。
- 群集模式的主要元件
- 共用情境:所有代理程式皆可存取共用情境。
- 動態協作:代理程式在沒有中央協調器的情況下進行溝通及協作。
- 交接限制:設定互動次數上限和重複交接偵測,以防止無限迴圈。
- 不同代理程式的參與:確保最後一次交接至少有三個不同的代理程式參與,以維持多樣性並避免重複互動。
- 群集模式實際運作
- 任務:建立一篇說明代理式 AI 的部落格文章,以及社群媒體貼文摘要。
- 工作流程:
- 研究代理程式:收集必要的資訊和事實。
- 創意代理程式:建立引人入勝的部落格文章。
- 摘要代理程式:生成社群媒體摘要。
- 反覆程序:摘要代理程式會向創意代理程式要求更多詳細資訊,以建立有效的摘要。
- 最終輸出:摘要代理程式在 5 次互動後,成功建立部落格文章和社群媒體摘要。
- 將群集作為工具
- 群集模式可用作較大型框架中的工具。
- 範例:匯入群集工具,使用一組代理程式分析或執行任務。
圖形模式
- 將代理程式關係定義為圖形網路,其中每個代理程式都是節點,邊則定義關係及資訊流。
- 主要優點:
- 可預測性:明確定義代理程式之間的通訊路徑。
- 控制:完整控制資訊流。
- 示範
- 先定義代理程式,以確立其在圖形中的角色和互動。
- 範例:代理式基金經理
- 定義投資組合架構師代理程式將如何建構投資組合。
- 定義基金經理代理程式將如何根據建構出的投資組合管理基金。
- 投資組合架構師代理程式:建構投資組合以滿足客戶需求。根據投資組合架構師代理程式建構的投資組合管理基金。
- 在圖形模式中定義節點與邊
- 在圖形中,會定義節點以觸發特定動作或部署代理程式。
- 範例:
- 定義將呼叫代理程式的投資組合節點。
- 步驟:
- 定義狀態圖形,然後輸入狀態圖形。
- 新增財務、投資組合及風險節點。
- 定義從財務到投資組合、從投資組合到風險的邊,並以風險作為終點節點。
工作流程模式
- 工作流程是定義明確的任務順序或模式。
- 範例:定義研究代理程式、分析代理程式及報告代理程式的順序。
- 步驟:
- 匯入工作流程工具。
- 定義任務及其相依性(例如,報告生成相依於趨勢分析)。
- 設定優先順序,以決定平行子代理程式的執行順序。
- 工作流程模式使用案例
- 適用於需要封裝成單一可靠工具的複雜且可重複程序。
- 範例:
- 涉及資料擷取、轉換 (ETL) 及載入資料倉儲的自動化資料管線。
多代理程式協作模式的使用案例範例
代理程式即工具
- 客戶服務聊天機器人:協調式代理程式呼叫技術客戶經理、競標代理程式及摘要代理程式,為客戶提供輸出。
- 群集模式:
- 多領域事件回應:代理程式在本地互動,無須集中控制即可產生複雜的突現行為。範例:網路問題會傳遞給網路代理程式,若有必要,再傳遞給資料庫代理程式。
- 圖形模式:
- 具錯誤路徑的資料驗證:定義一個圖形,讓代理程式判斷是否存在錯誤,接著傳遞至無錯誤的資料驗證,或具有錯誤路徑的資料代理程式。
- 工作流程模式:
- 定義明確且具有相依性和優先順序的任務順序,以維持受控的資訊流及執行順序。
