> ## Documentation Index
> Fetch the complete documentation index at: https://docs.innochat.ch/llms.txt
> Use this file to discover all available pages before exploring further.

# Chatbot multi-agente

> Scopri come INNOCHAT utilizza un’architettura multi-agente per automazioni ad alte prestazioni.

INNOCHAT è il primo e più potente framework No-Code per chatbot AI a implementare un’architettura multi-agente.\
Più agenti AI lavorano insieme in un’orchestrazione coordinata per consentire automazioni avanzate dei flussi di lavoro.

<Frame>
  <img src="https://mintcdn.com/innoq/9CizSgZikx55e9_4/images/multi-agents-chatbot-7.png?fit=max&auto=format&n=9CizSgZikx55e9_4&q=85&s=8fe93c068b7e7384b09d134ad773ce24" width="1515" height="495" data-path="images/multi-agents-chatbot-7.png" />
</Frame>

Questa guida ha lo scopo di aiutarti a comprendere come collaborano i nostri agenti, fornendoti al contempo alcune best practice per progettare un chatbot multi-agente.

Tutti gli agenti hanno due stati:

* **Attivo:** L’agente è “Connected”. È online e attivo.
* **Inattivo:** L’agente è “Disabled”. Non esegue alcuna azione.

In qualsiasi momento, **solo un agente** interagisce direttamente con l’utente.\
Il nostro **supervisore AI** lavora in background in tempo reale e decide quale agente deve gestire la richiesta dell’utente.

<Note>
  Gli agenti sono completamente isolati tra loro.\
  Ciò significa:

  * Non puoi istruire l’agente B dall’agente A.
  * Non puoi dire al supervisore AI di “passare il testimone”.
  * Il supervisore AI non può essere istruito tramite linguaggio naturale.
</Note>

Il supervisore AI distribuisce le richieste degli utenti agli agenti in base alla loro **descrizione dell’agente**.\
Se hai un solo agente, la descrizione è meno importante.\
Se invece lavori con più agenti, dovrebbe essere **il più chiara e precisa possibile**.

* **Agent Description** – Quali compiti deve svolgere l’agente?
* **Agent Prompt** – Come deve svolgere questi compiti?

<Frame>
  <img src="https://mintcdn.com/innoq/9CizSgZikx55e9_4/images/multi-agents-chatbot-5.png?fit=max&auto=format&n=9CizSgZikx55e9_4&q=85&s=2215df96ea10e24b1e2309989e2836fd" width="762" height="651" data-path="images/multi-agents-chatbot-5.png" />
</Frame>

<Note>
  La descrizione dell’agente è diversa dal prompt.\
  La descrizione spiega al supervisore AI, a livello generale, quali tipi di richieste l’agente deve gestire.\
  Il prompt, invece, contiene istruzioni dettagliate sul comportamento dell’agente.
</Note>

Le buone descrizioni degli agenti rispondono alla domanda:\
**«Quali tipi di richieste deve gestire l’agente?»**

Dovrebbero includere tutte le **intenzioni dell’utente** rilevanti che l’agente deve coprire.

Le descrizioni degli agenti **non dovrebbero** spiegare *come* l’agente svolge i suoi compiti — questo spetta al prompt.

Ecco alcuni esempi di buone descrizioni degli agenti:

<AccordionGroup>
  <Accordion title="INNOCHAT Support">
    Incarnate the role of "INNOCHAT Expert," a specialized guide for INNOCHAT. Your main objective is to assist users with answering INNOCHAT-related questions related to:

    * Use cases
    * Features and capabilities
    * Data security
    * Pricing
    * AI Agents and multi-Agent architecture
    * User identity verification
    * Chunk curation
    * Function calling
    * Partnership program
    * Custom domains
    * Tokens

    All intents handled by this Agent should be related to INNOCHAT.
  </Accordion>

  {" "}

  <Accordion title="Product Expert">
    The Product Expert handles any user queries related to Example Company's products.\
    This includes questions regarding:

    * Product availability
    * Product specifications
    * Price
    * Shipping location
    * Warranty
    * Return policy
    * Disclaimers, legal notices, and warning labels
  </Accordion>

  {" "}

  <Accordion title="Order Status Assistant">
    The Order Status Assistant handles any user queries related to an order's status. This includes:

    * Product package tracking
    * Current package location
    * Estimated delivery time
    * Late delivery compensation
  </Accordion>
</AccordionGroup>

Cosa rende efficace la progettazione di un chatbot multi-agente?\
Come assicurarsi che tutte le intenzioni degli utenti vengano gestite dall’agente giusto?

In generale, un’architettura multi-agente è ideale per far collaborare agenti AI specializzati come un team.\
Ogni agente può:

* accedere a dati di training diversi,
* essere alimentato da un LLM diverso,
* avere il proprio prompt,
* disporre dei propri strumenti (Functions).

Questo è molto più efficace rispetto a concentrare tutto in un singolo agente.

Dal punto di vista dell’utente, non è percepibile che siano coinvolti più agenti — l’orchestrazione avviene in modo completamente trasparente in background.\
Se configurato correttamente, il chat appare come una conversazione con una persona reale.\
Un chatbot multi-agente può essere significativamente più potente rispetto ai sistemi a singolo agente come ChatGPT.

Il nostro sistema di routing del supervisore AI utilizza un algoritmo che bilancia **latenza e precisione**.\
Non sarà sempre corretto al 100%, ma con una buona progettazione puoi avvicinarti molto.

## Debug del chatbot

Se il chatbot non reagisce come previsto, ci sono due possibili cause:

1. È stato selezionato l’agente sbagliato per elaborare la richiesta.
2. È stato selezionato l’agente corretto, ma non è configurato in modo ottimale.

Per verificare se è stato selezionato l’agente giusto, vai su **Inbox** e attiva la modalità di debug:

<Frame>
  <img src="https://mintcdn.com/innoq/9CizSgZikx55e9_4/images/multi-agents-chatbot-6.png?fit=max&auto=format&n=9CizSgZikx55e9_4&q=85&s=2129bfecea760c774411d30e980eb45b" width="1065" height="831" data-path="images/multi-agents-chatbot-6.png" />
</Frame>

In **Active Agent** puoi vedere quale agente ha generato la risposta.\
Questa informazione viene visualizzata solo quando sono connessi più agenti.

Se ha risposto l’agente sbagliato, modifica la sua configurazione — nome, descrizione o prompt.

Se ha risposto l’agente giusto ma la risposta non è adeguata, il problema riguarda l’agente stesso.\
Il modo più semplice per migliorare è correggere direttamente la risposta:

<Frame>
  <img src="https://mintcdn.com/innoq/9CizSgZikx55e9_4/images/multi-agents-chatbot-4.png?fit=max&auto=format&n=9CizSgZikx55e9_4&q=85&s=6a06643acb86c46b41281051f2c63685" width="624" height="613" data-path="images/multi-agents-chatbot-4.png" />
</Frame>

Questo garantisce che in futuro il chatbot risponderà alla stessa domanda in base alla tua correzione, purché venga selezionato lo stesso agente.

Per rendere l’agente più robusto in generale, puoi:

* curare i dati di training,
* utilizzare un LLM più potente,
* rendere il prompt di base più preciso.

Ulteriori informazioni:

* Best practice per i dati di training: **[best practices for preparing training data](/best-practices)**
* Perfezionare le intenzioni degli agenti: **[Fine-Tuning Agent Intents](fine-tuning-agent-intents)**
