AI-mallit ja alustat

Microsoft AutoGen: Moniagenttinen AI-työkalu Edistyneellä Automatiikalla

mm
Lisää Unite.AI suosikkilähteisiisi Google-palvelussa
Intelligence Microsoft AutoGen

Microsoft (MSFT ) Research esitteli AutoGenin syyskuussa 2023 avoimena lähdekoodina toimivana Python-kehyksenä, joka mahdollistaa monimutkaisten moniagenttien luomisen. AutoGen on jo saavuttanut suosiota tutkijoiden, kehittäjien ja organisaatioiden keskuudessa, ja sillä on yli 290 osallistujaa GitHubissa ja lähes 900 000 latausta toukokuuhun 2024 mennessä. Microsoft on myös esittellyt AutoGen Studion, joka on matalan koodin käyttöliittymä, joka mahdollistaa nopean prototyyppien ja kokeilujen luomisen AI-agentteja varten.

Tämä kirjasto on tarkoitettu älymäisten, modulaaristen agenttien kehittämiseen, jotka voivat vuorovaikuttaa sulavasti monimutkaisten tehtävien ratkaisemiseksi, päätöksenteon automatisoimiseksi ja koodin suorittamiseksi tehokkaasti.

Microsoft on myös esittellyt AutoGen Studion, joka yksinkertaa AI-agenttien kehittämisen tarjoamalla interaktiivisen ja käyttäjäystävällisen alustan. Toisin kuin edeltäjänsä, AutoGen Studio vähentää laajan koodauksen tarvetta tarjoamalla graafisen käyttöliittymän, jossa käyttäjät voivat vetää ja pudottaa agenteja, konfiguroida työvirran ja testata AI-vetäjiä vaivattomasti.

Mikä tekee AutoGenista ainutlaatuisen?

Ymmärtäminen AI-agenteista

AI-agenteissa agentti on itsenäinen ohjelmistokomponentti, joka pystyy suorittamaan tiettyjä tehtäviä, usein luonnollisen kielen prosessoinnin ja koneoppimisen avulla. Microsoftin AutoGen-kehys parantaa perinteisten AI-agenttien kykyjä, mahdollistaen niiden osallistumisen monimutkaisiin, rakenteellisiin keskusteluihin ja jopa yhteistyöhön muiden agenttien kanssa jaettujen tavoitteiden saavuttamiseksi.

AutoGen tukee laajaa valikoimaa agenttityyppejä ja keskustelumalleja. Tämä joustavuus mahdollistaa sen, että se automatisoi työvirran, jotka aiemmin vaativat ihmisen väliintuloa, mikä tekee siitä ihanteellisen sovelluksia monissa eri aloilla, kuten rahoituksessa, mainonnassa, ohjelmistosuunnittelussa ja muissa.

Keskustelu- ja mukautettavat agentit

AutoGen esittelee “keskusteluagentit”, jotka on suunniteltu prosessoimaan viestejä, generoimaan vastauksia ja suorittamaan toimintoja luonnollisen kielen ohjeiden mukaan. Nämä agentit eivät ainoastaan osallistu rikkaaseen dialogiin, vaan ne voidaan myös mukauttaa parantamaan suorituskykyä tiettyjä tehtäviä varten. Tämä modulaarinen suunnittelu tekee AutoGenista voimakkaan työkalun sekä yksinkertaisille että monimutkaisille AI-projekteille.

Avainagentit:

  • Avustaja-agentti: LLM-pohjainen avustaja, joka voi hoitaa tehtäviä kuten koodausta, virheenkorjausta tai monimutkaisten kysymysten vastaamista.
  • Käyttäjän edustaja-agentti: Simuloi käyttäjän käyttäytymistä, mahdollistaen kehittäjien testaamisen ilman oikean käyttäjän osallistumista. Se voi myös suorittaa koodia itsenäisesti.
  • Ryhmäkeskusteluagentit: Agenttien kokoelma, joka toimii yhteistyössä, ihanteellinen tilanteissa, joissa vaaditaan useita taitoja tai näkökulmia.

Moniagenttien yhteistyö

