Come funzionano agenti e copiloti con i modelli linguistici di grandi dimensioni (LLM)
Articolo
Sia gli agenti che i copiloti estendono le funzionalità di un LLM richiamando in modo intelligente funzionalità esterne, ad esempio l'invio di un'e-mail.
Un agente è uno strumento di intelligenza artificiale che può rispondere alle domande e automatizzare i processi per gli utenti. Gli agenti sono in grado di determinare quali funzioni soddisfano l'obiettivo dell'utente e di richiamare tali funzioni al posto suo.
Un copilota è un tipo di agente che lavora fianco a fianco con l'utente. A differenza dell'agente, il copilota non è completamente automatizzato, ma si basa sull'interazione con l'utente. Il copilota può aiutare l'utente a completare un'attività fornendo suggerimenti e consigli.
Si supponga, ad esempio, di creare un'app helper per la chat di posta elettronica. Oltre all’LLM, è necessario anche un plug-in per eseguire azioni correlate alla posta elettronica, nonché plug-in per la ricerca, il riepilogo, la determinazione dell'intento e così via. È possibile usare funzioni native, plug-in pronti all'uso e plug-in personalizzati.
La creazione dei plugin rappresenta solo la metà dell'opera. È comunque necessario richiamare le funzionalità appropriate al momento giusto, processo che può essere soggetto a errori e inefficiente. Un agente può gestirlo al meglio.
L’agente decide infatti la sequenza di funzioni che un LLM può usare per raggiungere un obiettivo dell'utente in modo automatico. Si supponga, ad esempio, di avere un'app di chat che esamina i nuovi elementi della posta in arrivo e determina l'azione richiesta per ogni elemento. Se si configura un agente, lo stesso è in grado di orchestrare le funzioni del plug-in necessarie e di eseguire i passaggi automaticamente.
Componenti di un agente
Ogni agente dispone di tre blocchi predefiniti principali: un utente tipo, plug-in e pianificatori.
Gliutenti tipodeterminano il modo in cui gli agenti rispondono agli utenti o eseguono le azioni.
Iplug-in consentono agli agenti di recuperare informazioni dall'utente o da altri sistemi. È possibile usare plug-in predefiniti e plug-in personalizzati.
Ipianificatori consentono agli agenti di pianificare come usare i plug-in disponibili.
Utenti tipo
L’utente tipo di un agente è la sua identità, mentre i plug-in e i pianificatori che usati dall’agente sono strumenti. Tuttavia, è l’utente tipo che determina il modo in cui usare tali strumenti. Si usano le istruzioni di una richiesta per stabilire l’utente tipo di un agente.
Ad esempio, è possibile usare le istruzioni per dire a un agente che sta aiutando le persone a gestire i messaggi di posta elettronica e per spiegare le sue decisioni man mano che le prende. La richiesta potrebbe avere un aspetto simile al seguente:
prompt = $"""
<message role="system">
You are a friendly assistant helping people with emails.
When you decide to perform an action, explain your decision and then perform the action.
</message>
"""
Plug-in
Si usano plug-in per eseguire operazioni che un LLM non può fare da solo, ad esempio il recupero di dati da origini dati esterne o il completamento di attività nel mondo reale.
Ad esempio, un LLM non può inviare un messaggio di posta elettronica, quindi per aggiungere questa funzionalità a un'app di chat, è necessario creare un plug-in. Per elaborare il testo di messaggi di posta elettronica, è possibile usare plug-in di base, ad esempio ConversationSummaryPlugin.
Assicurarsi di documentare le funzioni dei plug-in in modo chiaro, in quanto i pianificatori usano tali informazioni per determinare le funzioni disponibili.
Pianificatori
Un pianificatore può analizzare le funzioni disponibili e trovare modi alternativi per raggiungere l'obiettivo.
La chiamata delle funzioni plug-in non è sempre efficiente. Si supponga, ad esempio, di voler sommare i numeri compresi tra 1 e 100. Si potrebbe chiamare un plug-in matematico, ma l'LLM dovrebbe effettuare una chiamata separata per ogni numero.
Inoltre, la migliore sequenza e combinazione di funzioni per raggiungere un obiettivo dipende dai dettagli. Si supponga, ad esempio, di creare un'app helper per la chat di posta elettronica e, quindi, di includere un plug-in per abilitare l'invio di messaggi di posta elettronica. Tuttavia, alcuni messaggi potrebbero richiedere un'azione diversa come, ad esempio, una richiesta di riunione senza RSVP, per cui l'invio di una risposta non è necessario, ma lo è invece l'aggiunta di un elemento del calendario. Un pianificatore esamina tutte le funzioni disponibili e trova modi efficienti per raggiungere gli obiettivi.
I copiloti aggiungono l'interazione dell'utente
L'automazione dei processi offre molti vantaggi, ma a volte l'utente deve prendere decisioni durante il percorso. Un agente non può automatizzare le azioni dell’utente. È qui che entrano in gioco i copiloti.
Un agente dell'app della chat di posta elettronica potrebbe produrre il piano seguente per l'invio di un messaggio di posta elettronica:
Ottenere l'indirizzo di posta elettronica e il nome dell'utente
Ottenere l’indirizzo di posta elettronica del destinatario
Ottenere l'argomento del messaggio di posta elettronica
Generare l'oggetto e il corpo del messaggio di posta elettronica
Inviare il messaggio di posta elettronica
Molto utile, ma cosa accade se all'utente non piace il corpo del messaggio di posta elettronica? Un copilota aggiunge un passaggio di interazione utente al piano:
Ottenere l'indirizzo di posta elettronica e il nome dell'utente
Ottenere l’indirizzo di posta elettronica del destinatario
Ottenere l'argomento del messaggio di posta elettronica
Generare l'oggetto e il corpo del messaggio di posta elettronica
Esaminare il messaggio di posta elettronica con l'utente e apportare modifiche
Inviare il messaggio di posta elettronica
App Copilota della chat di kernel semantico
Per iniziare a usare i copiloti, prova Copilota della chat di kernel semantico, un'applicazione di riferimento per la creazione di esperienze di chat con un agente di intelligenza artificiale.
L'origine di questo contenuto è disponibile in GitHub, in cui è anche possibile creare ed esaminare i problemi e le richieste pull. Per ulteriori informazioni, vedere la guida per i collaboratori.
Feedback su .NET
.NET è un progetto di open source. Selezionare un collegamento per fornire feedback:
In questo percorso di apprendimento ci si esercita nella creazione di agenti personalizzati usando Microsoft Copilot Studio. Le competenze che si convalideranno includono la creazione di argomenti di gestione, l'uso di entità e variabili, il miglioramento degli agenti con IA generativa e la pubblicazione di agenti. Lo scenario di questa esperienza rappresenta sfide del mondo reale affrontate da persone con competenze aziendali specifiche che creano agenti personalizzati.