Microsoft AutoGen este cel mai avansat și flexibil framework de orchestrare a sistemelor multi-agent capabile să colaboreze autonom, să scrie și să execute cod în medii sigure (Docker), să utilizeze unelte personalizate și să rezolve sarcini complexe prin conversații iterative.
Această secțiune oferă o documentație exhaustivă structurată pe 9 capitole specializate: de la conceptele de bază (ConversableAgent, AssistantAgent, UserProxyAgent) și orchestrarea avansată a grupurilor (GroupChat, selecție dinamică a vorbitorilor), până la arhitectura asincronă modernă AutoGen 0.4, sistemul universal Magentic-One și mediul vizual AutoGen Studio.
Instalare Rapidă AutoGen
Alegeți comanda potrivită în funcție de ecosistemul vizat:
# Versiunea stabilă clasică (0.2) cu suport complet de instrumente
pip install pyautogen
# Noul ecosistem AutoGen 0.4 complet asincron și modular
pip install autogen-agentchat autogen-ext[openai,docker]
# Lansarea interfeței vizuale AutoGen Studio
pip install autogenstudio
autogenstudio ui --port 8081
Ghidul Complet al Comenzilor, Claselor & Tehnicilor AutoGen
Tabelul de mai jos centralizează toate clasele, metodele, uneltele și tehnicile de producție din ecosistemul Microsoft AutoGen:
| Comandă / Clasă / Tehnică AutoGen | Descriere Tehnică & Caz de Utilizare |
|---|---|
| Fundamente, Arhitectură & Configurare | |
| Noua Arhitectură Modulară AutoGen 0.4 (AgentChat) | Trecerea la noul ecosistem complet asincron cu separare clară între modele, runtime și agenți. |
| Conectarea AutoGen la Modele Locale (Ollama, vLLM & LM Studio) | Rularea sistemelor multi-agent 100% private fără costuri de API extern, folosind servere locale compatibile OpenAI. |
| Instalarea Pachetului Microsoft AutoGen (0.2 & 0.4) | Configurarea mediului de lucru Python și instalarea pachetelor principale AutoGen cu extensii opționale. |
| Structura Fișierului OAI_CONFIG_LIST | Formatul standard JSON pentru declararea conexiunilor la OpenAI, Azure OpenAI, Anthropic sau servere locale. |
| Arhitectura Multi-Agent: Actor Model și Mesagerie Asincronă | Înțelegerea modului în care agenții comunică prin schimb de mesaje structurate și își mențin starea internă. |
| Configurarea Modelelor LLM cu config_list_from_json | Încărcarea flexibilă a credențialelor și parametrilor de generare din fișiere de configurare sau variabile de mediu. |
| Gestionarea Limitelor de Rata (Rate Limits) & Retry Policies | Protejarea sistemului împotriva întreruperilor cauzate de RateLimitError și timeouts temporare. |
| Runtime-ul Agenților în AutoGen 0.4 (SingleThreadedAgentRuntime) | Motorul intern responsabil de livrarea mesajelor, rutarea apelurilor și execuția asincronă. |
| Jurnalizarea Sesiunilor Multi-Agent cu runtime_logging | Auditarea fiecărei replici, a codului generat și a costurilor API într-o bază de date SQLite dedicată. |
| Sistemul de Caching pentru Reducerea Costurilor de API | Salvarea răspunsurilor LLM pe disc sau în Redis pentru reluarea instantanee a testelor fără costuri suplimentare. |
| Tipuri de Agenți & Conversații Directe | |
| Rolul și Configurarea Clasei AssistantAgent | Agentul configurat implicit pentru a scrie cod Python, a analiza date și a propune soluții la problemele propuse. |
| Clasa Fundamentală ConversableAgent | Construirea agenților personalizați care pot trimite și primi mesaje, susține conversații și genera acțiuni. |
| Moduri de Intervenție Umană: ALWAYS, NEVER și TERMINATE | Configurarea gradului de autonomie al agenților: aprobare pas cu pas, autonomie completă sau doar la final. |
| Limitarea Replicilor Automate (max_consecutive_auto_reply) | Plafonarea numărului de răspunsuri consecutive generate fără intervenție umană pentru controlul costurilor. |
| Condiții Personalizate de Terminare (is_termination_msg) | Definirea funcțiilor lambda sau callback-urilor care opresc dialogul când s-a atins obiectivul dorit. |
| Proiectarea Mesajelor de Sistem pentru Agenți Specializați | Structurarea instrucțiunilor de rol, limitelor de competență și formatului de ieșire pentru fiecare agent din echipă. |
| Clasa UserProxyAgent: Execuție de Cod și Interfață Umană | Agentul care rulează scripturile generate de asistent pe sistemul local sau în Docker și cere input utilizatorului dacă e necesar. |
| Inițierea Conversației Directe cu initiate_chat | Declanșarea dialogului autonom între doi agenți și colectarea rezultatelor finale ale execuției. |
| Inspectarea Istoricului și Rezultatelor prin ChatResult | Extragerea datelor agregate, a tokenilor consumați și a concluziilor finale dintr-o sesiune de chat. |
| Resetarea Memoriei și Stării Interne a Agenților (reset) | Ștergerea istoricului conversațional pentru a începe o nouă sarcină curată fără influența deciziilor anterioare. |
| Grupuri de Agenți & Orchestram Conversațională | |
| Selecția Automată a Vorbitorilor (speaker_selection_method=’auto’) | Permiterea modelului LLM din manager să aleagă dinamic cel mai potrivit agent pe baza contextului curent. |
| Clasa GroupChat: Organizarea Echipelor Multi-Agent | Definirea mediului partajat în care mai mulți agenți specializați pot discuta și colabora pe aceeași sarcină. |
| Rotația Secvențială între Agenți (Round-Robin) | Trecerea strictă a cuvântului de la un agent la următorul în ordinea declarării în listă. |
| Clasa GroupChatManager: Conducerea și Moderarea Discuției | Agentul moderator care analizează starea grupului și decide ce specialist trebuie să ia cuvântul în continuare. |
| Grafuri de Tranziție Permise (allowed_or_disallowed_speaker_transitions) | Restricționarea strictă a căilor de comunicare pentru a crea arhitecturi de lucru în graf fără cicluri nepermise. |
| Funcții Personalizate de Selecție a Vorbitorilor (Custom Callback) | Implementarea logicii de tranziție bazată pe reguli de business concrete scrise în Python pur. |
| Optimizarea Selecției de Vorbitori cu Modele LLM Rapide | Utilizarea unui model foarte ieftin și rapid (ex: GPT-4o-mini) exclusiv pentru orchestrare și moderare. |
| Selecția Manuală a Vorbitorului prin Intervenție Umană | Solicitarea explicită a utilizatorului de a tasta numele agentului care trebuie să formuleze următorul răspuns. |
| Selecția Aleatorie a Vorbitorilor (Random Selection) | Alegerea aleatorie a următorului vorbitor din listă, utilă în simulări sociale sau jocuri de rol (roleplay). |
| Salvarea și Restaurarea Stării unui GroupChat (Persistence) | Persistența istoricului de mesaje pe disc pentru reluarea unei dezbateri întrerupte fără pierdere de context. |
| Conversații Imbricate cu register_nested_chats | Delegarea automată a sub-sarcinilor către grupuri interne de lucru înainte de formularea răspunsului principal. |
| Execuție de Cod & Securitate | |
| Configurarea Execuției de Cod cu code_execution_config | Setarea directorului de lucru, a mecanismului de rulare și a timpului maxim alocat scripturilor generate. |
| Execuția Securizată de Cod în Containere Izolate Docker | Rularea codului Python generat în containere Docker de unică folosință pentru protecția sistemului gazdă. |
| Clasa DockerCommandLineCodeExecutor pentru Întreprinderi | Managementul avansat al containerelor Docker: refolosirea containerelor calde, limite de RAM și CPU. |
| Limitarea Timpului de Execuție (Timeout Protection) | Oprirea forțată a proceselor blocate în bucle infinite `while True` sau apeluri de rețea fără răspuns. |
| Clasa LocalCommandLineCodeExecutor | Execuția locală directă a scripturilor Python și comenzilor de terminal prin noul modul modular `autogen.coding`. |
| Extragerea Blocurilor de Cod din Răspunsurile Agenților | Mecanismul intern de identificare a tagurilor markdown de tip „`python și „`sh în textul conversației. |
| Execuția de Cod în Medii Virtuale Izolate (VirtualEnv) | Prevenirea poluării pachetelor de sistem prin atribuirea unui mediu Python virtual temporar. |
| Bucla Autonomă de Corectură și Debugging (Feedback Loop) | Procesul iterativ în care erorile din consolă (stderr) devin următorul prompt pentru agentul de programare. |
| Instalarea Dinamică a Pachetelor în Mediul de Execuție | Permiterea agenților de a instala automat bibliotecile lipsă detectate în timpul execuției. |
| Execuția Interactivă în Nuclee Jupyter (Jupyter Code Executor) | Păstrarea stării variabilelor și a tabelelor mari în memorie între blocuri consecutive de cod. |
| Înregistrarea & Apelul de Unelte | |
| Decoratorii register_for_llm și register_for_execution | Separarea clară între schema expusă către modelul LLM și mediul în care se execută funcția Python nativă. |
| Înregistrarea Funcțiilor Python Native ca Unelte | Metoda programmatică de înregistrare a uneltelor fără utilizarea decoratorilor inline. |
| Crearea unei Unelte de Căutare Web în Timp Real | Conectarea echipei multi-agent la internet pentru informații actualizate în timp real. |
| Conectarea Agenților la Baze de Date Relaționale (SQL Tool) | Executarea de interogări SQL `SELECT` cu limitare de citire pentru raportare automată pe baze de date PostgreSQL sau SQLite. |
| Validarea Parametrilor Uneltelor prin Tipuri Pydantic | Garantarea integrității datelor trimise de model înainte de apelarea funcțiilor critice. |
| Definirea Uneltelor Asincrone (Async Tools) | Optimizarea performanței prin unelte `async def` pentru operațiuni I/O de rețea care rulează fără blocaje. |
| Unelte Dedicate pentru Sistemul de Fișiere (FS Tools) | Operațiuni sigure de citire, listare și scriere de fișiere cu validarea căilor de acces. |
| Tratarea Excepțiilor și Notificarea Agentului fără Crash | Încapsularea erorilor în mesaje descriptive pentru a permite agentului să își corecteze parametrii. |
| Generarea Automată a Uneltelor din Specificații OpenAPI / Swagger | Transformarea documentațiilor de API REST în funcții AutoGen gata de apelat fără cod intermediar manual. |
| Integrarea Serverelor Model Context Protocol (MCP Bridge) | Conectarea agenților AutoGen la uneltele standardizate din ecosistemul Anthropic / Model Context Protocol. |
| RAG & Baze de Cunoștințe | |
| Integrarea ChromaDB ca Bază Vectorială Implicită | Persistența colecțiilor de embeddings pe disc fără a necesita un server extern de baze vectoriale. |
| Colaborarea cu RetrieveAssistantAgent | Asistentul configurat pentru a solicita context suplimentar (Update Context) atunci când informația este incompletă. |
| Clasa RetrieveUserProxyAgent pentru Căutare Semantică | Agentul specializat în indexarea documentelor locale, fragmentare semantică și injectarea contextului în prompt. |
| Integrarea Bazei de Date Vectoriale Scalabile Qdrant | Conectarea la clustere Qdrant de producție pentru interogări pe milioane de documente cu latență redusă. |
| Strategii de Fragmentare (Chunking) a Documentelor | Împărțirea inteligentă a fișierelor PDF, Markdown și TXT pe capitole sau paragrafe cu suprapunere semantică. |
| Indexarea Depozitelor de Cod Sursă (Codebook RAG) | Specializarea mecanismului RAG pe fișiere sursă .py, .js, .sql pentru asistență pe baze de cod mari. |
| Căutare Hibridă: Text Complet și Relevanță Semantică | Combinarea algoritmilor BM25 (potrivire exactă de cuvinte cheie) cu vectori densi pentru acuratețe maximă. |
| Mecanismul de Actualizare Dinamică a Contextului (Update Context) | Ciclul în care asistentul solicită mai multe detalii dacă primele fragmente nu conțineau răspunsul. |
| Configurarea Modelelor de Embeddings Personalizate | Folosirea modelelor Sentence Transformers locale sau a API-ului text-embedding-3-small de la OpenAI. |
| Evaluarea Fidelității Răspunsurilor RAG Multi-Agent | Tehnici de audit pentru a măsura halucinațiile și fidelitatea răspunsurilor generate de echipă. |
| AutoGen v0.4 Modern & Arhitectură Event-Driven | |
| Conceptele Fundamentale ale Ecosistemului AutoGen 0.4 | Arhitectura bazată pe evenimente (Event-Driven): mesaje tipizate, topicuri de difuzare și procesare asincronă. |
| Clasa RoutedAgent și Handlerele de Mesaje (@message_handler) | Construirea agenților moderni cu metode dedicate pentru fiecare tip de mesaj primit. |
| Trimiterea Mesajelor Directe între Agenți (Direct Messaging) | Comunicarea de tip cerere-răspuns (Point-to-Point) între doi agenți specifici identificați prin AgentId. |
| Întreruperea Operațiunilor de Lungă Durată (CancellationToken) | Oprirea grațioasă a sarcinilor de calcul tensorial sau a cererilor LLM în derulare la solicitarea utilizatorului. |
| Difuzarea Mesajelor prin Topicuri (Pub/Sub & Broadcast) | Trimiterea unui eveniment către toți agenții abonați la un anumit canal de comunicare fără a le cunoaște adresele directe. |
| Serializarea Mesajelor și Stării în Formate Standard JSON | Salvarea și transmiterea stării agenților prin protocoale de rețea în formate interoperabile. |
| Rularea Distribuită a Agenților prin gRPC (Distributed Runtime) | Execuția agenților pe clustere distribuite pe zeci de mașini diferite conectate prin gRPC de mare viteză. |
| Construirea unui Agent Personalizat de la Zero (BaseAgent) | Moștenirea directă a clasei de bază `BaseAgent` pentru a crea entități cu logică non-LLM (reguli deterministe). |
| Comunicarea Inter-Proces fără Memorie Partajată | Izolarea agenților în procese Python separate ale sistemului de operare pentru stabilitate totală. |
| Configurarea Declarativă a Agenților prin ComponentConfig | Definirea sistemelor multi-agent în fișiere YAML sau JSON încărcabile dinamic la runtime. |
| Magentic-One & Agenți Autonomi Avansați | |
| Arhitectura Generală Magentic-One de la Microsoft | Sistemul multi-agent universal de clasă mondială conceput pentru rezolvarea autonomă a sarcinilor complexe pe internet. |
| Agentul Orchestrator din Magentic-One: Creierul Central | Planificarea inițială a pașilor, evaluarea progresului și delegarea sarcinilor către sub-agenți. |
| Agentul WebSurfer: Navigare Web și Interacțiune Vizuală | Navigarea autonomă pe site-uri, completarea formularelor și extragerea de informații prin capturi de ecran și accesibilitate. |
| Agentul FileSurfer: Explorarea Structurilor de Fișiere | Navigarea în directoare de fișiere, inspecția arhivelor zip și extragerea informațiilor din documente locale. |
| Registrul de Sarcini (Task Ledger) și Urmărirea Progresului | Mecanismul de memorie de lucru care împiedică echipa să repete pașii deja efectuați sau să uite scopul final. |
| Agentul ComputerTerminal: Execuția Comenzilor de Sistem | Consola securizată în care sunt rulate comenzile shell și scripturile produse de agentul Coder. |
| Agentul Coder: Scrierea de Scripturi Complexe de Calcul | Generarea scripturilor avansate de analiză numerică, transformare de date și procesare algoritmică. |
| Personalizarea Agentului WebSurfer pentru Medii Enterprise | Configurarea proxy-urilor corporative, a certificatelor SSL interne și a rezoluției de afișare. |
| Evaluarea Performanței pe Seturi de Date GAIA și WebArena | Măsurarea eficienței Magentic-One în comparație cu agenții umani pe sarcini de cercetare online. |
| Rezolvarea Sarcinilor Multimodale (Text, Imagini și Tabele) | Procesarea combinată a imaginilor, fișierelor grafice și a textului descriptiv într-un singur flux integrat. |
| AutoGen Studio, UI & Producție Enterprise | |
| Instalarea și Lansarea Interfeței Grafice AutoGen Studio | Pornirea mediului vizual fără cod pentru crearea, prototiparea și testarea interactivă a agenților. |
| Crearea și Gestionarea Abilităților (Skills) în Studio | Definirea funcțiilor de utilitate și a uneltelor reutilizabile accesibile tuturor agenților din sistem. |
| Configurarea Fluxurilor de Lucru (Workflows) Vizuale | Conectarea agenților, atribuirea abilităților și setarea modelelor LLM fără a scrie scripturi Python de inițializare. |
| Testarea Interactivă în Secțiunea Playground a Studioului | Depanarea în timp real a conversațiilor dintre agenți cu inspectarea pas cu pas a fiecărei replici. |
| Adăugarea Modelelor Locale în AutoGen Studio | Conectarea interfeței grafice la Ollama sau servere interne pentru testare gratuită și privată. |
| Exportul și Partajarea Configurațiilor (Gallery Export) | Salvarea fluxurilor create în Studio și importarea lor directă în codul aplicației Python de producție. |
| Streaming de Evenimente și Răspunsuri prin WebSockets | Transmiterea fiecărei replici intermediare și a ieșirilor de cod în timp real către interfețe React sau Vue. |
| Încapsularea Echipei de Agenți într-un API REST FastAPI | Publicarea sistemului multi-agent ca microserviciu REST modern gata de integrat în aplicații mobile sau web. |
| Monitorizarea Costurilor și Plafonarea Bugetelor de Rulare | Calculul exact al consumului de tokeni (prompt, completion) și al cheltuielilor în dolari pe fiecare sesiune. |
| Configurația de Producție cu Docker Compose | Rularea completă a stivei AutoGen, AutoGen Studio, bazei vectoriale Qdrant și cache-ului Redis pe servere cloud. |
Discuții, Întrebări & Coduri / Prompturi Învață Microsoft AutoGen: Sisteme Multi-Agent & Conversații Autonome
Ai o nelămurire despre modulul Învață Microsoft AutoGen: Sisteme Multi-Agent & Conversații Autonome, cauți o soluție sau vrei să împărtășești un prompt sau fragment util de cod? Trimite mai jos contribuția ta.
Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau resurse pentru această pagină. Dacă ai testat un prompt sau ai un snippet util, adaugă-l mai jos pentru comunitate.