Yksi AutoGenin vaikuttavimmista ominaisuuksista on sen tuki moniagenttien yhteistyölle. Kehittäjät voivat luoda agenttien verkoston, joilla on erikoistuneet roolit, jotta voidaan ratkaista monimutkaisia tehtäviä tehokkaammin. Nämä agentit voivat viestiä toistensa kanssa, vaihtaa tietoja ja tehdä yhteisiä päätöksiä, sujuvoittaen prosesseja, jotka olisivat muuten aikaa vieviä tai altis virheille.

AutoGenin ydinominaisuudet

1. Moniagenttikehys

AutoGen mahdollistaa agenttien verkoston luomisen, jossa jokainen agentti voi toimia itsenäisesti tai yhteistyössä muiden kanssa. Kehys tarjoaa joustavuuden suunnitella työvirran, jotka ovat täysin itsenäisiä tai sisältävät ihmisen valvontaa, kun tarve vaatii.

Keskustelumallit sisältävät:

  • Yksilökeskustelut: Yksinkertaiset vuorovaikutukset kahden agentin välillä.
  • Hierarkkiset rakenteet: Agentit voivat delegoida tehtäviä aliamenteille, helpottaen monimutkaisten ongelmien käsittelyä.
  • Ryhmäkeskustelut: Moniagenttiryhmäkeskustelut, joissa agentit yhteistyössä ratkaisevat tehtävän.

2. Koodin suorittaminen ja automaatio

Toisin kuin monet AI-kehykset, AutoGen sallii agenttien generoimisen, suorittamisen ja virheenkorjauksen automaattisesti. Tämä ominaisuus on arvokas ohjelmistosuunnittelun ja data-analytiikan tehtävissä, koska se vähentää ihmisen väliintuloa ja nopeuttaa kehitysprosessia. Käyttäjän edustaja-agentti voi tunnistaa suoritettavan koodin, ajaa sen ja jopa parantaa tulosta itsenäisesti.

3. Integraatio työkalujen ja API:en kanssa

AutoGen-agentit voivat vuorovaikuttaa ulkoisten työkalujen, palvelujen ja API:en kanssa, laajentaen merkittävästi heidän kykyjään. Riippumatta siitä, onko kyse tietojen hakemisesta tietokannasta, web-pyynnöistä tai integroimisesta Azure-palveluihin, AutoGen tarjoaa vankkan kehyssovellusten rakentamiseen.

4. Ihmisen osallistuminen ongelmanratkaisuun

Tilanteissa, joissa ihmisen syöttäminen on välttämätöntä, AutoGen tukee ihmisen ja agentin välistä vuorovaikutusta. Kehittäjät voivat konfiguroida agenteja pyytämään ohjeita tai hyväksyntää ihmiseltä ennen tiettyjen tehtävien suorittamista. Tämä ominaisuus varmistaa, että kriittiset päätökset tehdään tarkoituksenmukaisesti ja oikealla valvonnalla.

AutoGenin toimintaperiaate: Syväanalyysi

Agenttien alkuasetukset ja konfigurointi

Ensimmäinen askel AutoGenin kanssa työskentelemisessä on agenttien asettaminen ja konfigurointi. Jokainen agentti voidaan räätälöidä suorittamaan tiettyjä tehtäviä, ja kehittäjät voivat mukauttaa parametreja, kuten käytettävän LLM-mallin, kykyjen ottamisen käyttöön ja suoritusympäristön.

Agenttien vuorovaikutusten orkesterointi

AutoGen käsittelee agenttien välisen keskustelun rakenteellisella tavalla. Tyypillinen työvirta saattaa näyttää tältä:

  1. Tehtävän esittely: Käyttäjä tai agentti esittää kysymyksen tai tehtävän.
  2. Agenttien prosessointi: Asianmukaiset agentit analysoivat syötteen, generoivat vastauksia tai suorittavat toimintoja.
  3. Agenttien välinen viestintä: Agentit jakavat tietoja ja näkemyksiä, yhteistyössä tehtävän suorittamiseksi.
  4. Tehtävän suorittaminen: Agentit suorittavat koodia, hakevat tietoja tai vuorovaikuttavat ulkoisten järjestelmien kanssa tarpeen mukaan.
  5. Päättäminen: Keskustelu päättyy, kun tehtävä on suoritettu, virhetaso saavutetaan tai päättymisehto laukaistaan.

