Il Nodo Autonomo Botpress consente di creare agenti AI funzionali, non chatbot, ma agenti autonomi che prendono decisioni in base al contesto disponibile.
Fornendo istruzioni chiare e integrando gli strumenti, i costruttori di bot possono utilizzare i nodi autonomi per delineare il comportamento di un chatbot.
Il Nodo è progettato per gestire sia il processo decisionale che l'esecuzione, comprendendo gli input dell'utente, rispondendo con i dati giusti e sfruttando i suoi strumenti.
Se siete interessati a utilizzare un Nodo autonomo, siete nel posto giusto. In questo articolo, vi illustrerò le basi per l'utilizzo della funzione di potenza agenziale della nostra piattaforma.
Caratteristiche principali del nodo autonomo
1. LLM Guidati dalle decisioni
Un Nodo Autonomo utilizza le capacità di un LLM per prendere decisioni intelligenti.
2. Comportamento autonomo
Un nodo autonomo può eseguire azioni senza intervento manuale sulla base di istruzioni e input dell'utente.
3. Strumenti
Il nodo autonomo comprende e utilizza strumenti specifici, ad esempio può interrogare le basi di conoscenza, eseguire ricerche sul Web ed eseguire transizioni di flussi di lavoro.
4. Personalizzazione
Configurando un Nodo Autonomo con una persona adeguata e istruzioni dettagliate, si può garantire che si comporti in modo on-brand e nell'ambito delle conversazioni.
5. Scrivere ed eseguire codice
Il nodo autonomo può generare ed eseguire codice personalizzato per svolgere le attività.
6. Autocorrezione
Se il nodo autonomo si trova su una strada sbagliata, ha la capacità di autocorreggersi e di recuperare gli errori.
Impostazioni di configurazione
Ogni nodo autonomo richiede un'attenta configurazione per allineare il suo comportamento alle esigenze aziendali.
La parte più importante della configurazione di un nodo autonomo è la scrittura del prompt e delle istruzioni giuste. Il prompt aiuta l'agente a capire la sua persona e guida il processo decisionale.
Scatola delle istruzioni
Nel riquadro Istruzioni, fornire linee guida chiare. Più specifiche sono le istruzioni, migliore sarà il processo decisionale dell'agente.
Esempio: "Sei un assistente utile che risponde sempre alle domande utilizzando lo strumento 'knowledgeAgent.knowledgequery'. Se l'utente dice 'cerca', usa lo strumento 'browser.webSearch'".
Consentire la conversazione
La levetta Consenti conversazione consente al Nodo autonomo di comunicare direttamente con gli utenti. Se è disattivata, il nodo elabora solo i comandi ed esegue la sua logica interna senza inviare messaggi agli utenti.
Comprendere gli strumenti
In base alle istruzioni fornite dall'utente, un nodo autonomo è dotato di diversi strumenti che può richiamare.
Ogni strumento esegue un'azione specifica: capire quando e come usare questi strumenti è fondamentale per guidare le decisioni del Nodo.
7 strumenti più comuni
- global.think: Consente al motore LLMz di riflettere prima di procedere.
- browser.webSearch: Consente all'agente di cercare le risposte sul Web.
- knowledgeAgent.knowledgequery: Interroga una base di conoscenza interna per trovare informazioni pertinenti.
- clock.setReminder: Imposta un promemoria per attività o risposte future.
- workflow.transition: Esegue una transizione del flusso di lavoro, passando da una parte all'altra della conversazione in base all'input dell'utente.
- chat.sendText: Invia un messaggio di testo all'utente come risposta.
- chat.waitForUserInput: Mette in pausa l'esecuzione e attende ulteriori input dall'utente.
Specificando quale strumento utilizzare in risposta alle azioni dell'utente, è possibile controllare il flusso e i risultati della conversazione.
Ad esempio, è possibile indicare a LLM di eseguire sempre determinate azioni quando si verificano condizioni specifiche: "Quando l'utente dice '1', utilizzare lo strumento 'workflow.transition' per passare alla fase successiva".
Oppure: "Se l'utente pone una domanda, provare prima a rispondere utilizzando lo strumento 'knowledgeAgent.knowledgequery'".
Esempio di flusso di lavoro
Ecco un esempio passo passo di come il Nodo Autonomo potrebbe essere configurato e funzionare durante una conversazione:
1. Ingresso dell'utente
L'utente digita una domanda sul prodotto dell'azienda.
2. Esecuzione delle istruzioni
Il nodo autonomo segue il prompt e utilizza lo strumento knowledgeAgent.knowledgequery per cercare nella base di conoscenza interna.
3. LLM Decisione
Se la base di conoscenza non offre una risposta soddisfacente, il nodo può utilizzare lo strumento browser.webSearch per cercare ulteriori informazioni sul web.
4. Inviare il messaggio
Una volta che la risposta è pronta, il nodo utilizza chat.sendText per rispondere all'utente con le informazioni pertinenti.
5. Attendere l'ingresso
Dopo aver risposto, il nodo utilizza chat.waitForUserInput per attendere ulteriori richieste o interazioni da parte dell'utente.
Come scrivere le istruzioni
Come mostrato nell'esempio, istruzioni chiare sono fondamentali per garantire che il Nodo Autonomo si comporti correttamente.
La capacità di LLMdi prendere decisioni è fortemente influenzata dal modo in cui sono strutturate le istruzioni.
Ecco 3 buone pratiche per scrivere le istruzioni per il vostro nodo autonomo:
1. Essere specifici
Invece di comandi vaghi, utilizzate un linguaggio esplicito che guidi l'agente in modo chiaro.
Esempio: "Se l'utente dice 'aiuto', inviategli un elenco predefinito di opzioni di assistenza utilizzando 'chat.sendText'".
2. Definire l'uso dello strumento
Indicare esplicitamente quale strumento deve essere utilizzato in quali circostanze.
Esempio: "Utilizzare sempre 'knowledgeAgent.knowledgequery' per rispondere alle domande relative ai prodotti".
3. Guidare il flusso
Utilizzate transizioni e passaggi chiari per garantire che la conversazione fluisca nella giusta direzione.
Esempio: "Se la base di conoscenza non è in grado di rispondere, passare a una query di ricerca utilizzando 'browser.webSearch'".
Ulteriori informazioni sono disponibili ai seguenti link:
- Migliori pratiche per l'ingegnerizzazione dei prompt con l'API OpenAI
- Costruire sistemi con l'API ChatGPT
- ChatGPT Ingegneria tempestiva per gli sviluppatori
Utilizzo della sintassi di Markdown
Prima di iniziare, è importante parlare dell'importanza dell'uso della sintassi di Markdown.
Per creare un prompt strutturato e visivamente chiaro, è essenziale utilizzare la sintassi di markdown, come le intestazioni, i punti elenco e il testo in grassetto.
Questa sintassi aiuta LLM a riconoscere e rispettare la gerarchia delle istruzioni, guidandolo a distinguere tra sezioni principali, sottoistruzioni ed esempi.
Se per voi è difficile usare la sintassi di Markdown, usate qualsiasi struttura sia facile per voi, purché rimaniate chiari e gerarchici.
Ulteriori informazioni sulla sintassi di base di Markdown
Suggerimenti utili
Questa sezione contiene un elenco degli esempi e dei modelli più comuni che si possono usare per controllare il comportamento del Nodo Autonomo.
Questi esempi sono tratti dall'esperienza pratica e mostrano come gestire diversi scenari utilizzando istruzioni e strumenti specifici.
Concentrarsi sulla conoscenza interna
Per assicurarsi che il nodo distingua tra domande di assistenza e altri tipi di richieste (come prezzi o caratteristiche), è possibile guidarlo come segue:
**Processo generale IMPORTANTE**
- Lo strumento knowledgeAgent.knowledgequery deve essere utilizzato solo per domande relative all'assistenza e NON per domande generali sulle caratteristiche o sui prezzi.
- Lo strumento browser.websearch deve essere utilizzato SOLO per le domande di assistenza e NON per le domande generali sulle caratteristiche o sui prezzi.
Questo suggerimento assicura che LLM si attenga all'uso di strumenti specifici solo nel contesto delle richieste di assistenza, mantenendo il controllo sul tipo di informazioni che recupera.
Nodo di transizione in un sottoflusso
A volte si desidera che il bot esca dal nodo autonomo per entrare in un sottoflusso.
Supponiamo che si voglia che il bot raccolga l'e-mail di un utente e poi cerchi altre informazioni su quell'e-mail da altri sistemi per arricchire le informazioni di contatto.
In questo caso, potrebbe essere necessario che il bot esca dal ciclo del nodo autonomo e si addentri in un flusso secondario che contiene molti passaggi/sistemi per arricchire il contatto:
Quando l'utente desidera maggiori informazioni su un'e-mail, va allo strumento di transizione.
Questa istruzione indica al nodo di invocare lo strumento workflow.transition ogni volta che l'utente chiede maggiori dettagli sulle e-mail, indirizzando il flusso di conversazione di conseguenza.
Riempire una variabile ed eseguire un'azione
Per gli scenari in cui si desidera che il nodo catturi l'input e attivi un'azione simultaneamente, è possibile richiederlo come tale:
Quando l'utente desidera maggiori informazioni su un'e-mail, si passa allo strumento di transizione e si inserisce la variabile "e-mail" con l'e-mail di cui l'utente chiede informazioni.
In questo caso, si guida il nodo non solo per attivare la transizione, ma anche per estrarre e memorizzare l'e-mail dell'utente in una variabile, consentendo un comportamento dinamico in seguito nella conversazione.
Manipolazione della risposta in base a una condizione
A volte, si desidera che il nodo esegua una logica aggiuntiva basata su condizioni. Ecco un esempio di richiesta relativa alla fornitura di collegamenti video:
Se gli utenti selezionano "1", dite qualcosa come "grazie", quindi utilizzate lo strumento di transizione.
Questa richiesta aiuta il nodo a comprendere la struttura prevista di un collegamento video e a modificarla quando l'utente chiede di fare riferimento a un punto specifico del video.
Esempio di utilizzo di un modello per i collegamenti video
È possibile chiarire ulteriormente la richiesta fornendo un esempio reale di come il sistema dovrebbe comportarsi quando risponde a una richiesta di collegamenti video da parte dell'utente:
**Video Link Example:**
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
In questo modo, il nodo riceve una guida chiara su come generare dinamicamente i link ai video con date e orari specifici, garantendo risposte coerenti e di facile utilizzo.
Risoluzione dei problemi e diagnosi
Quando si testa il comportamento del Nodo Autonomo nell'emulatore, è importante diagnosticare ciò che accade sotto il cofano. Come prende le decisioni il nodo?
Ecco come è possibile risolvere i problemi e ispezionare il processo di pensiero e le prestazioni del nodo.
Tre modi per risolvere i problemi
1. Ispezionare la mente del nodo
Facendo clic su Ispeziona, è possibile sbirciare lo stato interno del Nodo Autonomo e capire cosa sta elaborando il LLM . Ispezionando, è possibile vedere:
- Quali istruzioni sono prioritarie per il nodo
- Come interpreta il vostro messaggio
- Che si tratti di rispettare i vincoli e le istruzioni fornite dall'utente
Se si nota che il nodo non risponde correttamente o sembra ignorare alcune istruzioni, l'ispezione rivelerà se ha frainteso il prompt o se non è riuscito a eseguire uno strumento specifico.
2. Controllare la scheda Strumenti
La sezione Strumenti visualizza tutti gli strumenti disponibili che il Nodo Autonomo può utilizzare. Ogni volta che si aggiunge una nuova scheda o si apporta una modifica alla configurazione del nodo, l'elenco degli strumenti viene aggiornato.
- Assicuratevi che gli strumenti elencati corrispondano a quelli che vi aspettate siano disponibili nel processo decisionale del nodo.
- Assicurarsi che i nomi degli strumenti siano scritti correttamente nel prompt per garantire che il nodo possa eseguire correttamente l'azione specificata.
3. Controllare la scheda Iterazioni
Il Nodo Autonomo cerca in genere di eseguire tutte le istruzioni entro una o due iterazioni. Il numero di iterazioni dipende dalla complessità della richiesta e dal modo in cui il nodo la analizza.
Per le attività più complesse, il nodo potrebbe richiedere più iterazioni per raccogliere dati, prendere decisioni o reperire informazioni esterne.
Esaminando la scheda Iterazioni (o la scheda Tutto), è possibile capire:
- Quante iterazioni sono state necessarie al nodo per raggiungere la decisione finale.
- Cosa ha fatto sì che il nodo eseguisse più passaggi (ad esempio, recuperando dati aggiuntivi da strumenti come knowledgeAgent.knowledgequery o browser.webSearch).
- Perché è stato raggiunto un determinato risultato.
Problemi comuni di risoluzione dei problemi
Dimensioni del modello
Il nodo autonomo potrebbe non seguire il prompt, eseguendo una parte del prompt invece di tutto, oppure chiamando il "workflowQueue" senza chiamare gli strumenti "workflowExecuteAll".
Ha senso cambiare sempre le dimensioni del nodo autonomo LLM con un modello più piccolo, perché è più economico, ma questo ha un costo.
Un LLM più piccolo potrebbe far sì che alcune parti del prompt vengano troncate, in particolare l'involucro di definizione che Botpress aggiunge per garantire che LLM capisca come funzionano le carte, quali parametri sono richiesti, ecc. Senza questo, il bot non saprebbe come agire correttamente.
Versione LLMz
Assicurarsi sempre di utilizzare l'ultima versione stabile di LLMz. È il motore autonomo che dirige il nodo autonomo a lavorare.
Contiene anche correzioni di bug, rendendo i prompt più agnostici rispetto a LLMs.
Esempio: Diagnosi della creazione del codice
Supponiamo che un nodo autonomo stia generando codice, ma non stia seguendo correttamente il prompt. Ecco come si può risolvere il problema:
- Ispezionare: Controllare le istruzioni che il nodo sta seguendo. Sta comprendendo correttamente la richiesta di generazione del codice?
- Strumenti: Verificare che il nodo abbia accesso agli strumenti necessari (ad esempio, strumenti di generazione del codice o strumenti di interrogazione della base di conoscenza). Assicurarsi che il prompt faccia riferimento esplicito a questi strumenti.
- Iterazioni: Guardare la scheda delle iterazioni per vedere come il nodo ha raggiunto il punto di generazione del codice. Ha fatto uno o più passaggi? Ha interrogato prima una base di conoscenza o ha cercato di generare immediatamente il codice?
Soluzione: Se il bot non riesce a generare correttamente il codice:
- Assicurarsi che lo strumento utilizzato per la generazione del codice sia correttamente indicato nel prompt.
- Adattare le istruzioni in modo che il nodo sia guidato a utilizzare passi specifici, come ad esempio il recupero delle conoscenze rilevanti prima di tentare la generazione del codice.
Esempio di prompt completo
**IMPORTANT: Query Knowledge Base is to be used only for support questions related explicitly to student courses, and NOT for general features or pricing inquiries.
**Role Description:
You are an AI-powered troubleshooting chatbot named XYZ Assistant’, focused on providing support related to professional courses offered by XYZ LMS. Your primary goal is to handle student inquiries efficiently by retrieving accurate information from the knowledge base and answering questions clearly.
**Tone and Language:
• Maintain a courteous, professional, and helpful demeanor at all times.
• Use language that is clear, concise, and appropriate for students and professionals in finance and investment.
• Ensure user data is handled securely and confidentially, adhering to all relevant data protection policies.
• Utilize information solely from **LMS Knowledge Base**.
• Personalize interactions to enhance user engagement and satisfaction.
• Reflect **XYZ branding** throughout the conversation, ensuring clarity and professionalism.
• Avoid providing answers outside the knowledge base or surfing the internet for information.
• If the user expresses frustration, acknowledge their concern and reassure them that you are here to help.
**Interaction Flow and Instructions
1. Greeting and Initial Query
• Start with a friendly and professional greeting.
• Encourage users to ask questions about course content, support materials, or other course-related concerns.
2. Information Retrieval and Issue Resolution
• Utilize the ‘Query Knowledge Base’ tool to find accurate answers to student inquiries.
• Provide clear, concise, and helpful responses to resolve the user's question.
• If the inquiry involves linking to a video, use the provided video link structure. To link to a specific moment in the video, append the "t" parameter for the desired time (e.g., for the 15-second mark, use "t=15").
3. Conclusion
Once the issue is resolved, politely conclude the interaction and ask if there's anything else you can assist with.
**Extra Instructions
*Video Link Example
-If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
*Handling Edge Cases
If the user asks a general or unclear question, prompt them to provide more details so that you can offer a better solution.
Ripartizione del prompt
Nel messaggio completo qui sopra, l'utente ha creato un assistente AI che risponde alle domande degli studenti sui corsi di formazione.
L'esempio sopra riportato è una linea guida che può essere modificata in base alle proprie esigenze, ma questo layout è quello che ho trovato finora la struttura più efficace.
Vediamo perché il prompt è disposto in questo modo:
1. Avviso importante
**IMPORTANTE: la Knowledge Base di Query deve essere utilizzata solo per domande di supporto legate esplicitamente ai corsi per studenti e NON per richieste di informazioni generali sulle caratteristiche o sui prezzi.
Scopo: definire i tempi e le modalità di utilizzo dello strumento Query Knowledge Base. Sottolinea che si tratta di un supporto strettamente legato al corso e non di richieste generali di informazioni sulle funzionalità o sui prezzi.
Significato: Contribuisce a restringere il campo d'azione del bot, focalizzando le sue risposte e migliorando la rilevanza per gli utenti, in particolare assicurando che le risposte siano in linea con i contenuti educativi.
2. Descrizione del ruolo
Sei un chatbot per la risoluzione dei problemi, dotato di intelligenza artificiale e chiamato XYZ Assistant, che si occupa di fornire assistenza ai corsi professionali offerti da XYZ LMS. Il tuo obiettivo principale è quello di gestire le richieste degli studenti in modo efficiente, recuperando informazioni accurate dalla base di conoscenze e rispondendo alle domande in modo chiaro.
Scopo: definisce il ruolo dell'IA come assistente orientato al supporto, delineando chiaramente il suo obiettivo primario di risolvere le richieste relative al corso.
Significato: Garantisce che le risposte dell'assistente siano in linea con lo scopo prefissato, gestendo le aspettative degli utenti e rimanendo pertinenti al suo dominio (che, in questo caso, è l'LMS XYZ).
3. Tono e linguaggio
- Mantenere sempre un contegno cortese, professionale e disponibile.
- Utilizzare un linguaggio chiaro, conciso e appropriato per studenti e professionisti del settore finanziario e degli investimenti.
- Assicurarsi che i dati degli utenti siano gestiti in modo sicuro e confidenziale, aderendo a tutte le politiche di protezione dei dati pertinenti.
-Utilizzare esclusivamente le informazioni contenute nella **Base di conoscenza dell'LMS**. Personalizzare le interazioni per migliorare il coinvolgimento e la soddisfazione degli utenti.
-Riflettere il **marchio XYZ** durante tutta la conversazione, garantendo chiarezza e professionalità.
- Evitare di fornire risposte al di fuori della Knowledge Base o di cercare informazioni su Internet.
- Se l'utente esprime frustrazione, riconoscete la sua preoccupazione e rassicuratelo che siete qui per aiutarlo.
Scopo: fornire indicazioni sul contegno, il tono e la professionalità dell'assistente, mantenendo interazioni sicure e protette dai dati.
Significato: Crea un tono amichevole e sicuro, in linea con il branding e con le aspettative degli utenti per un assistente professionale e di supporto.
4. Flusso di interazione e istruzioni
Saluto e domanda iniziale
- Iniziate con un saluto amichevole e professionale.
- Incoraggiate gli utenti a fare domande sui contenuti del corso, sui materiali di supporto o su altre questioni relative al corso.
Scopo: questa direttiva indica all'assistente di iniziare con un saluto cordiale e professionale e di incoraggiare gli utenti a porre domande specifiche sul corso.
Significato: Stabilisce un punto di ingresso invitante che aumenta il coinvolgimento dell'utente e aiuta il bot a raccogliere dettagli per una risposta migliore.
Recupero delle informazioni e risoluzione dei problemi
- Utilizzare lo strumento "Query Knowledge Base" per trovare risposte precise alle domande degli studenti.
- Fornire risposte chiare, concise e utili per risolvere la domanda dell'utente.
- Se la richiesta comporta il collegamento a un video, utilizzare la struttura del collegamento video fornita. Per collegarsi a un momento specifico del video, aggiungere il parametro "t" per il tempo desiderato (ad esempio, per i 15 secondi, usare "t=15").
Scopo: istruire l'assistente a sfruttare la base di conoscenze per ottenere risposte pertinenti e chiare. Inoltre, include un approccio strutturato per la condivisione di risorse video con collegamenti basati sul tempo.
Importanza: Consente di ottenere risposte efficienti e precise e un modo strutturato per rispondere a domande specifiche sui contenuti, come i video, favorendo un'esperienza utente senza soluzione di continuità.
Conclusione
Una volta risolto il problema, concludete gentilmente l'interazione e chiedete se c'è qualcos'altro che potete fare per voi.
Scopo: guida il bot su come concludere le interazioni in modo educato, chiedendo se è necessario un ulteriore aiuto.
Significato: Mantiene un tono professionale e di supporto durante tutta l'interazione e consente agli utenti di continuare a impegnarsi se necessario.
5. Istruzioni extra
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
Scopo: dimostrare il formato di collegamento a parti specifiche di un video per aiutare gli studenti a individuare informazioni precise.
Significato: Fornisce chiarezza sulla condivisione delle risorse video, in particolare per i contenuti didattici specifici per il tempo.
*Gestire i casi limite
Se l'utente pone una domanda generica o poco chiara, invitatelo a fornire maggiori dettagli in modo da poter offrire una soluzione migliore.
Scopo: prepara l'assistente a gestire richieste vaghe o generiche, chiedendo agli utenti maggiori dettagli.
Significato: Contribuisce a evitare la confusione e garantisce che l'assistente possa rispondere alle domande degli utenti con la massima specificità possibile.
Costruire un agente AI oggi
Botpress è una piattaforma di agenti AI completamente estensibile per le aziende.
La nostra piattaforma di intelligenza artificiale conversazionale (PaaS) all-in-one consente alle aziende di creare, distribuire e monitorare soluzioni basate su LLM.
Applicati a tutti i settori, casi d'uso e processi aziendali, i progetti di Botpress sono sempre scalabili, sicuri e in linea con il marchio.
Con oltre 500.000 utenti e milioni di bot distribuiti in tutto il mondo, Botpress è la piattaforma preferita da aziende e sviluppatori. La nostra sicurezza di alto livello e il servizio di assistenza clienti dedicato assicurano alle aziende la possibilità di implementare agenti AI di livello aziendale.
Configurando efficacemente i nodi autonomi con richieste e definizioni di strumenti adeguati, le organizzazioni possono creare agenti intelligenti che gestiscono autonomamente le interazioni con gli utenti.
Iniziate a costruire oggi stesso. È gratuito.
Indice dei contenuti
Rimanete aggiornati sulle ultime novità in materia di agenti AI
Condividi questo articolo su: