Povežite se s nama

Umjetna inteligencija

Microsoft AutoGen: Multi-Agent AI Workflows s naprednom automatizacijom

mm
Inteligencija Microsoft AutoGen

Predstavljen Microsoft Research AutoGen u rujnu 2023. kao Python okvir otvorenog koda za izgradnju AI agenata sposobnih za složenu suradnju više agenata. AutoGen je već postao popularan među istraživačima, programerima i organizacijama, s više od 290 suradnika na GitHub i gotovo 900,000 preuzimanja od svibnja 2024. Nadovezujući se na ovaj uspjeh, Microsoft je predstavio AutoGen Studio, sučelje s niskim kodom koje programerima omogućuje brzu izradu prototipa i eksperimentiranje s AI agentima.

Ova biblioteka je za razvoj inteligentnih, modularnih agenata koji mogu besprijekorno komunicirati radi rješavanja zamršenih zadataka, automatiziranja donošenja odluka i učinkovitog izvršavanja koda.

Microsoft je nedavno također predstavio AutoGen Studio koji pojednostavljuje razvoj agenata umjetne inteligencije pružajući interaktivnu platformu prilagođenu korisniku. Za razliku od svog prethodnika, AutoGen Studio minimizira potrebu za opsežnim kodiranjem, nudeći grafičko korisničko sučelje (GUI) gdje korisnici mogu povući i ispustiti agente, konfigurirati tijek rada i testirati rješenja vođena umjetnom inteligencijom bez napora.

Što AutoGen čini jedinstvenim?

Razumijevanje AI agenata

U kontekstu umjetne inteligencije, agent je autonomna softverska komponenta sposobna obavljati određene zadatke, često koristeći obradu prirodnog jezika i strojno učenje. Microsoftov okvir AutoGen poboljšava mogućnosti tradicionalnih AI agenata, omogućujući im da se uključe u složene, strukturirane razgovore, pa čak i da surađuju s drugim agentima kako bi postigli zajedničke ciljeve.

AutoGen podržava široku lepezu tipova agenata i obrazaca razgovora. Ova svestranost omogućuje automatizaciju radnih procesa koji su prije zahtijevali ljudsku intervenciju, što ga čini idealnim za aplikacije u različitim industrijama kao što su financije, oglašavanje, softversko inženjerstvo itd.

Agenti za razgovor i prilagodljivost

AutoGen uvodi koncept "konverzibilnih" agenata, koji su dizajnirani za obradu poruka, generiranje odgovora i izvođenje radnji na temelju uputa prirodnog jezika. Ovi agenti ne samo da su sposobni sudjelovati u bogatim dijalozima, već se također mogu prilagoditi za poboljšanje njihove izvedbe na određenim zadacima. Ovaj modularni dizajn čini AutoGen moćnim alatom za jednostavne i složene AI projekte.

Ključne vrste agenata:

  • Pomoćni agent: Pomoćnik s LLM-om koji se može nositi sa zadacima kao što su kodiranje, otklanjanje pogrešaka ili odgovaranje na složene upite.
  • Korisnički proxy agent: Simulira ponašanje korisnika, omogućujući programerima testiranje interakcija bez uključivanja stvarnog ljudskog korisnika. Također može samostalno izvršavati kod.
  • Agenti za grupni razgovor: Skup agenata koji surađuju, idealno za scenarije koji zahtijevaju više vještina ili perspektiva.

Suradnja s više agenata

Jedna od najimpresivnijih značajki AutoGena je podrška za višeagentna suradnja. Programeri mogu stvoriti mrežu agenata, svaki sa specijaliziranim ulogama, kako bi se učinkovitije uhvatili u koštac sa složenim zadacima. Ovi agenti mogu međusobno komunicirati, razmjenjivati ​​informacije i kolektivno donositi odluke, pojednostavljujući procese koji bi inače bili dugotrajni ili skloni pogreškama.

Osnovne značajke programa AutoGen

1. Multi-Agent Framework

AutoGen olakšava stvaranje mreža agenata gdje svaki agent može raditi samostalno ili u koordinaciji s drugima. Okvir pruža fleksibilnost za dizajniranje radnih procesa koji su potpuno autonomni ili uključuju ljudski nadzor kada je to potrebno.

