Olfa Kharrat, Director of Product Management - Agentforce
Reinier van Leuken, Senior Director of Product Management - Agentforce
Indice
Elementi costitutivi di Agentforce e ragionamento agentico
Definizione dei livelli di controllo agentico
Controllo agentico di livello 2: istruzioni
Controllo agentico di livello 3: radicamento nel contesto
Contesto agentico di livello 4: variabili
Controllo agentico di livello 5: azioni deterministiche
Controllo agentico di livello 6: controllo deterministico con Script agente
Introduzione
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 illustra le considerazioni chiave per lo sviluppo di agenti affidabili. Vengono quindi definiti sei livelli di controllo agentico e illustrate le best practice per ottenere e mantenere il controllo sul comportamento agentico per ciascuno di questi livelli. La guida illustra le modalità operative del motore di ragionamento Agentforce. Man mano che Agentforce cresce, 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:
- Consulta le risorse su agentforce.com.
- Segui l'itinerario Diventare Agentblazer Champion , che esplora i concetti base dell'AI e aiuta a creare un agente elementare per attività chiave.
- Ottieni maggiori informazioni su Agentforce sul sito help.salesforce.com , in particolare nella sezione Progettazione e implementazione degli agenti . Questa mappa didattica ti guida attraverso tutti i passaggi chiave del ciclo di vita: ideazione della soluzione, impostazione e configurazione dell'agente, test, implementazione e monitoraggio.
Agenti e chatbot a confronto
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.
- Il cuoco alle prime armi (chatbot) segue ricette dettagliate, complete di misurazioni precise, istruzioni minuziose e tempi di cottura specifici. Qualsiasi deviazione dalla ricetta si traduce in un disastro. Allo stesso modo, un chatbot deve rimanere entro i limiti del suo albero decisionale pre-programmato.
- Lo chef esperto (agente) possiede anni di esperienza culinaria e intuito. Grazie a una comprensione generale delle tue preferenze e a una breve descrizione degli ingredienti disponibili, è in grado di preparare un pasto delizioso che soddisfi le tue esigenze. I passaggi esatti possono variare ogni volta e ogni versione del piatto potrebbe presentare lievi differenze, ma il risultato complessivo è costantemente soddisfacente. Allo stesso modo, un agente può adattare il proprio approccio in base al contesto e all'intento dell'input dell'utente, garantendo un'interazione riuscita.
In sintesi, la differenza fondamentale tra agenti e chatbot risiede nell'adattabilità e capacità dei primi di gestire input imprevisti.
Elementi costitutivi di Agentforce e ragionamento agentico
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.
Blocchi costitutivi
In Agentforce, la creazione di un agente prevede l'impostazione di argomenti, azioni e istruzioni e descrizioni in linguaggio naturale.
Argomenti
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.
Azioni
Le azioni sono le attività predefinite che l'agente può eseguire per svolgere il proprio lavoro. Esistono cinque diversi tipi di azioni:
- esegui il codice Apex;
- richiama un'API;
- esegui un flusso;
- ricevi la risposta di un LLM a un modello di prompt;
- richiama un modello predittivo.
Istruzioni e descrizioni in linguaggio naturale
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.
- Azioni. Un'azione contiene:
- Istruzioni che descrivono cosa fa l'azione, il che indica al motore di ragionamento quando eseguirla.
- Input con una descrizione in linguaggio naturale in modo che l'agente possa prepararli.
- Output con una descrizione in linguaggio naturale su come formattarli e utilizzarli.
- Argomento. Un argomento contiene istruzioni che indicano come eseguire le rispettive azioni a un livello superiore. Ad esempio, le istruzioni possono specificare i limiti di azione relativi al tono di voce, la sequenza di azioni desiderata, possibili prerequisiti o i casi in cui inoltrare le conversazioni agli agenti umani. L'argomento contiene anche una descrizione della classificazione e una definizione dell'ambito. Tutto ciò garantisce che l'agente rimanga entro l'ambito del suo ruolo definito ed esegua l'operazione richiesta.
- Dati. Gli agenti hanno bisogno di dati per svolgere correttamente il loro lavoro. I dati possono essere strutturati, come i dati CRM, o non strutturati, come gli articoli della Knowledge Base di un'azienda. Gli agenti accedono ai dati utilizzando input di azione. Ad esempio, un'azione può richiamare un modello di prompt basato su dati CRM o arricchito con frammenti di dati non strutturati utilizzando tecniche RAG.
Questi vari blocchi costitutivi, se sviluppati correttamente, aiutano un agente ad assolvere allo scopo previsto, pur rimanendo entro limiti adeguati.
Motore di ragionamento
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:
- Ragionamento: comprendono l'intento dell'utente e lo allineano all'argomento e alle azioni corretti.
- Azione: avviano la catena di azioni corretta.
- Osservazione: valutano i risultati dell'azione rispetto all'intento dell'utente. Se l'intento non viene soddisfatto, ragionano ancora in base al risultato ottenuto fino a quel punto e alle istruzioni e descrizioni dell'argomento/azione. Se l'intento è soddisfatto, forniscono la risposta finale rispettando le eventuali istruzioni di formattazione.
- Ripetizione: ripetono questi passaggi fino a raggiungere l'ultimo passaggio prescritto.
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.
Definizione dei livelli di controllo agentico
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.
1. Ragionamento con selezione di argomenti e azioni di prompt senza istruzioni
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.
2. Istruzioni per l'agente
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.
3. Radicamento dei dati nel contesto
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à.
4. Variabili agentiche
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.
5. Azioni di Apex, API e Flow
Questa fase integra l'agente con le funzionalità principali di Salesforce: Apex, API e Flow. L'integrazione consente all'agente di eseguire azioni complesse all'interno dell'ecosistema Salesforce, come l'accesso e la manipolazione dei dati, l'attivazione di workflow e l'interazione con altri sistemi.
- Apex fornisce il controllo programmatico.
- Le API consentono un'integrazione perfetta con altre applicazioni.
- I flussi permettono l'automazione di processi aziendali complessi.
Questo livello trasforma l'agente in un potente strumento in grado di eseguire attività sofisticate e contribuire direttamente ai risultati aziendali.
6. Script agente
Basandosi sulle integrazioni tecniche del livello 5, questo livello finale introduce un ragionamento deterministico per colmare il divario tra l'AI probabilistica e la logica aziendale rigida. Mentre i livelli precedenti si affidano all'LLM per decidere quale strumento utilizzare, Script agente consente di "codificare" il processo di ragionamento stesso. Utilizzando un'area di disegno in stile documento o codice diretto, è possibile definire percorsi immutabili, come gate di autenticazione obbligatori, ramificazioni condizionali if/else e transizioni forzate tra argomenti, che l'agente deve seguire indipendentemente dall'input dell'utente. Questo approccio di ragionamento ibrido consente di inserire la flessibilità conversazionale di un LLM tra livelli di esecuzione garantita. Il livello 6 trasforma l'agente in un partner aziendale zero-trust in grado di gestire con assoluta precisione conformità ad alto rischio, divulgazioni normative e dipendenze complesse in più fasi.
Controllo agentico di livello 1: ragionamento con selezione di argomenti e azioni di richiesta senza istruzioni
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. |
| Classificare l'argomento | 2-3 | Il motore analizza il messaggio del cliente e lo abbina all'argomento più appropriato in base al nome dell'argomento e alla descrizione della classificazione. Script agente trasforma il Selettore di argomenti in un elemento completamente configurabile, eliminando la "casella nera" del routing LLM probabilistico. Considerando la navigazione come un argomento programmabile, ottieni trasparenza e controllo assoluti, nonché la possibilità di allineare precisamente la logica decisionale dell'agente alle tue specifiche esigenze aziendali e agli standard architetturali. |
| Esegui lo Script agente dell'argomento e crea/risolvi istruzioni e azioni disponibili | 4-5 | Esegui azioni basate su script come indicato nelle istruzioni. Si tratta di azioni che devono essere eseguite dopo la scelta di un argomento, prima che il sistema proceda alla valutazione delle istruzioni non deterministiche o del resto del contesto conversazionale. |
Cronologia dei prompt e delle conversazioni inviati all'LLM |
6 | Una volta eseguite tutte le azioni con script, viene inviato un prompt all'LLM con l'ambito dell'argomento, le istruzioni e le azioni disponibili insieme alla cronologia delle conversazioni. Nota: le istruzioni vengono eseguite nel livello 2, ovvero il controllo agentico. |
| L'LLM decide di rispondere o eseguire un'azione | 7 | Utilizzando tutte queste informazioni, il motore determina se: • Eseguire un'azione per recuperare o aggiornare le informazioni • Chiedere al cliente maggiori dettagli • Reagire direttamente con una risposta Se l'LLM decide di rispondere, viene eseguito il passaggio 12. |
| Esecuzione delle azioni | 8-9 | Se è necessaria un'azione, il motore la esegue e raccoglie i risultati. |
| Eseguire la logica post-azione | 10 | Applicabile solo con Script agente: Con Script agente, le azioni possono avere transizioni deterministiche verso altre azioni o argomenti. Questi verranno sempre eseguiti dopo il completamento dell'azione. |
| Output azione restituito + ciclo azione | 11 | Il motore valuta le nuove informazioni e decide nuovamente come agire in seguito, ovvero se eseguire un'altra azione, chiedere ulteriori informazioni o rispondere. |
| Controllo del radicamento nel contesto - L'LLM risponde al cliente | 12 | Prima di inviare una risposta definitiva, il motore verifica che la risposta: • Si basi su informazioni accurate derivanti da azioni o istruzioni • Segua le linee guida fornite nelle istruzioni dell'argomento • Rimanga entro i limiti stabiliti dall'ambito dell'argomento Nota: Script agente consente di aggiungere un passaggio per formattare la risposta finale. La risposta contestualizzata viene inviata al cliente. |
Considerazioni relative al motore di ragionamento:
- Le impostazioni di configurazione sono fisse per l'LLM del motore di ragionamento. I generatori di agenti non possono modificarle. Attualmente, il generatore di agenti può scegliere tra un LLM di OpenAI o un LLM di Anthropic ospitato nell'infrastruttura Salesforce per il ragionamento. Questo è soggetto a modifiche man mano che vengono aggiunti altri modelli.
- Cronologia predefinita del motore di ragionamento: ogni volta che riceve una richiesta (passaggi 2-5), il motore di ragionamento recupera automaticamente la cronologia delle richieste e delle risposte più recenti. In questo modo si garantisce la preservazione del contesto della conversazione per il motore di ragionamento. Oltre alle interazioni con i clienti, queste chiamate al planner LLM includono chiamate al motore di ragionamento LLM per altre richieste, ad esempio la selezione dell'argomento.
Fasi del ragionamento
Il processo di ragionamento prevede quattro fasi principali:
- Selezione degli argomenti
- Selezione delle azioni
- Ciclo agentico
- Controllo del radicamento nel contesto
Fase 1 del ragionamento: selezione degli argomenti
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:
- Oltre agli argomenti visibili, è presente automaticamente un altro argomento nascosto per le frasi "fuori tema", che viene selezionato quando nessun altro argomento esistente è allineato con la frase enunciata. Questo aiuta l'agente a evitare errori di classificazione. Tale argomento non ha azioni. Esiste solo per aiutare il motore di ragionamento a formulare una risposta appropriata in un secondo momento.
- Nel prompt dell'argomento vengono utilizzati solo il nome e la descrizione della classificazione dell'argomento.
- L'LLM del motore di ragionamento può scegliere solo un argomento alla volta.
- Le conversazioni possono cambiare rotta inaspettatamente. Ogni volta che riceve un'enunciazione, il motore di ragionamento passa alla fase di selezione dell'argomento, il che significa che è possibile selezionare un nuovo argomento a ogni nuova enunciazione.
Best practice per la progettazione di argomenti
Lo scopo degli argomenti è duplice:
- Ridurre il rischio di confondere il motore di ragionamento raggruppando le azioni, evitando così che selezioni le azioni sbagliate.
- Guidare la selezione e l'esecuzione delle azioni con istruzioni (ulteriori informazioni in merito sono disponibili nella sezione Controllo agentico di secondo livello: istruzioni).
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).
- Nell'approccio dall'alto verso il basso, gli argomenti vengono progettati innanzitutto come lavori di alto livello da svolgere dall'agente e le singole azioni vengono quindi definite per tali argomenti.
- Nell'approccio bottom-up, invece, vengono definite prima tutte le singole azioni e poi raggruppate in argomenti.
Entrambi gli approcci portano a buoni risultati se seguiti correttamente.
Approccio bottom-up
Questa sezione illustra l'approccio bottom-up, in quanto è strettamente correlato ai motivi per cui il motore di ragionamento ha bisogno prima di tutto degli argomenti.
Fase 1: elenco di tutte le azioni degli agenti
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:
- Effettua il reso di un ordine: serve per avviare la procedura di reso di un ordine.
- Controlla la disponibilità delle scorte: serve per verificare se un prodotto è disponibile in magazzino.
- Controlla le politiche di cambio dei prodotti: serve per recuperare informazioni sulle regole di cambio.
- Rispondi alle domande in base alle informazioni a disposizione: serve per rispondere a domande generali o frequenti.
- Verifica le promozioni: serve per verificare eventuali promozioni o sconti disponibili.
- Prevedi la data di consegna: serve per stimare la data/ora di consegna prevista.
- Controlla lo stato dell'ordine: serve per trovare lo stato corrente dell'ordine di un cliente.
- Trova gli ordini del cliente: serve per recuperare tutti gli ordini passati o attivi di un cliente specifico.
- Risolvi i problemi tecnici: serve per risolvere i problemi tecnici relativi a un prodotto o un servizio.
- Trova le condizioni dell'ordine del cliente: serve per recuperare tutte le condizioni relative a un ordine.
- Trova gli asset del cliente: serve per identificare o recuperare gli asset associati a un cliente.
- Modifica l'indirizzo di consegna.
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:
- I problemi post-consegna, come la risoluzione dei problemi relativi a prodotti danneggiati o malfunzionanti, sono già coperti da "Risolvi i problemi tecnici".
- I problemi pre-consegna, come consegne non effettuate, la modifica delle date di consegna o dell'ordine, sono già coperti da azioni come "Controlla lo stato dell'ordine", "Prevedi la data di consegna" o "Effettua il reso di un ordine".
- Le preoccupazioni generali dei clienti, come le domande sulle politiche, sono già coperte da "Rispondi alle domande con le informazioni a disposizione" o "Controlla le politiche di cambio dei prodotti".
Fase 2: contrassegna coppie di azioni (o multipli) che potrebbero mandare in confusione il ragionamento
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.
Fase 3: crea raggruppamenti iniziali di azioni in 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:
- evita la sovrapposizione semantica utilizzando il numero minimo di argomenti necessari;
- assicurati che ogni argomento contenga azioni che siano correlate in modo logico;
- assicurati che le azioni di supporto che devono essere eseguite in una catena siano presenti nello stesso argomento.
Ecco un esempio di raggruppamento iniziale per un agente del servizio clienti:
Argomento 1:
- Effettua il reso di un ordine
- Controlla la disponibilità delle scorte
- Controlla le politiche di cambio dei prodotti
- Verifica le promozioni
- Prevedi la data di consegna
- Trova le condizioni dell'ordine del cliente
- Controlla lo stato dell'ordine
- Trova gli ordini del cliente
- Trova gli asset del cliente
- Rispondi alle domande con le informazioni a disposizione
- Modifica l'indirizzo di consegna
Argomento 2:
- Risolvi i problemi tecnici
- Trova gli asset del cliente
Fase 4: scrivi le descrizioni delle classificazioni degli argomenti e, se necessario, suddividi gli argomenti
Una volta creato il raggruppamento iniziale, scrivi le descrizioni delle classificazioni di ogni argomento.
- L'argomento 2 del nostro esempio riguarda chiaramente i problemi tecnici relativi ai prodotti.
- L'argomento 1, però, copre un ambito più ampio. Riguarda la gestione degli ordini nel suo complesso, ma contiene anche azioni non correlate alla gestione degli ordini, come la verifica delle promozioni e la risposta a domande con le informazioni a disposizione. L'argomento 1 non può essere descritto in modo chiaro e conciso in un'unica frase e, pertanto, l'argomento deve essere suddiviso in argomenti diversi.
Dopo questa procedura di affinamento, otteniamo:
- Argomento 1: Gestione degli ordini: descrive le azioni relative alla gestione e alla modifica degli ordini dei clienti e della logistica correlata, ad eccezione di qualsiasi aspetto relativo ai cambi e ai resi.
- Controlla la disponibilità delle scorte: stabilisci se un prodotto è disponibile in magazzino.
- Prevedi la data di consegna: stima quando arriverà un ordine.
- Controlla lo stato dell'ordine: trova lo stato dell'ordine di un cliente.
- Trova gli ordini dei clienti: recupera tutti gli ordini effettuati da un cliente.
- Modifica l'indirizzo di consegna.
-
Argomento 2: Risoluzione dei problemi
- Trova gli asset del cliente: recupera i dispositivi o i prodotti registrati del cliente.
- Risolvi i problemi tecnici: fornisci assistenza tecnica o diagnostica.
- Argomento 3: Cambio: descrive le azioni relative al cambio e al reso degli ordini.
- Effettua il reso di un ordine: avvia il processo di reso dell'ordine.
- Controlla le politiche di cambio dei prodotti: fornisci le regole di cambio per i prodotti.
- Trova gli ordini dei clienti: recupera tutti gli ordini effettuati da un cliente.
- Trova le condizioni dell'ordine del cliente: recupera tutte le condizioni relative a un ordine.
- Argomento 4: Assistenza per i prodotti: descrive le azioni trasversali utilizzate per il recupero e l'inoltro delle informazioni.
- Rispondi alle domande con le informazioni a disposizione: rispondi alle domande generali dei clienti utilizzando le informazioni della Knowledge Base.
- Verifica le promozioni: consulta le promozioni o gli sconti in corso.
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 creare argomenti efficaci
- Numero ottimale di argomenti: per migliorare le prestazioni degli LLM con la classificazione dell'argomento corretto, è consigliabile non superare i 10 argomenti, ma questa è solo una regola generale. Inoltre, ogni argomento dovrebbe avere una descrizione chiara e distinta. In sostanza, il numero ottimale di argomenti dipende dalla distanza semantica tra le descrizioni delle classificazioni degli argomenti. Se gli argomenti presentano descrizioni delle classificazioni molto diverse, il rischio di sovrapposizione è minimo. Altre best practice per evitare sovrapposizioni tra argomenti sono descritte qui .
- Equilibrio nelle dimensioni e nella chiarezza degli argomenti: sebbene sia generalmente utile avere argomenti piccoli in termini di azioni e istruzioni per una classificazione più semplice, creare troppi argomenti con descrizioni molto simili può causare confusione, proprio come la sovrapposizione semantica tra azioni porta a un'errata classificazione. È, pertanto, importante avere descrizioni degli argomenti chiaramente differenziate a livello semantico. Puoi utilizzare gli LLM per creare classificazioni ben differenziate.
- Linguaggio standard e chiarezza contestuale: gli LLM potrebbero non essere a conoscenza di significati e abbreviazioni aziendali o commerciali specifici. Utilizza un linguaggio standard o spiega il significato delle parole all'interno del tuo particolare contesto in modo molto esplicito.
- Nel prompt dell'argomento vengono inviati solo il nome e la descrizione dell'argomento. Pertanto, la modifica dell'ambito o delle istruzioni dell'argomento non avrà alcun impatto sulla sua selezione.
Esempio pratico
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.
Fase 2 del ragionamento: selezione delle azioni
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:
- Avvio di un'azione
- Richiesta di input di azione da parte dell'utente
- Richiesta di chiarimento della richiesta da parte dell'utente
- Invio della risposta finale all'utente (soddisfazione della richiesta dell'utente) una volta completato il ciclo di azione (vedi "Fase 3 del ragionamento" per ulteriori dettagli)
L'input del prompt di osservazione è formato da tutte le descrizioni di tutte le azioni dell'argomento, nonché dalla cronologia delle conversazioni.
Best practice per la progettazione delle azioni
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.
- Controllo del comportamento agentico in azioni di prompt: Esistono due modi per controllare il comportamento dell'agente in azioni di prompt: (1) aggiungere ulteriori istruzioni al modello di prompt attraverso l'ingegneria dei prompt e (2) configurare gli iperparametri dell'LLM che genera la risposta del prompt, in particolare la temperatura (vedere la documentazione ). L'abbassamento della temperatura riduce la variabilità delle risposte generate, aumentandone la ripetibilità e migliorando l'affidabilità dell'agente.
- Numero ottimale di azioni all'interno di un unico argomento: analogamente al numero massimo di argomenti, il numero di azioni all'interno di un argomento non deve essere superiore a 10, ma anche in questo caso si tratta di una regola generale. Il vero fattore determinante è la distanza semantica tra le azioni. Se le azioni sono chiaramente distinguibili dalla loro descrizione, questo numero può salire. Tuttavia, non esiste una misura numerica per la distanza semantica; dipende dall'interpretazione del generatore di agenti. Maggiore è la differenza di significato tra le descrizioni delle azioni, maggiore è la distanza semantica. In questa fase, occorre evitare le sovrapposizioni.
- Descrizioni delle azioni: Contrariamente a ciò che suggerisce il nome, l'"istruzione dell'azione" è in realtà un'istruzione che l'LLM del motore di ragionamento utilizza per selezionare l'azione corretta partendo dall'argomento. Si fa notare che l'utilizzo di descrizioni delle azioni semanticamente distinte può migliorare notevolmente la qualità delle classificazioni. Esamina attentamente queste descrizioni. In particolare, confronta tutte le descrizioni delle azioni appartenenti a un singolo argomento.
Esempio pratico
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.
Fase 3 del ragionamento: il ciclo agentico
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:
- L'LLM del motore di ragionamento stabilisce che la richiesta è completa. In questo caso, rileva che la richiesta dell'utente è soddisfatta dalla risposta. Si fa notare che parte di questo controllo include un controllo di radicamento nel contesto, che verifica che la risposta sia radicata negli output delle azioni. Nessuna informazione contenuta nella risposta deve essere inventata dall'LLM del motore di ragionamento, in quanto ciò può portare ad allucinazioni o a risposte altrimenti errate.
- Non sono state trovate altre azioni adatte.
- È stato raggiunto il numero massimo di chiamate dell'LLM consentite per la fase corrente. Questo numero è impostato dal motore di ragionamento stesso.
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.
Esempio pratico
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.
Controllo agentico di livello 2: istruzioni
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.
Best practice per la scrittura delle istruzioni
Evitare l'eccesso di script
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.
Istruzioni da evitare
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".
Istruzioni raccomandate
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:
- Utilizza le azioni relative alla RAG/alle informazioni per politiche e regole contenute negli articoli della Knowledge Base (anziché scriverle come istruzioni). Le informazioni pertinenti verranno recuperate al momento giusto. Per l'esempio precedente, ciò significa che un articolo della Knowledge Base intitolato "Aggiornamento della foto" dovrebbe riportare:
"Solo i candidati con un profilo premium, il cui contratto consente la modifica delle foto, possono aggiornare la propria foto." - Definisci le linee guida e i limiti di azione principali singolarmente, a prescindere dalla conversazione. Fornisci agli agenti una spiegazione chiara e concisa del comportamento previsto o della procedura in questione.
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.
Applicare la sequenza di azioni (non applicabile per Script agente)
Il prompt di osservazione include istruzioni e descrizioni delle azioni, ma senza un ordine definito. Se la sequenza di azioni è critica, deve essere dichiarata esplicitamente all'interno della stessa istruzione. Tieni presente che con Script agente è possibile applicare un ordine di esecuzione grazie alle transizioni. Ciò verrà spiegato più dettagliatamente nel sesto capitolo.
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:
- Istruzione 1:
verifica la disponibilità degli intervistatori. - Istruzione 2:
poi, proponi al candidato gli slot corrispondenti.
Queste istruzioni non funzionano perché il motore di ragionamento non sa a cosa si riferisce il termine "quindi" nell'istruzione 2. Questo perché le istruzioni vengono inviate al motore di ragionamento come gruppo, non in un ordine specifico.
Invece, le istruzioni che definiscono la sequenza devono essere combinate in un'unica istruzione e scritte come segue:
- Istruzione 1:
verifica la disponibilità degli intervistatori. Poi, proponi al candidato gli slot corrispondenti.
Applicare l'output dell'azione senza riscrittura
Il motore di ragionamento è di per sé un LLM. È responsabile della generazione della risposta finale in base al ciclo agentico. Questo approccio è necessario per applicare le istruzioni degli agenti che forniscono limiti di azione per la generazione delle risposte o per la combinazione degli output di più azioni che facevano parte del ciclo agentico, al fine di soddisfare la richiesta dell'utente.
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:
- Settori regolamentati: le organizzazioni che operano in settori altamente regolamentati (come quello finanziario, sanitario o legale) spesso richiedono un controllo rigoroso su tutte le comunicazioni rivolte ai clienti. I modelli di prompt approvati garantiscono che le risposte siano conformi ai requisiti legali e normativi, riducendo al minimo il rischio di interpretazioni errate, responsabilità o diffusione di informazioni imprecise.
- Risposte pre-testate e convalidate: quando i modelli di prompt sono stati sottoposti a procedure di test e convalida rigorose per garantire accuratezza, efficienza e conseguimento dei risultati desiderati. Deviare da questi modelli può comprometterne l'efficacia e il valore. L'aderenza rigorosa garantisce che vengano recapitati sempre messaggi comprovati.
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'adesione rigida:
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.
Numero ottimale di istruzioni
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:
- Chiarezza e specificità: regole ben definite sono più facili da seguire.
- Conflitti tra regole: se le regole si contraddicono l'una con l'altra, è necessaria una logica aggiuntiva per risolvere tali contraddizioni.
- Lunghezza e complessità: se ogni regola richiede un ragionamento approfondito, valuta la possibilità di suddividerle in istruzioni più piccole.
Se è molto importante che un'istruzione venga seguita, aggiungi termini che riflettono tale necessità:
- Urgenza e importanza (immediata, urgente, critica, essenziale, obbligatoria)
- Autorità e applicazione (richiesta, obbligatoria, rigorosamente applicata)
- Conseguenze e avvisi (la violazione comporterà, la mancata conformità comporterà, la mancata conformità potrebbe comportare, si applicano sanzioni rigorose, tolleranza zero)
- Chiarezza e trasparenza (deve, proibito, vietato, non consentito, sempre/mai)
Controllo agentico di livello 3: radicamento nel contesto
Basare le risposte sui dati migliora in modo significativo l'affidabilità e l'attendibilità degli agenti. Le risposte radicate nel contesto si basano su informazioni fattuali piuttosto che su speculazioni o conoscenze obsolete. La generazione aumentata dal recupero (RAG) è una tecnica ampiamente adottata che consente a un agente di accedere e utilizzare una Knowledge Base per formulare risposte più accurate e contestualmente pertinenti. In base alla richiesta di un utente, un agente utilizza la generazione aumentata dal recupero (RAG) per recuperare informazioni pertinenti dalle fonti di dati applicabili e quindi arricchisce il prompt con queste informazioni prima di inviarle all'LLM. Un agente che utilizza la generazione aumentata dal recupero (RAG) ha una qualità, una precisione e un'utilità complessive superiori delle interazioni con gli agenti, il che aumenta la fiducia e la soddisfazione degli utenti. Le best practice per la generazione aumentata dal recupero (RAG) sono ampiamente descritte in un white paper disponibile al pubblico dal titolo Agentforce e and RAG: best practices for better agents.
Informazioni e istruzioni a confronto
Distinguere tra informazioni e istruzioni è importante per trovare il giusto equilibrio tra rigore e flessibilità, poiché assolvono a diversi scopi:
- Informazioni: pensa alle informazioni come alla libreria a cui l'agente ha accesso mentre genera le sue risposte. Alcuni esempi sono documenti, articoli della Knowledge Base e white paper, ma possono anche essere politiche e regole aziendali generali. Le informazioni possono anche riferirsi a file transazionali, come e-mail, trascrizioni di chiamate e persino alla cronologia delle conversazioni (dell'agente). Infine, includono campi a testo lungo in dati strutturati. Le informazioni vengono, in genere, fornite all'agente attraverso la RAG.
- Istruzioni: pensa alle istruzioni come al set minimo di regole che indicano all'agente quando utilizzare ogni azione. Possono anche porre limiti di azione all'intera conversazione, come il tono di voce richiesto. Spesso, le istruzioni possono essere rese più concise e flessibili senza sacrificarne la chiarezza o l'intento. Invece di fornire uno script rigido con risposte specifiche per ogni possibile scenario con il cliente, prendi in considerazione l'adozione di linee guida e principi generali che aiutino l'agente a selezionare le azioni corrette in una varietà di situazioni.
Generazione aumentata dal recupero (RAG)
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:
- Recupero: il sistema AI effettua una ricerca in un database o in una fonte di grandi dimensioni per raccogliere informazioni pertinenti con il prompt dell'LLM. Ciò avviene utilizzando la ricerca semantica, una tecnica più sofisticata rispetto alla ricerca tradizionale basata su parole chiave. A differenza della ricerca per parole chiave, in cui i termini devono corrispondere esattamente, la ricerca semantica comprende il significato o il contesto dietro le parole. Identifica le informazioni pertinenti in base ai concetti o alle relazioni tra i termini, anziché cercare semplicemente corrispondenze precise delle parole. La ricerca per parole chiave può comunque fare la sua parte anche in questo processo di recupero, rafforzando la ricerca semantica con la corrispondenza delle parole chiave per termini o nomi specifici. Questo tipo di ricerca si chiama "ibrida".
- Aumento: le informazioni recuperate vengono aggiunte al prompt.
- Generazione: l'LLM genera una risposta contestualmente appropriata e più accurata grazie al prompt che è stato arricchito con le informazioni recuperate.
In Agentforce, la RAG può essere utilizzata con o senza un modello di prompt:
- RAG basata su prompt: in questo approccio, le istruzioni che indicano come generare la risposta sono nelle istruzioni del prompt in un modello di prompt. In tal caso, la risposta dipende interamente da ciò che l'LLM genera. A parte le istruzioni del prompt, esistono altri modi per influenzare la risposta, come le impostazioni di configurazione dell'LLM in Einstein Studio, ma il risultato non è comunque deterministico.
- RAG basata sul motore di ragionamento: anziché utilizzare un modello di prompt, l'agente si serve di un'azione che recupera dei frammenti (tramite un flusso o una classe Apex) e li memorizza in una variabile (vedi la sezione successiva). In questo approccio, il motore di ragionamento (e non l'LLM) genera risposte direttamente, radicate nei dati recuperati. Le istruzioni che governano la generazione delle risposte sono istruzioni per l'agente anziché istruzioni per il modello di prompt. La variabile che contiene il contenuto recuperato può comunque essere passata esplicitamente come input a un'azione. Può anche essere trasferita al motore di ragionamento concedendogli un accesso predefinito al contenuto della variabile. Questo approccio, però, richiede dei compromessi. Sussiste il potenziale rischio di sovraccaricare il motore di ragionamento con contenuti e responsabilità. Inoltre, a differenza di un prompt, i parametri dell'LLM del motore di ragionamento non sono configurabili. D'altra parte, il motore di ragionamento può generare la sua risposta utilizzando sia i frammenti recuperati sia la cronologia della conversazione.
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.
Best practice per la RAG
- Evita istruzioni della generazione aumentata dal recupero (RAG) basate su script: anziché collegare direttamente le istruzioni ad articoli specifici per domande particolari, sfrutta l'intelligenza della generazione aumentata dal recupero (RAG) per trovare dinamicamente la fonte di dati più pertinente e un frammento di testo preciso. Il processo di abbinamento della generazione aumentata dal recupero (RAG) si basa su una comprensione più ampia della domanda, non solo su una mappatura esatta da domanda a fonte.
- Consolida gli argomenti:: raggruppa le categorie di domande correlate in un unico argomento. La RAG è in grado di individuare in modo efficiente le risposte pertinenti in base al tipo di domanda, anche all'interno di un argomento più ampio. Ad esempio, problemi relativi ai prodotti come la manutenzione e problemi relativi alla batteria possono essere aggregati in un argomento più completo.
- Archivia l'output della generazione aumentata dal recupero (RAG) in una variabile: se il numero limite di interazioni potrebbe essere stato raggiunto, archivia l'output della generazione aumentata dal recupero (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ò verrà fornito nella sezione successiva.
Controllo agentico di livello 4: variabili
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.
Modi in cui le variabili supportano il determinismo
Le variabili possono aiutare a raggiungere il determinismo guidato degli agenti nei seguenti modi:
- Radicamento dinamico persistente nel contesto: le variabili consentono agli agenti di aggiornare continuamente la loro comprensione del mondo, pur conservando le informazioni importanti che rimangono inalterate da eventuali interazioni successive. Questo metodo garantisce che le informazioni critiche, che possono essere dati non strutturati recuperati tramite la RAG o dati strutturati come le informazioni sul profilo dell'utente, vengano mantenute durante tutta la conversazione, indipendentemente dalla sua durata.
- Input/output delle azioni: le variabili possono essere utilizzate sia come input che come output per le azioni. L'azione fa esplicitamente riferimento alle variabili e l'esecuzione non si basa sul motore di ragionamento per l'impostazione di questi input e output, il che aumenta il determinismo dell'agente.
- Filtro: le variabili possono essere utilizzate per determinare l'esecuzione condizionale di azioni o argomenti. Consentono un flusso specifico di informazioni tra le azioni e il determinismo nell'esecuzione delle stesse. Questa funzionalità è particolarmente cruciale per le regole di sicurezza in cui le azioni non possono essere avviate se variabili di input specifiche, come l'e-mail, non vengono verificate.
Tipi di variabili in Agentforce
Agentforce ha due tipi di variabili:
- Le variabili di contesto sono variabili generate dal sistema che contengono informazioni sull'utente e sulle sessioni di conversazione.
- L'utente può creare istanze di variabili personalizzate. Contengono qualsiasi tipo di informazione utilizzata per uno dei tre modi in cui le variabili supportano il determinismo.
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 | ✓ | ✓ |
Esempio di caso d'uso: risoluzione dei problemi dell'agente
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.
Recupero, impostazione e utilizzo dei passaggi di risoluzione dei problemi
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.
- Azione 1: "Popola i passaggi per la risoluzione del problema". Si tratta dell'azione iniziale, attivata dalla prima introduzione dell'agente al problema. Utilizza la generazione aumentata di recupero per estrarre tutti i passaggi necessari per la risoluzione da una Knowledge Base indicizzata. L'azione memorizza l'output risultante in una variabile denominata "Passaggi per la risoluzione".
- Azione 2: "Utilizza durante la risoluzione di un problema". Si tratta di un'azione basata su un prompt che genera il passaggio successivo più probabile da utilizzare durante il processo di risoluzione del problema. All'agente viene richiesto di utilizzare questa azione mentre sta risolvendo un 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.
Utilizzo di filtri per garantire l'ordine di esecuzione delle azioni
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.
- L'azione Passaggi per la risoluzione del problema può essere eseguita solo se la variabile "Passaggi per la risoluzione" è vuota.
- L'azione "Utilizza durante la risoluzione di un problema" può essere eseguita solo se la variabile "Passaggi per la risoluzione" ha 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:
- Radicamento dinamico persistente nel contesto: le variabili memorizzano i passaggi per la risoluzione del problema, garantendo che siano disponibili durante tutta la conversazione, indipendentemente dalla durata o dal numero di interazioni. Ciò impedisce all'agente di dimenticare il contesto.
- Flusso di dati: le variabili facilitano il flusso di dati tra le azioni. Ad esempio, la variabile "Passaggi per la risoluzione" memorizza i passaggi per la risoluzione del problema recuperati dall'azione Passaggi per la risoluzione del problema e li fornisce come input all'azione Utilizza durante la risoluzione di un problema.
- Determinismo: le variabili possono essere utilizzate come filtri per applicare un ordine specifico di esecuzione delle azioni. Ad esempio, l'azione Utilizza durante la risoluzione di un problema viene eseguita solo se la variabile Passaggi per la risoluzione è popolata, garantendo così che l'azione Passaggi per la risoluzione del problema venga eseguita per prima.
Variabili per rendere persistente l'output del modello predittivo
Nell'era dell'AI generativa,l'AI predittiva rimane di fondamentale importanza in quanto costituisce l'intelligenza base che guida, migliora e contestualizza le capacità generative. Mentre l'AI generativa si concentra sulla creazione di nuovi contenuti, come testo, immagini o video, i modelli predittivi fanno previsioni sul futuro sulla base di input provenienti da 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.
Come integrare l'output del modello predittivo nei workflow degli agenti
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.
Esempi di casi d'uso integrati con modelli predittivi
- Segmentazione: esegui una classificazione multi-classe dei clienti e utilizza il segmento risultante per filtrare determinate azioni. Ad esempio, riserva azioni premium per i clienti di livello premium.
- Probabilità di escalation: prevedi la probabilità di escalation di un caso di assistenza. Se questa probabilità supera una determinata soglia, consenti l'esecuzione di azioni che risolvono il caso più rapidamente o lo inoltrano agli agenti umani più velocemente.
- CPG: pianifica una promozione solo se l'aumento delle vendite (punteggio calcolato da un modello predittivo) supera una determinata soglia.
- E-commerce: proponi un prodotto solo se la propensione all'acquisto supera una determinata soglia.
Controllo agentico di livello 5: azioni deterministiche
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.
Flussi
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.
Azioni Apex e API
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.
Controllo agentico di livello 6: controllo deterministico con Script agente
Dal ragionamento probabilistico a quello deterministico
Nei livelli di determinismo da 1 a 5, abbiamo progressivamente aggiunto una struttura all'ambiente dell'agente. Abbiamo definito cosa potrebbe fare (livello 1, argomenti), quindi lo abbiamo guidato su come comportarsi (livello 2, istruzioni), poi gli abbiamo fornito un contesto in base a informazioni attendibili (livello 3, dati), abbiamo gestito il relativo stato (livello 4, variabili) e infine gli abbiamo fornito strumenti rigidi (livello 5, azioni deterministiche). Tuttavia, il motore decisionale centrale è rimasto fondamentalmente probabilistico. Il motore di ragionamento continuava a decidere autonomamente quale strumento scegliere o quale domanda porre in seguito. Pertanto, per questa decisione ci siamo affidati completamente al Large Language Model (LLM).
Il livello 6 (Script agente) modifica radicalmente questa architettura. Introduce la capacità di codificare il processo di ragionamento stesso.
Script agente consente di passare dal prompting del modello allo scripting dell'agente. Non si tratta di un ritorno a chatbot rigidi e obsoleti. Preferiamo definirlo ragionamento ibrido. Consente di integrare la potenza creativa e conversazionale dell'LLM tra livelli di logica immutabile e deterministica. Definisci esplicitamente il percorso critico di esecuzione (le "cose da fare"), lasciando però alcune aree di libertà all'LLM per gestire la comprensione del linguaggio naturale e la generazione delle risposte.
Durante la progettazione dei workflow, è fondamentale evitare di utilizzare agenti basati su LLM con script solo per sostituire una logica deterministica in cui i passaggi successivi sono già chiari e risolti. Se un processo segue un percorso prevedibile senza la necessità di un ragionamento complesso per decodificare le azioni successive, l'introduzione di un modello generativo aggiunge latenza, costi e margini di errore non necessari. I flussi programmatici tradizionali rimangono superiori per processi puramente deterministici e che non richiedono un ragionamento. L'utilizzo di un LLM per il routing semplici o le transizioni lineari è una scelta troppo ingegneristica che compromette l'affidabilità di un sistema gestibile con un flusso procedurale standard.
Come regola generale, le soluzioni agentiche devono essere prese in considerazione quando il sistema si occupa di input non strutturati che devono essere sintetizzati da fonti disparate e altamente variabili (tra cui eventuali input conversazionali) prima che possa essere presa una decisione.
Come si raggiunge questo livello di controllo? Esistono due percorsi distinti, progettati per l'architetto aziendale e per lo sviluppatore pro-code.
Due modi per far funzionare Script agente
Portare il determinismo di livello 6 al tuo agente non richiede necessariamente la scrittura di codice. Salesforce offre due modalità per generare lo Script agente sottostante, democratizzando l'accesso al ragionamento deterministico.
1. Il percorso del generatore (compilazione in linguaggio naturale)
Per gli analisti aziendali, gli amministratori e i professionisti del low-code, il livello 6 è accessibile direttamente all'interno del generatore di agenti.
Abbiamo introdotto un'area di disegno in stile documento che funge da interfaccia testo-script. Anziché codice, puoi scrivere la logica dell'argomento in un linguaggio strutturato e naturale. Il generatore interpreta quindi l'intento e lo compila nello Script agente sullo sfondo.
- Scrivi: "Innanzitutto, controlla se l'ordine risale a più di 30 giorni fa. Se è così, comunica all'utente che non possiamo accettare resi e concludi cortesemente la conversazione. Se non lo è, chiedi informazioni sulle condizioni dell'articolo".
- Il sistema compila automaticamente questa narrazione in linguaggio naturale nelle strutture if/else necessarie, nei controlli delle variabili e nei comandi end_conversation.
Ciò consente di scrivere la logica in linguaggio naturale e di far convertire la piattaforma in codice, garantendo che anche gli utenti non programmatori possano applicare guardrail rigidi e determinismo.
2. Il percorso code-first (scripting diretto)
Per gli sviluppatori che cercano la massima precisione, puoi scrivere lo Script agente direttamente all'interno del generatore di agenti. È possibile capovolgere l'area di disegno con la narrazione in linguaggio naturale per vedere lo script sottostante affinché lo sviluppatore possa codificare direttamente lo script. Questo approccio consente anche un'esperienza di creazione di contenuti ibrida: alcune istruzioni scritte in linguaggio naturale nell'area di disegno e altre basate su script (o su quelle esistenti modificate) direttamente utilizzando codice. Passando da un'esperienza all'altra, puoi notare che le due modalità sono sempre perfettamente allineate.
Entrambe le modalità consentono di sfruttare tutto il potenziale del livello 6:
- tracciamento dettagliato. Puoi scorrere l'esecuzione dello script per vedere esattamente dove sono state modificate le variabili o dove sono state acquisite le ramificazioni.
- Gestione di cicli complessi: puoi gestire logiche di ripetizione sofisticate o modifiche di stato multivariabili difficili da descrivere in linguaggio naturale.
- Controllo versioni: puoi trattare il comportamento degli agenti come codice, compatibile con pipeline git e CI/CD per il controllo delle versioni degli agenti.
La meccanica di Script agente
Sia che si generi lo Script agente tramite il generatore o lo si scriva a mano, il risultato sarà lo stesso: lo Script agente viene convertito in un grafico agente eseguito dal motore di ragionamento Atlas.
Per controllare il livello 6, bisogna conoscere il funzionamento interno del sistema. Lo Script agente controlla il comportamento mediante strutture programmatiche specifiche all'interno di blocchi di ragionamento. A differenza dei prompt standard, che sono suggerimenti che l'LLM deve seguire, questi sono comandi che verranno eseguiti comunque. Ciò avviene prima, durante o dopo il processo di ragionamento e si manifesta in diversi tipi distinti di determinismo. Esamineremo innanzitutto alcuni di questi modelli in generale e forniremo alcuni esempi semplici, quindi li illustreremo ulteriormente con esempi di progetti architettonici di agenti basati su script.
1. Determinismo prima e dopo il ragionamento
Nei livelli 1-5, abbiamo sperato che l'agente facesse qualcosa (eseguisse un'azione) prima o dopo un determinato passaggio del processo. Nel livello 6, lo costringiamo a farlo. Qualsiasi cosa venga scritta nei blocchi before_reasoning e after_reasoning, sarà sempre eseguita, rispettivamente prima e dopo aver richiamato l'LLM per ragionare in base alle istruzioni. Può trattarsi di eseguire altre azioni, passare agli argomenti, impostare variabili e così via.
Ad esempio, utilizzando il comando run all'interno delle istruzioni before_reasoning di un argomento, puoi eseguire un'azione anche prima che l'LLM venga richiamato per generare una risposta. Ciò garantisce che i dati siano immediatamente disponibili, eliminando la latenza di ragionamento o il rischio che l'agente dimentichi di chiamare lo strumento.
Struttura dello script:
Ragionamento:
istruzioni: ->
before_reasoning :
# Deterministico: Questa operazione viene eseguita automaticamente dopo l'inserimento dell'argomento.
# L'LLM non ha scelta in questo caso. Riceve semplicemente l'output.
istruzioni
# Ora all'LLM viene richiesto il risultato già nel contesto
| Stai parlando con un cliente. Il relativo stato VIP è {!@variables.is_vip}.
# eventuali ulteriori istruzioni (ragionamento normale) proseguono
Qualsiasi istruzione necessaria all'agente per ragionare.
2. Determinismo condizionale (if/else)
Il determinismo condizionale ti consente di utilizzare la logica di programmazione standard per controllare il flusso. Ciò è fondamentale per i workflow di conformità in cui i passaggi non possono essere ignorati o reimpostati.
Struttura dello script:
ragionamento:
istruzioni: ->
if @variables.is_vip == true:
# Ignora il controllo del credito per VIP in modo deterministico
run @actions.apply_auto_approval
| Informa il cliente che il prestito è stato approvato automaticamente a causa dello stato VIP.
else:
# Applica il controllo del credito per tutti gli altri
run @actions.initiate_credit_check
| Comunica al cliente che ora stiamo controllando il suo punteggio di credito.
In questo esempio, l'LLM non ha mai la possibilità di allucinare un'approvazione per un utente non VIP. Il ramo viene seguito in modo deterministico dal motore.
3. Determinismo delle transizioni (@utils.transition)
Un altro potente controllo consiste nella capacità di forzare l'agente a uscire dall'argomento corrente e passare a un altro. Ciò consente di evitare che l'agente si blocchi o si sposti in conversazioni non correlate.
Struttura dello script:
if @variables.stock_level == 0:
# Passa immediatamente all'argomento "Ordine arretrato"
Da @utils.transition a @topic.handle_backorder
Questa transizione non è un suggerimento. Si tratta di un reindirizzamento rigido del flusso di esecuzione che dipende dal valore di una variabile. Tieni presente che, sebbene il reindirizzamento sia rigido e non negoziabile, all'interno dell'argomento imposto all'agente si svolge nuovamente un normale processo di ragionamento.
Inoltre, Script agente ti consente di forzare esplicitamente una transizione da un'azione all'altra immediatamente dopo il completamento. Questa funzionalità garantisce che l'agente segua un flusso rigido e deterministico anziché basarsi su un processo decisionale probabilistico o autonomo in ogni fase. Concatenando queste azioni in una sequenza predefinita, puoi garantire che attività specifiche vengano eseguite in un ordine preciso, offrendo il controllo totale sulla logica e sul comportamento dell'agente.
4. Determinismo nella gestione degli stati variabili
Script agente offre l'accesso diretto in lettura/scrittura alla memoria a breve termine dell'agente (variabili). Puoi impostare esplicitamente variabili in base agli output delle azioni, evitando l'effetto "telefono senza fili" in cui un LLM potrebbe interpretare erroneamente l'output JSON di uno strumento.
Struttura dello script:
# Associare esplicitamente l'output di un'azione a una variabile
run @actions.check_inventory with sku=@variables.current_sku
set @variables.stock_level = @outputs.quantity_available
Progetti architetturali: Esempi pratici di Script agente
Per comprendere appieno la potenza di Script agente, dobbiamo andare oltre i singoli comandi e osservare come funzionano insieme. Gli schemi architetturali riportati di seguito (derivati dalla nostra raccolta di modelli di Script agente ) dimostrano come il determinismo di livello 6 risolva sfide aziendali complesse.
1. Contesto dinamico: Aggiunta dinamica di informazioni a "latenza zero"
Problema: gli agenti standard spesso soffrono di latenza di ragionamento. Aspettano che l'utente ponga una domanda, quindi pensano a quale strumento utilizzare e potrebbero persino chiedere all'utente informazioni che avrebbero già potuto recuperare e solo dopo richiamano l'azione. Ciò crea un'esperienza discontinua e poco fluida. Script agente: determinismo pre-ragionamento.
Utilizziamo il comando run per inserire i dati prima ancora che l'LLM si attivi.
Esempio: l'agente di valutazione di emergenza. Immagina un agente che gestisce una segnalazione di interruzione di corrente. Anziché chiedere l'indirizzo all'utente e attendere, nel momento in cui inizia la sessione, lo script esegue automaticamente un comando get_current_location_by_IP e check_grid_status.
Risultato: l'agente non inizia con "Come posso aiutarti?" Inizia come segue: "Vedo che stai chiamando dal settore nord, dove è stato confermato un incendio al trasformatore. Ho già aggiunto la tua famiglia all'elenco prioritario per il ripristino. Hai un generatore di riserva in funzione?"
Logica:
ragionamento:
istruzioni: ->
run @actions.get_incident_status with zip=@user.zip
set @variables.is_outage = @outputs.active_incident
| Se {!@variables.is_outage}, riconosci immediatamente l'incidente specifico.
2. Radicamento nel contesto condizionale
Prompt lunghi (che forniscono all'agente tutte le regole contemporaneamente) portano ad una maggiore probabilità di allucinazione nel processo di ragionamento. L'agente dimentica la regola A perché sta esaminando la regola Z.
Soluzione con Script agente: aggiungi istruzioni just-in-time con radicamento nel contesto condizionale combinando la generazione aumentata dal recupero (RAG) e la logica condizionale. Mostra all'agente solo le regole che si applicano al momento esatto della conversazione.
Esempio: fornire regole per offerte non idonee. Perché fornire all'agente le regole per richiedere aumenti di credito, quando il punteggio di credito del cliente non consente nemmeno di iniziare?
Logica:
if @variables.credit_score < 600:
# L'agente è fisicamente all'oscuro delle istruzioni relative all'aumento del credito.
# Vede solo le istruzioni relative alla "Consulenza sul debito" recuperate tramite la generazione aumentata dal recupero (RAG)
| Concentrati esclusivamente sulla spiegazione delle risorse per il ripristino del credito. Insert $Debt_Counseling_Retriever.results
else:
| Puoi offrire un aumento del limite fino a 5.000 euro.
Il radicamento nel contesto condizionale consiste nell'eliminare la possibilità di errore rimuovendo completamente informazioni che distraggono quando non sono necessarie.
3. Conversazione guidata
Problema: in una conversazione complessa con un agente (come una richiesta di mutuo, un colloquio di selezione per un posto di lavoro o una sessione di risoluzione di problemi tecnici), l'agente mantiene un elenco di domande a cui è obbligatorio rispondere in modo da acquisire tutte le informazioni necessarie dall'utente. Tuttavia, gli utenti spesso divagano. Un agente standard potrebbe seguire l'utente e dimenticare di tornare sulle domande fondamentali, lasciando la richiesta o la conversazione incompleta.
Alla base di questo sistema vi è la navigazione con stato, che tratta la conversazione come un elenco di controllo rigoroso da completare completamente prima che possa avvenire qualsiasi transizione.
Attraverso la navigazione con stato, l'agente passa da un argomento all'altro basandosi rigorosamente sullo stato corrente delle variabili oppure rimane bloccato in un argomento finché non vengono soddisfatte condizioni specifiche. Ciò impedisce all'agente di seguire percorsi inammissibili, anche quando un utente cerca di deviare la conversazione con digressioni. Ad esempio, in una richiesta di mutuo ad alto rischio, se un utente chiede gli orari di apertura della filiale, l'agente non si limita a cercare di restare sul percorso previsto. Lo script rileva la deviazione e può attivare una transizione forzata verso un argomento di ripristino della conformità. Bloccando l'agente in una specifica "stanza logica", diventa matematicamente impossibile per lui discutere argomenti non approvati o uscire dalla sessione finché ogni variabile obbligatoria non è stata acquisita con successo.
Esempio: L'ispettore di manutenzione supervisiona l'operazione, mentre un agente guida un tecnico attraverso un controllo di sicurezza a 10 punti su un motore di aeromobile. Il tecnico dice: "Aspetta, ho notato anche un graffio sulla fusoliera".
Comportamento:
- L'agente riconosce il graffio (linguaggio naturale).
- Registra il graffio in una variabile (gestione dello stato).
- Si rifiuta di chiudere la sessione o di cambiare argomento finché non conferma: "Ho registrato il graffio sulla fusoliera, ma non possiamo passare alla sezione Esterno finché non confermi l'impostazione della coppia sulla valvola di aspirazione. Che lettura hai rilevato?"
Logica:
if @variables.safety_check_complete == false:
# Impedisci all'utente di terminare l'argomento
| Riconosci la nota a margine dell'utente, quindi torna al campo obbligatorio:
{!@variables.missing_field}.
@utils.stay_in_topic
Tuttavia, una conversazione guidata dovrebbe essere più di un semplice elenco sequenziale di domande. Altrimenti l'agente finisce per assomigliare più a un semplice modulo mascherato da assistente. Il suo valore principale risiede nell'instradamento intelligente, ovvero utilizzare domande preliminari per indirizzare l'utente al modulo o al workflow corretto.
La transizione da uno script semplice a uno Script agente solido diventa logica quando la complessità aumenta. Anziché limitarsi a chiedere, l'agente inizia ad agire: Ad esempio, l'agente potrebbe estrarre passaggi di risoluzione dei problemi dalla documentazione, esplorare politiche interne o eseguire chiamate API a sistemi esterni per risolvere problemi in tempo reale.
Scelta tra autonomia guidata e precisione basata su script
Con l'introduzione di Script agente come livello 6 nel framework dei livelli di determinismo, ora disponi di uno spettro completo di controllo: dalla massima libertà espressiva di un argomento di livello 1 alla logica rigida e basata su codice di uno Script agente di livello 6.
Tuttavia, uno strumento potente non consente di risolvere qualsiasi problema.
L'errore più comune è pensare che un livello più alto sia sempre migliore e che gli agenti debbano essere controllati completamente tramite script in ogni situazione. Questo non è vero. La vera abilità nell'architettura e nella progettazione degli agenti consiste nel dimensionare correttamente il determinismo, applicando solo il controllo necessario per garantire la sicurezza, senza sacrificare la flessibilità conversazionale che rende l'AI preziosa fin dall'inizio. Non sovrastrutturare i tuoi agenti al punto che diventino semplici chatbot potenziati.
Questo capitolo fornisce uno schema decisionale per aiutarti a stabilire quando affidarti all'autonomia guidata dei livelli 1-5 e quando applicare la precisione basata su script del livello 6. Non si tratta di leggi rigide, ma piuttosto di linee guida pratiche, pensate per fornire un contesto su come valutare le diverse opzioni e i livelli di determinismo.
Per semplificare la decisione, possiamo suddividere i sei livelli in due aree strategiche distinte:
Area A: autonomia guidata dei livelli 1-5
- Filosofia: "Fidati, ma verifica". Fornisci all'agente l'obiettivo, i dati e gli strumenti (che possono essere deterministici, vedi livello 5), ma lascia che il motore di ragionamento decida come usarli al meglio.
- Meccanismo: ragionamento probabilistico. L'agente analizza l'intento dell'utente e seleziona dinamicamente lo strumento più adatto al compito.
- Ideale per: raccolta di informazioni, domande e risposte generali, attività a basso rischio, ambiti di servizio ampi.
Dovresti fare affidamento sui comportamenti standard e probabilistici dei livelli da 1 a 5 quando:
1. Il percorso giusto non è sempre lo stesso
In molti scenari conversazionali, un percorso rigido e codificato è in realtà uno svantaggio perché il percorso conversazionale corretto è variabile. Per interazioni dinamiche come lo shopping personale o la pianificazione delle vacanze, non esiste un'unica sequenza corretta. Un utente può dare priorità al prezzo, al luogo o ai servizi in qualsiasi ordine desideri. In questi casi, imporre uno script con stato genererebbe un'esperienza frustrantemente robotica, quindi è più efficace affidarsi alle istruzioni per definire la persona e gli obiettivi dell'agente, lasciando che sia l'utente a guidare il flusso. Inoltre, questo approccio consente di velocizzare notevolmente il rilascio sul mercato, poiché creare script complessi di livello 6 con variabili e rami annidati è spesso eccessivo per attività come quelle di agenti per domande frequenti del personale HR. Radicando il contesto dell'agente su dati e generazione aumentata dal recupero (RAG), puoi evitare la necessità di creare uno script manuale esaustivo e lasciare che il motore di recupero gestisca dinamicamente la conversazione basandosi sulla knowledge base esistente.
2. Scalabilità mediante il determinismo modulare: Evitare l'incubo della manutenzione
Quando l'ambito del tuo agente raggiunge una vasta scala, ad esempio la gestione di 500 diverse query di supporto IT con i propri processi, la sfida principale non consiste nel poter o meno creare un unico script agentico deterministico, ma se è necessario o meno. Il tentativo di mappare ogni possibile permutazione di 500 attività in un unico Script agente gigante crea un grosso problema di manutenzione. Ogni volta che una policy cambia o viene aggiunto un nuovo passaggio di risoluzione dei problemi, rischi di compromettere un'enorme rete di logica interconnessa.
La soluzione consiste nel passare da uno script monolitico ad azioni deterministiche di livello 5. Anziché creare script per l'intera conversazione, puoi creare flussi solidi e isolati per azioni di alto valore, ad esempio per la reimpostazione di password o lo sblocco di account. Quindi lasci che il motore di ragionamento agisca come un controllore del traffico, identificando l'intento dell'utente dalle sue formulazioni e instradandolo verso l'azione deterministica appropriata. Questo approccio offre il meglio di entrambe le soluzioni: l'affidabilità di uno script per attività critiche e un'architettura flessibile e scalabile, che non crolla sotto il proprio peso man mano che cresce la tua libreria di attività.
Area B: Precisione basata su script con Script agente di livello 6
- Filosofia: "Qualsiasi cosa tu faccia o decida, in ogni caso, fai esattamente questo". Tu definisci il percorso. L'agente è l'interfaccia per eseguire la tua logica. Integra la creatività dell'agente in livelli di logica vincolante.
- Meccanismo: ragionamento deterministico. Il "cervello" segue un grafico precompilato. L'LLM viene utilizzato solo per il ragionamento, la comprensione del linguaggio naturale e la generazione di risposte, dove lo script lo consente.
- Ideale per: conformità, transazioni finanziarie, alberi diagnostici, workflow ad alto rischio e settori altamente regolamentati.
Tieni presente che, all'interno dei percorsi deterministici definiti dal livello 6, tutte le opzioni dei livelli 1-5 continuano a essere disponibili.
Dovresti passare a Script agente quando "quasi corretto" non è sufficiente.
1. I controlli vincolanti (sicurezza e autenticazione)
Se un utente chiede di trasferire denaro, probabilmente non puoi fare affidamento sull'LLM per chiedere l'autenticazione. È necessaria una garanzia matematica che il flusso di autenticazione venga eseguito prima del flusso di transazione.
- Soluzione con Script agente: utilizza run @actions.verify_identity all'interno di un blocco before_reasoning o all'inizio dello script per forzare la conformità prima che l'LLM generi un singolo token.
2. Conformità normativa
In settori come quello sanitario o finanziario, gli agenti spesso devono leggere una dichiarazione di non responsabilità testualmente o porre domande in un ordine legalmente imposto.
- Soluzione con Script agente: codifica l'informativa.
# L'LLM non può riassumere o "riscrivere" il testo. È obbligato a produrlo.
| "Dichiarazione di non responsabilità: sono un agente AI. Non posso fornire consulenza finanziaria".
3. Dipendenze complesse in più passaggi e sequenze di azioni obbligatorie
Se il passaggio B richiede l'output del passaggio A e il passaggio C dipende da un calcolo del passaggio B, affidarsi a un LLM per trasferire queste variabili tramite il contesto del prompt, come in un "telefono senza fili", è rischioso. Inoltre, quando l'esecuzione di una determinata azione è strettamente obbligatoria dopo un'altra azione, la sequenza deve essere codificata.
- Soluzioni con Script agente: utilizza set @variables.x = @outputs.y per collegare esplicitamente i dati tra i passaggi, garantendo una corrispondenza perfetta. Utilizza le istruzioni run e @utils.transition per codificare la sequenza.
4. Prevenire le deviazioni dall'argomento
In attività di risoluzione dei problemi ad alto rischio (ad esempio: "Il mio pacemaker sta emettendo un segnale acustico"), non vuoi che l'agente venga distratto se l'utente chiede improvvisamente: "Che tempo fa?"
- Soluzione con Script agente: Utilizza @utils.transition per bloccare l'utente nell'argomento Protocollo di emergenza fino alla risoluzione del problema, disabilitando esplicitamente la possibilità di deviare.
Architettura ibrida: il meglio di entrambe le soluzioni
Le architetture di agenti più avanzate non scelgono tra i due approcci: utilizzano il livello 6 come struttura di controllo e i livelli 1-5 per l'esecuzione operativa. Il risultato è uno schema deterministico strutturato a livelli. Puoi utilizzare Script agente per gestire l'inizio e la fine critici di una conversazione, lasciando aperta la parte centrale per un ragionamento flessibile.
- Passaggio 1 (livello 6): Script agente impone la valutazione e l'autenticazione.
- Risultato: l'utente viene identificato in modo sicuro e l'intento viene classificato.
- Passaggio 2 (livelli 1-5): Script agente passa a un argomento standard.
- Risultato: l'agente utilizza la generazione aumentata dal recupero (RAG) standard, azioni, istruzioni e probabilmente anche variabili per risolvere in modo flessibile il problema dell'utente.
- Passaggio 3 (livello 6): l'agente rileva che il problema è stato risolto e torna a Script agente per le azioni di chiusura.
- Risultato: Script agente impone la raccolta dei punteggi CSAT e l'uso di un linguaggio di saluto conforme.
Tabella di riepilogo: Guida rapida per l'architetto
| Funzione | Livelli 1-5 (autonomia guidata) | Livello 6 (Script agente) |
|---|---|---|
| Driver principale | Motore probabilistico (decide l'LLM) | Grafico deterministico (decide il codice) |
| Origine logica | Prompt in linguaggio naturale | Logica if/else, gestione dello stato, logica di transizione |
| Esecuzione delle azioni | "Agente, ecco uno strumento. Usalo se vuoi". | "Agente, esegui questo strumento. Adesso". |
| Memoria contestuale | Implicita tramite la finestra di contesto dell'LLM (eccetto quando si utilizza il livello 4) | Esplicita tramite variabili mutabili utilizzate in tutto lo script |
| Esempi di casi d'uso | Ricerca di informazioni, shopping, scrittura creativa | Autenticazione, pagamenti, conformità, diagnostica |
| Sforzo di sviluppo | basso (principalmente prompting) | medio/alto (scripting/logica) |
| Tolleranza al rischio | media | bassa (Zero Trust) |
Consiglio finale: inizia con i livelli 1-5 per velocità e rilevamento e monitora i tuoi registri. Se noti che l'agente fatica a mantenere la coerenza, non riesce a seguire una sequenza o "allucina" parametri, rafforza selettivamente il workflow specifico con il livello 6.
Conclusione
Script agente è il componente definitivo per portare il determinismo negli agenti. Riconosce che, sebbene l'AI sia probabilistica, il business è deterministico. Adottando Script agente (tramite l'area di disegno che supporta la creazione di agenti in linguaggio naturale o tramite codice diretto), non limiti l'intelligenza del tuo agente, la focalizzi. Crei un sistema in cui l'arte della conversazione incontra la scienza dell'esecuzione dei processi, garantendo che i tuoi workflow più critici funzionino sempre esattamente come progettato.
Il livello 6 è anche la consapevolezza che autonomo non significa incontrollato.
Per anni, il settore ha dibattuto sull'uso delle regole rispetto all'AI per quanto riguarda il processo decisionale e l'ottimizzazione dei processi. Il fronte delle regole rigorose sosteneva la prevedibilità. Il fronte dell'AI sosteneva la flessibilità. Script agente pone fine a questo dibattito dimostrando che l'architettura corretta non è costituita da una soluzione o l'altra, ma da entrambe.
L'adozione di Script agente ti consente di creare agenti ibridi: sistemi che possiedono la struttura rigida del codice e la mente flessibile di un LLM. Il futuro dell'AI aziendale non riguarda modelli più grandi, ma un controllo migliore. Con Script agente, il controllo è finalmente nelle tue mani.
Domande frequenti sul determinismo dell'AI
I sei livelli di determinismo dell'AI sono: selezione di argomenti e azioni senza istruzioni, istruzioni degli agenti, radicamento nel contesto dei dati, variabili degli agenti, azioni deterministiche che utilizzano flussi, Apex e API e controllo agentico con Script agente.
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 di più sugli agenti AI e su come possono aiutare la tua azienda.
Fai un salto di qualità con Agentforce!
Crea agenti rapidamente.
Scopri tutti i dettagli sula creazione degli agenti nella nostra libreria.
Richiedi la guida di un esperto.
Avvia Agentforcecon velocità, sicurezza e ROI misurabili.
Parla con un rappresentante.
Parlaci delle esigenze della tua azienda e ti aiuteremo a trovare le risposte.