Virheiden käsittely ja itseparantaminen

AutoGenin agentit on suunniteltu käsittelemään virheitä älykkäästi. Jos tehtävä epäonnistuu tai tuottaa virheellisen tuloksen, agentti voi analysoida ongelman, yrittää korjata sen ja jopa iteroida ratkaisunsa. Tämä itseparantamiskyky on olennainen luotettavien AI-järjestelmien luomiseksi, jotka voivat toimia itsenäisesti pitkän ajan.

Edellytykset ja asennus

Ennen AutoGenin käyttämistä varmista, että sinulla on vankka ymmärrys AI-agenteista, orkesterointikehyksistä ja Python-ohjelmoinnin perusteista. AutoGen on Python-pohjainen kehys, ja sen täysi potentiaali toteutuu yhdistettynä muihin AI-palveluihin, kuten OpenAI:n GPT-malleihin tai Microsoft Azure AI:hin.

Asenna AutoGen käyttäen pip:

pip install pyautogen

Lisäominaisuuksien, kuten optimoidun hakutoiminnallisuuden tai integroinnin ulkoisten kirjastojen kanssa:

pip install "pyautogen[blendsearch]"

Ympäristön määritys

AutoGen vaatii ympäristömuuttujien ja API-avainvarastojen määrityksen turvallisesti. Käydään läpi perusaskelten, joita tarvitaan työtilan alustamiseen ja konfiguroimiseen:

  1. Ladataan ympäristömuuttujat: Tallenna herkät API-avaimet .env-tiedostoon ja lataa ne dotenv:n avulla turvallisuuden ylläpitämiseksi. (api_key = os.environ.get(“OPENAI_API_KEY”))
  2. Valitse kielen mallin konfiguraatio: Päätä, mitä LLM:ää käytät, kuten GPT-4 OpenAI:sta tai mikä tahansa muu suosittu malli. Konfiguraatio-asetukset, kuten API-päätepisteet, mallinimet ja avaimet, on määriteltävä selkeästi, jotta voidaan varmistaa viihtyisä viestintä agenttien välillä.

Rakentaminen AutoGen-agenteja monimutkaisiin skenaarioihin

Moniagenttijärjestelmän rakentamiseksi on määriteltävä agentit ja määriteltävä, miten heidän toimintansa on. AutoGen tukee useita agenttityyppejä, joilla on eri roolit ja kyvyt.

Luo avustaja- ja käyttäjän edustaja-agenteja: Määrittele agenteja, joilla on monimutkaiset konfiguraatiot koodin suorittamiseen ja käyttäjän vuorovaikutuksen hallintaan:

[koodi kieli=”PYTHON”]
from autogen import AssistantAgent, UserProxyAgent

# Määritä LLM-konfiguraatio
llm_config = {
"malli": "gpt-4",
"api_avain": api_avain
}

# Luo avustaja-agentti monimutkaisten koodaus- ja analyysitehtävien suorittamiseksi
avustaja = AssistantAgent(
nimi="koodausavustaja",
llm_config=llm_config
)

# Käyttäjän edustaja-agentti käyttäjän vuorovaikutuksen ja koodin suorittamisen hallintaan
kayttajan_edustaja = UserProxyAgent(
nimi="kayttajan_edustaja",
koodin_suorittamiskonfiguraatio={
"suorittaja": autogen.koodaus.LocalCommandLineCodeExecutor(tyo_tila="koodaus_tyotila")
}
)

