confirm: true) ·
confirmLines con precios de tu código ·
dedupe de efectos repetidos ·
validación de argumentos con enum ·
botones Sí/No ·
eventos de auditoría
Requisitos
- Node.js 22.12 o superior.
- Una API key de Anthropic en la variable de entorno
ANTHROPIC_API_KEY(u otro modelo con tool calling, ver más abajo).
El bot
Cómo funciona
- Las herramientas son funciones normales. Cada entrada de
toolstiene unadescriptionque lee el modelo, unschemaJSON opcional y unhandler. El plugin ejecuta el bucle de herramientas: llama al modelo, ejecuta las herramientas que pide y le devuelve los resultados hasta que escribe la respuesta (maxStepslo acota). - Confirmación antes de los efectos.
confirm: truehace que el plugin pregunte al cliente y ejecute la herramienta solo tras un “sí” claro. La pregunta se hace dentro de una conversación, así que el chat nunca queda bloqueado mientras espera. En canales con botones (Telegram, WhatsApp Cloud API, el simulador) muestra botones Sí/No; en WhatsApp con Baileys pide un sí/no escrito. - Tu código manda en los números.
confirmLinesmuestra el servicio y el precio deSERVICIOS, y el handler también los devuelve, así el modelo los repite en vez de calcularlos. - Sin reservas dobles.
dedupe: 'args'se salta una llamada con los mismos argumentos que una reserva hecha en los últimos 10 minutos; al modelo se le dice que ya estaba hecha. Un handler que devuelve{ error }no hizo nada y no se recuerda. - Cada alta tiene su listado y su cancelación. Sin
mis_citasycancelar_citaun modelo “arregla” una reserva haciendo otra. - Auditoría. Cada paso del bucle es un evento
'ai.tool'; el ejemplo registra las ejecuciones en el log.
Pruébalo
packages/ai/tests/docs-examples-ai.test.ts); las confirmaciones, los botones y
los resultados de las herramientas son los reales. En el simulador también
puedes responder una confirmación con :click 1. En el cuarto mensaje el modelo
pide otra vez la misma reserva: dedupe se la salta sin preguntar, y la
cancelación rechazada deja la cita como estaba.
Otros proveedores de modelos
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Cambiar a OpenAI, Gemini o un modelo local de Ollama
El tool calling funciona con todos los proveedores; en Ollama elige un modelo
etiquetado como tools.OpenAI (Gemini (Ollama en tu máquina (sin paquete ni key; antes ejecuta
npm install openai, key en OPENAI_API_KEY):npm install @google/genai, key en GEMINI_API_KEY):ollama pull qwen3):Ejecutarlo en WhatsApp o Telegram
node bot.js muestra un código QR: escanéalo con WhatsApp (Dispositivos
vinculados). Para Telegram, instala @botmesh/telegram y arranca la fábrica
con new TelegramProvider({ token: process.env.TELEGRAM_TOKEN ?? '' }): la
confirmación usa entonces botones Sí/No en línea, que se quitan al responder.
Siguientes pasos
- Asistente de panadería con IA: las mismas ideas para pedidos de comida (presupuestos, modificar y cancelar, pedidos por usuario), ejecutable en WhatsApp con Baileys o Twilio (en inglés)
- Guía de herramientas de IA: esquemas, el bucle, confirmaciones y buenas prácticas
- IA con escalado a humano: una herramienta que pasa el chat a una persona
- Índice de ejemplos