ctx.tools.ai.generate() ·
replyInChat() con historial del chat ·
flujos con validación y menús ·
iniciar un flujo desde código (bot.trigger) ·
handler catch-all ·
coste y latencia
Requisitos
- Node.js 22.12 o superior.
- Una API key de Anthropic en la variable de entorno
ANTHROPIC_API_KEY(u otro proveedor de modelos, ver más abajo).
El bot
Cómo funciona
- El modelo clasifica, tu código decide.
clasificar()pide una etiqueta conctx.tools.ai.generate(), una llamada sin historial ni persona. La respuesta se limpia y se comprueba contraINTENCIONES; cualquier cosa inesperada cae encharla, así un modelo confundido nunca puede iniciar un flujo que no esté en la lista. - El dinero sigue siendo determinista. El flujo de pago valida el número de cuenta, ofrece un menú fijo y arma la confirmación en código. El modelo nunca ve el número de cuenta ni decide el importe.
bot.trigger()inicia el flujo. Se puede hacerawaitdesde un handler del mismo chat: corre en el turno de ese mensaje. Después el flujo atiende los mensajes siguientes, igual que si el usuario hubiera escrito su nombre.- La charla guarda historial.
replyInChat(chatKeyOf(ctx), text)lee y guarda el historial de IA del chat y usa la persona del plugin. ConautoReply: falseel plugin no añade su propio catch-all. - Nunca en silencio. Un error del modelo (sin key, timeout, límite de peticiones, caída) queda en el log y el cliente recibe una respuesta fija que lo lleva a los flujos, que siguen funcionando sin la IA. Los mensajes sin texto (una foto, una nota de voz, una ubicación) también reciben una respuesta fija, sin llamar al modelo.
- Coste. Las palabras clave (“pago”, “pedido”) y los comandos slash se
saltan el clasificador. La llamada del clasificador es corta
(
maxTokens: 100,effort: 'low');maxTokensincluye los tokens de pensamiento de los modelos de razonamiento, así que no lo pongas demasiado bajo.
Pruébalo
packages/ai/tests/docs-examples-ai.test.ts); los
flujos son los reales.
Otros proveedores de modelos
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Cambiar a OpenAI, Gemini o un modelo local de Ollama
Cambia las opciones de Gemini (Ollama en tu máquina (sin paquete ni key; antes ejecuta
aiPlugin; los proveedores distintos de Anthropic
ignoran effort.OpenAI (npm install openai, key en OPENAI_API_KEY):npm install @google/genai, key en GEMINI_API_KEY):ollama pull llama3.1):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 ?? '' }).
Siguientes pasos
- Flujos conversacionales: todos los pasos del DSL de flujos
- IA con escalado a humano: deja que el modelo pase el chat a una persona
- Índice de ejemplos