Flashback: Che cos'è un agente?
"Gli agenti sono processi autonomi basati su LLM in grado di interagire con sistemi esterni per raggiungere un obiettivo di alto livello."
Gli agenti sono sistemi basati su LLM in grado di eseguire azioni in base alla richiesta dell'utente e allo scenario, determinati dall'LLM del sistema agente. Un agente minimo è costituito da 1. un componente LLM e 2. strumenti che l'agente può utilizzare. Pensate all'agente come a un robot con un cervello (LLM) + bracci robotici (strumenti). In base alla richiesta, il cervello può "decidere" di fare qualcosa, e poi il braccio eseguirà l'azione decisa dal cervello. Quindi, a seconda dello scenario, il cervello può determinare se sono necessarie ulteriori azioni o terminare se la richiesta è completa.
Il processo di un agente
In precedenza abbiamo introdotto il modello di pipeline "Agent Driver e Agent Worker", che definisce chiaramente ogni singola operazione che si verificherebbe in un processo Agent. Il processo del modello può essere descritto come segue
Agente Driver

- Definire le istruzioni dell'agente. (Richiesta del sistema)
- Formatta la richiesta dell'utente in una conversazione. (Array di messaggi)
- Definire gli strumenti da mettere a disposizione dell'agente.
- Invia tutte le informazioni sopra riportate in un "loop", esegui l'Agent worker fino al completamento del processo.
Agente Lavoratore

- Chiama l'LLM con le istruzioni, la conversazione e le definizioni degli strumenti.
- LLM decide...
- Se è in grado di completare la richiesta, termina la conversazione e passa al punto 7.
- Se sono necessarie chiamate agli strumenti, passare al punto 3.
- Chiama gli strumenti.
- Formatta il risultato dello strumento.
- Aggiungi i risultati dello strumento alla conversazione
- Torna al punto 1.
- La richiesta è completa, l'agente risponde.
La logica
Dalla pipeline Agent Driver e Agent Worker, ecco un'osservazione:
- La pipeline del driver gestisce tutta la "configurazione" dell'agente.
- La pipeline dei lavoratori gestisce il "funzionamento" dell'agente.
Ora, immaginate questo:
Se riuscissimo a racchiudere l'operazione "Agente" in un unico modulo, in modo da poter creare Agenti semplicemente fornendo istruzioni e strumenti, non sarebbe fantastico?
Questo è esattamente ciò che fa Agent Snap. Agent Snap combina PipeLoop Snap e la pipeline Agent Worker, in modo che tutte le operazioni dell'agente avvengano in un unico Snap.
Informazioni e prerequisiti
Ora, prima di sognare di avere una tua compagnia di agenti, dato che creare agenti è diventato così semplice, ci sono alcune informazioni da conoscere e condizioni da soddisfare prima che ciò possa avvenire.
1. Gli Agent Snap sono specifici per ogni modello
Agenti specifici per modello
Agent Snap è una combinazione di "loop" e Agent Worker, pertanto anche il provider LLM da utilizzare per Agent Snap è fisso. Questo design consente agli utenti di mantenere la loro combinazione preferita di parametri del modello personalizzati.
2. Le definizioni delle funzioni (strumenti) devono essere collegate a una pipeline per poter essere eseguite.


In precedenza, in una pipeline Agent Worker, lo Snap Tool Calling era collegato agli Snap Pipeline Execute per eseguire le chiamate agli strumenti, ma con lo Snap Agent non è più così. Al contrario, una definizione di funzione dovrebbe includere il percorso della pipeline per eseguire l'esecuzione se questo strumento viene chiamato. In questo modo, possiamo garantire che ogni chiamata allo strumento possa essere eseguita con successo. Se l'utente non fornisce una pipeline di strumenti con la definizione della funzione, lo Snap Agent non procederà.
3. Input e output previsti di una pipeline di strumenti
Quando un LLM richiede una chiamata allo strumento, il LLM fornirà il nome dello strumento da chiamare e i parametri corrispondenti da chiamare. Agent Snap decomprimerà i parametri e li invierà direttamente alla pipeline dello strumento.
Ecco un esempio: ho uno strumento get_weather, che accetta city: string come parametro. L'LLM decide di richiamare lo strumento get_weather con il seguente payload:
{ "name": "get_weather", "parameters": { "city": "New York City" }, "sl_tool_metadata": { ... } }
Affinché ciò funzioni, la mia pipeline di strumenti deve essere in grado di accettare il documento di input:
{"city": "New York City"}
Come nota a margine, l'oggettosl_tool_metadata sarà disponibile anche per la pipeline di strumenti come input per gli strumenti APIM e OpenAPI.
Ora, supponiamo che la mia pipeline di strumenti abbia recuperato con successo le condizioni meteorologiche di New York City. È il momento che Agent Snap raccolga il risultato di questa chiamata allo strumento. Agent Snap raccoglierà tutto dal documento di output della pipeline di strumenti come risultato della chiamata allo strumento*, in modo che l'LLM possa determinare correttamente i passaggi successivi.
*Nota: con una sola eccezione, se l'output di una "pipeline di strumenti" contiene il campo "messaggi" o "contenuti", verrà trattato come la cronologia delle conversazioni dell'"agente figlio", che verrà filtrata e non sarà inclusa.
Crea un agente con Agent Snap
Abbiamo compreso l'idea, abbiamo esaminato i prerequisiti ed è ora di creare un agente.

