# Näytös 2: Kokoa podcast-tuotantotiimisi 🎬 ![lab2](../../../../translated_images/fi/lab2.48444b9d549e7863.webp) ## Juoni tiivistyy Alex (tekoälyavustajasi Näytöksestä 1) on mahtava, mutta yksi agentti ei pysty pyörittämään koko podcast-studiota. Tarvitset *tiimin*: - 🔍 **Tutkimusagentti**: Kaivet internetistä tuoretta tietoa - ✍️ **Käsikirjoitusagentti**: Muuttaa tutkimuksen mukaansatempaavaksi vuoropuheluksi - 👤 **Sinä (editööri)**: Hyväksyt käsikirjoitukset tai lähetät ne uudelleenkirjoitettavaksi Tervetuloa **tekoälyagenttien orkestrointiin** — jossa sinusta tulee oman tekoälytiimisi ohjaaja. Ajattele Avengerseja, mutta podcast-tuotannon parissa. ## Mikä on agenttien orkestrointi? (Yksinkertainen versio) Kuvittele, että pyörität ravintolaa. Et tee kaikkea itse, vai mitä? Sinulla on: - 🍳 Kokki, joka kokkaa - 👨‍🍳 Apukokki, joka valmistelee - 👩‍🍳 Tarjoilija, joka tuo ruoan Agenttien orkestrointi on sama idea, mutta tekoälyn kanssa. Jokaisella agentilla on erikoistaito, ja sinä koordinoit heitä saavuttaaksesi isompia tavoitteita. Yksikään agentti ei huku hommiin, ja työ hoituu nopeammin. ### Bändianalogia 🎸 Tekoälyagenttisi ovat kuin bändi: - **Laulaja**: Pääagentti, joka hoitaa asiakaskohtaamistehtävät - **Rumpali**: Pitää rytmin, hoitaa taustaprosessointia - **Bassisti**: Tukee kaikkia, hakee dataa - **Sinä (bändin manageri)**: Koordinoit kaiken! Ilman koordinaatiota? Pelkkää melua. Orkestroinnilla? Kaunista musiikkia. ### Miksi tämä on tärkeää Yksittäinen tekoälyagentti yrittää tehdä kaiken = burnout. Erikoistuneet agentit työskentelevät yhdessä = tehokkuus auki! 🚀 **Rehellinen puhe**: Muistatko, kun yritit yksin tutkia, kirjoittaa JA editoida podcastiasi? Jep, se on rankkaa. Orkestroinnilla kukin agentti hoitaa sen, mitä osaa parhaiten. Sinä päätät lopulliset asiat. **Todellinen esimerkki**: Asiakaspalvelubotit, jotka tietävät, milloin hoitaa laskutusta, milloin teknisiä ongelmia ja milloin kutsua ihminen avuksi. Siinä on orkestrointi! ## Agentti vs. työnkulku: Mikä ero? Ajattele näin: ### 🤖 Tekoälyagentti = jazz-muusikko - **Tekee päätöksiä lennossa** sen mukaan, mitä kuulee - **Improvisoi** ratkaisuja työkalujensa avulla - **Ajattelee** isolla LLM-aivoilla - **Soveltuu** mihin tahansa tehtävään ### 🎵 Työnkulku = orkesteri soittaa klassista musiikkia - **Seuraa nuottia** (ennalta määritellyt vaiheet) - **Ennakoitava** suorituspolku - **Koordinoi** useita agentteja, ihmisiä, järjestelmiä - **Rakenteellinen** kuin resepti **Taika**: Työnkulut *orkestroivat* agentteja! Rakennat työnkulun, joka kertoo agenteille, milloin soittaa oma osuutensa. Paras molemmista maailmoista. 🎭 ## Kolme tapaa koordinoida tekoälytiimiäsi ### 1. 🎯 Keskitetty (Sinä olet pomo) Yksi pääagentti kutsuu kaikki peliliikkeet. Ajattele kuin johtaisit tiimiä — sinä päätät, kuka tekee mitä ja milloin. **Edut**: - ✅ Selkeä johtajuus (ei sekaannusta) - ✅ Johdonmukaiset päätökset - ✅ Helppo virheenetsintä **Käytä esimerkiksi**: - Asiakaspalvelun ohjaus ("Onko tämä laskutus- vai teknistä tukea?") - Sisällön hyväksyntätyönkulut ("Hyväksytäänkö käsikirjoitus?") - Podcast-tuotanto (juuri tämä, mitä rakennamme!) ### 2. 🤝 Hajautettu (Agentit itseorganisoituvat) Agentit keskustelevat suoraan keskenään ja selvittävät asiat ryhmänä. Aivan kuin ryhmächat, jossa kaikki koordinoivat. **Edut**: - ✅ Helppo skaalata (lisää agenteja milloin vain) - ✅ Ei yhtä heikkoa kohtaa - ✅ Agentit tekevät yhteistyötä luonnollisesti **Käytä esimerkiksi**: - Tutkijatiimit (jokainen tutkii eri lähteitä) - Ideointisessiot - Hajautettu ongelmanratkaisu ### 3. 🔀 Hybridimalli (Paras molemmista maailmoista) Sinä asetat yleissuunnan, mutta agentit saavat vapautta itseorganisoitua tehtävissä. Aivan kuin toimit toimitusjohtajana, joka luottaa tiimiinsä. **Täydellinen**: monimutkaisiin projekteihin, jotka tarvitsevat sekä kontrollia että joustavuutta. ## Microsoft Agent Framework: orkestrointityökalusi 🧰 Aloitetaan rakentaminen! Tässä mitä käytät: ### Rakennuspalikat #### 1. 🧱 Suorittajat ( työntekijäsi) - **Mitä ne ovat**: Yksittäisiä prosessointiyksiköitä — voivat olla agenteja tai omaa logiikkaa - **Mitä ne tekevät**: Ottavat syötteen, tekevät työn, antavat tuloksen - **Ajattele niitä**: Konepajan asemia #### 2. ➡️ Yhteydet (Linkit) - **Mitä ne ovat**: Polkuja suorittajien välillä - **Mitä ne tekevät**: Ohjaavat viestien kulkua ("A:n jälkeen mennään B:hen") - **Ajattele niitä**: Nuolia kaaviossa #### 3. 🗺️ Työnkulut (Pääsuunnitelma) - **Mitä ne ovat**: Koko suorittajien ja linkkien verkosto - **Mitä ne tekevät**: Määrittävät koko prosessin alusta loppuun - **Ajattele niitä**: Tuotantolinjasi pohjapiirustuksena ### Siistit ominaisuudet, joista tulet pitämään **🛡️ Tyyppiturvallisuus**: Agenteille menevät viestit tarkistetaan tyypin mukaan. Ei "hups, väärä tietotyyppi" -ylläreitä. **🔀 Joustava reititys**: - Jos-niin-ehdot ("Jos hyväksytään, julkaise; muuten kirjoita uudelleen") - Rinnakkainen käsittely (useat agentit työskentelevät samaan aikaan) - Dynaamiset polut (työnkulku mukautuu tulosten mukaan) **🔌 Ulkoinen integraatio**: - Yhdistä rajapintoihin (API) - Lisää ihmisen hyväksymisvaiheet (sinä hyväksyt ennen julkaisua) - Rakenna pyyntö/vastaus-virtoja **💾 Tarkistuspisteet**: Tallenna edistys! Jos jotain kosahtaa, voit jatkaa siitä, mihin jäit. **🤝 Moniagenttinen koordinointi**: - Aja agentit peräkkäin (A → B → C) - Aja ne rinnakkain (A + B + C yhtä aikaa) - Vaihda agentilta toiselle - Yhteistyössä työskentely ## Parhaat käytännöt (Pro-vinkit) 🎯 ### 1. Pidä modulaarisena Jokaisen agentin tulisi osata TEHDÄ YHTÄ asiaa todella hyvin. Älä tee "superagenttia", joka tekee kaikkea — kadut sitä virheenkorjauksessa. ### 2. Varautu virheisiin Agentit mokaavat. Verkot pettävät. Rakenna virheenkäsittely ja varasuunnitelmat. Tulevaisuuden sinä kiittää. ### 3. Seuraa kaikkea Seuraa agenttiesi toimintaa. Käytä DevUI:a (käymme sen läpi!) nähdäksesi työnkulut toiminnassa. ### 4. Optimoi viestien koko Älä lähetä jättimäisiä tiedostoja agenttien välillä. Pidä viestit kevyinä ja nopeina. ### 5. Valitse oikea malli Tarvitsetko kontrollia? Mene keskitettyyn malliin. Tarvitsetko skaalausta? Mene hajautettuun. Et osaa päättää? Mene hybridiin! ## DevUI: työnkulkujesi virheenkorjaustyökalu 🔍 ### Mikä on DevUI? DevUI on kuin leikkikenttä agenttiesi ja työnkulkujesi testaamiseen. Se on web-käyttöliittymä, jossa voit: - 👀 Katsoa työnkulkusi toiminnassa - 💬 Keskustella suoraan agenttien kanssa - 🔍 Virheenkorjata, kun jotain menee pieleen - 📊 Tarkastella jälkiä ja suorituskykymittareita > **Tärkeää**: DevUI on vain kehitykseen! Älä käytä tuotannossa. Ajattele sitä paikallisena testausympäristönäsi. ### Mikä tekee siitä mahtavan - **🖥️ Vuorovaikutteinen web-käyttöliittymä**: Klikkaa, kirjoita, testaa — ei komentoriviä tarvita - **📁 Vedä ja pudota valmiina**: Lataa tiedostoja, kokeile eri syötteillä - **📂 Automaattinen löytäminen**: Osaa etsiä kaikki agenttisi kansiosta automaattisesti - **📋 Ei-asennustila**: Rekisteröi agentit koodissa, ei tarvitse kansiorakennetta - **🔌 OpenAI-yhteensopiva**: Toimii OpenAI SDK:n kanssa (yhteensopivuus plussaa!) - **👁️ Sisäänrakennettu jäljitys**: Näet täsmälleen, mitä agenttisi tekevät ### Miten syöte toimii DevUI on fiksu syötteissä: - **Testaatko agentteja?** Saat tekstikentät ja tiedostojen latausnapit - **Testaatko työnkulkuja?** Käyttöliittymä luo syötekentät työnkulun odotusten mukaan Se on kuin taikuutta, mutta oikeasti hyvää koodia. ✨ ## Tehtäväsi: rakenna podcast-studio 🎬 ### Tehtävä 1: Luo yksi agentti DevUI:lla 📂 [01.AgentDevUI](../../../../WorkshopForAgentic/code/02.Workflow/01.AgentDevUI) **Haaste**: Ennen koko tiimin rakentamista, testataan DevUI:ta yhden agentin kanssa: verkkohakuasiantuntijan. **Mitä rakennat**: Tutkimusagentti, joka osaa hakea podcast-aiheita internetistä. Testaat sitä DevUI:n web-käyttöliittymässä osoitteessa `http://localhost:8090`. **Osaamisesi kasvaa**: - 🚀 Agenttien käynnistys DevUI:ssa - 🔍 Agenttien vastausten reaaliaikainen testaaminen - 🛠️ Oman työkalun (verkkohaku) rakentaminen - 📊 Jäljityksen käyttö virheiden löytämiseen - 🖥️ Vuorovaikutteisen web-UI:n käyttö **Koodi**: - `agent.py`: SearchAgent, jolla on verkkohakuperusteet - Käyttää OllamaChatClientiä yhteyteen Qweniin - Toteuttaa `web_search()`-työkalufunktion - Käynnistyy `serve()`-funktiolla — avaa DevUI automaattisesti **Voittoehto**: Kysy agentiltasi "Mikä on trendissä tekoälyn saralla?" ja katso, kun se hakee netistä! 🎉 ### Tehtävä 2: Rakenna moniagenttinen työnkulku 📂 [02.WorkflowDevUI](../../../../WorkshopForAgentic/code/02.Workflow/02.WorkflowDevUI) **Haaste**: Nyt alkaa oikea hauskuus! Rakenna koko podcast-tuotannon työnkulku, jossa on: 1. 🔍 **Hakija-agentti** → Tutkii aihettasi 2. ✍️ **Käsikirjoitusagentti** → Kirjoittaa dialogin kahden juontajan välillä (kiinaksi!) 3. 👤 **Tarkastaja-suorittaja** → Kysyy SINULTA hyväksynnän tai hylkäyksen 4. 🔄 **Toiston silmukka** → Jos hylätään, kirjoittaa uudelleen palautteesi mukaan **Osaaminen kehittyy**: - 🧱 Erikoistuneiden agenttien luominen eri tehtäviin - 🔗 Agenttien yhdistäminen WorkflowBuilderilla - 🔀 Hyväksymissilmukoiden toteuttaminen (ihminen mukana!) - 🚦 Ehtojen mukainen reititys (hyväksytty vs. hylätty) - 🔧 Oman logiikan suorittajien rakentaminen **Työnkulku**: ``` SearchAgent → ScriptAgent → ReviewExecutor ↑ ↓ (if rejected) ←───────── ``` **Koodi**: - `search_agent/agent.py`: Tutkimusasiantuntijasi - `generate_script_agent/agent.py`: Käsikirjoittajasi (kirjoittaa kiinaksi!) - `workflow/workflow.py`: Tässä tapahtuu orkestroinnin taika - `main.py`: Käynnistää kaiken DevUI:ssa **Voittoehto**: Anna aihe, tarkista käsikirjoitus, hylkää se kerran testataksesi silmukkaa ja hyväksy sitten! 🎉 ### Tehtävä 3: Rakenna konsolisovellus 📂 [03.Application](../../../../WorkshopForAgentic/code/02.Workflow/03.Application) **Haaste**: Ota DevUI:ssa luotu työnkulku ja tee siitä tyylikäs terminaalisovellus värillisillä tulosteilla, latauspyörillä ja tiedostotallennuksella. Tässä on tuotantovalmiita juttuja! **Osaaminen kasvaa**: - ⚡ Työnkulkujen suoritus ohjelmallisesti (ilman DevUI:ta) - 📡 Tapahtumaohjattu arkkitehtuuri streamauksen avulla - 🎨 Kauniiden terminaali-UI:den luominen (värit, pyörät, etenemispalkit) - 💾 Lopullisten käsikirjoitusten tallennus tiedostoihin - 🔄 Async-työnkulkujen käsittely Pythonin asyncio-kirjastolla **Mitä se tekee**: 1. Kysyy podcast-aihetta 2. Näyttää reaaliaikaisen tilan ("Hakija-agentti työskentelee...") 3. Näyttää luodun käsikirjoituksen väreineen 4. Kysyy hyväksyntääsi 5. Tallentaa hyväksytyn käsikirjoituksen `podcast.txt`-tiedostoon **Koodi**: - `podcast_app.py`: Pääsovellus tapahtumien käsittelyllä - `workflow.py`: Käyttää Tehtävä 2:n työnkulkua uudelleen - Käsittelee tapahtumia: `AgentRunUpdateEvent`, `RequestInfoEvent`, `WorkflowOutputEvent` - Käyttää ANSI-värejä terminaalin tyylittelyyn **Voittoehto**: Käynnistä sovellus, luo podcast-käsikirjoitus ja katso, kun se tallentuu! Olet rakentanut oikean työkalun. 🚀 ## Mitä olet hallinnut 🏆 Näytöksen 2 jälkeen osaat: - ✅ Ohjata useita tekoälyagentteja kuin pomo - ✅ Rakentaa työnkulkuja peräkkäisellä JA ehdollisella logiikalla - ✅ Lisätä ihmisen hyväksymisvaiheita - ✅ Käyttää DevUI:ta työnkulkujen testaukseen ja virheenkorjaukseen - ✅ Luoda tuotantovalmiita konsolisovelluksia - ✅ Käsitellä virheitä fiksusti monimutkaisissa järjestelmissä - ✅ Valita oikean orkestrointimallin mihin tahansa projektiin ## Kun asiat menevät pieleen 🔧 ### "Työnkulkuni on liian monimutkainen!" **Korjaus**: Jaa se pienempiin alatyönkulkuihin. Jokaisen työnkulun tulisi osata TEHDÄ YHTÄ asiaa hyvin. Ketjuta ne tarvittaessa. ### "En näe, mitä tapahtuu!" **Korjaus**: Käytä työnkulkutarkistuspisteitä tallentaaksesi tilan. Ota jäljitys päälle DevUI:ssa nähdäksesi jokainen askel. ### "Yhden agentin virhe kaataa kaiken!" **Korjaus**: Lisää virherajat. Jokaisen agentin pitää käsitellä omat mokansa ja olla varavirtaus. ### "Tämä on niin hidas" **Korjaus**: Voivatko jotkut agentit toimia rinnakkain? Peräkkäiset työnkulut ovat helppoja, mutta hitaita. Etsi rinnakkaistamismahdollisuuksia! ## Hyödyllisiä resursseja 🔗 - [Workflow Docs](https://learn.microsoft.com/en-us/agent-framework/user-guide/workflows/overview) — Microsoftin viralliset oppaat - [Orchestration Patterns](https://www.ibm.com/think/topics/ai-agent-orchestration) — IBM:n näkemys - [Agent Framework GitHub](https://github.com/microsoft/agent-framework) — Selaa lähdekoodia - [Koodiesimerkit](https://github.com/microsoft/agent-framework/tree/main/python/samples) — Kopioi malleja täältä --- **Valmis finaaliin?** Sinulla on skriptisi. Muutetaan se nyt oikeaksi äänitiedostoksi! → [Osa 3: Herätä podcastisi eloon](03.Multi-SpeakerPodcastGenerationWithVibeVoice.md) 🎤 --- **Jämähtänyt? Hämmästynyt? Innoissasi?** Jaa ajatuksesi työpajachatissa! Opimme kaikki yhdessä. 🚀 --- **Vastuuvapauslauseke**: Tämä asiakirja on käännetty käyttämällä tekoälykäännöspalvelua [Co-op Translator](https://github.com/Azure/co-op-translator). Vaikka pyrimme tarkkuuteen, huomioithan, että automaattikäännöksissä saattaa esiintyä virheitä tai epätarkkuuksia. Alkuperäistä asiakirjaa sen alkuperäiskielellä tulee pitää auktoritatiivisena lähteenä. Tärkeää tietoa varten suositellaan ammattimaista ihmiskäännöstä. Emme ole vastuussa tämän käännöksen käytöstä aiheutuvista väärinymmärryksistä tai tulkinnoista.