# Akt 2: SĂ€tt ihop ditt podcastproduktionsteam 🎬 ![lab2](../../../../translated_images/sv/lab2.48444b9d549e7863.webp) ## Handlingen Tjocknar Alex (din AI-assistent frĂ„n Akt 1) Ă€r fantastisk, men en agent kan inte driva en hel podcaststudio pĂ„ egen hand. Du behöver ett *team*: - 🔍 **Forskningsagent**: Genomsöker internet efter fĂ€rsk info - ✍ **Scriptagent**: Omvandlar forskning till engagerande dialog - đŸ‘€ **Du (Redaktören)**: GodkĂ€nner manus eller skickar tillbaka dem för omskrivning VĂ€lkommen till **AI Agent Orchestrering** — dĂ€r du blir regissören för din egen AI-crew. TĂ€nk Avengers, men för podcastproduktion. ## Vad Ă€r Agent Orchestrering? (Den Enkla Versionen) FörestĂ€ll dig att du driver en restaurang. Du gör inte allt sjĂ€lv, eller hur? Du har: - 🍳 En kock som lagar mat - 👹‍🍳 En souschef som förbereder - đŸ‘©â€đŸł En servitör som levererar Agent orchestrering Ă€r samma idĂ©, men med AI. Varje agent har en specialitet, och du koordinerar dem för att nĂ„ större mĂ„l. Ingen enskild agent blir övervĂ€ldigad och arbetet görs snabbare. ### Bandanalogin 🎾 Dina AI-agenter Ă€r som ett band: - **SĂ„ngare**: Huvudagenten som hanterar kundkontakt - **Trummis**: HĂ„ller takten, sköter bakgrundsprocesser - **Basist**: Stöder alla, hĂ€mtar data - **Du (Bandchef)**: Koordinerar allt! Utan samordning? Bara oljud. Med orchestrering? Vacker musik. ### Varför Detta Är Viktigt En AI-agent som försöker göra allt = utbrĂ€ndhet. Specialiserade agenter som arbetar tillsammans = effektivitet frigjord! 🚀 **Ärlig Sanning**: Minns du hur det var att försöka forska, skriva OCH redigera din podcast ensam? Ja, det suger. Med orchestrering hanterar varje agent det den Ă€r bĂ€st pĂ„. Du fattar bara de slutgiltiga besluten. **Exempel frĂ„n verkligheten**: Kundsupportbotar som vet nĂ€r de ska hantera fakturering vs. tekniska problem vs. nĂ€r de ska koppla in en mĂ€nniska. Det Ă€r orchestrering! ## Agent vs. Arbetsflöde: Vad Ă€r skillnaden? TĂ€nk pĂ„ det sĂ„ hĂ€r: ### đŸ€– AI-agent = Jazzmusiker - **Tar beslut i farten** baserat pĂ„ vad den hör - **Improviserar** lösningar med sina verktyg - **TĂ€nker** med en LLM-hjĂ€rna - **Anpassar sig** till vad du Ă€n kastar pĂ„ den ### đŸŽ” Arbetsflöde = Orkester som spelar klassisk musik - **Följer ett partitur** (fördefinierade steg) - **FörutsĂ€gbar** exekveringsvĂ€g - **Koordinerar** flera agenter, mĂ€nniskor, system - **Strukturerat** som ett recept **Magin**: Arbetsflöden *orkestrerar* agenter! Du bygger ett arbetsflöde som talar om för agenterna nĂ€r de ska spela sin roll. Det bĂ€sta av tvĂ„ vĂ€rldar. 🎭 ## Tre SĂ€tt att Koordinera Din AI-Crew ### 1. 🎯 Centraliserat (Du Ă€r Bossen) En huvudagent tar alla beslut. TĂ€nk det som att du leder ett team — du bestĂ€mmer vem som gör vad och nĂ€r. **Fördelar**: - ✅ Tydligt ledarskap (ingen förvirring) - ✅ Konsekventa beslut - ✅ LĂ€tt att felsöka **AnvĂ€nd till**: - Kundservice-routing ("Är detta fakturering eller teknisk support?") - Arbetsflöden för innehĂ„llsgodkĂ€nnande ("GĂ„r manuset igenom?") - Podcastproduktion (precis det vi bygger!) ### 2. đŸ€ Decentraliserat (Agenter SjĂ€lvorganiserar) Agenter pratar direkt med varandra och löser saker som en grupp. Som en gruppchatt dĂ€r alla samordnar sig. **Fördelar**: - ✅ LĂ€tt att skala (lĂ€gg till fler agenter nĂ€r som helst) - ✅ Ingen enskild felpunkt - ✅ Agenter samarbetar naturligt **AnvĂ€nd till**: - Forskningsteam (varje agent utforskar olika kĂ€llor) - IdĂ©stormar - Distribuerad problemlösning ### 3. 🔀 Hybrid (Det BĂ€sta av TvĂ„ VĂ€rldar) Du sĂ€tter den övergripande riktningen, men agenterna fĂ„r frihet att sjĂ€lvorganisera sig i uppgifter. Som en VD som litar pĂ„ sitt team. **Perfekt för**: Komplexa projekt som behöver bĂ„de kontroll och flexibilitet. ## Microsoft Agent Framework: Ditt Orkestreringsverktyg 🧰 Dags att bygga! HĂ€r Ă€r vad du kommer anvĂ€nda: ### Byggstenarna #### 1. đŸ§± Utförare (Dina Arbetare) - **Vad det Ă€r**: Individuella processningsenheter — kan vara agenter eller egen logik - **Vad de gör**: Tar input, utför arbete, producerar output - **TĂ€nk pĂ„ dem som**: Stationer i en monteringslinje #### 2. âžĄïž Kanter (Kopplingarna) - **Vad det Ă€r**: VĂ€gar mellan utförare - **Vad de gör**: Kontrollerar meddelandeflödet ("Efter A, gĂ„ till B") - **TĂ€nk pĂ„ dem som**: Pilar i ett flödesschema #### 3. đŸ—ș Arbetsflöden (Huvudplanen) - **Vad det Ă€r**: Den kompletta grafen av utförare + kanter - **Vad de gör**: Definierar hela processen frĂ„n start till slut - **TĂ€nk pĂ„ dem som**: Din produktionspipeline-ritning ### Coola Funktioner Du Kommer Älska **đŸ›Ąïž TypsĂ€kerhet**: Meddelanden mellan agenter Ă€r typkontrollerade. Inga "Hoppsan, fel datatyp"-överraskningar. **🔀 Flexibel Routing**: - If-then-villkor ("Om godkĂ€nd, publicera; annars omskriv") - Parallell bearbetning (flera agenter jobbar samtidigt) - Dynamiska vĂ€gar (arbetsflödet anpassar sig baserat pĂ„ resultat) **🔌 Extern Integration**: - Anslut till API:er - LĂ€gg till checkpoints med mĂ€nsklig inblandning (du godkĂ€nner innan publicering) - Bygg request/response-flöden **đŸ’Ÿ Checkpointing**: Spara progress! Om nĂ„got kraschar kan du fortsĂ€tta dĂ€r du slutade. **đŸ€ Multi-Agent Koordination**: - Kör agenter i sekvens (A → B → C) - Kör dem parallellt (A + B + C samtidigt) - ÖverlĂ€mning mellan agenter - Samarbetsbearbetning ## BĂ€sta Praxis (Proffs-Tips) 🎯 ### 1. HĂ„ll Det ModulĂ€rt Varje agent ska göra ETT sak riktigt bra. Skapa inte en "superagent" som gör allt — du kommer Ă„ngra dig nĂ€r du felsöker. ### 2. Planera för Fel Agenter gör misstag. NĂ€tverk kraschar. Bygg in felhantering och backup-planer. Ditt framtida jag kommer tacka dig. ### 3. Övervaka Allt SpĂ„ra vad dina agenter gör. AnvĂ€nd DevUI (det kommer vi gĂ„ igenom!) för att se arbetsflöden i aktion. ### 4. Optimera Meddelandestorlek Skicka inte gigantiska filer mellan agenter. HĂ„ll meddelanden lĂ€tta och snabba. ### 5. VĂ€lj RĂ€tt Mönster Behöver du kontroll? Kör centraliserat. Behöver du skala? Kör decentraliserat. Kan du inte bestĂ€mma dig? VĂ€lj hybrid! ## DevUI: Din Arbetsflödes-Felsökare 🔍 ### Vad Ă€r DevUI? DevUI Ă€r som en lekplats för att testa dina agenter och arbetsflöden. Det Ă€r ett webbgrĂ€nssnitt dĂ€r du kan: - 👀 Titta pĂ„ ditt arbetsflöde i aktion - 💬 Chatta direkt med agenter - 🔍 Debugga nĂ€r nĂ„got gĂ„r fel - 📊 Se spĂ„r och prestandamĂ„tt > **Viktigt**: DevUI Ă€r endast för utveckling! AnvĂ€nd det inte i produktion. TĂ€nk pĂ„ det som din lokala testmiljö. ### Vad som Gör Det Fantastiskt - **đŸ–„ïž Interaktiv Webb-UI**: Klicka, skriv, testa — inget kommandofönster krĂ€vs - **📁 Dra-och-slĂ€pp-klar**: Ladda upp filer, testa med olika input - **📂 Automatisk UpptĂ€ckt**: Peka pĂ„ en mapp, den hittar alla dina agenter automatiskt - **📋 Inget-Setup-lĂ€ge**: Registrera agenter i kod, ingen mappstruktur behövs - **🔌 OpenAI-kompatibel**: Fungerar med OpenAI SDK (kompatibilitet FTW!) - **đŸ‘ïž Inbyggd SpĂ„rning**: Se exakt vad dina agenter gör ### Hur Input Fungerar DevUI Ă€r smart med input: - **Testar du agenter?** DĂ„ fĂ„r du textfĂ€lt och filuppladdningsknappar - **Testar du arbetsflöden?** UI genererar automatiskt inputfĂ€lt baserat pĂ„ vad ditt arbetsflöde förvĂ€ntar sig Det Ă€r som magi, men det Ă€r bara bra kod. ✹ ## Dina Uppdrag: Bygg en Podcaststudio 🎬 ### Uppdrag 1: Skapa en Enskild Agent med DevUI 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **Utmaningen**: Innan du bygger ett helt team, testa DevUI med en agent: en webbsökningsspecialist. **Vad Du Bygger**: En forskningsagent som kan söka pĂ„ internet efter poddĂ€mnen. Du testar den via DevUI:s webbgrĂ€nssnitt pĂ„ `http://localhost:8090`. **FĂ€rdigheter Du LĂ€r Dig**: - 🚀 Starta agenter i DevUI - 🔍 Testa agenters svar i realtid - đŸ› ïž Bygga egna verktyg (webbsökning) - 📊 Aktivera spĂ„rning för att debugga - đŸ–„ïž AnvĂ€nda det interaktiva webbgrĂ€nssnittet **Koden**: - `agent.py`: Din SearchAgent med webbsök-superkrafter - AnvĂ€nder OllamaChatClient för att koppla till Qwen - Implementerar verktyget `web_search()` - Startar med `serve()` — öppnar DevUI automatiskt **Segervillkor**: FrĂ„ga din agent "Vad Ă€r trendigt inom AI?" och se den söka pĂ„ webben! 🎉 ### Uppdrag 2: Bygg ett Multi-Agent Arbetsflöde 📂 [02.WorkflowDevUI](../../../../WorkshopForAgentic/code/02.Workflow/02.WorkflowDevUI) **Utmaningen**: Nu börjar det riktiga roliga! Bygg ett komplett podcastproduktionsarbetsflöde med: 1. 🔍 **Sökagent** → Forskar pĂ„ ditt Ă€mne 2. ✍ **Scriptagent** → Skriver dialog mellan tvĂ„ vĂ€rdar (pĂ„ kinesiska!) 3. đŸ‘€ **Granskningsexekutor** → FrĂ„gar DIG om godkĂ€nnande eller avslag 4. 🔄 **Loopar tillbaka** → Om avvisad, skriver om baserat pĂ„ din feedback **FĂ€rdigheter Du LĂ€r Dig**: - đŸ§± Skapa specialiserade agenter för olika jobb - 🔗 Koppla ihop agenter med WorkflowBuilder - 🔀 Implementera godkĂ€nnandeloppar (mĂ€nniska i loopen!) - 🚩 Villkorad routing (om godkĂ€nd vs. avvisad) - 🔧 Bygga egna exekutor för affĂ€rslogik **Arbetsflödet**: ``` SearchAgent → ScriptAgent → ReviewExecutor ↑ ↓ (if rejected) ←───────── ``` **Koden**: - `search_agent/agent.py`: Din forskningsspecialist - `generate_script_agent/agent.py`: Din manusförfattare (skriver pĂ„ kinesiska!) - `workflow/workflow.py`: Orkestreringsmagin sker hĂ€r - `main.py`: Startar allt i DevUI **Segervillkor**: Ge ett Ă€mne, granska scriptet, avvisa en gĂ„ng för att testa loopen, och sedan godkĂ€nn! 🎉 ### Uppdrag 3: Bygg en Konsolapp 📂 [03.Application](../../../../WorkshopForAgentic/code/02.Workflow/03.Application) **Utmaningen**: Ta ditt arbetsflöde frĂ„n DevUI och gör en snygg terminalapp med fĂ€rgad output, laddningsindikatorer och filsparande. Detta Ă€r produktionsklart! **FĂ€rdigheter Du LĂ€r Dig**: - ⚡ Köra arbetsflöden programmĂ€ssigt (utan DevUI) - 📡 HĂ€ndelsestyrd arkitektur med streaming - 🎹 Skapa vackra terminalgrĂ€nssnitt (fĂ€rger, spinners, progress bars) - đŸ’Ÿ Spara slutgiltiga manus till filer - 🔄 Hantera asynkrona arbetsflöden med Pythons asyncio **Vad Den Gör**: 1. FrĂ„gar dig om ett podcastĂ€mne 2. Visar realtidsprogress ("Search Agent arbetar...") 3. Visar genererat manus med fĂ€rger 4. FrĂ„gar om ditt godkĂ€nnande 5. Sparar godkĂ€nt manus till `podcast.txt` **Koden**: - `podcast_app.py`: Din huvudapp med eventhantering - `workflow.py`: ÅteranvĂ€nder arbetsflödet frĂ„n Uppdrag 2 - Hanterar event: `AgentRunUpdateEvent`, `RequestInfoEvent`, `WorkflowOutputEvent` - AnvĂ€nder ANSI-fĂ€rger för terminalstil **Segervillkor**: Kör appen, skapa ett podcast-manus och se det sparas! Du har byggt ett riktigt verktyg. 🚀 ## Vad Du Har BehĂ€rskat 🏆 Efter Akt 2 kan du: - ✅ Orkestrera flera AI-agenter som en boss - ✅ Bygga arbetsflöden med sekventiell OCH villkorad logik - ✅ LĂ€gga till checkpoints för mĂ€nskligt godkĂ€nnande - ✅ AnvĂ€nda DevUI för att testa och debugga arbetsflöden - ✅ Skapa produktionsklara konsolapplikationer - ✅ Hantera fel pĂ„ ett snyggt sĂ€tt i komplexa system - ✅ VĂ€lja rĂ€tt orkestreringsmönster för varje projekt ## NĂ€r Saker GĂ„r Sönder 🔧 ### "Mitt arbetsflöde Ă€r för komplicerat!" **Lösningen**: Dela upp det i mindre underarbetsflöden. Varje arbetsflöde ska göra EN sak riktigt bra. Knyt ihop dem vid behov. ### "Jag kan inte följa vad som hĂ€nder!" **Lösningen**: AnvĂ€nd checkpointing för att spara state. Aktivera spĂ„rning i DevUI för att se varje steg. ### "Ett agents fel kraschar allt!" **Lösningen**: LĂ€gg till felgrĂ€nser. Varje agent ska hantera egna fel och ha fallback-beteende. ### "Det hĂ€r gĂ„r sÄÄÄ lĂ„ngsamt" **Lösningen**: Kan nĂ„gra agenter köras parallellt? Sekventiella arbetsflöden Ă€r enkla men lĂ„ngsamma. Leta efter möjligheter till parallellisering! ## HjĂ€lpsamma Resurser 🔗 - [Workflow Docs](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — Officiella Microsoft-guider - [Orchestration Patterns](https://www.ibm.com/think/topics/ai-agent-orchestration) — IBMs syn pĂ„ det - [Agent Framework GitHub](https://github.com/microsoft/agent-framework) — BlĂ€ddra i kĂ€llkoden - [Code Examples](https://github.com/microsoft/agent-framework/tree/main/python/samples) — Sno mönster hĂ€rifrĂ„n --- **Redo för finalen?** Du har ditt manus. Nu lĂ„t oss förvandla det till riktig ljud! → [Act 3: Bring Your Podcast to Life](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) đŸŽ€ --- **Fastnade? Förvirrad? Exalterad?** Dela i workshop-chatten! Vi lĂ€r oss alla tillsammans. 🚀 --- **Ansvarsfriskrivning**: Detta dokument har översatts med hjĂ€lp av AI-översĂ€ttningstjĂ€nsten [Co-op Translator](https://github.com/Azure/co-op-translator). Även om vi strĂ€var efter noggrannhet, var vĂ€nlig observera att automatiska översĂ€ttningar kan innehĂ„lla fel eller brister. Det ursprungliga dokumentet pĂ„ dess modersmĂ„l bör betraktas som den auktoritativa kĂ€llan. För kritisk information rekommenderas professionell mĂ€nsklig översĂ€ttning. Vi ansvarar inte för nĂ„gra missförstĂ„nd eller feltolkningar som uppstĂ„r vid anvĂ€ndning av denna översĂ€ttning.