# Act 2: Tập Hợp Đội Ngũ Sản Xuất Podcast Của Bạn 🎬 ![lab2](../../../../translated_images/vi/lab2.48444b9d549e7863.webp) ## Cốt Truyện Càng Thêm Hấp Dẫn Alex (trợ lý AI của bạn từ Act 1) rất tuyệt vời, nhưng một tác nhân không thể vận hành cả một studio podcast. Bạn cần một *đội ngũ*: - 🔍 **Tác nhân Nghiên cứu**: Tìm kiếm thông tin mới nhất trên internet - ✍️ **Tác nhân Viết kịch bản**: Biến nghiên cứu thành đối thoại hấp dẫn - 👤 **Bạn (Biên tập viên)**: Phê duyệt kịch bản hoặc gửi lại để viết lại Chào mừng bạn đến với **Điều phối Tác nhân AI** — nơi bạn trở thành đạo diễn của đội AI riêng mình. Tưởng tượng như Avengers, nhưng cho sản xuất podcast. ## Điều Phối Tác Nhân Là Gì? (Phiên Bản Đơn Giản) Hãy tưởng tượng bạn đang điều hành một nhà hàng. Bạn không làm tất cả mọi việc một mình đúng không? Bạn có: - 🍳 Đầu bếp nấu ăn - 👨‍🍳 Phụ bếp chuẩn bị - 👩‍🍳 Nhân viên phục vụ mang đồ Điều phối tác nhân cũng tương tự, nhưng với AI. Mỗi tác nhân có thế mạnh riêng, và bạn phối hợp họ để đạt mục tiêu lớn hơn. Không một tác nhân nào bị quá tải, công việc được hoàn thành nhanh hơn. ### So Sánh Ban Nhạc 🎸 Các tác nhân AI của bạn như một ban nhạc: - **Ca sĩ chính**: Tác nhân chính xử lý nhiệm vụ tiếp xúc khách hàng - **Người đánh trống**: Giữ nhịp, xử lý nền - **Người chơi bass**: Hỗ trợ mọi người, thu thập dữ liệu - **Bạn (Quản lý ban nhạc)**: Điều phối tất cả! Không có điều phối? Chỉ là tiếng ồn. Có điều phối? Âm nhạc tuyệt vời. ### Tại Sao Điều Này Quan Trọng Một tác nhân AI cố làm mọi việc = kiệt sức. Các tác nhân chuyên môn làm việc cùng nhau = hiệu quả được khai phá! 🚀 **Thực tế**: Bạn có nhớ khi cố vừa nghiên cứu, viết, VÀ biên tập podcast một mình không? Thật tệ. Với điều phối, mỗi tác nhân làm những gì nó giỏi nhất. Bạn chỉ đưa ra quyết định cuối cùng. **Ví dụ Thực Tế**: Bot hỗ trợ khách hàng biết khi nào xử lý thanh toán, khi nào xử lý sự cố kỹ thuật, khi nào cần chuyển sang người thật. Đó chính là điều phối! ## Tác Nhân và Quy Trình Là Gì? Khác Nhau Thế Nào? Hãy nghĩ thế này: ### 🤖 Tác Nhân AI = Nghệ Sĩ Jazz - **Quyết định ngay lập tức** dựa trên điều nó nghe thấy - **Ứng biến** giải pháp dùng công cụ của mình - **Suy nghĩ** với bộ não LLM - **Thích ứng** với bất cứ gì bạn đưa ra ### 🎵 Quy Trình = Dàn Nhạc Giao Hưởng - **Theo bản nhạc** (các bước được định sẵn) - **Thực thi có thể dự đoán** - **Điều phối** nhiều tác nhân, con người, hệ thống - **Cấu trúc** như công thức nấu ăn **Phép màu**: Quy trình *điều phối* tác nhân! Bạn xây dựng quy trình bảo tác nhân biết khi nào chơi phần của mình. Tốt nhất của cả hai thế giới. 🎭 ## Ba Cách Điều Phối Đội Ngũ AI Của Bạn ### 1. 🎯 Tập Trung (Bạn Là Ông Chủ) Một tác nhân chính ra mọi quyết định. Tưởng tượng bạn quản lý một đội — bạn quyết định ai làm gì và khi nào. **Ưu điểm**: - ✅ Lãnh đạo rõ ràng (không nhầm lẫn) - ✅ Quyết định nhất quán - ✅ Dễ gỡ lỗi **Dùng cho**: - Chuyển hướng dịch vụ khách hàng ("Đây là thanh toán hay hỗ trợ kỹ thuật?") - Quy trình phê duyệt nội dung ("Kịch bản này đạt chứ?") - Sản xuất podcast (chính xác là cái ta đang xây!) ### 2. 🤝 Phi Tập Trung (Tác Nhân Tự Tổ Chức) Các tác nhân nói chuyện trực tiếp với nhau và cùng tìm cách giải quyết. Giống như chat nhóm mà ai cũng phối hợp. **Ưu điểm**: - ✅ Dễ mở rộng (thêm tác nhân bất cứ lúc nào) - ✅ Không có điểm lỗi duy nhất - ✅ Tác nhân hợp tác tự nhiên **Dùng cho**: - Đội nhóm nghiên cứu (mỗi tác nhân khám phá nguồn khác nhau) - Buổi động não - Giải quyết vấn đề phân tán ### 3. 🔀 Hỗn Hợp (Tốt Nhất Của Cả Hai) Bạn đặt hướng tổng thể, nhưng các tác nhân có tự do tổ chức công việc. Như CEO tin tưởng đội của mình. **Lý tưởng cho**: Dự án phức tạp cần cả kiểm soát và linh hoạt. ## Microsoft Agent Framework: Bộ Công Cụ Điều Phối Của Bạn 🧰 Bắt tay xây dựng! Đây là những gì bạn sẽ dùng: ### Các Khối Xây Dựng #### 1. 🧱 Executors (Người Lao Động Của Bạn) - **Là gì**: Đơn vị xử lý riêng lẻ — có thể là tác nhân hoặc logic tùy chỉnh - **Làm gì**: Nhận đầu vào, làm việc, tạo ra đầu ra - **Nghĩ về chúng như**: Trạm trong dây chuyền lắp ráp #### 2. ➡️ Edges (Các Kết Nối) - **Là gì**: Đường đi nối các executor - **Làm gì**: Kiểm soát luồng tin nhắn ("Sau A, qua B") - **Nghĩ về chúng như**: Mũi tên trên sơ đồ luồng #### 3. 🗺️ Workflows (Kế Hoạch Chính) - **Là gì**: Đồ thị đầy đủ các executor + edges - **Làm gì**: Định nghĩa quá trình từ đầu đến cuối - **Nghĩ về chúng như**: Bản thiết kế dây chuyền sản xuất của bạn ### Tính Năng Hay Bạn Sẽ Thích **🛡️ An Toàn Kiểu Dữ Liệu**: Tin nhắn giữa các tác nhân được kiểm tra kiểu. Không có chuyện "Ối, dữ liệu sai kiểu" nữa. **🔀 Định Tuyến Linh Hoạt**: - Điều kiện if-then ("Nếu duyệt, xuất bản; nếu không, viết lại") - Xử lý song song (nhiều tác nhân làm đồng thời) - Đường đi động (quy trình thay đổi theo kết quả) **🔌 Tích Hợp Bên Ngoài**: - Kết nối API - Thêm điểm kiểm duyệt có người tham gia (bạn duyệt trước khi xuất bản) - Xây dựng luồng yêu cầu/phản hồi **💾 Ghi Điểm Kiểm Tra**: Lưu tiến trình! Nếu lỗi, tiếp tục từ điểm dừng. **🤝 Điều Phối Đa Tác Nhân**: - Chạy tác nhân theo thứ tự (A → B → C) - Chạy cùng lúc (A + B + C) - Chuyển giao giữa các tác nhân - Xử lý hợp tác ## Thực Hành Tốt Nhất (Mẹo Chuyên Gia) 🎯 ### 1. Giữ Nó Modular Mỗi tác nhân nên làm MỘT việc thật tốt. Đừng làm "tác nhân siêu phàm" làm mọi thứ — bạn sẽ hối tiếc khi gỡ lỗi. ### 2. Lập Kế Hoạch Phòng Thất Bại Tác nhân có thể lỗi. Mạng có thể rớt. Thêm xử lý lỗi và kế hoạch dự phòng. Bạn trong tương lai sẽ cảm ơn bạn. ### 3. Giám Sát Mọi Thứ Theo dõi tác nhân của bạn làm gì. Dùng DevUI (chúng ta sẽ khám phá!) để xem quy trình hoạt động. ### 4. Tối Ưu Kích Thước Tin Nhắn Đừng truyền file lớn qua lại giữa tác nhân. Giữ tin nhắn nhỏ gọn để tăng tốc. ### 5. Chọn Mẫu Phù Hợp Cần kiểm soát? Dùng tập trung. Cần mở rộng? Dùng phi tập trung. Chưa quyết được? Dùng hỗn hợp! ## DevUI: Trình Gỡ Lỗi Quy Trình Của Bạn 🔍 ### DevUI Là Gì? DevUI là sân chơi thử nghiệm tác nhân và quy trình của bạn. Nó là giao diện web nơi bạn có thể: - 👀 Theo dõi quy trình hoạt động - 💬 Chat trực tiếp với các tác nhân - 🔍 Gỡ lỗi khi có vấn đề - 📊 Xem dấu vết và thông số hiệu năng > **Quan trọng**: DevUI chỉ dùng để phát triển! Đừng dùng ở môi trường sản xuất. Xem nó như môi trường thử nghiệm cục bộ của bạn. ### Tại Sao Nó Tuyệt Vời - **🖥️ Giao diện web tương tác**: Click, gõ, thử — không cần dòng lệnh - **📁 Kéo thả sẵn sàng**: Tải file lên, test với nhiều đầu vào - **📂 Tự động phát hiện**: Chỉ cần trỏ vào thư mục, nó sẽ tự tìm tác nhân - **📋 Chế độ không cần thiết lập**: Đăng ký tác nhân bằng code, không cần cấu trúc thư mục - **🔌 Tương thích OpenAI**: Hoạt động với SDK OpenAI (tương thích tuyệt vời!) - **👁️ Tích hợp ghi dấu vết**: Xem chính xác tác nhân làm gì ### Cách Nhận Đầu Vào DevUI rất thông minh với đầu vào: - **Test tác nhân?** Bạn có ô nhập văn bản và nút tải file - **Test quy trình?** UI tự tạo trường nhập theo yêu cầu quy trình Giống như phép thuật, nhưng chỉ là code tốt. ✨ ## Nhiệm Vụ Của Bạn: Xây Dựng Studio Podcast 🎬 ### Nhiệm Vụ 1: Tạo Một Tác Nhân Riêng Với DevUI 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **Thử Thách**: Trước khi xây toàn đội, hãy thử DevUI với một tác nhân: chuyên viên tìm kiếm trên web. **Bạn sẽ xây**: Tác nhân nghiên cứu có thể tìm kiếm đề tài podcast trên internet. Bạn sẽ test nó qua giao diện web của DevUI tại `http://localhost:8090`. **Kỹ năng bạn học được**: - 🚀 Khởi chạy tác nhân trong DevUI - 🔍 Thử phản hồi của tác nhân thời gian thực - 🛠️ Xây dụng công cụ tùy chỉnh (tìm kiếm web) - 📊 Bật ghi dấu vết để gỡ lỗi - 🖥️ Sử dụng UI web tương tác **Code**: - `agent.py`: SearchAgent với siêu năng lực tìm kiếm web - Dùng OllamaChatClient nối với Qwen - Thực thi hàm công cụ `web_search()` - Khởi chạy với `serve()` — tự mở DevUI **Điều kiện chiến thắng**: Hỏi tác nhân "Trào lưu AI là gì?" và xem nó tìm kiếm web! 🎉 ### Nhiệm Vụ 2: Xây Workflow Đa Tác Nhân 📂 [02.WorkflowDevUI](../../../../WorkshopForAgentic/code/02.Workflow/02.WorkflowDevUI) **Thử Thách**: Chơi lớn hơn! Xây dựng quy trình sản xuất podcast hoàn chỉnh với: 1. 🔍 **Tác nhân Tìm kiếm** → Nghiên cứu đề tài 2. ✍️ **Tác nhân Viết kịch bản** → Viết đối thoại giữa hai host (bằng tiếng Trung!) 3. 👤 **Executor Phê duyệt** → YÊU CẦU BẠN phê duyệt hoặc từ chối 4. 🔄 **Vòng lặp trở lại** → Nếu từ chối, viết lại dựa trên phản hồi của bạn **Kỹ năng bạn học**: - 🧱 Tạo tác nhân chuyên môn cho việc khác nhau - 🔗 Kết nối tác nhân với WorkflowBuilder - 🔀 Thiết kế vòng lặp phê duyệt (con người tham gia!) - 🚦 Định tuyến điều kiện (duyệt hay không duyệt) - 🔧 Xây executor tùy chỉnh cho logic nghiệp vụ **Quy trình**: ``` SearchAgent → ScriptAgent → ReviewExecutor ↑ ↓ (if rejected) ←───────── ``` **Code**: - `search_agent/agent.py`: Chuyên gia nghiên cứu - `generate_script_agent/agent.py`: Người viết kịch bản (viết tiếng Trung!) - `workflow/workflow.py`: Phép thuật điều phối diễn ra ở đây - `main.py`: Khởi chạy tất cả trong DevUI **Điều kiện chiến thắng**: Đưa đề tài, xem kịch bản, từ chối một lần để test vòng lặp, rồi duyệt! 🎉 ### Nhiệm Vụ 3: Xây Ứng Dụng Console 📂 [03.Application](../../../../WorkshopForAgentic/code/02.Workflow/03.Application) **Thử Thách**: Lấy workflow từ DevUI và biến thành app terminal gọn đẹp với màu sắc, hiệu ứng xoay, lưu file. Đây là đồ dùng sản xuất thật! **Kỹ năng bạn học**: - ⚡ Chạy workflow theo code (không DevUI) - 📡 Kiến trúc sự kiện, streaming - 🎨 Tạo UI terminal đẹp (màu sắc, xoay, thanh tiến độ) - 💾 Lưu kịch bản cuối ra file - 🔄 Xử lý async workflow với asyncio Python **Nó làm gì**: 1. Hỏi bạn đề tài podcast 2. Hiện tiến trình thời gian thực ("Tác nhân Tìm kiếm đang làm…") 3. Hiển thị kịch bản tạo ra với màu sắc 4. Hỏi bạn duyệt kịch bản không 5. Lưu kịch bản được duyệt vào `podcast.txt` **Code**: - `podcast_app.py`: App chính với xử lý sự kiện - `workflow.py`: Tái sử dụng workflow nhiệm vụ 2 - Xử lý sự kiện: `AgentRunUpdateEvent`, `RequestInfoEvent`, `WorkflowOutputEvent` - Dùng màu ANSI trang trí terminal **Điều kiện chiến thắng**: Chạy app, tạo kịch bản podcast, thấy file lưu! Bạn vừa xây công cụ thật sự. 🚀 ## Bạn Đã Làm Chủ Được Những Gì 🏆 Sau Act 2, bạn đã có thể: - ✅ Điều phối nhiều tác nhân AI như sếp lớn - ✅ Xây workflow với logic tuần tự VÀ điều kiện - ✅ Thêm các điểm kiểm duyệt người dùng - ✅ Dùng DevUI kiểm thử và gỡ lỗi quy trình - ✅ Tạo app console chuẩn sản xuất - ✅ Xử lý lỗi khéo léo trong hệ thống phức tạp - ✅ Chọn mẫu điều phối phù hợp cho mọi dự án ## Khi Mọi Thứ Hỏng Hóc 🔧 ### "Workflow của tôi quá phức tạp!" **Cách sửa**: Chia nhỏ thành các sub-workflow nhỏ hơn. Mỗi workflow chỉ làm MỘT việc tốt. Nếu cần, xâu chuỗi chúng lại. ### "Tôi không theo dõi được chuyện gì xảy ra!" **Cách sửa**: Dùng checkpoint lưu trạng thái workflow. Bật tracing trong DevUI để thấy từng bước. ### "Lỗi của một tác nhân làm sập hết!" **Cách sửa**: Thêm biên giới xử lý lỗi. Mỗi tác nhân tự xử lý lỗi và có cách dự phòng. ### "Nó chạy quá chậm" **Cách sửa**: Có tác nhân nào chạy song song được không? Workflow tuần tự dễ làm nhưng chậm. Tìm cơ hội chạy song song! ## Tài Nguyên Hữu Ích 🔗 - [Workflow Docs](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — Hướng dẫn chính thức của Microsoft - [Orchestration Patterns](https://www.ibm.com/think/topics/ai-agent-orchestration) — Góc nhìn IBM về điều phối tác nhân AI - [Agent Framework GitHub](https://github.com/microsoft/agent-framework) — Xem mã nguồn - [Ví dụ mã nguồn](https://github.com/microsoft/agent-framework/tree/main/python/samples) — Học hỏi các mẫu từ đây --- **Sẵn sàng cho phần kết chưa?** Bạn đã có kịch bản của mình. Bây giờ hãy biến nó thành âm thanh thật! → [Hành động 3: Mang Podcast của bạn đến cuộc sống](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) 🎤 --- **Bị kẹt? Bối rối? Hào hứng?** Chia sẻ trong phòng chat hội thảo! Chúng ta cùng nhau học hỏi. 🚀 --- **Tuyên bố miễn trách nhiệm**: Tài liệu này đã được dịch bằng dịch vụ dịch thuật AI [Co-op Translator](https://github.com/Azure/co-op-translator). Mặc dù chúng tôi cố gắng đảm bảo độ chính xác, xin lưu ý rằng bản dịch tự động có thể chứa lỗi hoặc thông tin không chính xác. Tài liệu gốc bằng ngôn ngữ bản địa nên được xem là nguồn thông tin chính xác và đáng tin cậy. Đối với các thông tin quan trọng, khuyến nghị sử dụng dịch vụ dịch thuật chuyên nghiệp của con người. Chúng tôi không chịu trách nhiệm về bất kỳ sự hiểu lầm hay diễn giải sai nào phát sinh từ việc sử dụng bản dịch này.