# Чин 2: Саставите свој тим за продукцију подкаста 🎬 ![lab2](../../../../translated_images/sr/lab2.48444b9d549e7863.webp) ## Заплет се згуснуо Алекс (ваш AI асистент из Чина 1) је сјајан, али један агент не може да води цео подкаст студио. Потребан вам је *тим*: - 🔍 **Истраживачки агент**: Претражује интернет за свеже информације - ✍️ **Сценарио агент**: Претвара истраживање у занимљив дијалог - 👤 **Ви (Уредник)**: Одобравате сценарије или их враћате на ревизију Добро дошли у **AI оркестрацију агената** — где постајете режисер свог AI тима. Замислите Оsvetнике, али за продукцију подкаста. ## Шта је оркестрација агената? (Једноставна верзија) Замислите да водите ресторан. Не радите све сами, зар не? Имате: - 🍳 Кувара који кува - 👨‍🍳 Помоћног кувара који припрема - 👩‍🍳 Конобара који сервира Оркестрација агената је иста идеја, али са AI. Сваком агенту је додељена специјалност, а ви их координишете за веће циљеве. Ниједан агент није преоптерећен, а посао се завршава брже. ### Аналогија са бендом 🎸 Ваши AI агенти су као бенд: - **Главни певач**: Главни агент који ради са корисницима - **Бубњар**: Чува ритам, обрађује позадинске задатке - **Басиста**: Подржава све, преузима податке - **Ви (менаџер бенда)**: Координатe све! Без координације? Само бука. Са оркестрацијом? Прелепа музика. ### Зашто је ово важно Један AI агент који покушава да уради све = изгарање. Специјализовани агенти који раде заједно = откључана ефикасност! 🚀 **Искрено**: Сећате се како сте сами покушавали да истражујете, пишете И УРЕЂУЈЕТЕ подкаст? Да, то је тешко. Са оркестрацијом, сваки агент ради оно у чему је најбољи. Ви само доносите коначне одлуке. **Пример из стварног света**: Ботови за корисничку подршку који знају када да обраде наплату, техничке проблеме или када да позову човека. То је оркестрација! ## Агент против радног тока: која је разлика? Размислите овако: ### 🤖 AI агент = Џез музичар - **Доноси одлуке уживо** на основу онога што чује - **Импровизује** решења користећи своје алате - **Размишља** мозгом LLM-а - **Прилагођава се** свему што му баците ### 🎵 Радни ток = Оркестар који изводи класичну музику - **Прати партитуру** (предефинисане кораке) - **Предвидиво** извођење - **Координише** више агената, људи, система - **Структуран** као рецепт **Магија**: Радни токови *оркестрирају* агенте! Ви правите радни ток који каже агентима када да ураде свој део. Најбоље из оба света. 🎭 ## Три начина да координишете свој AI тим ### 1. 🎯 Централизовано (Ви сте шеф) Један главни агент доноси све одлуке. Замислите као да управљате тимом — ви одређујете ко шта ради и када. **Предности**: - ✅ Јасно вођство (нема конфузије) - ✅ Конзистентне одлуке - ✅ Лако за дебаговање **Користите за**: - Рутацију корисничке подршке ("Да ли је ово наплата или техничка подршка?") - Радне токове за одобравање садржаја ("Да ли је сценарио прихватљив?") - Продукцију подкаста (тачно оно што правимо!) ### 2. 🤝 Децентрализовано (Агенти се самоорганизују) Агенти директно комуницирају и решавају ствари заједно. Као групни чаt где се сви координишу. **Предности**: - ✅ Лако скалирање (додајте агенте кад хоћете) - ✅ Нема једне тачке квара - ✅ Агенти сарађују природно **Користите за**: - Истраживачке тимове (сваки агент прегледа различите изворе) - Сесије мозговања - Дистрибуирано решавање проблема ### 3. 🔀 Хибридно (Најбоље из оба света) Ви постављате општи смер, али агенти имају слободу да се самоорганизују око задатака. Као директор који верује свом тиму. **Идеално за**: Компликоване пројекте којима треба и контрола и флексибилност. ## Microsoft Agent Framework: Ваш алат за оркестрацију 🧰 Време је да градите! Ево шта ћете користити: ### Грађевински блокови #### 1. 🧱 Извршиоци (Ваши радници) - **Шта су**: Појединачне јединице за обраду — могу бити агенти или прилагођена логика - **Шта раде**: Примају улаз, обављају посао, производе излаз - **Замислите их као**: Станице на производној траци #### 2. ➡️ Везе (Конекије) - **Шта су**: Путеви између извршилаца - **Шта раде**: Контролишу проток порука ("После A, иди на B") - **Замислите их као**: Стрелице на дијаграму протока #### 3. 🗺️ Радни токови (Главни план) - **Шта су**: Комплетан график извршилаца + веза - **Шта раде**: Дефинишу цео процес од почетка до краја - **Замислите их као**: План производне линије ### Цоол функције које ћете волети **🛡️ Врста безбедности**: Поруке између агената су проверене по типу. Нема "Опа, погрешан тип података" изненађења. **🔀 Флексибилно рутирање**: - Условно ("Ако је одобрено, објави; иначе, преправи") - Паралелна обрада (више агената ради истовремено) - Динамичне путање (радни ток се прилагођава резултатима) **🔌 Спољна интеграција**: - Повежите се са API-јима - Додајте људске контролне тачке (одобрење пре објаве) - Правите захтев/одговор токове **💾 Проверa тачака**: Сачувајте напредак! Ако нешто падне, наставите где сте стали. **🤝 Координација више агената**: - Покрећите агенте у низу (А → Б → Ц) - Покрећите их паралелно (А + Б + Ц одједном) - Преносите задатке између агената - Сарадничка обрада ## Најбоље праксе (Професионални савети) 🎯 ### 1. Чувајте модуларност Сваки агент треба да ради ЈЕДНУ ствар заиста добро. Немојте направити "супер агента" који ради све — пожалићете кад дебагујете. ### 2. Планирајте неуспехе Агенти греше. Мреже пале. Правите обраду грешака и резервне планове. Ваш будући ја ће вам захвалити. ### 3. Пратите све Пратите шта ваши агенти раде. Користите DevUI (чућемо више!) да видите радне токове у акцији. ### 4. Оптимизујте величину порука Не шаљите огромне фајлове између агената. Држите поруке лаганим и брзим. ### 5. Изаберите прави образац Треба вам контрола? Идите централизовано. Треба вам скала? Идите децентрализовано. Не можете да одлучите? Хибрид! ## DevUI: Ваш дебагер радног тока 🔍 ### Шта је DevUI? DevUI је као игралиште за тестирање ваших агената и радних токова. То је веб интерфејс где можете: - 👀 Гледати ваш радни ток у акцији - 💬 Разговарати директно са агентима - 🔍 Дебаговати кад нешто пође по злу - 📊 Видети трагове и метрике перформанси > **Важно**: DevUI је само за развој! Немојте га користити у продукцији. Мислите на њега као на своје локално тест окружење. ### Шта га чини одличним - **🖥️ Интеркативни веб UI**: Кликните, откуцајте, тестијте — није потребна команда линија - **📁 Спреман за превлачење и пуштање**: Отпремите фајлове, тестирајте са различитим улазима - **📂 Аутоматско откривање**: Поставите му фолдер, он аутоматски пронађе све агенте - **📋 Режим без подешавања**: Региструјте агенте у коду, без потребе за фолдер структуром - **🔌 Компатибилан са OpenAI**: Ради са OpenAI SDK (компатибилност FTW!) - **👁️ Уграђено праћење**: Видите тачно шта ваши агенти раде ### Како ради унос DevUI је паметан у вези уноса: - **Тестирате агенте?** Имате текстуална поља и дугмад за отпрему фајлова - **Тестирате радне токове?** UI аутоматски креира поља улаза према ономе што радни ток очекује То је као магија, али је само добар код. ✨ ## Ваши задаци: Направите студио за подкасте 🎬 ### Задатак 1: Креирајте једног агента са DevUI 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **Изазов**: Пре него што саставите цео тим, тестирајте DevUI са једним агентом: специјалистом за веб претрагу. **Шта градите**: Истраживачког агента који може претраживати интернет за теме за подкаст. Тестираћете га користећи 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) **Изазов**: Сада почиње права забава! Направите комплетан радни ток продукције подкаста са: 1. 🔍 **Search Agent** → Истражује вашу тему 2. ✍️ **Script Agent** → Пише дијалог између два водитеља (на кинеском!) 3. 👤 **Review Executor** → Тражи да ВИ одобритe или одбијете 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. Тражи тему за подкаст 2. Приказује напредак уживо ("Search Agent ради...") 3. Приказује генерисани сценарио у бојама 4. Тражи ваше одобрење 5. Сачињава одобрени сценарио у `podcast.txt` **Код**: - `podcast_app.py`: Ваша главна апликација са обрадом догађаја - `workflow.py`: Поново користи радни ток из Задака 2 - Обрађује догађаје: `AgentRunUpdateEvent`, `RequestInfoEvent`, `WorkflowOutputEvent` - Користи ANSI боје за стилизовање терминала **Услов победе**: Покрените апликацију, креирајте сценарио подкаста и видите да је сачуван! Направили сте прави алат. 🚀 ## Шта сте савладали 🏆 После Чина 2, можете: - ✅ Оркестрити више AI агената као шеф - ✅ Креирати радне токове са сеључном И УСЛОВНОМ логиком - ✅ Додати контролне тачке људског одобрења - ✅ Користити DevUI за тестирање и дебаговање радних токова - ✅ Направити продукционо спремне конзолне апликације - ✅ Грасно обрађивати грешке у сложеним системима - ✅ Изабрати прави образац оркестрације за било који пројекат ## Кад нешто прекине 🔧 ### „Мој радни ток је превише компликован!“ **Решење**: Поделите га у мање подпроцесе. Сваки радни ток треба да ради ЈЕДНУ ствар добро. Повежите их по потреби. ### „Не могу да пратим шта се дешава!“ **Решење**: Користите чување стања радног тока. Омогућите праћење у DevUI-ју да видите сваки корак. ### „Једна грешка агента руши све!“ **Решење**: Додајте границе за грешке. Сваки агент треба да обрађује своје грешке и има резервну логику. ### „Ово је тако споро“ **Решење**: Могу ли неки агенти радити паралелно? Секвенцијални радни токови су једноставни али спори. Тражите прилике за паралелизацију! ## Корисни ресурси 🔗 - [Workflow Docs](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — Званични Microsoft водичи - [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) — Узмите шаблоне са овог места --- **Спремни за финале?** Имате свој скрипт. Сада хајде да га претворимо у стварни звук! → [Чак 3: Оживите свој подкаст](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) 🎤 --- **Заглавили сте? Збуњени сте? Узбуђени сте?** Поделите у чету радионице! Сви учимо заједно. 🚀 --- **Изјава о одрицању одговорности**: Овај документ је преведен помоћу AI услуге за превођење [Co-op Translator](https://github.com/Azure/co-op-translator). Иако тежимо прецизности, молимо вас да имате у виду да аутоматизовани преводи могу садржати грешке или нетачности. Оригинални документ на његовом изворном језику треба сматрати ауторитетским извором. За критичне информације препоручује се професионални људски превод. Не сносимо одговорност за било какве неспоразуме или погрешне тумачења настала коришћењем овог превода.