Obrasci razgovora uključuju:

  • Razgovori jedan na jedan: Jednostavna interakcija između dva agenta.
  • Hijerarhijske strukture: Agenti mogu delegirati zadatke podagentima, što olakšava rješavanje složenih problema.
  • Grupni razgovori: Grupni razgovori s više agenata u kojima agenti surađuju kako bi riješili zadatak.

2. Izvršenje koda i automatizacija

Za razliku od mnogih AI okvira, AutoGen omogućuje agentima da automatski generiraju, izvršavaju i otklanjaju pogreške. Ova je značajka neprocjenjiva za softversko inženjerstvo i zadatke analize podataka, budući da smanjuje ljudsku intervenciju i ubrzava razvojne cikluse. Korisnički proxy agent može identificirati blokove izvršnog koda, pokrenuti ih, pa čak i samostalno poboljšati izlaz.

3. Integracija s alatima i API-jima

AutoGen agenti mogu komunicirati s vanjskim alatima, uslugama i API-jima, značajno proširujući svoje mogućnosti. Bilo da se radi o dohvaćanju podataka iz baze podataka, postavljanju web zahtjeva ili integraciji s Azure uslugama, AutoGen pruža robustan ekosustav za izgradnju aplikacija bogatih značajkama.

4. Čovjek-u-petlji rješavanje problema

U scenarijima u kojima je potreban ljudski unos, AutoGen podržava interakcije čovjek-agent. Programeri mogu konfigurirati agente da zatraže upute ili odobrenje od ljudskog korisnika prije nastavka s određenim zadacima. Ova značajka osigurava da se ključne odluke donose promišljeno i uz pravu razinu nadzora.

Kako AutoGen radi: Duboko zaranjanje

Inicijalizacija i konfiguracija agenta

Prvi korak u radu s AutoGen-om uključuje postavljanje i konfiguriranje vaših agenata. Svaki agent može se prilagoditi za obavljanje specifičnih zadataka, a programeri mogu prilagoditi parametre kao što su LLM model koji se koristi, omogućene vještine i okruženje izvršenja.

Orkestriranje interakcija agenata

AutoGen upravlja tijek razgovora između agenata na strukturiran način. Tipičan tijek rada mogao bi izgledati ovako:

  1. Zadatak Uvod: Korisnik ili agent uvodi upit ili zadatak.
  2. Obrada agenta: relevantni agenti analiziraju unos, generiraju odgovore ili izvode akcije.
  3. Međuagentska komunikacija: Agenti dijele podatke i uvide, surađujući kako bi dovršili zadatak.
  4. Izvršenje zadatka: Agenti po potrebi izvršavaju kod, dohvaćaju informacije ili komuniciraju s vanjskim sustavima.
  5. Završetak: Razgovor završava kada je zadatak dovršen, dosegnut je prag pogreške ili se aktivira uvjet prekida.

Rješavanje pogrešaka i samousavršavanje

AutoGen-ovi agenti dizajnirani su za inteligentno rukovanje pogreškama. Ako zadatak ne uspije ili proizvede netočan rezultat, agent može analizirati problem, pokušati ga popraviti, pa čak i ponoviti njegovo rješenje. Ova sposobnost samoiscjeljivanja ključna je za stvaranje pouzdanih AI sustava koji mogu raditi autonomno tijekom duljeg razdoblja.

Preduvjeti i instalacija

Prije nego počnete raditi s AutoGenom, provjerite dobro razumijete AI agente, okvire orkestracije i osnove programiranja u Pythonu. AutoGen je okvir temeljen na Pythonu, a njegov se puni potencijal ostvaruje u kombinaciji s drugim AI uslugama, poput GPT modela OpenAI ili Microsoft Azure AI.

Instalirajte AutoGen pomoću pip:

pip install pyautogen

Za dodatne značajke, kao što su optimizirane mogućnosti pretraživanja ili integracija s vanjskim bibliotekama:

pip install "pyautogen[blendsearch]"

Postavljanje vašeg okruženja

