Guida di Agentforce per creare agenti affidabili
Un quadro per 5 livelli di determinismo
Un quadro per 5 livelli di determinismo
Olfa Kharrat, Director of Product Management - Agentforce
Reinier van Leuken, Senior Director of Product Management - Agentforce
Confronto tra agenti e chatbot
Blocchi costitutivi e ragionamento agentico di Agentforce
Definizione dei livelli di controllo agentico
Controllo agentico di secondo livello: istruzioni
Controllo agentico di terzo livello: radicamento nel contesto
Controllo agentico di quarto livello: variabili
Controllo agentico di quinto livello: azioni deterministiche
La fiducia è il valore più importante di Salesforce sin dalla sua fondazione nel 1999, quando abbiamo introdotto un nuovo modello tecnologico di cloud computing e SaaS. Le aziende si affidano alla nostra azienda archiviando dati preziosi nel cloud, sapendo che sono protetti e gestiti da controlli di accesso adeguati. Questo aspetto rimane fondamentale, ma nell'era dell'AI agentica la definizione di fiducia si è ulteriormente allargata. Poiché le aziende fanno sempre più affidamento sugli agenti autonomi per lo svolgimento di funzioni aziendali importanti, questi ultimi devono diventare partner di lavoro fidati, che garantiscono precisione, pertinenza e, soprattutto, affidabilità.
Quindi, come si crea un agente affidabile? Di solito, "essere affidabili" significa fornire lo stesso risultato partendo dallo stesso input. Tuttavia, gli agenti non funzionano necessariamente in questo modo, perché si basano su modelli linguistici di grandi dimensioni (LLM, Large Language Model) che per natura non sono deterministici. Questa caratteristica offre agli agenti la flessibilità per sviluppare soluzioni creative specifiche per determinate circostanze, senza dover programmare esplicitamente ogni condizione o situazione che riscontrano. Tuttavia, gli agenti hanno anche bisogno di governance per conformarsi ai requisiti aziendali e rispettare linee guida operative. Quando eseguono processi aziendali, devono dimostrare affidabilità e produrre risultati conformi a vincoli deterministici. Il determinismo impone una rigidità e una disciplina che si scontra con l'autonomia e la flessibilità degli agenti. Pertanto, la chiave per creare agenti di successo è trovare il giusto equilibrio tra flessibilità creativa e controllo aziendale.
Questo documento affronta le considerazioni più importanti per lo sviluppo di agenti affidabili. Definisce cinque livelli di controllo agentico e fornisce le best practice per assumere e mantenere il controllo sul comportamento agentico per ciascuno di questi livelli. La guida illustra le modalità di funzionamento del motore di ragionamento di Agentforce. Di pari passo con i nuovi sviluppi di Agentforce, questo documento verrà aggiornato per riflettere le best practice più recenti.
Esso presuppone una familiarità di base con la progettazione e la creazione di agenti Agentforce. Per un'introduzione a Agentforce, consigliamo quanto segue:
Per comprendere meglio il comportamento agentico, confrontiamo prima gli agenti con le loro controparti rigide: i chatbot.
Chatbot: ligi alle regole
I chatbot seguono alberi decisionali predeterminati che strutturano i dialoghi a cui partecipano. Il percorso attraverso questi alberi decisionali dipende dalle risposte fornite dall'utente, che possono essere selezionate tra una serie di opzioni predefinite o possono essere a testo libero. In caso di risposta a testo libero, viene utilizzato un modello predittivo per la classificazione dell'intento. Questi alberi tracciano tutti i potenziali percorsi conversazionali e dettano le risposte del chatbot in ogni fase. Il comportamento del chatbot è rigidamente determinato da regole predefinite. Se l'input di un utente non corrisponde a un percorso riconosciuto o se il modello predittivo non è stato addestrato per riconoscere un determinato intento, il chatbot non risponde in modo adeguato.
Agenti: adattivi e intuitivi
Al contrario, gli agenti sfruttano la potenza degli LLM e le loro funzionalità avanzate di elaborazione del linguaggio naturale (NLP). Gli LLM consentono agli agenti di comprendere l'intento alla base dell'input di un utente, anche se formulato in modo imprevisto. In base alla sua comprensione dell'intento, l'agente può selezionare l'azione più appropriata tra una serie di possibilità. Può persino formulare risposte completamente nuove. Questa flessibilità e adattabilità distinguono gli agenti dalle loro controparti dei chatbot.
Un'analogia culinaria
La differenza tra chatbot e agenti può essere paragonata alla differenza tra un cuoco alle prime armi e uno chef esperto.
In sintesi, la differenza fondamentale tra agenti e chatbot risiede nell'adattabilità e capacità dei primi di gestire input imprevisti.
Una caratteristica distintiva dell'intelligenza di un agente risiede nella sua capacità di orchestrare e attivare le azioni più adatte al momento giusto. Questa flessibilità elimina la necessità di programmare nel dettaglio ogni potenziale interazione con l'utente.
In Agentforce, la creazione di un agente prevede l'impostazione di argomenti, azioni e istruzioni e descrizioni in linguaggio naturale.
Gli argomenti sono le "attività da svolgere" per l'agente. Hanno attributi come la descrizione della classificazione, l'ambito e le istruzioni che definiscono ogni attività e come viene svolta. Contengono azioni che l'agente può eseguire, insieme a istruzioni che indicano come eseguirle.
Le azioni sono le attività predefinite che l'agente può eseguire per svolgere il proprio lavoro. Esistono cinque diversi tipi di azioni:
La definizione di un agente contiene istruzioni in linguaggio naturale che descrivono gli asset dell'agente e definiscono le linee guida entro le quali deve operare. Le istruzioni servono per le azioni e gli argomenti.
Questi vari blocchi costitutivi, se sviluppati correttamente, aiutano un agente ad assolvere allo scopo previsto, pur rimanendo entro limiti adeguati.
Il motore di ragionamento di Agentforce orchestra questi blocchi costitutivi in modo da garantire il corretto comportamento agentico. Sfrutta le istruzioni e le descrizioni in linguaggio naturale definite in argomenti e azioni. Si basa su React, un nuovo paradigma di ragionamento per gli LLM introdotto nel 2022 da Yao et al. Questo paradigma imita la gestione umana delle attività ragionando su un problema, agendo, osservando i risultati dell'azione e ripetendo il ciclo fino al completamento dell'attività.
Gli agenti Salesforce aderiscono a questo paradigma:
Il motore di ragionamento utilizza gli LLM in ogni fase di ragionamento e osservazione. A seconda del tipo di azione, può anche ricorrere agli LLM nella fase di azione.
Questa sezione descrive un approccio a più livelli per migliorare il determinismo degli agenti. Ogni livello si basa su quello precedente, con una complessità e funzionalità crescenti che conferiscono un maggiore controllo sul comportamento dell'agente.
Il primo livello si concentra sul consentire agli agenti di identificare autonomamente gli argomenti pertinenti e, quindi, di selezionare le azioni appropriate utilizzando obiettivi anziché istruzioni esplicite. Il meccanismo di base prevede la capacità di comprendere il contesto per rispondere agli input degli utenti. Sebbene tecnicamente sia possibile aggiungere qualsiasi tipo di azione, a questo livello si presuppone che le azioni siano azioni di richiesta. Gli argomenti privi di istruzioni insieme alle azioni di richiesta forniscono un modo rapido ed efficiente per gestire le query più comuni.
A questo livello, l'importante è stabilire un livello di base di reattività e autonomia degli agenti attraverso una comprensione dinamica.
Partendo dalle azioni senza istruzioni selezionate, questo livello introduce istruzioni esplicite per guidare il comportamento degli agenti. L'aggiunta di istruzioni precise aumenta il controllo sul modo in cui gli agenti rispondono alle diverse situazioni. Le istruzioni degli agenti possono essere espresse sotto forma di regole, linee guida, limiti di azione ed esempi. Questi forniscono all'agente indicazioni specifiche su come gestire gli argomenti, eseguire le azioni ed elaborare i propri output. L'obiettivo di questo livello è fornire indicazioni chiare all'agente per aumentare la coerenza e migliorare il rispetto delle linee guida e dei processi aziendali.
Con "radicamento nel contesto" si intende il collegamento della comprensione e delle risposte dell'agente a fonti di informazioni esterne. Aiuta a garantire che le informazioni fornite dall'agente siano accurate, aggiornate e pertinenti. Questo livello integra l'accesso a database, Knowledge Base e altri repository di dati. Radicare le risposte dell'agente a dati verificati ne migliora l'affidabilità e l'attendibilità.
Questo livello aggiunge la capacità degli agenti di lavorare con variabili. Le variabili consentono agli agenti di personalizzare le interazioni, conservare il contesto in più interazioni e regolare dinamicamente il proprio comportamento in base a dati specifici ricavati durante la sessione. Ad esempio, un agente potrebbe acquisire le preferenze dell'utente, i dettagli dell'ordine e altre informazioni pertinenti e utilizzare tali dati per personalizzare l'interazione. Grazie alle variabili, gli agenti sono meglio attrezzati per gestire interazioni più complesse, specifiche e personalizzate.
Il passaggio finale integra l'agente con le funzionalità principali di Salesforce: Apex, API e flusso. L'integrazione consente all'agente di eseguire azioni complesse all'interno dell'ecosistema Salesforce, come accesso e utilizzo dei dati, attivazione dei workflow e interazione con altri sistemi.
Questo livello trasforma l'agente in un potente strumento in grado di eseguire attività sofisticate e contribuire direttamente ai risultati aziendali.
Partendo da una base di reattività e autonomia, abbiamo un agente dotato solo di argomenti e azioni, con le relative descrizioni. Possiamo utilizzare questo agente di esempio per spiegare i diversi passaggi del motore di ragionamento e mostrare come sfrutta tali descrizioni per selezionare gli argomenti giusti e, quindi, le azioni da eseguire. Omettendo le istruzioni degli argomenti da questo esempio, possiamo osservare che gli agenti di questo primo livello hanno il massimo grado di libertà rispetto agli agenti di livello superiore. Nel primo livello, l'agente è completamente libero di selezionare l'azione che ritiene adeguata in base esclusivamente alla conversazione in corso.
Attività | Passaggi | Descrizione |
---|---|---|
Richiamo dell'agente | 1 | L'agente viene chiamato in causa. |
Classificazione degli argomenti | 2-3 | Il motore analizza il messaggio del cliente e lo associa all'argomento più appropriato in base al nome dell'argomento e alla descrizione della classificazione. |
Assemblaggio del contesto | 4-5 | Una volta selezionato l'argomento, il motore ne raccoglie l'ambito, le istruzioni e le azioni disponibili insieme alla cronologia delle conversazioni. (Nota: le istruzioni entrano in gioco nel secondo livello, Controllo agentico.) |
Processo decisionale |
Utilizzando tutte queste informazioni, il motore determina se: • eseguire un'azione per recuperare o aggiornare le informazioni; • chiedere al cliente altri dettagli; • rispondere direttamente. |
|
Esecuzione delle azioni | 6-8 | Se è necessaria un'azione, il motore la esegue e raccoglie i risultati. |
Ciclo d'azione | Il motore valuta le nuove informazioni e decide nuovamente come procedere, ossia se eseguire un'altra azione, chiedere maggiori informazioni o rispondere. | |
Controllo del radicamento nel contesto | Prima di inviare la risposta finale, il motore verifica che: • si basi su informazioni accurate provenienti da azioni o istruzioni; • segua le linee guida fornite nelle istruzioni dell'argomento ;• rientri nei limiti stabiliti dall'ambito dell'argomento. |
|
Invio della risposta | La risposta basata sul contesto viene inviata al cliente. |
Considerazioni relative al motore di ragionamento:
Il processo di ragionamento prevede quattro fasi principali:
Gli argomenti sono progettati per migliorare l'accuratezza con cui gli agenti classificano l'azione o la sequenza di azioni corrette. Ogni argomento deve includere azioni semanticamente distinte che possono tutte appartenere a una descrizione concisa dell'argomento e, di conseguenza, a una funzione simile dell'agente.
L'argomento corretto viene selezionato dall'LLM del motore di ragionamento (passaggio 2-3 dello schema). Sceglie l'argomento la cui descrizione di classificazione corrisponde maggiormente all'ultima frasi enunciata, utilizzando un prompt apposito che contiene le descrizioni delle classificazioni di tutti gli argomenti e la cronologia delle conversazioni. Oltre alle frasi enunciate e alle risposte degli agenti, la cronologia delle conversazioni include le azioni eseguite e i rispettivi risultati. Inoltre, il prompt incorpora istruzioni cruciali che impongono l'analisi all'interno del contesto della cronologia delle conversazioni e richiedono all'LLM di condividere il proprio ragionamento.
Considerazioni aggiuntive:
Lo scopo degli argomenti è duplice:
Organizzando attentamente le capacità degli agenti in argomenti definiti in modo chiaro e composti da azioni correlate, l'agente può operare in modo più efficiente e prevedibile ed è più facile aggiornarlo ed espanderlo. Esistono due possibili approcci alla progettazione degli argomenti: dall'alto verso il basso (top-down) e dal basso verso l'alto (bottom-up).
Entrambi gli approcci portano a buoni risultati se seguiti correttamente.
Inizia elencando tutte le azioni specifiche che l'agente deve essere in grado di eseguire. In questa fase, è meglio essere molto specifici piuttosto che troppo generici. Evita di cercare di raggruppare o semplificare le azioni troppo in anticipo. L'obiettivo è avere una visione completa e dettagliata di ciò che l'agente può fare.
Ad esempio, nel caso di un agente del servizio clienti, l'elenco iniziale potrebbe includere:
Si fa notare che un'azione come "Risolvi i reclami dei clienti" è troppo ampia in questa fase. Le azioni devono rappresentare il livello minimo di granularità del comportamento degli agenti. I reclami possono essere di molti tipi e coperti già da azioni diverse:
Contrassegna le azioni di natura simile perché possono confondere il motore di ragionamento. Sono quelle non sufficientemente diverse a livello semantico, per cui il motore di ragionamento non saprà quale selezionare nella fase 5.
Ad esempio, "Risolvi i problemi tecnici" e "Rispondi alla domanda con le informazioni a disposizione" hanno descrizioni simili, ma il loro funzionamento può essere molto diverso. Contrassegnare tali sovrapposizioni semantiche aiuterà a identificare quali azioni separare su più argomenti.
Una volta definite chiaramente e identificate le sovrapposizioni semantiche, le azioni possono essere raggruppate in argomenti preliminari. Un argomento è una categoria logica di funzionamento: un raggruppamento di azioni che insieme rappresentano una capacità o una competenza coerente dell'agente.
Durante la creazione di questi raggruppamenti:
Ecco un esempio di raggruppamento iniziale per un agente del servizio clienti:
Argomento 1:
Argomento 2:
Una volta creato il raggruppamento iniziale, scrivi le descrizioni delle classificazioni di ogni argomento.
Dopo questa procedura di affinamento, otteniamo:
Per ricapitolare, crea prima un elenco completo di tutte le possibili azioni, quindi contrassegna la sovrapposizione semantica tra queste azioni. Successivamente, crea un insieme di argomenti che, come minimo, risolvano tutte le sovrapposizioni semantiche (in modo che il motore di ragionamento non si confonda all'interno dell'ambito di un argomento). Quindi, scrivi la descrizione della classificazione di ogni argomento. Se gli argomenti hanno un ambito troppo ampio, suddividili in argomenti più dettagliati. Applicando queste istruzioni, creerai un agente che non solo funziona bene, ma che è anche facile da mantenere ed espandere.
Questa struttura supporta un ragionamento migliore, un'esecuzione più precisa e limiti decisionali più chiari all'interno del comportamento dell'agente. Si basa anche sulla collaborazione tra progettisti, tecnici ed esperti in materia per rendere le funzionalità dell'agente più trasparenti e modulari.
Ulteriori considerazioni per una creazione efficiente degli argomenti
Immagina che un agente dell'assistenza riceva una richiesta sulla garanzia di un orologio. Il problema della garanzia non sembra essere correlato al cambio o all'assistenza del prodotto. "Gestione degli ordini" sembra essere l'argomento più appropriato; pertanto, viene scelto dal motore di ragionamento come il più probabile per soddisfare la richiesta.
Dopo la selezione degli argomenti, il motore di ragionamento sceglie le azioni corrette da eseguire a partire dall'argomento selezionato. Anche in questo caso, è l'LLM del motore di ragionamento il responsabile di questa operazione e utilizza un altro prompt chiamato "prompt di osservazione". Lo scopo del prompt di osservazione è giungere al passaggio successivo del processo di ragionamento. Il passaggio successivo può essere uno dei seguenti:
L'input del prompt di osservazione è formato da tutte le descrizioni di tutte le azioni dell'argomento, nonché dalla cronologia delle conversazioni.
Le azioni sono le attività predefinite che l'agente può eseguire per svolgere il proprio lavoro. Le azioni sono le definizioni più dettagliate del lavoro. Esistono cinque diversi tipi di azioni degli agenti: (1) esegui il codice Apex, (2) richiama un'API, (3) esegui un flusso, (4) ricevi la risposta di un LLM a un modello di prompt e (5) richiama un modello predittivo. La maggior parte di queste azioni può essere deterministica. Un'eccezione è la ricezione di una risposta a un modello di prompt (a condizione che il sistema esterno, il flusso o l'azione Apex non contenga elementi probabilistici come i richiami di prompt). Tratteremo questi temi nel quinto livello del controllo agentico.
Continuiamo con l'esempio precedente in cui un agente dell'assistenza riceve una domanda relativa alla garanzia di un orologio. Dopo aver selezionato l'argomento Gestione degli ordini, viene scelta l'azione più probabile. Poiché si tratta dell'argomento Gestione degli ordini, il primo passaggio logico è cercare l'ordine (altrimenti, perché recuperare le informazioni sulla garanzia?) avviando l'apposita azione.
La frase enunciata da un utente può attivare l'esecuzione di più azioni prima che gli venga fornita la risposta. Ciò è dovuto al ciclo agentico, che continua a selezionare ed eseguire l'azione successiva più adatta fino a quando non viene soddisfatta una delle seguenti condizioni:
Le azioni non sono soggette a un timeout specifico. Ciò serve a evitare interruzioni quando i tempi di esecuzione delle azioni variano in base alla loro complessità. Alcune azioni sono semplicemente più complesse da eseguire rispetto ad altre.
Dopo aver avviato la ricerca di un ordine, il motore di ragionamento valuta la risposta generata fino a quel punto e, quindi, decide che deve lavorare ancora prima di poter inviare una risposta all'utente. Ora che l'ordine è presente nella cronologia delle conversazioni, deve cercare la garanzia.
Tuttavia, così facendo, l'agente si rende conto che il cliente ha, in realtà, acquistato due orologi, in base alle informazioni recuperate dall'azione di ricerca dell'ordine. Pertanto, nel ciclo agentico, il motore di ragionamento decide di chiedere al cliente di specificare per quale orologio ha bisogno delle informazioni sulla garanzia.
L'affidabilità degli agenti è resa migliore da un'attenta distribuzione delle azioni tra gli argomenti e da azioni e argomenti ben descritti. Tuttavia, questi metodi non consentono l'espressione di regole, politiche e limiti di azione aziendali all'interno del motore di ragionamento. Le istruzioni forniscono un ulteriore importante livello di controllo agentico. Offrono indicazioni aggiuntive al motore di ragionamento in caso di utilizzo di varie azioni in blocco. Ciò consente un approccio più sfaccettato e basato su politiche al comportamento degli agenti. Grazie alle istruzioni, i generatori di agenti possono garantire che gli agenti non solo funzionino in modo affidabile, ma aderiscano anche a regole e best practice aziendali consolidate.
Le istruzioni scritte a livello di argomento diventano parte del prompt di osservazione. Le istruzioni degli argomenti guidano il motore di ragionamento nella scelta delle azioni appropriate. Possono fornire indicazioni su quando selezionare una specifica azione e possono essere utilizzate per definire la dipendenza delle azioni. In determinate circostanze, possono anche applicare il controllo sequenziale. Tuttavia, esistono soluzioni alternative a ciò e in questo caso le istruzioni devono essere utilizzate con attenzione. Le istruzioni degli argomenti vengono aggiunte una alla volta e visualizzate in caselle separate nell'interfaccia utente. Tuttavia, vengono sempre inviate al prompt di osservazione insieme. L'aggiunta di istruzioni in caselle separate aumenta la leggibilità e la manutenibilità dell'argomento, ma non influisce sul motore di ragionamento.
A volte, le istruzioni si applicano globalmente all'agente e non sono correlate a un singolo argomento. La funzionalità di manutenzione delle istruzioni globali è prevista nella roadmap del prodotto. Le best practice per la scrittura delle istruzioni degli argomenti sono disponibili nella Guida di Agentforce ad argomenti, istruzioni e azioni. Esaminiamo alcune linee guida aggiuntive.
Evita di scrivere script eccessivi su come gli agenti devono conversare con gli utenti. L'overscripting può soffocare la capacità di un agente di costruire un rapporto, comprendere le esigenze specifiche degli utenti e rispondere in modo efficace in tempo reale a circostanze dinamiche. Inoltre, istruzioni lunghe possono rendere l'agente più lento a rispondere e confondere il motore di ragionamento. Forzare il determinismo con le istruzioni non è l'approccio migliore.
Ad esempio, non è necessario dire a un agente di evitare di fare riferimento ai concorrenti nelle risposte di assistenza. Ciò può portare a un comportamento indesiderato, poiché l'agente può anche rifiutarsi di rispondere a domande relative all'integrazione con un fornitore che è anche un concorrente. Invece, l'istruzione può essere qualcosa del tipo "Se si parla di concorrenti, rispondi nel miglior interesse dell'azienda". In questo modo, si evitano istruzioni condizionali restrittive del tipo "Menziona solo il concorrente xyz in caso di…" e si sfruttano, invece, le capacità di ragionamento dell'LLM. Questo esempio mostra come possono essere fornite le istruzioni a un livello superiore più astratto, simile al modo in cui un operatore umano dell'assistenza verrebbe addestrato dopo essere entrato in azienda.
Diamo un'occhiata ad altri esempi di situazioni da evitare. Le seguenti sono alcune istruzioni inadeguate fornite a un agente dell'assistenza che gestisce i profili dei candidati su un sito Web di reclutamento. Tentano di anticipare ogni possibile frase enunciata dal cliente e devono quindi essere evitate:
Istruzione 1:
l'agente riceve il seguente enunciato: "Posso aggiungere una foto al mio profilo?" Quindi, chiedi subito al cliente: "Qual è il tuo tipo di profilo?"
Istruzione 2:
Se il cliente indica un profilo premium, rispondi "Fammi controllare i dettagli del tuo contratto", quindi cerca i dettagli del contratto e verifica se, in base ad essi, può aggiornare la foto del profilo.
Se da contratto può farlo, allora rispondi "sì, è possibile, te la aggiorno io. Potresti fornirmi la tua nuova foto?" Una volta ricevuta la foto, aggiorna di conseguenza il profilo del candidato. Se il contratto non prevede modifiche alla foto del profilo, rispondi "purtroppo, non è possibile. Ti metto in contatto con un agente umano"
Istruzione 3:
profilo non premium: se il cliente indica un profilo non premium, rispondi con "Non è consentito aggiornare la foto. Se vuoi farlo, fammi sapere e ti trasferirò a un agente umano."
Istruzione 4:
se il tipo di profilo non è chiaro, rispondi con "Non ho capito il tuo tipo di profilo".
Anziché questo tipo di microgestione, utilizza un approccio più flessibile che istruisca il comportamento e la condotta degli agenti. Prendi in considerazione le seguenti best practice:
"Solo i candidati con un profilo premium, il cui contratto consente la modifica delle foto, possono aggiornare la propria foto
."In base a queste best practice, otterrai un insieme migliore di istruzioni, simile a questo:
Istruzione 1
: "Utilizza le azioni relative alle informazioni per verificare le politiche in caso di richieste di modifica dell'account."
Istruzione 2
: "Non rispondere a domande per le quali non è stata trovata alcuna politica applicabile".
L'applicazione delle suddette linee guida può migliorare i risultati dell'agente. A questo punto, se il cliente chiede all'agente una modifica del profilo, l'agente capirà che deve recuperare la politica richiesta dalla Knowledge Base, interpretare le regole recuperate, applicarle al contesto e, infine, rispondere al cliente. A differenza dell'overscripting, questo approccio comportamentale è molto più generico e applicabile in modo più ampio. Senza dover scrivere ogni possibile conversazione, l'agente può ora rispondere in modo flessibile con il comportamento desiderato a una gamma più ampia di argomenti di conversazione.
Continuiamo con l'esempio degli agenti del sito Web di reclutamento. L'agente deve essere in grado di gestire la pianificazione dei colloqui con l'intervistatore appropriato. A tal fine, deve prima verificare la disponibilità dei selezionatori, quindi proporre al candidato tre possibili slot.
In questo caso, al fine di mantenere l'ordine di esecuzione, le istruzioni non devono essere disposte in caselle separate:
verifica la disponibilità degli intervistatori.
poi, proponi al candidato gli slot corrispondenti.
Queste istruzioni non funzionano perché il motore di ragionamento non sa a cosa si riferisce l'istruzione "Quindi" nell'istruzione 2. Questo perché le istruzioni vengono inviate al motore di ragionamento in gruppo, senza un ordine particolare.
Invece, le istruzioni che definiscono la sequenza devono essere combinate in un'unica istruzione e scritte come segue:
verifica la disponibilità degli intervistatori. Poi, proponi al candidato gli slot corrispondenti.
Tuttavia, quando si prevede che venga eseguita solo un'azione di richiesta, è possibile implementare un'istruzione che dica all'agente di non modificare mai l'output di un'azione. Ciò garantisce un comportamento degli agenti più prevedibile e affidabile.
L'applicazione di questa rigorosa aderenza nei modelli di prompt approvati diventa fondamentale in determinate situazioni, in particolare quando sono importanti coerenza, conformità e messaggi predefiniti. Riportiamo due esempi:
Questa istruzione limita la libertà dell'agente di modificare l'output delle azioni. Assicurati che l'istruzione faccia riferimento all'output del modello di prompt (ad esempio, "promptResponse"), come mostrato in questa Utilità di traccia delle risposte.
Quindi, in questo caso, l'istruzione può essere:
"
Non modificare l'output promptResponse, indipendentemente dal canale dell'agente.
"
Limitazioni all'applicazione di un'aderenza rigorosa
Quando un'interazione richiede più azioni distinte dell'agente, non è possibile applicare un'aderenza rigorosa a un singolo modello. In effetti, in questo scenario, il motore di ragionamento deve consolidare queste azioni in un'unica risposta e, pertanto, modificare ogni singolo output delle azioni.
In base alle caratteristiche generali dell'LLM, il numero target di istruzioni varia da 5 a 10, a seconda della complessità delle istruzioni e dell'interazione con le stesse. Queste caratteristiche influenzano il numero di istruzioni che il motore di ragionamento può seguire:
Se è molto importante che un'istruzione venga seguita, aggiungi termini che riflettono tale necessità:
Radicare le risposte nei dati migliora significativamente l'affidabilità e l'attendibilità degli agenti. Per essere radicate, le risposte devono basarsi su informazioni fattuali anziché su congetture o dati obsoleti. La generazione aumentata di recupero (RAG) è una tecnica ampiamente adottata che consente a un agente di accedere a una Knowledge Base e utilizzarla per formulare risposte più accurate e contestualmente pertinenti. In base alla query di un utente, l'agente utilizza la RAG per recuperare informazioni pertinenti dalle fonti di dati applicabili e, quindi, espande il prompt con queste informazioni prima di inviarlo all'LLM. Un agente che utilizza la RAG vanta una qualità, una precisione e un'utilità complessiva delle interazioni maggiori, con un conseguente aumento della fiducia e della soddisfazione degli utenti. Le best practice per la RAG sono ampiamente descritte in un white paper disponibile al pubblico dal titolo Agentforce and RAG: best practices for better agents .
Distinguere tra informazioni e istruzioni è importante per trovare il giusto equilibrio tra rigore e flessibilità, poiché assolvono a diversi scopi:
La generazione aumentata di recupero (RAG) funge da livello di dati intelligente per le informazioni. Consente agli agenti di accedere alle informazioni in vari formati e fornisce frammenti di testo pertinenti per rispondere alle domande. Con la RAG, gli agenti possono ottenere risposte dell'LLM più accurate senza sovraccaricarne il prompt con contenuti estranei o superare la finestra di contesto.
In fase di esecuzione, la RAG effettua tre passaggi:
In Agentforce, la RAG può essere utilizzata con o senza un modello di prompt:
Il metodo consigliato è l'opzione 1, poiché riduce il numero di attività che il motore di ragionamento deve svolgere e, quindi, migliora la qualità delle risposte. La sezione successiva illustra un'eccezione a questa regola, in cui il contenuto viene conservato durante tutta la conversazione e, quindi, assegnato esplicitamente a un'azione.
Memorizza l'output della RAG in una variabile: se è possibile che venga raggiunto il numero limite delle interazioni, memorizza l'output della RAG in una variabile. In questo modo, le informazioni rimangono accessibili per guidare le interazioni dell'agente oltre la soglia standard. Un esempio di ciò sarà fornito nella sezione successiva.
Alcuni processi aziendali richiedono un'esecuzione ancora più prevedibile, come l'applicazione di una sequenza di azioni o condizioni specifiche per l'attivazione di azioni o argomenti.
Per ottenere questo comportamento deterministico, è possibile utilizzare le variabili. Le variabili funzionano come una forma strutturata di memoria a breve termine dell'agente che può fungere da input o output delle azioni. Inoltre, lo stato di una variabile può governare l'attivazione di argomenti e azioni specifici.
I tipi di variabili supportano le seguenti funzionalità:
Variabili di contesto | Variabili personalizzate | |
---|---|---|
Possono essere istanziate dall'utente | X | ✓ |
Possono essere input di azioni | ✓ | ✓ |
Possono essere output di azioni | X | ✓ |
Possono essere aggiornate dalle azioni |
X | ✓ |
Possono essere utilizzate in filtri di azioni e argomenti | ✓ | ✓ |
Analizziamo ulteriormente le variabili con un esempio di caso d'uso: un agente per la risoluzione dei problemi a contatto con i clienti. In questo esempio, le variabili vengono utilizzate per tutti e tre gli scopi: radicamento dinamico persistente nel contesto, input/output di azioni e filtro.
Qui, l'agente aiuta un cliente a risolvere un problema tecnico di un dispositivo. La risoluzione dei problemi, in genere, comporta l'esecuzione di una serie di passaggi. L'agente deve offrire un'esperienza di assistenza che imiti il lavoro di un agente umano. A tal fine, non deve fornire al cliente tutti i passaggi per la risoluzione del problema contemporaneamente. Invece, deve offrire istruzioni passo-passo, oltre alla possibilità di spostarsi tra i passaggi (incluso il ritorno ai passaggi precedentemente trattati) in base al modo in cui il cliente risponde.
Una sfida presentata da questa situazione è la capacità dell'agente di conservare tutte le fasi di risoluzione del problema durante la conversazione. Data la memoria limitata dell'agente a causa del numero circoscritto di interazioni che può memorizzare, è possibile che questi passaggi vengano eliminati dal contesto del motore di ragionamento se la conversazione diventa lunga.
Per superare questa sfida, è necessario utilizzare una variabile per radicare dinamicamente il motore di ragionamento nei passaggi per la risoluzione del problema. Recuperando le informazioni e memorizzandole in una variabile, queste rimangono disponibili e possono essere aggiornate durante tutta la conversazione. Il motore di ragionamento utilizza le informazioni memorizzate in questa variabile per il radicamento dinamico nel contesto.
In questo esempio, un argomento include due azioni, che sono necessarie per mantenere un flusso di dati coerente. La prima azione viene utilizzata per popolare la variabile che contiene tutti i passaggi per la risoluzione del problema. La seconda utilizza tale variabile durante la procedura di risoluzione stessa del problema.
La domanda originale del cliente è l'input per entrambe le azioni. La seconda azione ha un altro input: il contenuto della variabile "Passaggi per la risoluzione". Questa variabile è stata impostata dalla prima azione. Si fa notare che la seconda azione non recupererà i passaggi per la risoluzione del problema da sé, ma li otterrà come input dalla prima azione tramite la variabile. Il diagramma seguente mostra il flusso di dati tra queste due azioni.
L'azione "Utilizza durante la risoluzione di un problema" farà sempre riferimento ai passaggi originali per la risoluzione del problema recuperati dall'azione Passaggi per la risoluzione del problema. Questo flusso di dati garantisce che i passaggi per la risoluzione del problema siano mantenuti in modo coerente e sempre presenti, indipendentemente dalla lunghezza della conversazione.
Per eseguire le azioni definite in questo esempio, sono necessarie istruzioni specifiche, come "Esegui sempre prima l'azione 'Popola i passaggi per la risoluzione'". Tuttavia, data la natura non deterministica degli LLM utilizzati dagli agenti, in alcuni casi ciò può portare a un ordine diverso. Per garantire un ordine deterministico di esecuzione, introduciamo dei filtri condizionali su queste variabili per applicare la sequenza di azioni corretta. L'agente legge il valore della variabile "Passaggi per la risoluzione" e definisce due filtri a seconda che questa variabile abbia o meno un valore.
Questi filtri condizionali ora applicano la sequenza di esecuzione delle azioni in modo deterministico: L'azione "Utilizza durante la risoluzione di un problema" deve attendere il completamento dell'azione "Passaggi per la risoluzione del problema", garantendo così che la variabile "Passaggi per la risoluzione" abbia sempre un valore.
Per garantire la corretta esecuzione dell'azione, è necessaria una terza azione che reimposti la variabile "Passaggi per la risoluzione" se il problema viene risolto completamente. In seguito a ciò, l'agente viene reimpostato nello stato richiesto per aiutare con un possibile nuovo problema diverso. Questa terza azione si chiama "Svuota la variabile della risoluzione". Di seguito è riportato lo schema completo delle azioni.
Le variabili sono fondamentali per consentire al nostro agente di risoluzione dei problemi di risolvere i problemi dei clienti nei modi seguenti:
Nell'era dell'AI generativa, l'AI predittiva rimane di fondamentale importanza, poiché forma la base che guida, migliora e contestualizza le capacità generative. Mentre l'AI generativa si concentra sulla creazione di nuovi contenuti, come testi, immagini o video, i modelli predittivi fanno previsioni sul futuro in base agli input provenienti dai dati aziendali in tempo reale. Esempi di risultati di natura aziendale includono la probabilità di abbandono dei clienti, le probabilità di conversione, la probabilità di escalation dei casi, il customer lifetime value e la classificazione dei casi. Le previsioni possono aiutare ad anticipare le esigenze degli utenti, personalizzare gli output, prendere decisioni, ottimizzare la pertinenza dei contenuti in tempo reale, il tutto analizzando tendenze e numeri. Ad esempio, in applicazioni come l'apprendimento personalizzato, l'assistenza sanitaria o la pianificazione finanziaria, l'AI predittiva garantisce che i risultati generativi siano allineati ai singoli contesti e ai probabili scenari futuri. Insieme, l'intelligenza artificiale predittiva e generativa creano una potente sinergia, combinando lungimiranza e creatività per promuovere soluzioni tecnologiche più intelligenti, adattive e utili.
Per incorporare gli output del modello predittivo nei workflow degli agenti, è sufficiente aggiungere azioni del modello predittivo agli asset di Agentforce. Model Builder fornisce gli strumenti per creare o registrare modelli predittivi (BYO), che vengono poi utilizzati dall'agente per fare previsioni. Le previsioni risultanti (nonché i predittori) possono essere memorizzate in variabili personalizzate. Gli agenti possono utilizzare questi valori variabili come input e condizionare l'esecuzione di azioni e argomenti specifici.
Alcuni processi aziendali devono essere eseguiti con un ordine preciso e non richiedono l'input dell'utente durante l'esecuzione. In questo caso, è possibile applicare un flusso di passaggi predeterminato tramite flussi, API o Apex. Se esiste già un flusso a cui la produzione si affida, è una buona indicazione che può essere conservato e utilizzato dall'agente per l'esecuzione di quel processo aziendale. Tutti gli esempi seguenti includono sequenze predeterminate di passaggi che l'agente può eseguire senza l'intervento dell'utente. Il comportamento agentico in questo caso consiste nell'identificare quale processo deterministico eseguire, come raccogliere gli input necessari e come interpretarli ed elaborarli.
I processi aziendali con molti passaggi sequenziali (più di tre, come regola generale) e molte dipendenze da variabili diventano troppo complessi e macchinosi da applicare con istruzioni. In tal caso, è possibile codificarli semplicemente utilizzando i tipi di azioni deterministiche elencati in questa sezione. Infine, si fa notare che queste implementazioni possono includere elementi non deterministici, come le chiamate degli LLM con modelli di prompt risolti. Pertanto, non devono essere per forza completamente deterministiche, dall'inizio alla fine, ma possono comunque dimostrare i livelli di fluidità desiderati per cui gli agenti sono noti.
La sequenza di passaggi in un percorso di marketing è condizionata da regole fisse e non dipende da alcun input conversazionale dell'utente. Pertanto, il flusso può essere utilizzato come azione di Agentforce. Può essere creata un'azione invocabile per completare attività in background o innescate da un evento a partire da un componente che può richiamare un flusso o una classe Apex. Aggiungi un'azione invocabile a un flusso o a una classe Apex e specifica l'attività che l'agente deve completare, nonché le condizioni che attivano l'agente. Le azioni invocabili possono anche trasportare le variabili di contesto dell'agente e trasmettere informazioni importanti.
I flussi di Salesforce servono ad automatizzare le attività di routine, come la creazione di attività di follow-up, l'invio di e-mail di promemoria o l'aggiornamento dei record. Rendono, quindi, il lavoro più efficiente e produttivo. Anche gli agenti possono eseguire flussi utilizzando azioni apposite. Dato il loro determinismo, i flussi sono un ottimo modo per indirizzare il comportamento agentico nei casi in cui un processo aziendale deve essere eseguito in una particolare sequenza. Una buona indicazione dell'appropriatezza di un'azione di flusso si ha quando l'argomento contiene istruzioni come "prima fai, poi fai questo e infine fai questo". L'applicazione di sequenze di più di tre passaggi diventa, infatti, complicata da gestire tramite istruzioni e variabili.
I flussi possono anche includere elementi non deterministici richiamando prompt. Un nodo di prompt nel flusso richiama un modello di prompt e raccoglie la risposta che può essere trasmessa ad altri elementi del flusso. Questi ulteriori elementi possono essere, a loro volta, nodi di prompt, che, ad esempio, riassumono la risposta precedente, creando così una catena di prompt. Ciò è particolarmente utile quando le regole per il concatenamento di prompt sono definite da elementi fissi e non dipendono dall'input dell'utente. Un esempio è la RAG agentica in cui una sequenza predefinita di retriever o prompt in un flusso può accedere a fonti di dati specifiche in un determinato ordine, come il recupero iniziale dei dati dal documento d'identità di un utente prima di consultare altre fonti in base alle necessità. Questo meccanismo di concatenamento impone un'estrazione affidabile e ordinata delle informazioni pertinenti.
Analogamente ai flussi, le azioni Apex e API sono deterministiche in quanto è possibile codificare una sequenza predefinita di azioni. Queste azioni possono includere elementi non deterministici, come il richiamo di modelli di prompt o chiamate LLM. Tuttavia, per definizione, eseguono questi passaggi in modo deterministico, il che riduce la variabilità agentica richiamando l'azione al momento giusto, raccogliendo l'input necessario ed elaborando l'output. Queste responsabilità devono comunque essere governate da istruzioni agentiche, quindi non sono deterministiche. Le azioni Apex e API sono l'equivalente pro-code delle azioni di flusso.
Per ottenere un comportamento affidabile degli agenti, è necessario un approccio strutturato che bilancia la flessibilità intrinseca dei modelli linguistici di grandi dimensioni (LLM) con la necessità di un controllo e di una prevedibilità a livello aziendale. Questo articolo delinea una strategia a più livelli per l'implementazione di un "determinismo guidato" che consente la creazione di agenti non solo intelligenti e autonomi, ma anche costantemente precisi e allineati ai processi aziendali. La chiave per creare questo tipo di agenti risiede nell'implementazione progressiva di meccanismi di controllo, ognuno dei quali aggiunge un nuovo livello di affidabilità:
Applicando sistematicamente questi livelli di controllo, il che implica progettazione ponderata, istruzioni chiare, radicamento nei dati, gestione dello stato e automazione dei processi deterministici, gli sviluppatori possono affrontare con successo le sfide della creazione di agenti affidabili con risultati aziendali coerenti. Tale approccio strategico garantisce che gli agenti Agentforce possano svolgere funzioni aziendali critiche con l'affidabilità, la precisione e la coerenza richieste nel panorama aziendale.
I cinque livelli di determinismo dell'AI sono: selezione di argomenti e azioni senza istruzioni, istruzioni degli agenti, radicamento nei dati, variabili degli agenti e azioni deterministiche che utilizzano flussi, Apex e API.
Comprendere il determinismo dell'AI è fondamentale per creare agenti affidabili in grado di svolgere funzioni aziendali critiche in modo preciso e coerente, raggiungendo un equilibrio tra fluidità creativa e controllo aziendale.
Nel campo dell'AI, l'aggettivo "deterministico" si riferisce alla capacità di un sistema di produrre lo stesso output dati gli stessi input e le stesse condizioni, imponendo una rigidità e una disciplina essenziali per un comportamento affidabile degli agenti.
Il non determinismo nei sistemi AI si manifesta soprattutto in caso di utilizzo di modelli linguistici di grandi dimensioni (LLM), che sono per natura non deterministici, consentendo agli agenti di essere flessibili e adattivi.
I livelli di determinismo migliorano progressivamente il determinismo degli agenti AI, influenzandone l'autonomia. Man mano che i livelli progrediscono, gli agenti diventano meno autonomi, ma più affidabili e allineati ai processi aziendali.
I sistemi AI meno deterministici presentano problemi in termini di affidabilità e conformità ai requisiti aziendali, poiché il loro non determinismo intrinseco può portare a comportamenti imprevedibili.
Le aziende possono gestire i sistemi AI con diversi livelli di determinismo applicando un approccio a più livelli che includa una progettazione ponderata, istruzioni chiare, il radicamento nei dati, la gestione dello stato attraverso variabili e l'automazione dei processi deterministici utilizzando flussi, Apex e API.
Scopri tutti i dettagli sula creazione degli agenti nella nostra libreria.
Avvia Agentforcecon velocità, sicurezza e ROI misurabili.
Parlaci delle esigenze della tua azienda e ti aiuteremo a trovare le risposte.