Soluzioni · Per sviluppatori

Tool: l'agente chiama i tuoi endpoint HTTP

Tutto quello che l'agente fa oltre a parlare passa dai tool: leggere un'agenda, prenotare, controllare un ordine, aprire un ticket. Un tool è un endpoint GET o POST dalla tua parte, descritto per il modello con uno schema JSON. Il modello decide quando chiamarlo e con quali argomenti; la piattaforma esegue la richiesta.

Definire un tool

Un tool ha un nome, una descrizione scritta per il modello, uno schema JSON degli argomenti, e la parte di runtime: URL, metodo, header e un eventuale template del body. Scrivi segnaposto {{nome}} nell'URL, nei valori degli header o nel body; ogni segnaposto va dichiarato nello schema con una descrizione. Il modello lo riempie dalla conversazione e il runtime lo sostituisce, con URL-encoding nell'URL e con escape in un body JSON.

{
  "name": "book_appointment",
  "description": "Prenota un appuntamento. Chiamalo solo dopo che il cliente ha confermato giorno, ora e nome.",
  "method": "POST",
  "url": "https://api.example.ch/clinics/{{clinic}}/appointments",
  "headers": { "Authorization": "Bearer sk_…" },
  "body": "{ \"start\": \"{{start}}\", \"name\": \"{{name}}\", \"phone\": \"{{phone}}\" }",
  "schema": { "type": "object", "properties": {
    "clinic": { "type": "string", "description": "Codice sede: sempre 'zurich'" },
    "start":  { "type": "string", "description": "Inizio, yyyy-MM-dd HH:mm" },
    "name":   { "type": "string", "description": "Nome e cognome di chi chiama" },
    "phone":  { "type": "string", "description": "Telefono di chi chiama, solo cifre" }
  }, "required": ["clinic", "start", "name", "phone"] }
}

Cosa riceve il tuo endpoint e cosa deve rispondere

Ogni richiesta porta un header token con il tool token dell'agente: controllalo per primo. Rispondi 200 con un body JSON. In caso di successo, { "success": true, "message": "…" } più eventuali dati: il messaggio è pensato per essere riferito a chi chiama. In caso di errore di business, { "success": false, "error": "…" } con l'errore scritto come una frase per il modello, per esempio cosa proporre in alternativa. Su 401 o 500 l'agente si scusa e propone un richiamo. Tieni le risposte sotto qualche secondo: il cliente è in linea.

app.post('/clinics/:clinic/appointments', express.json(), async (req, res) => {
  if (req.get('token') !== process.env.SWISSAI_TOOL_TOKEN) return res.status(401).end();
  const { start, name, phone } = req.body;
  if (!(await isFree(req.params.clinic, start)))
    return res.json({ success: false, error: 'Quell\'orario è occupato. Proponi le 11:00 o le 14:30 dello stesso giorno.' });
  await book(req.params.clinic, start, name, phone);
  res.json({ success: true, message: 'Appuntamento prenotato per ' + start + '.' });
});

Un unico elenco di tool, condiviso dagli agenti

I tool stanno nella sezione Tool del pannello e gli agenti li usano per riferimento: modifichi un tool una volta e ogni agente che lo usa viene aggiornato. Un tool assegnato a un cliente può essere usato solo dagli agenti di quel cliente. Prima di salvare, il pannello controlla la definizione con Claude e costruisce lo schema dai segnaposto.

Prova senza ospitare niente

La sandbox è un insieme di endpoint d'esempio funzionanti, con dati di prova separati per ogni account: agenda, tavoli, magazzino, richiamate, rubrica, ordini. I suoi 22 tool sono già nella sezione Tool; ognuno ha una guida con i parametri, un esempio svolto di richiesta e risposta e il codice dell'endpoint, che puoi scaricare e usare come base.

Domande frequenti

GET o POST?

GET manda gli argomenti nella query string, POST come body JSON. Usa GET per leggere e POST per scrivere.

Come fa l'agente a sapere quando chiamare un tool?

Dalla descrizione. Scrivila per il modello: cosa fa il tool e quando chiamarlo, per esempio "solo dopo che il cliente ha confermato giorno, ora e nome".

Un tool può restituire dati che l'agente deve leggere?

Sì. Mettili nel message, oppure dichiara un response_schema così il modello legge i campi della tua risposta.

Pagine correlate

Provalo con le tue chiamate

Crea un account, configura l'agente dal pannello e chiamalo dal browser. Prova gratuita di 30 giorni con 100 minuti, nessuna carta richiesta.

Inizia gratisParla con l'agente demo