Saltar al contenido principal

Diseño de flujos

El estándar completo vive en el skill diseno-de-flujos (.claude/skills/diseno-de-flujos/, copiado a .cursor/skills/ y .agents/skills/), y lo aplican Claude, Cursor y, en versión corta, el asistente de flujos del editor (su prompt y el catálogo shared/src/flows/node-catalog.ts). Esta página es el resumen para personas.

Antes de construir: elegir la arquitectura​

Presenta 2 o 3 opciones con nodos, llamadas a la IA por mensaje y estabilidad, y que decida quien pide el bot. Con varios servicios, el patrón recomendado es:

  • un menú con una lista fija de servicios;
  • un switch sobre seleccion_id que manda a un nodo IA por servicio, con un prompt corto que solo conoce su servicio (el enrutamiento por menú no gasta IA);
  • los servicios simples, como dar un enlace o avisar, como nodos fijos, sin IA.

Las herramientas de la IA no pueden llamar APIs, cambiar variables ni enrutar: cada API es un nodo api_call y cada aviso a terceros un send_message.

Lo que rompe un bot en producción​

TrampaQué pasaCómo se evita
Botón de más de 20 caracteres o fila de más de 24 (un emoji cuenta 2+)WhatsApp rechaza el mensaje enteroTextos fijos. El validador lo marca como error; las opciones que arma la IA van por send_reply_buttons / send_list
extract_data con un campo que vuelve vacíoConserva el valor del turno anteriorCentinela ("N/D") o vaciar antes
API caída con los valores por defecto3 intentos × 15 s por llamadaapi_timeout_ms ~10000 y retry_attempts 1, más un tope por turno
IA que repite una consulta fallidaMinutos de esperaTope determinista por turno (contador + switch)
Aviso sin cuenta de email, o en TEST sin leaseSale por error, sin logAsistente Email del bot; tarjeta Canales de prueba → Asignar
Aviso por WhatsApp a quien no escribió en 24 hMeta lo rechazaCorreo, o una plantilla aprobada
API de terceros que filtra por IPPostman funciona, el servidor nocurl desde el servidor y pedir la autorización de la IP

Entregar y diagnosticar​

  • Probar el flujo contra el motor real con un modelo falso (arnés en referencias/prueba-de-flujo.md del skill) antes de sembrarlo.
  • Sembrarlo por SQL con respaldo y vuelta atrás (referencias/sembrar-flujo.md), sin contraseñas.
  • Si "se queda" o "no avisa": referencias/diagnostico.sql, que lee bot_turns y bot_node_runs (cómo terminó cada turno y qué rama tomó cada nodo), y la línea [bot-turn] de los logs. Ver también Bots y LangGraph.