# Akt 2: Sammensæt dit podcast-produktionshold 🎬 ![lab2](../../../../translated_images/da/lab2.48444b9d549e7863.webp) ## Plottet Tykner Alex (din AI-assistent fra Akt 1) er fantastisk, men én agent kan ikke drive et helt podcast-studie. Du har brug for et *team*: - 🔍 **Research Agent**: Gennemgår internettet for frisk information - ✍️ **Script Agent**: Omformer research til engagerende dialog - 👤 **Dig (Redaktøren)**: Godkender scripts eller sender dem tilbage til omskrivning Velkommen til **AI Agent Orkestrering** — hvor du bliver instruktør for dit eget AI-hold. Forestil dig Avengers, men for podcastproduktion. ## Hvad er Agent Orkestrering? (Den Enkle Version) Forestil dig, at du driver en restaurant. Du gør ikke alt selv, vel? Du har: - 🍳 En kok, der laver mad - 👨‍🍳 En souschef, der forbereder - 👩‍🍳 En tjener, der serverer Agentorkestrering er samme idé, men med AI. Hver agent har specialer, og du koordinerer dem for at nå større mål. Ingen enkelt agent bliver overbelastet, og arbejdet går hurtigere. ### Band-Analogi 🎸 Dine AI-agenter er som et band: - **Forsanger**: Den primære agent, der håndterer kundevendte opgaver - **Trommeslager**: Holder rytmen, håndterer baggrundsprocesser - **Basspilleren**: Støtter alle, henter data - **Dig (Band Manager)**: Koordinerer det hele! Uden koordinering? Bare larm. Med orkestrering? Smuk musik. ### Hvorfor Det Betaler Sig En enkelt AI-agent, der prøver at klare det hele = udbrændthed. Specialiserede agenter, der arbejder sammen = effektivitet frigjort! 🚀 **Ærlig Snak**: Kan du huske, da du prøvede at researche, skrive OG redigere din podcast alene? Ja, det er træls. Med orkestrering håndterer hver agent det, den er bedst til. Du tager bare de endelige beslutninger. **Virkelighedseksempel**: Kundesupportrobotter, der ved, hvornår de skal håndtere fakturering vs. tekniske problemer vs. når de skal kalde en menneskelig medarbejder. Det er orkestrering! ## Agent vs. Workflow: Hvad er Forskellen? Tænk sådan her: ### 🤖 AI Agent = Jazzmusiker - **Tager beslutninger undervejs** baseret på det den hører - **Improviserer** løsninger ved hjælp af sine værktøjer - **Tænker** med en LLM-hjerne - **Tilpasser sig** alt, du byder den ### 🎵 Workflow = Orkester der spiller klassisk musik - **Følger en partit** (foruddefinerede trin) - **Forudsigelig** udførelsessti - **Koordinerer** flere agenter, mennesker, systemer - **Struktureret** som en opskrift **Magi**: Workflows *orkestrerer* agenter! Du bygger en workflow, der fortæller agenter, hvornår de skal spille deres rolle. Det bedste fra begge verdener. 🎭 ## Tre Måder at Koordinere Dit AI-Hold På ### 1. 🎯 Centraliseret (Du er chefen) Én hovedagent styrer det hele. Tænk på det som at du leder et hold — du beslutter, hvem der gør hvad og hvornår. **Fordele**: - ✅ Klar ledelse (ingen forvirring) - ✅ Ensartede beslutninger - ✅ Let at fejlfinde **Brug det til**: - Kundeservice-routing ("Er det fakturering eller teknisk support?") - Godkendelsesworkflows for indhold ("Består dette manuskript?") - Podcast-produktion (lige præcis det vi bygger!) ### 2. 🤝 Decentraliseret (Agenter organiserer sig selv) Agenter kommunikerer direkte med hinanden og finder ud af tingene som gruppe. Som en gruppechat hvor alle koordinerer. **Fordele**: - ✅ Skalerer nemt (tilføj flere agenter når som helst) - ✅ Intet enkelt fejlpunkt - ✅ Agenter samarbejder naturligt **Brug det til**: - Research-teams (hver agent undersøger forskellige kilder) - Brainstorming-sessioner - Distribueret problemløsning ### 3. 🔀 Hybrid (Det bedste fra begge verdener) Du sætter den overordnede retning, men agenter har frihed til at organisere sig selv om opgaver. Som en CEO, der stoler på sit hold. **Perfekt til**: Komplekse projekter, der kræver både kontrol og fleksibilitet. ## Microsoft Agent Framework: Dit Orkestreringsværktøj 🧰 Tid til at bygge! Her er hvad du vil bruge: ### Byggeklodserne #### 1. 🧱 Executors (Dine Arbejdere) - **Hvad de er**: Individuelle behandlingsenheder — kan være agenter eller egen logik - **Hvad de gør**: Modtager input, udfører arbejde, producerer output - **Tænk på dem som**: Stationer på en samlebånd #### 2. ➡️ Edges (Forbindelserne) - **Hvad de er**: Stier mellem executors - **Hvad de gør**: Styrer beskedflow ("Efter A, gå til B") - **Tænk på dem som**: Pile på et flowdiagram #### 3. 🗺️ Workflows (Hovedplanen) - **Hvad de er**: Det komplette diagram af executors + edges - **Hvad de gør**: Definerer hele processen fra start til slut - **Tænk på dem som**: Blueprint for din produktionspipeline ### Fede Funktioner, Du Vil Elske **🛡️ Typesikkerhed**: Beskeder mellem agenter bliver type-tjekket. Ingen "Ups, forkert datatype"-overraskelser. **🔀 Fleksibel Routing**: - If-then betingelser ("Hvis godkendt, udgiv; ellers omskriv") - Parallel behandling (flere agenter arbejder samtidigt) - Dynamiske stier (workflow tilpasser sig baseret på resultater) **🔌 Ekstern Integration**: - Forbind til API’er - Tilføj human-in-the-loop checkpoints (du godkender før udgivelse) - Byg forespørgsels-/svarflows **💾 Checkpointing**: Gem fremskridt! Hvis noget går ned, kan du fortsætte hvor du slap. **🤝 Multi-Agent Koordination**: - Kør agenter efter tur (A → B → C) - Kør dem parallelt (A + B + C på én gang) - Overlever helt mellem agenter - Samarbejdende behandling ## Best Practices (Pro Tips) 🎯 ### 1. Hold Det Modulært Hver agent bør gøre ÉN ting rigtig godt. Lav ikke en "super agent", der gør alt — det vil du fortryde, når du fejlsøger. ### 2. Planlæg til Fejl Agenter laver fejl. Netværk fejler. Byg fejlhåndtering og backup-planer ind. Din fremtidige jeg vil takke dig. ### 3. Overvåg Alt Hold øje med, hvad dine agenter laver. Brug DevUI (det vender vi tilbage til!) for at se workflows i aktion. ### 4. Optimer Beskedstørrelse Send ikke gigantiske filer mellem agenter. Hold beskederne slanke og hurtige. ### 5. Vælg Det Rigtige Mønster Skal du styre? Gå centraliseret. Skal du skalere? Gå decentraliseret. Kan du ikke vælge? Gå hybrid! ## DevUI: Din Workflow Debugger 🔍 ### Hvad er DevUI? DevUI er som en legeplads til at teste dine agenter og workflows. Det er en webgrænseflade, hvor du kan: - 👀 Se dine workflows i aktion - 💬 Chatte direkte med agenterne - 🔍 Fejlsøge, når noget går galt - 📊 Se sporings- og performance-målinger > **Vigtigt**: DevUI er kun til udvikling! Brug det ikke i produktion. Tænk på det som dit lokale testmiljø. ### Hvad Gør Det Fantastisk - **🖥️ Interaktiv Web UI**: Klik, skriv, test — ingen kommandolinje nødvendig - **📁 Drag-and-Drop Klar**: Upload filer, test med forskellige input - **📂 Auto-Discovery**: Peg på en mappe, den finder automatisk alle dine agenter - **📋 No-Setup Mode**: Registrer agenter i kode, ingen mappestruktur nødvendig - **🔌 OpenAI Kompatibel**: Virker med OpenAI SDK (kompatibilitet FTW!) - **👁️ Indbygget Tracing**: Se præcis, hvad dine agenter laver ### Hvordan Input Fungerer DevUI er smart med input: - **Tester du agenter?** Du får tekstbokse og filupload-knapper - **Tester du workflows?** UI genererer automatisk inputfelter baseret på workflowens forventninger Det er magi, men bare god kode. ✨ ## Dine Missioner: Byg et Podcast Studier 🎬 ### Mission 1: Opret en Enkel Agent med DevUI 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **Udfordringen**: Før du bygger et helt team, lad os teste DevUI med en enkelt agent: en specialist i web-søgning. **Hvad Du Bygger**: En research agent, der kan søge på nettet efter podcast-emner. Du tester den via DevUIs webinterface på `http://localhost:8090`. **Færdigheder Du Lærer**: - 🚀 Starte agenter i DevUI - 🔍 Teste agentrespons i realtid - 🛠️ Bygge egne værktøjer (web-søgning) - 📊 Aktivere tracing for fejlfinding - 🖥️ Bruge den interaktive web UI **Koden**: - `agent.py`: Din SearchAgent med websearch superkræfter - Bruger OllamaChatClient til at forbinde med Qwen - Implementerer `web_search()` værktøjsfunktion - Starter med `serve()` — åbner DevUI automatisk **Sejrskriterium**: Spørg din agent "Hvad trender inden for AI?" og se den søge på nettet! 🎉 ### Mission 2: Byg en Multi-Agent Workflow 📂 [02.WorkflowDevUI](../../../../WorkshopForAgentic/code/02.Workflow/02.WorkflowDevUI) **Udfordringen**: Nu starter det sjove! Byg en komplet podcast-produktionsworkflow med: 1. 🔍 **Search Agent** → Researcher dit emne 2. ✍️ **Script Agent** → Skriver en dialog mellem to værter (på kinesisk!) 3. 👤 **Review Executor** → Beder DIG om at godkende eller afvise 4. 🔄 **Loop Back** → Hvis afvist, omskriver baseret på din feedback **Færdigheder Du Lærer**: - 🧱 Oprette specialiserede agenter til forskellige opgaver - 🔗 Forbinde agenter med WorkflowBuilder - 🔀 Implementere godkendelsesloops (human-in-the-loop!) - 🚦 Betinget routing (godkendt vs. afvist) - 🔧 Bygge egne executors til forretningslogik **Workflowen**: ``` SearchAgent → ScriptAgent → ReviewExecutor ↑ ↓ (if rejected) ←───────── ``` **Koden**: - `search_agent/agent.py`: Din research-specialist - `generate_script_agent/agent.py`: Din manuskriptforfatter (skriver på kinesisk!) - `workflow/workflow.py`: Her sker orkestreringen - `main.py`: Starter det hele i DevUI **Sejrskriterium**: Giv et emne, gennemgå manuskriptet, afvis det én gang for at teste loopet, og godkend så! 🎉 ### Mission 3: Byg en Konsolapp 📂 [03.Application](../../../../WorkshopForAgentic/code/02.Workflow/03.Application) **Udfordringen**: Tag din workflow fra DevUI og gør den til en fed terminalapp med farvet output, loading-spinners og filgemning. Det er produktionsklar kode! **Færdigheder Du Lærer**: - ⚡ Køre workflows programmatisk (uden DevUI) - 📡 Eventstyret arkitektur med streaming - 🎨 Skabe flotte terminal-UI’er (farver, spinnere, fremskridtstællere) - 💾 Gemme endelige scripts til filer - 🔄 Håndtere asynkrone workflows med Pythons asyncio **Hvad Den Gør**: 1. Spørger om et podcast-emne 2. Viser realtidsprogression ("Search Agent arbejder...") 3. Viser det genererede manuskript med farver 4. Beder om din godkendelse 5. Gemmer godkendt manuskript til `podcast.txt` **Koden**: - `podcast_app.py`: Din hovedapp med eventhåndtering - `workflow.py`: Genbruger workflowen fra Mission 2 - Håndterer events: `AgentRunUpdateEvent`, `RequestInfoEvent`, `WorkflowOutputEvent` - Bruger ANSI-farver til terminal styling **Sejrskriterium**: Kør appen, lav et podcastmanuskript, og se det blive gemt! Du har bygget et ægte værktøj. 🚀 ## Hvad Du Har Mestret 🏆 Efter Akt 2 kan du: - ✅ Orkestrere flere AI-agenter som en chef - ✅ Bygge workflows med sekventiel OG betinget logik - ✅ Tilføje menneskelige godkendelsescheckpoints - ✅ Bruge DevUI til test og fejlfinding af workflows - ✅ Skabe produktionsklare konsolapplikationer - ✅ Håndtere fejl elegant i komplekse systemer - ✅ Vælge det rette orkestreringsmønster til ethvert projekt ## Når Tingene Bryder Sammen 🔧 ### "Min workflow er for kompliceret!" **Løsningen**: Opdel den i mindre sub-workflows. Hver workflow bør gøre ÉN ting godt. Kæd dem sammen efter behov. ### "Jeg kan ikke følge med i, hvad der sker!" **Løsningen**: Brug workflow checkpointing til at gemme tilstand. Aktiver tracing i DevUI for at se hvert trin. ### "En agents fejl bryder det hele ned!" **Løsningen**: Tilføj fejlgraenser. Hver agent skal håndtere egne fejl og have fallback-adfærd. ### "Det er sååå langsomt" **Løsningen**: Kan agenter køre parallelt? Sekventielle workflows er nemme men langsomme. Find muligheder for parallelisering! ## Hjælpsomme Ressourcer 🔗 - [Workflow Docs](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — Officielle Microsoft-vejledninger - [Orchestration Patterns](https://www.ibm.com/think/topics/ai-agent-orchestration) — IBMs bud på det - [Agent Framework GitHub](https://github.com/microsoft/agent-framework) — Se kildekoden - [Code Examples](https://github.com/microsoft/agent-framework/tree/main/python/samples) — Stjæl mønstre herfra --- **Klar til finalen?** Du har dit script. Nu lad os gøre det til rigtig lyd! → [Act 3: Bring Your Podcast to Life](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) 🎤 --- **Fastklemt? Forvirret? Spændt?** Del det i workshopchatten! Vi lærer alle sammen. 🚀 --- **Ansvarsfraskrivelse**: Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, bedes du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det oprindelige dokument på dets modersmål skal betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for eventuelle misforståelser eller fejltolkninger, der opstår som følge af brugen af denne oversættelse.