AutoGen zahtijeva da sigurno konfigurirate varijable okoline i API ključeve. Prođimo kroz temeljne korake potrebne za pokretanje i konfiguriranje vašeg radnog prostora:

  1. Učitavanje varijabli okruženja: Pohranite osjetljive API ključeve u a .env datoteku i učitajte ih pomoću dotenv za održavanje sigurnosti. (api_key = os.environ.get(“OPENAI_API_KEY”))
  2. Odabir konfiguracije vašeg jezičnog modela: Odlučite se za LLM koji ćete koristiti, kao što je GPT-4 iz OpenAI-ja ili bilo koji drugi preferirani model. Postavke konfiguracije kao što su krajnje točke API-ja, nazivi modela i ključevi moraju biti jasno definirani kako bi se omogućila besprijekorna komunikacija između agenata.

Izrada AutoGen agenata za složene scenarije

Da biste izgradili višeagentski sustav, trebate definirati agente i navesti kako se trebaju ponašati. AutoGen podržava različite vrste agenata, svaki s različitim ulogama i mogućnostima.

Stvaranje pomoćnika i korisničkih proxy agenata: Definirajte agente sa sofisticiranim konfiguracijama za izvršavanje koda i upravljanje korisničkim interakcijama:

from autogen import AssistantAgent, UserProxyAgent

# Define LLM configurations
llm_config = {
    "model": "gpt-4",
    "api_key": api_key
}

# Create an Assistant Agent for complex coding and analysis tasks
assistant = AssistantAgent(
    name="coding_assistant",
    llm_config=llm_config
)

# User Proxy Agent to handle user interactions and code execution
user_proxy = UserProxyAgent(
    name="user_proxy",
    code_execution_config={
        "executor": autogen.coding.LocalCommandLineCodeExecutor(work_dir="coding_workspace")
    }
)

  1. Primjer 1: Analiza i vizualizacija složenih podataka Zamislite da trebate automatizirati zadatak gdje AI agent dohvaća financijske podatke, izvodi statističku analizu i vizualizira rezultate. Evo kako AutoGen to može olakšati:
    • Workflow: Pomoćni agent ima zadatak dohvatiti povijesne cijene dionica, izračunati ključne metrike izvedbe i generirati vizualne dijagrame.
    • Tijek izvršenja: Korisnički proxy agent pregledava i izvršava kod koji je generirao pomoćni agent.
  2. Primjer 2: Automatizirani znanstveni asistent za akademske radove U scenariju u kojem vam je potreban pomoćnik za sažimanje istraživačkih radova, AutoGen agenti mogu učinkovito surađivati ​​kako bi to postigli:
    • Istraživanje Dohvaćanje: Jedan agent dohvaća i analizira relevantne akademske radove pomoću tehnika struganja weba.
    • Sažimanje: Drugi agent sažima ključne nalaze i stvara sažeti pregled.
    • Upravljanje citatima: Pomoćni agent upravlja citatima i oblikuje bibliografiju.

Implementacija suradnje s više agenata

Snaga AutoGena leži u njegovoj sposobnosti da koordinira više agenata da dovrše zadatke koji su međusobno ovisni. Istražimo scenarij u kojem implementiramo a Model nastavnik-učenik-ocjenjivač:

  1. Učiteljski agent: Daje objašnjenja i upute na zadanu temu.
  2. Studentski agent: postavlja pitanja i izvodi vježbe za učvršćivanje razumijevanja.
  3. Agent ocjenjivača: Pregledava rad učenika i daje povratnu informaciju.

Ovaj se model može koristiti u obrazovne svrhe, gdje agenti autonomno komuniciraju kako bi olakšali učenje.

Primjer inicijalizacije:

from autogen import AssistantAgent, UserProxyAgent

# Define agents for the educational workflow
teacher = AssistantAgent(name="teacher", llm_config=llm_config)
student = AssistantAgent(name="student", llm_config=llm_config)
evaluator = AssistantAgent(name="evaluator", llm_config=llm_config)

# Define the conversation flow among agents
teacher.send_message("Today's topic is calculus. Let's dive into differential equations.")
student.send_message("Can you explain the concept of a derivative?")
teacher.send_message("A derivative represents the rate of change of a function. Here's a simple explanation...")

Napredni koncepti: Izvršenje zadatka i generiranje koda

AutoGen podržava izvršavanje složenih tijekova rada u kojima agenti ne samo da generiraju, već i pokreću kod i ispravljaju pogreške. Razmotrimo slučaj u kojem agenti surađuju na zadacima razvoja softvera:

  1. scenario: Morate automatizirati proces generiranja koda, testiranja i otklanjanja pogrešaka za softverski projekt.
  2. Uloge agenata:
    • Agent za generiranje kodova: piše kod na temelju specifikacije koju je dao korisnik.
    • Agent za testiranje: Pokreće automatizirane testove za provjeru valjanosti generiranog koda.
    • Agent za otklanjanje pogrešaka: Autonomno identificira i popravlja probleme.