In questo esempio, abbiamo un agente con 2 strumenti: uno strumento meteo e uno strumento calendario. Iniziamo con un generatore di prompt per formattare l'input dell'utente. Quindi definiamo gli strumenti a cui l'agente può accedere.
Esaminiamo una delle definizioni degli strumenti.
In questo strumento di esempio, possiamo vedere il nome dello strumento, la descrizione dello strumento, i parametri e il percorso della pipeline dello strumento per eseguire questa attività. Ciò soddisfa il requisito di uno strumento da utilizzare da parte di un Agent Snap.

Dopo aver impostato gli strumenti, diamo un'occhiata all'Agent Snap, utilizzando come esempio l'Amazon Bedrock Converse API Agent Snap.
La configurazione di uno Snap agente è simile a quella dello Snap di chiamata dello strumento corrispondente, ad eccezione di alcuni campi aggiuntivi, come un pulsante per visualizzare il flusso dell'agente e una sezione per configurare il funzionamento dell'agente, come il limite di iterazioni e il numero di thread per le esecuzioni della pipeline dello strumento.
Agent Snap gestisce l'intero processo esecutivo e termina quando 1. La richiesta è completa (non sono necessarie ulteriori chiamate allo strumento) oppure 2. Si è verificato un errore.

Voilà! Hai creato un agente.
Dopo che la pipeline dell'agente ha completato un ciclo di esecuzione, l'utente può utilizzare il pulsante "Visualizza flusso agente" nella finestra Agent Snap per vedere gli strumenti richiamati dall'LLM.

Suggerimenti e trucchi per Agent Snap
Diamo un'occhiata alle funzionalità integrate in Agent Snap.
Riutilizzare le pipeline
La maggior parte delle chiamate agli strumenti agentici sono processi che possono essere riutilizzati. Per ridurre al minimo il carico di esecuzione, è possibile utilizzare la funzione "Riutilizza pipeline dello strumento". Questa funzione consente di riutilizzare le istanze della pipeline dello strumento, in modo che l'agente non debba generare una pipeline ogni volta che viene chiamato uno strumento.
Per utilizzare questa funzione, la pipeline dello strumento da riutilizzare deve essere "Ultra compatibile"; in caso contrario, l'esecuzione della pipeline si bloccherebbe e lo Snap dell'agente finirebbe per andare in timeout.
Monitoraggio delle chiamate agli strumenti
Gli agenti possono essere di lunga durata; non è raro che un agente esegua più iterazioni. Per vedere cosa succede durante il processo, Agent Snap ha integrato un sistema di monitoraggio durante la convalida. L'utente potrà vedere l'indice di iterazione, lo strumento attualmente richiamato e i parametri utilizzati per la chiamata dello strumento nella barra di stato delle statistiche della pipeline.
Selezionando l'opzione "Monitor call tool" (Monitoraggio chiamata strumento), il parametro viene incluso nell'aggiornamento di stato, che è una funzione opzionale. Se l'utente non desidera divulgare le informazioni a SnapLogic, deve disattivare questa opzione.
Avvertenze
La configurazione dell'agente è un processo delicato; un errore può potenzialmente causare malfunzionamenti. Agent Snap dispone di una serie di funzioni di avviso integrate, che consentono all'utente di essere più consapevole di ciò che potrebbe andare storto.
1. Processo agente completato prima del completamento di tutte le chiamate dello strumento

In Agent Snap è presente un'impostazione del limite di iterazioni che limita il numero di iterazioni che l'agente può eseguire. Se l'utente ha specificato un limite inferiore, causando l'arresto dell'agente mentre LLM è ancora in attesa delle chiamate dello strumento, verrà visualizzato questo avviso per segnalare all'utente che l'esecuzione è incompleta.
2. Il percorso della pipeline degli strumenti non è definito

Una definizione di funzione (strumento) da utilizzare da parte di Agent Snap deve includere un percorso della pipeline dello strumento, in modo che Agent Snap possa collegarsi alla pipeline effettiva che esegue l'operazione. Se il percorso della pipeline non è incluso nella definizione della funzione, verrà visualizzato questo avviso per segnalare all'utente che l'Agent non procederà.
3. Denominazione duplicata degli strumenti

Man mano che cerchiamo di aggiungere sempre più strumenti all'Agent Snap, è probabile che due strumenti abbiano lo stesso nome. L'Agent Snap ha la capacità di rinominare gli strumenti inviati all'LLM, continuando comunque a collegarli alla pipeline corretta. Nelle statistiche della pipeline sarà inoltre disponibile un avviso per segnalare all'utente il cambiamento nel comportamento.
Tempistiche di rilascio
Agent Snap è la base dell'Agent SnapLogic di nuova generazione. Nella versione di novembre rilasceremo 4 Agent Snap:
- Agente API Amazon Bedrock Converse
- Agente di completamento chat OpenAI
- Agente di completamento chat Azure OpenAI
- Agente API Google Gemini
Per utilizzare al meglio gli Agent Snap, introdurremo nuove funzionalità anche in alcuni dei nostri generatori di funzioni. Ecco l'elenco dei generatori di funzioni Snap che saranno presto modificati:
- Generatore di funzioni APIM Snap
- Generatore di funzioni OpenAPI Snap
- Generatore di funzioni MCP Snap
Speriamo che siate entusiasti quanto noi di questa novità.