[/koodi]

  1. Esimerkki 1: Monimutkainen data-analyysi ja visualisointi Oletetaan, että sinun on automatisoitava tehtävä, jossa AI-agentti hakee rahoitustietoja, suorittaa tilastollisen analyysin ja luo visualisoinnin tuloksista. Tässä on kuinka AutoGen voi helpottaa tätä:
    • Työvirta: Avustaja-agentti on tehtävänä hakea historiallisia osakehintoja, laskea avainsuoritusmittareita ja generoida visualisointeja.
    • Suorittamisen virta: Käyttäjän edustaja-agentti tarkistaa ja suorittaa avustaja-agentin generoiman koodin.
  2. Esimerkki 2: Automaattinen tutkimusavustaja akateemisille artikkeleille Tilanteessa, jossa sinun on tarve avustajalle, joka tiivistää tutkimusartikkeleita, AutoGen-agentit voivat tehokkaasti yhteistyössä saavuttaa tämän:
    • Tutkimuksen hakeminen: Yksi agentti hakee ja parsii relevantteja akateemisia artikkeleita verkkokäyttäytymisen avulla.
    • Yhteenveto: Toinen agentti tiivistää keskeiset löydökset ja luo konsiisen yleiskatsauksen.
    • Viittauksien hallinta: Apuagentti hallinnoi viittauksia ja muotoilee bibliografian.

Moniagenttien yhteistyön toteuttaminen

AutoGenin vahvuus piilee sen kyvyssä koordinoida useita agenteja tehtävien suorittamiseksi, jotka ovat toisistaan riippuvaisia. Tutustumme skenaarioon, jossa toteutamme Opettaja-Opiskelija-Arviointi-mallin:

  1. Opettaja-agentti: Tarjoaa selityksiä ja ohjeita annetusta aiheesta.
  2. Opiskelija-agentti: Kysyy kysymyksiä ja suorittaa harjoituksia ymmärryksensä vahvistamiseksi.
  3. Arviointi-agentti: Arvioi opiskelijan työtä ja antaa palautetta.

Tämä malli voidaan soveltaa koulutusvälineisiin, jossa agentit vuorovaikuttavat itsenäisesti oppimisen edistämiseksi.

Alkuasettelu Esimerkki:

[koodi kieli=”PYTHON”]
from autogen import AssistantAgent, UserProxyAgent

# Määritä agenteja koulutusvirtaa varten
opettaja = AssistantAgent(nimi="opettaja", llm_config=llm_config)
opiskelija = AssistantAgent(nimi="opiskelija", llm_config=llm_config)
arviointi = AssistantAgent(nimi="arviointi", llm_config=llm_config)

# Määritä keskustelun virta agenttien välillä
opettaja.laheta_viesti("Tänään aiheena on differentiaaliyhtälöt. Tutustumme niihin.")
opiskelija.laheta_viesti("Voitko selittää derivaatan käsitteen?")
opettaja.laheta_viesti("Derivaatta edustaa funktion muutosnopeutta. Tässä on yksinkertainen selitys…")

[/koodi]

Edistyneet käsitteet: Tehtävän suorittaminen ja koodin generointi

AutoGen tukee monimutkaisten työvirran suorittamista, joissa agentit eivät ainoastaan generoi, vaan myös suorittavat ja debuggaavat koodia. Oletetaan skenaario, jossa agentit yhteistyössä osallistuvat ohjelmistokehitystehtäviin:

  1. Skenaario: Sinun on automatisoitava koodin generointi-, testaus- ja debuggausprosessi ohjelmistoprojektissa.
  2. Agenttien roolit:
    • Koodin generoija-agentti: Kirjoittaa koodia käyttäjän antamien speksien perusteella.
    • Testaaja-agentti: Suorittaa automaattisia testejä koodin validointiin.
    • Debuggaaja-agentti: Tunnistaa ja korjaa ongelmat itsenäisesti.

Suorittamisen virta esimerkki:

  1. Koodin generoija-agentti kirjoittaa Python-koodin, joka toteuttaa tietyn toiminnon.
  2. Testaaja-agentti suorittaa yksikkötestit, ilmoittaen virheet, jos sellaisia ilmenee.
  3. Debuggaaja-agentti analysoi virheet, parantaa koodia ja suorittaa testit uudelleen, kunnes koodi läpäisee testit.

Tämä automaattinen sykli vähentää kehitysaikaa ja parantaa koodin luotettavuutta.

Virheiden käsittely ja jatkuva parantaminen