Primjer tijeka izvršenja:

  1. Agent za generiranje koda piše Python kod za implementaciju značajke.
  2. Agent za testiranje pokreće jedinične testove, prijavljujući pogreške ako ih ima.
  3. Agent za otklanjanje pogrešaka analizira pogreške, usavršava kod i ponovno pokreće testove dok kod ne prođe.

Ovaj automatizirani ciklus smanjuje vrijeme razvoja i povećava pouzdanost koda.

Rješavanje pogrešaka i kontinuirano poboljšanje

AutoGen dolazi opremljen robusnim mehanizmima za obradu grešaka. Agenti se mogu programirati da dijagnosticiraju probleme, ponove zadatke ili zatraže ljudsku intervenciju kada je to potrebno. Ova mogućnost samopoboljšanja osigurava da se čak i složeni tijek rada može glatko izvršavati tijekom vremena.

Primjer: tijek rada samoiscjeljivanja

  • Ako agent naiđe na pogrešku u izvršavanju koda, može:
    • Analizirajte zapisnik grešaka.
    • Izmijenite kôd da biste riješili problem.
    • Ponovno izvršite zadatak kako biste provjerili ispravak.

Ovaj iterativni pristup čini AutoGen moćnim alatom za scenarije u kojima su pouzdanost i preciznost ključni.

Potencijal AutoGena

Ometanje tradicionalnih alata za automatizaciju

AutoGenov pristup automatizaciji radnih procesa kroz suradnju agenata značajno je poboljšanje u odnosu na tradicionalnu robotsku automatizaciju procesa (RPA). Korištenjem LLM-ova i naprednih AI tehnika, AutoGen može rješavati složenije zadatke i prilagođavati se dinamičnim okruženjima učinkovitije od statičkih RPA robota.

Uloga AutoGena u izvornim strategijama u oblaku

AutoGen agenti dizajnirani su za rad bez stanja u spremnicima, što ih čini idealnim za implementaciju u izvornim okruženjima u oblaku. Ova mogućnost omogućuje besprijekorno skaliranje, jer organizacije mogu implementirati tisuće identičnih agenata za rukovanje različitim radnim opterećenjima.

Usporedba s drugim okvirima

Iako na tržištu postoji nekoliko okvira s više agenata, besprijekorna integracija AutoGena s Microsoftovim ekosustavom (Azure, Microsoft 365 itd.) daje mu posebnu prednost. Ova integracija omogućuje kohezivniji tijek rada, posebno za poduzeća koja su već ugrađena u Microsoftovo okruženje.

Izazovi i razmatranja

Iako AutoGen i AutoGen Studio nude moćne alate za razvoj umjetne inteligencije, postoje izazovi koje treba razmotriti:

  • Sigurnost: Pokretanje autonomnih agenata koji mogu izvršiti kod dolazi s inherentnim rizicima. Programeri moraju primijeniti snažne sigurnosne mjere kako bi spriječili neovlaštene radnje.
  • skalabilnost: Iako je AutoGen dizajniran za distribuirane sustave, skaliranje aplikacije s tisućama agenata može biti zahtjevno za resurse i može zahtijevati pažljivo planiranje infrastrukture.
  • Etička zabrinutost: Kao i kod svake druge tehnologije umjetne inteligencije, postoje etička razmatranja, posebno kada se koriste agenti koji autonomno komuniciraju s javnošću.

Zaključak

Okvir AutoGen otvara nove načine za izgradnju inteligentnih sustava s više agenata. Njegova sposobnost da automatizira složene tijekove rada, snažna zajednica, izvršavanje koda i olakšava besprijekornu suradnju agenata izdvajaju ga od ostalih AI okvira.

 

Proteklih pet godina proveo sam uranjajući u fascinantan svijet strojnog i dubokog učenja. Moja strast i stručnost naveli su me da pridonesem više od 50 različitih projekata softverskog inženjeringa, s posebnim fokusom na AI/ML. Moja stalna znatiželja također me povukla prema obradi prirodnog jezika, polju koje jedva čekam dalje istraživati.