Guardrails de salida
El prompt pide no inventar; revisarSalida() lo verifica. Compara la respuesta con las fuentes permitidas: el
prompt (conocimiento, promociones, mensajes configurados), los resultados de las herramientas del turno y lo que dijo
el cliente.
| Regla | Bloquea | Ejemplo bloqueado |
|---|---|---|
precio |
Política asesor: cualquier cifra de dinero. Política publicados: cifras que no estén en las fuentes |
“El m³ cuesta $85.000” |
descuento |
Porcentajes que no estén en promociones/conocimiento | “Te doy 10%” |
promesa |
“gratis”, “garantizado”, “envío gratis”, “te regalo”… sin respaldo | “El envío es gratis” |
enlace |
URLs fuera de dominios_permitidos y de las fuentes |
https://otro-sitio.com |
telefono |
Números de 7+ dígitos que no estén en las fuentes ni los dio el cliente | “Llama al 310 555 1234” |
fuga_interna |
Nombres de herramientas, “prompt del sistema”, etiquetas internas | “Voy a usar traspasar_a_humano” |
longitud |
Más de max_caracteres (900 por defecto) |
— |
vacia |
Respuesta vacía | — |
Las cantidades no se confunden con dinero: “30 m3” o “12 mil metros” pasan.
Qué pasa cuando falla
Sección titulada «Qué pasa cuando falla»- Reparación: se vuelve a generar una vez, con el motivo exacto (“cifra $85.000 no aparece en el catálogo…”).
- Si vuelve a fallar: no se envía nada dudoso. Se registra el traspaso con motivo
control de calidad: precio…y el cliente recibe el mensaje de traspaso.
El resultado queda en ia_eventos (herramienta guardrails con intentos, violaciones y acción ok, reparada,
bloqueada o atajo). Muchas reparada/bloqueada indican que falta conocimiento o que el modelo no sirve.
Formato
Sección titulada «Formato»limpiarFormato() convierte markdown que WhatsApp no muestra bien: quita títulos, **negrita** → *negrita*, viñetas
→ •, enlaces markdown → texto: url.
Configuración
Sección titulada «Configuración»"guardrails": { "politica_precios": "asesor", "max_caracteres": 900, "dominios_permitidos": ["mitienda.com"]}