# 第二幕:組建你的 Podcast 製作團隊 🎬 ![lab2](../../../../translated_images/zh-TW/lab2.48444b9d549e7863.webp) ## 劇情變得更精彩 Alex(你在第一幕認識的 AI 助理)很棒,但一個代理不能獨自運作整個 Podcast 工作室。你需要一個*團隊*: - 🔍 **研究代理**:在網路上搜尋最新資訊 - ✍️ **腳本代理**:將研究結果轉成引人入勝的對話 - 👤 **你(編輯者)**:審核腳本或回傳給代理重寫 歡迎來到 **AI 代理協調** — 你將成為自己 AI 團隊的導演。想像一下復仇者聯盟,但專門打造 Podcast 製作。 ## 什麼是代理協調?(簡單版本) 想像你在經營餐廳。你不會自己做所有事情,對吧?你有: - 🍳 煮菜廚師 - 👨‍🍳 助理廚師負責準備 - 👩‍🍳 服務員負責送餐 代理協調也是這個概念,但對象是 AI。每個代理有自己的專長,而你協調他們完成更大的目標。沒有一個代理負擔過重,工作也能更快完成。 ### 樂隊比喻 🎸 你的 AI 代理就像一支樂隊: - **主唱**:負責主要與客戶互動的代理 - **鼓手**:掌控節奏,處理背景工作 - **貝斯手**:支持全隊,負責取得資料 - **你(經理)**:負責協調全隊! 沒有協調?只是噪音。有了協調?美妙樂音。 ### 為什麼這很重要 一個代理想包辦所有事 = 崩潰。專門代理一起工作 = 高效率解鎖!🚀 **現實講**:還記得孤軍奮戰做研究、寫稿、編輯的痛苦嗎?對,那很糟。用協調後,每個代理做最擅長的事。你只需做最後決定。 **實例**:客服機器人知道何時處理費用問題、何時處理技術問題,何時需要叫真人介入。這就是協調! ## 代理與工作流程:有什麼不同? 這麼想: ### 🤖 AI 代理 = 爵士樂手 - **根據情況即時決策** - **用工具即興解決問題** - **用大型語言模型(LLM)思考** - **適應任何挑戰** ### 🎵 工作流程 = 古典樂團演奏 - **依照樂譜(預設步驟)執行** - **可預測的流程路徑** - **協調多個代理、人員和系統** - **結構化如食譜般** **關鍵**:工作流程*協調*代理!你建構工作流程告訴代理何時上場。兩全其美。🎭 ## 三種協調 AI 團隊的方法 ### 1. 🎯 集中式(你是老大) 一個主要代理下指令。像你管理團隊一樣:你決定誰做什麼、什麼時候做。 **優點**: - ✅ 領導清晰(不會混亂) - ✅ 決策一致 - ✅ 易於除錯 **適用於**: - 客服分派(「這是帳務還是技術支援?」) - 內容審核流程(「這稿子過關嗎?」) - Podcast 製作(就是我們的應用!) ### 2. 🤝 分散式(代理自我組織) 代理間直接溝通,集體協作。像群聊一般協調。 **優點**: - ✅ 易擴展(隨時加代理) - ✅ 無單點故障 - ✅ 代理自然協作 **適用於**: - 研究團隊(每個代理探索不同資料來源) - 腦力激盪會議 - 分散式問題解決 ### 3. 🔀 混合式(兼得兩者優點) 你設定整體方向,代理在任務上有自主權。像 CEO 信任團隊。 **適合**:複雜專案,同時需要控制和彈性。 ## 微軟代理框架:你的協調工具箱 🧰 開始打造吧!你會用到: ### 基本組件 #### 1. 🧱 執行者(你的工人) - **是什麼**:個別處理單元 — 可為代理或自訂邏輯 - **做什麼**:接收輸入,執行工作,產出結果 - **想像成**:生產線上的工位 #### 2. ➡️ 邊(連結) - **是什麼**:執行者之間的連接路徑 - **做什麼**:控制訊息流向(「完成 A 後到 B」) - **想像成**:流程圖上的箭頭 #### 3. 🗺️ 工作流程(總體計劃) - **是什麼**:包含執行者與邊的完整圖形 - **做什麼**:定義從開始到結束的整個流程 - **想像成**:你的生產流程藍圖 ### 你會愛上的特色 **🛡️ 類型安全**:代理間訊息進行類型檢查,不會出現「喔錯誤資料型態」的驚喜。 **🔀 彈性路由**: - 條件判斷(「通過就發佈,否則重寫」) - 並行處理(多代理同時作業) - 動態路徑(工作流程根據結果調整) **🔌 外部整合**: - 連接 API - 加入人工審核點(你在發佈前審核) - 建立請求/回應流程 **💾 檢查點**:儲存進度!程式崩潰時可從斷點繼續。 **🤝 多代理協同**: - 串聯執行(A → B → C) - 同步執行(A + B + C) - 代理間交接 - 協同處理 ## 最佳實務(專業秘訣) 🎯 ### 1. 保持模組化 每個代理專注做好一件事。別建「超級代理」包辦所有,除錯會痛苦。 ### 2. 預備失敗 代理會出錯,網路會斷。設計錯誤處理與備援方案。未來的你會感謝現在的你。 ### 3. 全程監控 追蹤代理的動作。用 DevUI(稍後介紹)看工作流程執行情況。 ### 4. 優化訊息大小 不要穿梭巨量檔案,保持訊息精簡以提升速度。 ### 5. 選對模式 要控制?集中式。要擴充?分散式。不確定?混合式! ## DevUI:你的工作流程除錯器 🔍 ### 什麼是 DevUI? DevUI 就像測試代理與工作流程的遊樂場。是一個網頁介面,你可以: - 👀 監看工作流程運作 - 💬 直接與代理聊天 - 🔍 出錯時除錯 - 📊 查看執行軌跡與效能資料 > **重要**:DevUI 僅限開發使用!別用在正式環境。想像它是你的本地測試環境。 ### 它為何超棒 - **🖥️ 互動式網頁 UI**:點擊、輸入、測試,免命令列 - **📁 拖放就位**:上傳檔案,換輸入輕鬆測試 - **📂 自動偵測**:指向資料夾,自動找到所有代理 - **📋 零設定模式**:直接在程式碼登錄代理,無須資料夾結構 - **🔌 相容 OpenAI**:支援 OpenAI SDK(相容性讚!) - **👁️ 內建追蹤**:精確看見代理做了什麼 ### 輸入如何運作 DevUI 對輸入很聰明: - **測試代理?** 給你文字框和檔案上傳按鈕 - **測試工作流程?** UI 根據流程預期自動產生輸入欄位 這就像魔法,但其實是精良的程式。✨ ## 你的任務:打造 Podcast 工作室 🎬 ### 任務 1:用 DevUI 建立單一代理 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **挑戰**:在打造完整團隊前,先用一個代理測試 DevUI:專門的網路搜尋專家。 **你要建造**: 一個能搜尋網路 Podcast 主題的研究代理。用 DevUI 網頁介面(`http://localhost:8090`)測試它。 **你會學到**: - 🚀 在 DevUI 啟動代理 - 🔍 即時測試代理回應 - 🛠️ 建造自訂工具(網路搜尋) - 📊 開啟追蹤除錯 - 🖥️ 使用互動網頁 UI **程式碼**: - `agent.py`:配備網路搜尋能力的 SearchAgent - 使用 OllamaChatClient 連接 Qwen - 實作 `web_search()` 工具函數 - 透過 `serve()` 啟動 — 自動開啟 DevUI **成功標準**:問代理「AI 最新趨勢?」看它搜尋網路!🎉 ### 任務 2:建構多代理工作流程 📂 [02.WorkflowDevUI](../../../../WorkshopForAgentic/code/02.Workflow/02.WorkflowDevUI) **挑戰**:真正有趣的開始!打造完整 Podcast 製作流程: 1. 🔍 **搜尋代理** → 研究你的主題 2. ✍️ **腳本代理** → 寫兩位主持人對話(中文!) 3. 👤 **審核執行者** → 請你審核同意或駁回 4. 🔄 **迴圈重寫** → 駁回時根據回饋重寫 **你會學到**: - 🧱 建立專門代理處理不同任務 - 🔗 用 WorkflowBuilder 連接代理 - 🔀 實作審核迴圈(人介入流程!) - 🚦 條件路由(通過與否) - 🔧 建構自訂業務邏輯執行者 **工作流程**: ``` SearchAgent → ScriptAgent → ReviewExecutor ↑ ↓ (if rejected) ←───────── ``` **程式碼**: - `search_agent/agent.py`:研究專家 - `generate_script_agent/agent.py`:劇本作家(中文撰寫!) - `workflow/workflow.py`:協調魔法在這裡實現 - `main.py`:在 DevUI 啟動一切 **成功標準**:輸入主題,審核腳本,先駁回一次測試迴圈,再同意發布!🎉 ### 任務 3:打造終端機應用程式 📂 [03.Application](../../../../WorkshopForAgentic/code/02.Workflow/03.Application) **挑戰**:把 DevUI 裡的工作流程變成漂亮終端機應用,帶有彩色輸出、載入旋轉、儲存檔案。這是可以實際用的作品! **你會學到**: - ⚡ 程式化執行工作流程(不用 DevUI) - 📡 事件驅動架構搭配串流 - 🎨 打造美觀終端 UI(顏色、旋轉指示器、進度條) - 💾 將最終腳本存檔 - 🔄 用 Python asyncio 處理非同步工作流程 **功能**: 1. 問你 Podcast 主題 2. 顯示即時進度(「搜尋代理正在作業...」) 3. 彩色顯示生成腳本 4. 請你同意或駁回 5. 將同意腳本存到 `podcast.txt` **程式碼**: - `podcast_app.py`:主要應用,事件處理 - `workflow.py`:重用任務 2 的工作流程 - 處理事件:`AgentRunUpdateEvent`、`RequestInfoEvent`、`WorkflowOutputEvent` - 用 ANSI 色碼美化終端顯示 **成功標準**:執行應用,創造 Podcast 腳本並存檔!你做出了真正工具。🚀 ## 你已經精通了 🏆 完成第二幕後,你能: - ✅ 像老闆一樣協調多個 AI 代理 - ✅ 建構包含順序 & 條件邏輯的工作流程 - ✅ 新增人工審核檢查點 - ✅ 用 DevUI 測試與除錯工作流程 - ✅ 創造可用於生產的終端應用程式 - ✅ 在複雜系統中優雅處理錯誤 - ✅ 為任何專案選擇適合的協調模式 ## 當狀況出錯 🔧 ### 「我的工作流程太複雜了!」 **解決法**:拆分成較小子工作流程。每個工作流程只做好一件事。需要時串接。 ### 「我無法追蹤發生了什麼!」 **解決法**:使用工作流程檢查點保存狀態。開啟 DevUI 追蹤看清每步。 ### 「一個代理出錯害整個系統崩潰!」 **解決法**:加入錯誤界限。每個代理要能處理自身錯誤及備援。 ### 「速度好慢」 **解決法**:有沒有代理能並行運作?順序流程簡單但慢。找並行機會! ## 有用資源 🔗 - [工作流程文件](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — 微軟官方指南 - [協調模式](https://www.ibm.com/think/topics/ai-agent-orchestration) — IBM 觀點 - [代理框架 GitHub](https://github.com/microsoft/agent-framework) — 查看原始碼 - [程式範例](https://github.com/microsoft/agent-framework/tree/main/python/samples) — 從這裡借鑑範例 --- **準備好迎接大結局了嗎?** 你已經有了腳本。現在讓我們把它變成真實的音訊!→ [第3幕:讓你的 Podcast 活起來](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) 🎤 --- **卡住了?困惑?興奮?** 在工作坊聊天室分享!我們一起學習。 🚀 --- **免責聲明**: 本文件係使用 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 進行翻譯。雖然我們力求準確,但請注意自動翻譯可能包含錯誤或不準確之處。原始文件以其母語版本為準。對於重要資訊,建議採用專業人工翻譯。我們對因使用本翻譯所產生的任何誤解或曲解概不負責。