Scheda di Trucco Quadro Multi-Agent AutoGen¶
Panoramica¶
AutoGen è un innovativo framework open source sviluppato da Microsoft Research che rivoluziona lo sviluppo delle applicazioni di Large Language Model (LLM) consentendo sofisticate conversazioni multi-agenti. A differenza dei tradizionali sistemi mono-agenti, AutoGen permette agli sviluppatori di creare applicazioni complesse componendo più agenti AI specializzati che possono dialogare tra loro, collaborare alle attività, e anche coinvolgere gli esseri umani nel ciclo senza soluzione di continuità.
Ciò che rende AutoGen particolarmente potente è la sua enfasi sulla conversazione come il meccanismo primario per l'interazione agente. Questo approccio consente una collaborazione naturale, flessibile e dinamica tra agenti, rispecchiando come i team umani lavorano insieme per risolvere problemi complessi. AutoGen fornisce un ricco insieme di strumenti per la definizione di ruoli, funzionalità e protocolli di comunicazione, rendendo possibile la costruzione di sistemi altamente adattabili e intelligenti che possono affrontare una vasta gamma di compiti, dalla generazione di codice e dall'analisi dei dati alla scrittura creativa e alla pianificazione strategica.
Il framework è progettato sia per la semplicità che per l'estensibilità, offrendo astrazioni di alto livello per modelli comuni multi-agenti, fornendo anche opzioni di personalizzazione profonda per casi di uso avanzato. Con la sua architettura e il supporto per LLM e strumenti diversi, AutoGen consente agli sviluppatori di costruire applicazioni AI di nuova generazione più capaci, robuste e allineate all'uomo che mai.
Installazione e configurazione¶
Installazione di base¶
Traduzione:
Configurazione dell'ambiente¶
Traduzione:
Struttura del progetto¶
Traduzione:
Concetti core¶
Agenti¶
Gli agenti sono i blocchi di costruzione fondamentali in AutoGen. Sono entità di conversazione che possono inviare e ricevere messaggi, eseguire codice, chiamare funzioni e interagire con gli esseri umani.
Conversabile Agente¶
Questa è la classe base per la maggior parte degli agenti in AutoGen, che fornisce funzionalità di conversazione core.
UserProxyAgent¶
Un agente specializzato che agisce come proxy per gli utenti umani, permettendo loro di partecipare a conversazioni, fornire input ed eseguire il codice.
Assistente¶
Un agente progettato per agire come assistente AI, tipicamente alimentato da un LLM, in grado di scrivere codice, rispondere alle domande e svolgere compiti.
Cambi di gruppo¶
AutoGen supporta conversazioni multi-agenti attraverso GroupChat e GroupChatManager, consentendo interazioni complesse tra più agenti.
Configurazione dell'agente¶
Creazione agente di base¶
Traduzione:
Personalizzazione dell'agente avanzato¶
Traduzione:
Tipi di agente specializzati¶
Traduzione:
Conversazioni dell'agente¶
Chat a due livelli¶
Traduzione:
Chat di gruppo con agenti multipli¶
Traduzione:
Controllo di conversazione avanzato¶
Traduzione:
Integrazione di strumenti e funzioni¶
Utilizzo di strumenti integrati¶
AutoGen non ha una grande serie di strumenti pre-costruiti come alcuni altri quadri. Invece, si concentra sul consentire agli agenti di eseguire il codice (scritti di Python, comandi shell) che può quindi interagire con qualsiasi libreria o strumento disponibile nell'ambiente di esecuzione.
Calling funzione personalizzata (Skills)¶
Traduzione:
Esecuzione del codice¶
Traduzione:
Human-in-the-Loop (HIL)¶
Configurazione dell'input umano¶
Traduzione:
Input umano asincrono¶
AutoGen gestisce principalmente HIL sincronizzato all'interno del flusso di conversazione. Per HIL asincrono più complesso, in genere si integra con la gestione delle attività esterne o sistemi UI.
Caratteristiche avanzate¶
Agenti Teachable¶
¶
Retrival Augmented Generation (RAG)¶
Traduzione:
Conversazioni multi-modali¶
AutoGen supporta ingressi multimodali (ad esempio immagini) se il LLM sottostante lo supporta (come GPT-4V). Traduzione:
Modelli del flusso di lavoro dell'agente¶
Riflessione e autogestione¶
Traduzione:
Squadre di agenti gerarchici¶
Questo è tipicamente ottenuto utilizzando GroupChatManager dove un agente (ad esempio, un manager o un pianificatore) coordina altri agenti specializzati. Traduzione:
Migliori Pratiche¶
Agente Design¶
- Clear Roles: Definire ruoli e responsabilità specifiche e non ambigue per ogni agente.
- ** Messaggi di sistema**: Utilizzare messaggi di sistema dettagliati per guidare il comportamento dell'agente e persona.
- Tool Access: Fornire agenti solo con gli strumenti di cui hanno bisogno per il loro ruolo.
- LLM Configuration: Tailor Temperatura LLM, modello e altre impostazioni per agente per prestazioni ottimali.
Gestione delle conversazioni¶
- Condizioni di Termini: Definisci chiaramente quando una conversazione o un'attività è completa.
- Max Turns/Rounds: Impostare i limiti per prevenire loop infinite o costi eccessivi.
- Scelta di speaker: Scegliere i metodi di selezione dei diffusori appropriati per le chat di gruppo (auto, round_robin, custom).
- Si'. Utilizzare la sintesi di conversazione per le chat di lunga durata per gestire la finestra di contesto.
Codice di esecuzione Sicurezza¶
- Sandboxing: Usa Docker (CODE_BLOCK_17_ in
code_execution_config
) per un'esecuzione del codice più sicura, specialmente con il codice non attendibile. - Human Review: Implementare la recensione umana (
human_input_mode="ALWAYS"
o"TERMINATE"
) prima di eseguire il codice potenzialmente rischioso. - Ambiente limitato: Se non si utilizza Docker, assicurarsi che l'ambiente di esecuzione abbia autorizzazioni limitate.
Gestione dei costi¶
- Model Selection: Utilizzare modelli meno costosi (ad esempio, GPT-3.5-turbo) per compiti o agenti più semplici.
- Max Tokens/Turns: Limitare la lunghezza delle conversazioni e delle uscite LLM.
- Caching: Usa
autogen.ChatCompletion.set_cache()
per memorizzare le risposte LLM e ridurre le chiamate ridondanti. - Monitoring: Tracciare l'utilizzo dei token e le API costano da vicino.
Debug¶
-
Verbose Logging # AutoGen fornisce logging; aumentare la verbosity per debug.¶
- Step-by-Step Execution: Per le chat di gruppo complesse, prendere in considerazione la selezione manuale dell'altoparlante o i breakpoint per capire il flusso.
- **Agent Isolation ** Agenti di prova individualmente prima di integrarli in gruppi più grandi.
Risoluzione dei problemi¶
Questioni comuni¶
Agenti Stuck in Loops¶
- ********: Condizioni di terminazione vaghe, obiettivi di agente in conflitto, o interazioni eccessivamente complesse.
- Solution: Refine
is_termination_msg
lambda, semplificare le istruzioni dell'agente, impostaremax_consecutive_auto_reply
_ omax_round
Limiti.
Agente inaspettato Comportatore¶
- ********: Messaggi di sistema ambigui, interpretazioni sbagliate LLM o configurazioni LLM errate.
- Solution: rendere i messaggi di sistema più specifici, sperimentare con diverse temperature LLM, garantire una corretta funzione / descrizioni degli strumenti.
Inadempimento di codice¶
- ********: Mancano dipendenze nell'ambiente di esecuzione, codice errato generato da LLM, problemi di autorizzazione.
- Solution: Assicurarsi che tutti i pacchetti necessari vengano installati (o utilizzare Docker), migliorare i prompt per la generazione di codice, controllare i permessi di file/network.
Problemi di chiamata della funzione¶
- ********: descrizioni delle funzioni non corrette fornite a LLM, bug nel codice funzione personalizzato, LLM non riesce a generare JSON valido per argomenti.
- Solution: Assicurare che le descrizioni delle funzioni siano chiare e parametri di corrispondenza, testare accuratamente le funzioni personalizzate, affinare i prompt per guidare LLM verso il formato JSON corretto.
*Questo foglio di scacchi AutoGen fornisce una guida completa per la costruzione di sofisticate applicazioni AI multi-agenti. Utilizzando il framework di conversazione AutoGen_s, gli sviluppatori possono creare sistemi AI altamente capaci e collaborativi. Ricordatevi di consultare la documentazione ufficiale AutoGen per le ultime funzionalità e i riferimenti API dettagliati. *