# Act 2: 組建你的 Podcast 製作團隊 🎬 ![lab2](../../../../translated_images/zh-HK/lab2.48444b9d549e7863.webp) ## 劇情升溫 Alex(來自 Act 1 的 AI 助手)非常強大,但一個代理人無法經營整個 Podcast 工作室。你需要一個*團隊*: - 🔍 **研究代理人**:搜尋網路上的最新資訊 - ✍️ **腳本代理人**:將研究內容轉換成引人入勝的對話 - 👤 **你(編輯者)**:審核腳本,或退回修改 歡迎來到 **AI 代理人協調** — 讓你成為自己 AI 團隊的導演。想像復仇者聯盟,但專注於 Podcast 製作。 ## 什麼是代理人協調?(簡易版) 想像你經營一間餐廳。你不會自己什麼都做對吧?你有: - 🍳 廚師負責烹飪 - 👨‍🍳 副廚負責備料 - 👩‍🍳 服務員負責送餐 代理人協調就是同理,但換成 AI。每個代理人有自己的專長,而你負責協調他們以達成更大目標。沒有單一代理人負擔過重,工作也完成得更快。 ### 樂隊比喻 🎸 你的 AI 代理人就像一支樂隊: - **主唱**:負責與客戶互動的主要代理人 - **鼓手**:保持節奏,處理背景運算 - **貝斯手**:支持大家,負責抓取資料 - **你(樂隊經理)**:協調所有成員! 沒有協調?只有噪音。有了協調?美妙的樂音。 ### 為什麼這很重要 一個 AI 代理人嘗試做所有事情 = 精疲力竭。專門分工的代理人合作 = 效率爆發!🚀 **真心話**:你還記得自己獨自研究、撰寫又編輯 Podcast 的痛苦嗎?那真的很慘。有了協調,每個代理人負責最擅長的事情。你只需做最終決策。 **實際例子**:客戶支援機器人能判斷什麼時候處理帳單問題、什麼時候處理技術問題、什麼時候交給真人客服。這就是協調! ## 代理人 vs 工作流程:差別在哪? 這樣想: ### 🤖 AI 代理人 = 爵士樂手 - **根據所聽即時做決策** - **即興發揮**用工具解決問題 - **用 LLM 腦袋思考** - **適應**任何你丟給它的狀況 ### 🎵 工作流程 = 管弦樂隊演奏古典音樂 - **遵照樂譜**(預先定義的步驟) - **可預測**的執行路徑 - **協調**多個代理人、人員、系統 - **有結構**就像菜譜一樣 **魔法所在**:工作流程能*協調*代理人!你打造的流程告訴代理人何時該出場演奏。兩全其美。🎭 ## 協調你的 AI 團隊的三種方式 ### 1. 🎯 中央集權(你當老闆) 一個主要代理人下指令。想像你管理一個團隊 — 你決定誰做什麼、何時做。 **優點**: - ✅ 領導明確(不混亂) - ✅ 決策一致 - ✅ 容易偵錯 **適用於**: - 客服路由(「這是帳單問題還是技術支援?」) - 內容審核流程(「這份腳本過關嗎?」) - Podcast 製作(正是我們要打造的!) ### 2. 🤝 分散式(代理人自組織) 代理人直接對話,一起弄清楚狀況。像群組聊天,大家一起協調。 **優點**: - ✅ 容易擴充(隨時新增代理人) - ✅ 無單點故障 - ✅ 代理人自然合作 **適用於**: - 研究隊伍(每個代理人探索不同資源) - 腦力激盪會議 - 分布式問題解決 ### 3. 🔀 混合式(兼得兩者) 你設定整體方向,代理人對細節有自主權。像信任團隊的 CEO。 **適合**:需要兼顧控制與彈性的複雜專案。 ## Microsoft 代理人框架:你的協調工具箱 🧰 開始打造吧!你將會用到: ### 基本建構塊 #### 1. 🧱 執行者(你的工作者) - **是什麼**:獨立的處理單元—可以是代理人或自定義邏輯 - **做什麼**:接收輸入、執行工作、產生輸出 - **想像成**:組裝線上的工作站 #### 2. ➡️ 邊(連結) - **是什麼**:執行者之間的路徑 - **做什麼**:控制訊息流向(「A 完成後,去 B」) - **想像成**:流程圖上的箭頭 #### 3. 🗺️ 工作流程(總藍圖) - **是什麼**:完整由執行者和邊組成的圖形 - **做什麼**:定義從開始到結束的整個過程 - **想像成**:你的製作流程藍圖 ### 你會愛上的酷功能 **🛡️ 型別安全**:代理人之間傳送的訊息會被型別檢查。不用擔心「喔不,資料型態錯誤」的驚喜。 **🔀 靈活路由**: - If-then 條件判斷(「批准就發佈,否則重寫」) - 平行處理(多個代理同時工作) - 動態路徑(流程根據結果調整) **🔌 外部整合**: - 連接 API - 加入人類審核節點(你批准才發佈) - 建立請求/回應流程 **💾 檢查點**:保存進度!當系統崩潰時,可以從斷點繼續。 **🤝 多代理協作**: - 依序執行代理(A → B → C) - 同時執行(A + B + C) - 代理間交接 - 協同處理 ## 最佳實務(專家秘訣)🎯 ### 1. 保持模組化 每個代理人專精一件事。別做成「超級代理人」什麼都做—除非你想崩潰除錯。 ### 2. 預備失敗 代理人會出錯、網路會斷。建立錯誤處理和備份方案。未來的你會感激現在的你。 ### 3. 全面監控 追蹤代理人運作狀態。利用 DevUI(我們稍後會介紹!)觀察工作流程執行。 ### 4. 優化訊息大小 別讓代理人間傳送龐大檔案。訊息保持精簡快速。 ### 5. 選擇合適模式 需要控制?用集中式。需要擴展?用分散式。想兩者兼得?用混合! ## DevUI:你的工作流程除錯器 🔍 ### 什麼是 DevUI? DevUI 像個試玩場,用於測試代理人與工作流程。它是一個 Web 介面,你可以: - 👀 觀看工作流程實況 - 💬 直接跟代理人對話 - 🔍 出錯時除錯 - 📊 查看追蹤與效能數據 > **重要**:DevUI 只用於開發!不要在生產環境用它。把它當成本地端測試環境。 ### 為什麼這麼棒 - **🖥️ 互動式網頁 UI**:點擊、打字、測試,一點都不需要命令行 - **📁 拖曳上傳方便**:傳檔案,帶不同輸入測試 - **📂 自動偵測**:指定資料夾,自動找到所有代理人 - **📋 免設定模式**:在程式碼中註冊代理人,無需資料夾結構 - **🔌 支援 OpenAI**:兼容 OpenAI SDK(相容性加分!) - **👁️ 內建追蹤**:清楚看到每個代理人在做什麼 ### 輸入如何運作 DevUI 智慧判斷輸入類型: - **測試代理人?** 有文字框和檔案上傳按鈕 - **測試工作流程?** UI 根據流程需求自動產生輸入欄 這就像魔法,但其實是好程式碼。✨ ## 你的任務:打造一座 Podcast 工作室 🎬 ### 任務 1:用 DevUI 創建單一代理人 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **挑戰**:在打造完整團隊前,先用 DevUI 測試一個網路搜尋專家代理人。 **你會建立的**: 一個能搜尋 Podcast 主題的研究代理人。你會在 `http://localhost:8090` 的 DevUI 網頁介面測試它。 **你會學會**: - 🚀 在 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 腳本,並看到它被成功保存!你做出一個真實工具了。🚀 ## 你已掌握的技能 🏆 在 Act 2 後,你可以: - ✅ 如老闆般協調多個 AI 代理人 - ✅ 建構順序與條件邏輯兼具的工作流程 - ✅ 加入人類審核檢查點 - ✅ 用 DevUI 測試 and 除錯工作流程 - ✅ 製作可投入生產的終端應用程式 - ✅ 優雅處理複雜系統的錯誤 - ✅ 為任何專案選擇最合適的協調模式 ## 出錯怎麼辦 🔧 ### 「我的工作流程太複雜了!」 **解決辦法**:把它拆成較小的子流程。每個流程做好一件事。需要就串接起來。 ### 「我追蹤不到發生什麼動作!」 **解決辦法**:使用工作流程檢查點保存狀態。開啟 DevUI 的追蹤功能查看每一步。 ### 「一個代理錯誤導致整個流程掛掉!」 **解決辦法**:加入錯誤邊界。每個代理人要管理自個兒失敗,並有後備行為。 ### 「這慢爆了」 **解決辦法**:有哪幾個代理可以平行作業嗎?連續流程容易實作但很慢,多找平行處理機會! ## 有用資源 🔗 - [Workflow Docs](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — 微軟官方指南 - [Orchestration Patterns](https://www.ibm.com/think/topics/ai-agent-orchestration) — IBM 關於代理人協調的說明 - [Agent Framework GitHub](https://github.com/microsoft/agent-framework) — 瀏覽原始碼 - [程式碼範例](https://github.com/microsoft/agent-framework/tree/main/python/samples) — 在這裏偷師模式 --- **準備好迎接大結局了嗎?** 你已經有了你的腳本。現在讓我們把它變成實際的音頻!→ [第三幕:讓你的播客煥發生命](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) 🎤 --- **卡住了?困惑?興奮?** 在工作坊聊天中分享吧!我們一起學習。🚀 --- **免責聲明**: 本文件由 AI 翻譯服務 [Co-op Translator](https://github.com/Azure/co-op-translator) 翻譯而成。雖然我們致力於確保準確性,但請注意,自動翻譯可能包含錯誤或不準確之處。原始文件的母語版本應被視為權威來源。對於重要資訊,建議尋求專業人工翻譯。我們不對因使用本翻譯而導致的任何誤解或誤譯負責。