AutoGen je open source framework od Microsoftu na stavbu aplikácií, v ktorých spolupracuje viacero AI agentov. Agenti si medzi sebou posielajú správy, rozdeľujú si úlohy, môžu používať nástroje a v prípade potreby zapojiť aj človeka. Je to technický nástroj určený vývojárom a výskumníkom, ktorí chcú experimentovať s tým, ako sa dá z viacerých modelov poskladať systém schopný riešiť zložitejšie úlohy.
Kto a prečo by mal siahnuť po AutoGene
Zjednodušene povedané, AutoGen stavia na myšlienke rozhovoru. Namiesto jedného veľkého zadania, ktoré sa pošle modelu, necháte viacerých agentov, aby sa o riešení medzi sebou rozprávali. Jeden navrhne postup, druhý ho skritizuje, tretí napíše kód a štvrtý ho spustí a vráti výsledok. Používateľ môže do rozhovoru vstúpiť, schváliť krok alebo ho usmerniť.
Nástroj osloví najmä programátorov, výskumné tímy a študentov, ktorí sa chcú naučiť, ako agentné systémy fungujú. Hodí sa tam, kde potrebujete veľkú flexibilitu a nevadí vám, že budete pracovať s kódom a konfiguráciou. Nie je to riešenie pre používateľa, ktorý chce hotovú aplikáciu na klik.
Ako funguje spolupráca agentov
Základom sú agenti, teda objekty s vlastnými pokynmi, ktoré vedia prijímať a posielať správy. Každý agent môže byť podporovaný jazykovým modelom, môže zastupovať človeka, alebo vedieť vykonávať určité nástroje, napríklad spúšťať kód. Správy medzi nimi tvoria konverzáciu, ktorá sa končí, keď je úloha hotová, alebo keď sa splní zadaná podmienka ukončenia.
Typická ukážka vyzerá takto: používateľský agent zadá úlohu, asistent navrhne riešenie vo forme programu, vykonávací agent program spustí a výsledok alebo chybové hlásenie vráti späť. Asistent chybu opraví a cyklus sa opakuje, až kým kód nefunguje. Je to príklad, prečo sa často hovorí o samoopravných tokoch.
Framework ponúka aj spôsoby, ako viac agentov zoskupiť do tímu a riadiť, kto má v danej chvíli hovoriť. Okrem programátorského rozhrania existujú aj nadstavby, ktoré uľahčujú experimentovanie, napríklad grafické prostredie na vyskúšanie tímov agentov bez písania všetkého ručne. Aktuálna architektúra a názvy balíkov sa vyvíjajú, takže vždy vychádzajte z oficiálnej dokumentácie.
Konkrétne využitie
- Pomoc s programovaním: agent napíše kód, druhý ho spustí v izolovanom prostredí a opravuje chyby, kým program nefunguje.
- Analýza dát: tím načíta tabuľku, navrhne analýzu, vytvorí graf a napíše vysvetlenie.
- Výskumné experimenty: porovnávanie, ako sa správajú rôzne zostavy agentov a zadaní na tej istej úlohe.
- Rozhodovanie s dohľadom človeka: agent pripraví návrh a čaká na schválenie, než vykoná dôležitý krok.
- Vzdelávanie: študenti si na malom príklade overia, ako vyzerá komunikácia medzi agentmi.
- Prototypy podnikových asistentov: rýchle overenie, či by sa nejaký pracovný postup dal čiastočne automatizovať.
Ako začať krok za krokom
- Pripravte si prostredie s programovacím jazykom podľa dokumentácie a vytvorte izolované prostredie projektu.
- Nainštalujte príslušné balíky frameworku. Pozrite si návod, pretože štruktúra balíkov sa v čase menila.
- Získajte prístup k jazykovému modelu a uložte kľúč do premenných prostredia.
- Spustite najjednoduchší príklad s dvoma agentmi: jedným, ktorý zastupuje vás, a jedným s modelom.
- Vyskúšajte úlohu s vykonávaním kódu, ale výlučne v izolovanom prostredí, napríklad v kontajneri.
- Pridajte schvaľovanie človekom pred každým krokom a sledujte, ako agenti postupujú.
- Až keď rozumiete základnému cyklu, pridávajte ďalších agentov alebo nástroje.
Ako dosiahnuť lepšie výsledky
Stanovte jasné podmienky ukončenia. Bez nich môžu agenti nekonečne diskutovať a míňať zdroje. Určite maximálny počet kôl a presne opíšte, čo sa považuje za hotovú úlohu.
Pri vykonávaní kódu nikdy nespúšťajte vygenerované programy priamo na svojom počítači bez ochrany. Použite izolované prostredie, ktoré nemá prístup k vašim súborom a prístupovým údajom. Je to najdôležitejšie bezpečnostné pravidlo pri tomto type nástrojov.
Pomenujte roly jasne a dajte každému agentovi konkrétny pokyn, čo robí a čo nerobí. Menej agentov so zreteľnými rolami funguje zvyčajne lepšie než veľa agentov s nejasným zadaním. Uchovávajte záznamy rozhovorov, aby ste vedeli spätne vysledovať, kde sa vyskytla chyba.
Obmedzenia a riziká
Správanie viacerých agentov je ťažšie predvídať než správanie jedného modelu. Rozhovory sa môžu zacykliť, agenti môžu zachádzať do nepodstatných detailov a náklady na volania modelu rastú s dĺžkou diskusie. Výsledky sú nedeterministické, takže ten istý vstup môže priniesť rôzne výstupy.
Generovaný kód môže obsahovať chyby aj bezpečnostné diery. Vykonávanie cudzieho alebo automaticky vytvoreného kódu bez izolácie je riziko pre vaše dáta. Pri práci s dôvernými údajmi myslite na to, že obsah sa posiela poskytovateľovi modelu. Informácie o spracovaní nájdete v jeho podmienkach.
Autorské práva a licencie sa týkajú aj kódu a textov, ktoré agenti vytvoria alebo využijú. Pred komerčným nasadením si overte licenčné podmienky použitých knižníc aj výstupov. A ako pri každej AI, tvrdenia agentov sa môžu zdať presvedčivé aj vtedy, keď sú nesprávne.
Pre koho nie je vhodný
AutoGen nie je určený pre netechnických používateľov. Ak potrebujete jednoduché prepojenie aplikácií alebo zákaznícky chatbot, bude pre vás zbytočne komplikovaný. Zvážte aj to, že ide o rýchlo sa vyvíjajúci projekt. Pri dlhodobom produkčnom nasadení treba počítať s tým, že rozhrania sa môžu meniť a dokumentácia ostávať pozadu.
Ak sa zaujímate o viacagentné systémy, ale nepotrebujete práve ekosystém okolo Microsoftu, môžu vám vyhovovať iné frameworky. Pri rozhodovaní sa pozrite na veľkosť komunity, kvalitu dokumentácie a spôsob, akým rieši riadenie rozhovoru.
Alternatívy z nášho katalógu
Na podobný účel slúži CrewAI, ktoré kladie dôraz na roly a úlohy v tíme agentov a pôsobí pre mnohých jednoduchšie na pochopenie. Širšiu škálu stavebných blokov ponúka LangChain. Ak by ste radšej agentov skladali bez programovania, pozrite sa na Dify alebo Lindy.
Príklad: tím, ktorý opravuje chyby v skripte
Ukážme si malý scenár. Máte krátky skript na spracovanie tabuľky, ktorý končí chybou. Zadáte úlohu používateľskému agentovi: oprav skript tak, aby načítal súbor a vypísal súčet stĺpca. Asistent navrhne úpravu kódu. Vykonávací agent ju spustí v izolovanom prostredí a vráti chybové hlásenie, že stĺpec má iný názov. Asistent upraví kód, vykonávací agent ho spustí znova a tentoraz vráti výsledok. Rozhovor sa skončí a vy dostanete funkčný skript spolu s históriou krokov.
Na tomto príklade vidno silné aj slabé stránky prístupu. Silné je, že cyklus pokus, chyba, oprava prebehne bez vášho zásahu. Slabé je, že každé kolo stojí volanie modelu a že výsledok treba aj tak skontrolovať. Skript môže bežať, a pritom robiť niečo iné, než ste chceli. Preto má zmysel pri dôležitých úlohách zapnúť schvaľovanie človekom a výstup si prečítať.
Čo sa oplatí vedieť o vývoji projektu
AutoGen je aktívne sa vyvíjajúci projekt a jeho tvorcovia v minulosti upravovali architektúru a pomenovania. Pri hľadaní návodov na internete preto dávajte pozor na dátum a zhodu s aktuálnou dokumentáciou, pretože starší príklad nemusí fungovať s novšími balíkmi. Rovnako platí, že komunita okolo projektu vytvára veľa neoficiálnych tutoriálov rôznej kvality. Pri produkčných rozhodnutiach sa vždy opierajte o oficiálne zdroje a sledujte zmeny v projekte.
Časté otázky
Je AutoGen zadarmo?
Framework je open source, takže ho môžete používať bez licenčného poplatku. Zaplatíte za volania jazykových modelov a za infraštruktúru, na ktorej systém spustíte. Podmienky a licenciu overte v projekte.
Musím používať služby Microsoftu?
Nie je to podmienkou. Framework podporuje rôznych poskytovateľov modelov, no konkrétny zoznam si pozrite v dokumentácii.
Je bezpečné nechať agentov spúšťať kód?
Len pri správnej izolácii. Spúšťajte kód v oddelenom prostredí bez prístupu k citlivým súborom a kľúčom a pri dôležitých krokoch vyžadujte schválenie človekom.
Hodí sa na začiatok učenia sa o agentoch?
Áno, ak viete programovať. Je to dobrý spôsob, ako pochopiť princípy komunikácie medzi agentmi. Začnite jednoduchým príkladom a postupne ho rozširujte.