Vai al contenuto

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, impostare max_consecutive_auto_reply_ o max_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. *