AutoGen on varustettu vahvoilla virheenkäsittelymekanismeilla. Agentit voidaan ohjelmoida diagnosoimaan ongelmat, yrittämään tehtävän uudelleen tai pyytämään ihmisen väliintuloa, kun tarve vaatii. Tämä itseparantamiskyky varmistaa, että myös monimutkaiset työvirrat voidaan suorittaa sulavasti ajan myötä.

Esimerkki: Itseparantava työvirta

  • Jos agentti kohtaa koodin suorittamisvirheen, se voi:
    • Analysoida virhelokin.
    • Muokata koodia virheen korjaamiseksi.
    • Suorittaa tehtävän uudelleen varmistamaan korjauksen.

Tämä iteratiivinen lähestymistapa tekee AutoGenista voimakkaan työkalun skenaarioihin, joissa luotettavuus ja tarkkuus ovat kriittisiä.

AutoGenin potentiaali

Perinteisten automaatiotyökalujen häirintä

AutoGenin lähestymistapa automaatioon moniagenttien yhteistyön kautta on merkittävä parannus perinteisiin Robotic Process Automation (RPA) -työkaluihin. Hyödyntämällä LLM:itä ja edistyneitä AI-tekniikoita, AutoGen pystyy käsittelemään monimutkaisempia tehtäviä ja sopeutumaan dynaamisiin ympäristöihin tehokkaammin kuin staattiset RPA-botit.

AutoGenin rooli pilvi-alkuperäisissä strategioissa

AutoGen-agentit on suunniteltu toimimaan tilattomasti konteinereissa, mikä tekee niistä ihanteellisia pilvi-alkuperäisille ympäristöille. Tämä kyky mahdollistaa helpon skaalautuvuuden, koska organisaatiot voivat käyttää tuhansia samanlaisia agenteja käsittelemään vaihtelevia työkuormia.

Vertailu muihin kehyksiin

Vaikka markkinoilla on useita moniagenttikehyksiä, AutoGenin sulava integraatio Microsoftin ekosysteemin (Azure, Microsoft 365 jne.) kanssa antaa sille erityisen etulyöntiaseman. Tämä integraatio mahdollistaa yhdenmukaisemman työvirran, erityisesti yrityksille, jotka ovat jo Microsoftin ympäristössä.

Haasteet ja huomioon otettavat seikat

Vaikka AutoGen ja AutoGen Studio tarjoavat voimakkaita työkaluja AI-kehitykseen, on tärkeää ottaa huomioon seuraavat haasteet:

  • Turvallisuus: Itsenäisten agenttien, jotka voivat suorittaa koodia, käyttäminen sisältää sisäisiä riskejä. Kehittäjien on toteutettava vahvat turvallisuusjärjestelyt estämään epäviralliset toimet.
  • Skaalautuvuus: Vaikka AutoGen on suunniteltu jakaville järjestelmille, sovelluksen skaalauttaminen, joka sisältää tuhansia agenteja, voi olla resursseja vaativa ja edellyttää huolellista infrastruktuurin suunnittelua.
  • Eettiset huomioon otettavat seikat: Kuten minkä tahansa AI-teknologian kohdalla, on olemassa eettisiä huomioon otettavia seikkoja, erityisesti kun otetaan käyttöön agenteja, jotka vuorovaikuttavat itsenäisesti kanssa.

Johtopäätös

AutoGen-kehys avaa uusia tapoja älymäisten, moniagenttijärjestelmien rakentamiseen. Sen kyky automatisoida monimutkaisia työvirran, vahva yhteisö, koodin suorittaminen ja agenttien yhteistyön mahdollistaminen erottaa sen muista AI-kehyksistä.

Olen viettänyt viimeiset viisi vuotta uppoutumalla kiinnostavaan koneoppimisen ja syvän oppimisen maailmaan. Minun intohimoni ja asiantuntemukseni ovat johtaneet minun osallistumiseen yli 50:een monipuoliseen ohjelmistosuunnitteluhankkeeseen, joissa on erityisesti painottunut AI/ML. Minun jatkuva uteliaisuuteni on myös ohjannut minun luontaisen kielen prosessoinnin pariin, jota haluan tutkia tarkemmin.