AI & MCP
Chatbot di assistenza: quando aiuta e quando costa
Un chatbot aiuta quando risponde da un corpus chiuso e passa la pratica a una persona con un tool. Se indovina, ogni risposta risparmiata ne costa tre da correggere.
In sintesi
- Il corpus, le azioni e l'escalation sono tre confini da decidere prima del codice.
- Il costo per conversazione cresce con il contesto: ogni turno rimanda tutta la storia.
- L'escalation è un tool con una coda, non un messaggio di scusa.
Un chatbot di assistenza aiuta quando risponde da un corpus chiuso e sa passare la pratica a una persona; danneggia quando indovina.
Tre confini prima del codice
- Corpus: il bot risponde solo con documenti che possiedi e aggiorni.
- Azioni: leggere lo stato di un ordine è un tool, non una frase del modello.
- Escalation: il passaggio a una persona è un tool con una coda, non un messaggio di scusa.
import { streamText, isStepCount, tool } from 'ai';
import { z } from 'zod';
const result = streamText({
model: 'anthropic/claude-haiku-5.5',
system: 'Answer only from the documentation corpus. Escalate when unsure.',
messages,
tools: {
searchDocs: tool({
description: 'Search the documentation corpus',
inputSchema: z.object({ query: z.string() }),
execute: async ({ query }) => searchDocs(query),
}),
handoff: tool({
description: 'Hand the conversation to a human queue',
inputSchema: z.object({ reason: z.string() }),
execute: async ({ reason }) => openTicket(reason),
}),
},
stopWhen: isStepCount(3),
});
Il costo per conversazione
Il conto è token in ingresso per prezzo, più token in uscita per prezzo, con il contesto che ricresce a ogni turno. Con Haiku 5.5 a 0,10 $ e 0,50 $ per milione, mille conversazioni da 2.000 token in ingresso e 300 in uscita costano 0,20 $ più 0,15 $, cioè 0,35 $.
Il test che decide
Prendi trenta domande reali, con la risposta attesa scritta accanto. Conta quante risposte il bot prende dal corpus, quante sono sbagliate e quante finiscono in escalation. Se le sbagliate non sono zero, il corpus o il prompt non sono pronti.
Il limite dei passi va alzato di proposito: con isStepCount(1) la generazione si ferma alla prima tool call e il modello non usa il risultato. Tre passi coprono cerca, leggi e rispondi; ogni passo in più costa un prompt intero.
La limitazione
Ogni turno paga lo schema dei tool: 3.655 byte di elenco sono token in ingresso a ogni richiesta, anche quando il bot non usa nessun tool. E un bot corretto su trenta domande non è un bot corretto su trecento.
Dove continuare
Le parti pronte per una chat sono in blocchi chat 2026, la forma dei tool in disegnare un tool MCP, il confronto di trasporto in MCP o REST. I record: 1.556 blocchi, 111.985 componenti, sidebar di 21st.dev.
Domande frequenti
Un chatbot riduce i ticket o li sposta?
Li riduce solo se il corpus copre le domande ricorrenti e il bot chiude il caso, non se rimanda alla documentazione. Misura le conversazioni chiuse senza operatore, non i messaggi scambiati.
Come impedisco al bot di inventare risposte?
Vincolandolo a un corpus recuperato e chiedendo l'escalation quando il contesto non contiene la risposta. Un prompt che vieta l'invenzione non basta: serve un ramo di codice che apre il ticket.
Quanto costa una conversazione?
Dipende dai token. Con Haiku 5.5 a 0,10 $ in ingresso e 0,50 $ in uscita per milione, una conversazione da 2.000 token in ingresso e 300 in uscita costa 0,00035 $. Sopra i 100.000 token di prompt il prezzo del modello sale di cinque volte.
Perché il bot non risponde dopo la tool call?
Perché stopWhen vale isStepCount(1) per default nell'AI SDK: la generazione finisce alla prima chiamata. Alza il limite a tre passi se vuoi che il modello usi il risultato del tool.
Serve un LLM per un chatbot di assistenza?
Non sempre. Se le risposte sono dieci e cambiano di rado, un albero di scelte con link funziona meglio e non costa nulla. Il modello serve quando le domande sono formulate in modi imprevedibili.