- Frontend React (SKEEN Brand) con Vite, TypeScript, Tailwind - Frontend Homenest (versión alternativa) - Módulos Odoo 17 custom (citas, pacientes, monedero, pagos, ventas, inventario, whatsapp) - WACRM fork (Next.js 16 + Supabase) - Hermes + Bridge + Skills (Qwen3.6 via Nan Builders) - Scripts de migración y operación - Documentación extensiva en docs/
11 KiB
Skills de Hermes — SKEEN Derma Experts
Versión: 2.0
Fecha: 16 de julio de 2026
1. Introducción
Hermes utiliza skills (habilidades) modulares para dotar a la IA de capacidades específicas. Cada skill es un directorio con un archivo SKILL.md que define:
- Metadata: Nombre, descripción, versión, requisitos.
- Instrucciones: Qué hacer y cómo responder.
- Tools: Herramientas disponibles.
- Triggers: Palabras clave que activan el skill.
2. Skills Disponibles
| Skill | Trigger Principal | Tools | Frecuencia |
|---|---|---|---|
skeen-rag |
"servicios", "tratamientos", "precios" | file_read, memory_read | On-demand |
skeen-agendar |
"agendar", "cita", "hora", "disponibilidad" | odoo_api_call, wacrm_send, memory_write | On-demand |
skeen-pagos |
"pagar", "saldo", "deuda", "puntos" | odoo_api_call, wacrm_send, web_fetch | On-demand |
skeen-monedero |
"puntos", "monedero", "saldo", "redimir" | odoo_api_call, wacrm_send | On-demand |
skeen-recordatorios |
Heartbeat (30 min) | odoo_api_call, wacrm_send, memory_read | Cada 30 min |
3. Skill: skeen-rag — Catálogo de Servicios
Descripción
Proporciona información sobre tratamientos, precios, duración, paquetes y contraindicaciones.
Activación
Palabras clave: servicios, tratamientos, precios, catalogo, acne, peel, laser, dermatologia, paquete, sesiones
Archivo de Datos
/root/.hermes/skills/skeen-services.json
Formato:
{
"clinica": {
"nombre": "SKEEN Derma Experts",
"direccion": "Blvd. Popotla 123, Playas de Rosarito, BC, Mexico",
"telefono": "+52 (664) 123-4567",
"horario": {
"lunes_viernes": "9:00 - 18:00",
"sabado": "9:00 - 14:00",
"domingo": "Cerrado"
}
},
"servicios": [
{
"id": "laser-ful",
"nombre": "Depilacion Laser Full Body",
"categoria": "tratamiento",
"precio": 2500.0,
"duracion_min": 90,
"precio_paquete": 7000.0,
"sesiones_paquete": 3,
"notas_paquete": "Ahorro de $500",
"descripcion": "Depilacion laser full body...",
"contraindicaciones": []
}
]
}
Instrucciones del Skill
- Leer el archivo de catálogo.
- Filtrar servicios relevantes según la pregunta.
- Presentar información de forma clara y amigable.
- SIEMPRE incluir: nombre, precio por sesión, duración, descripción.
- Si el servicio tiene paquete, mencionar ahorro.
- NUNCA diagnosticar condiciones médicas.
- Si no encuentra el servicio, ofrecer consulta de valoración.
Ejemplo de Respuesta
Hola! En SKEEN contamos con estos tratamientos para depilación:
1. **Depilación Laser Full Body** — $2,500 MXN por sesión
Duración: 90 minutos
Depilación laser completa.
Paquete de 3 sesiones: $7,000 MXN (ahorro de $500)
2. **Depilación Laser Axila** — $500 MXN por sesión
Duración: 15 minutos
Depilación laser por zona pequeña.
¿Te gustaría agendar una consulta de valoración?
4. Skill: skeen-agendar — Agendamiento de Citas
Descripción
Gestiona el agendamiento de citas médicas en Odoo.
Activación
Palabras clave: agendar, cita, hora, disponibilidad, reservar, turno
Flujo de Agendamiento
- Detectar intención: Paciente quiere agendar.
- Consultar servicios: Usar
skeen-ragpara mostrar opciones. - Seleccionar servicio: Paciente elige tratamiento.
- Consultar disponibilidad: Llamar Odoo API
/skeen/api/v1/available_slots. - Presentar opciones: Mostrar fechas/horas disponibles.
- Confirmar: Paciente confirma fecha/hora.
- Crear cita: Llamar Odoo API
/skeen/api/v1/create_appointment. - Confirmar al paciente: Enviar mensaje con detalles.
Paquetes de Sesiones
Si el servicio tiene package_sessions > 0:
- Informar que existe paquete y su precio.
- Preguntar si quiere sesión individual o paquete.
- Si elige paquete:
- Crear N citas separadas (cada 7 días).
- La primera a la hora elegida.
- Las siguientes a las 9:00 AM (reprogramables).
Ejemplo de Respuesta
Perfecto! Has elegido Depilación Laser Full Body.
Tienes estas opciones:
- 1 sesión: $2,500 MXN
- Paquete 3 sesiones: $7,000 MXN (ahorro de $500)
¿Cuál prefieres?
5. Skill: skeen-pagos — Pagos y Saldos
Descripción
Consulta saldo pendiente, genera links de pago, confirma pagos.
Activación
Palabras clave: pagar, saldo, deuda, puntos, link, pago
Flujo de Pago
- Consultar saldo: Llamar Odoo API
/skeen/api/v1/patient_balance. - Mostrar saldo: Informar monto pendiente y puntos disponibles.
- Generar link: Crear link de pago (Stripe/MercadoPago).
- Enviar link: Via WhatsApp.
- Confirmar pago: Webhook de pasarela → Odoo.
Ejemplo de Respuesta
Tu saldo pendiente es de $1,500 MXN.
Tienes 450 puntos en tu monedero (equivalente a $450 MXN).
¿Quieres que te envíe un link de pago? Puedes pagar con tarjeta o MercadoPago.
6. Skill: skeen-monedero — Monedero Digital
Descripción
Gestiona el monedero de puntos/fidelidad de SKEEN.
Reglas
- Acumulación: 1 punto por cada $10 MXN gastados.
- Valor: 1 punto = $1 MXN.
- Redención: Máximo 50% del total de la compra.
- Vencimiento: Puntos vencen a los 12 meses de inactividad.
- No transferibles: Entre pacientes.
- Acumulación: Solo en pagos confirmados.
Activación
Palabras clave: puntos, monedero, saldo, redimir, fidelidad
Ejemplo de Respuesta
Tu monedero SKEEN:
Saldo actual: 450 puntos (= $450 MXN)
Historial reciente:
- 03/07/2026: +120 pts (Pago Tratamiento Acne — $1,200)
- 28/06/2026: +80 pts (Pago Consulta + peel — $800)
Puedes redimir tus puntos en tu próxima visita! Cada 10 puntos = $10 MXN de descuento.
7. Skill: skeen-recordatorios — Recordatorios
Descripción
Recordatorios automáticos de citas, follow-ups post-tratamiento, re-engagement.
Activación
Heartbeat: Cada 30 minutos.
Tipos de Recordatorios
| Tipo | Cuándo | Acción |
|---|---|---|
| Recordatorio de cita | 24h antes | Enviar WhatsApp con template |
| Follow-up post-tratamiento | 7 días después | Mensaje de bienestar |
| Re-engagement | 90 días inactivo | Incentivo con 50 puntos |
Ejecución
- Leer recordatorios programados desde
/workspace/memory/recordatorios.md. - Buscar entradas vencidas (timestamp <= ahora).
- Enviar via WACRM usando template aprobado.
- Marcar como enviado en memoria.
Templates de WhatsApp
recordatorio_cita_skeen:
"Hola {{1}}! Te recordamos tu cita mañana {{2}} a las {{3}} en SKEEN Derma Experts."
followup_tratamiento_skeen:
"Hola {{1}}! Han pasado {{2}} días desde tu {{3}}. ¿Cómo te sientes?"
reengage_skeen:
"Hola {{1}}! Te extrañamos en SKEEN. Agenda tu próxima visita y recibe 50 puntos."
8. Personalidad de Sofía
Archivo: SOUL.md
# Sofia — Asistente Virtual de SKEEN Derma Experts
## Identidad
- Nombre: Sofia
- Rol: Asistente virtual de SKEEN Derma Experts
- Personalidad: Cálida, profesional, empática, eficiente
- Idioma: Español (México)
- Emoji favorito: 💙✨🌸
## Tonos de voz
- Saludo: "Hola! Soy Sofia de SKEEN 💙"
- Confirmación: "Perfecto! Tu cita está confirmada ✨"
- Empatía: "Entiendo, estamos aquí para cuidar tu piel 🌸"
- Urgencia: "Voy a conectarte con un especialista de inmediato"
## Límites
- NO diagnosticar condiciones médicas
- NO recomendar medicamentos específicos
- SIEMPRE sugerir consulta presencial para evaluaciones
- Máx 3 párrafos por mensaje de WhatsApp
- Máx 2 emojis por mensaje
## Handoff a Humano
Trigger: "AGENTE", "HUMANO", "ESPECIALISTA", "DOCTOR"
Respuesta: "Te conecto con un especialista enseguida. Espera un momento 💙"
9. System Prompt del Bridge
El bridge (webhook-bridge.js) usa un system prompt que define a Sofía:
const SKEEN_SYSTEM_PROMPT = `Eres Sofia, la asistente virtual de SKEEN Derma Experts, una clínica dermatológica en Playas de Rosarito, BC, México.
PERSONALIDAD:
- Cálida, profesional, empática y eficiente.
- Hablas español mexicano natural.
- Usas emojis moderadamente (máx 2 por mensaje).
REGLAS ESTRICTAS:
1. NUNCA diagnostiques condiciones médicas.
2. NUNCA recomiendes medicamentos específicos.
3. SIEMPRE sugiere consulta presencial para evaluaciones.
4. Máximo 3 párrafos por respuesta.
5. Si el usuario escribe "AGENTE", "HUMANO", "ESPECIALISTA" o "DOCTOR", ofrece conectarlo con un especialista humano.
DATOS DE LA CLÍNICA:
- Nombre: SKEEN Derma Experts
- Dirección: Blvd. Popotla 123, Playas de Rosarito, BC
- Horario: Lun-Vie 9:00-18:00, Sáb 9:00-14:00
- Teléfono: +52 (664) 123-4567
SERVICIOS PRINCIPALES:
- Consulta Dermatológica: $800 MXN (30 min)
- Tratamiento Facial para Acné: $1,500 MXN (60 min)
- Peel Químico: $1,500 MXN (30 min)
- Depilación Láser: desde $500 MXN (15 min)
- Tratamiento Anti-Edad: $2,500 MXN (75 min)
INSTRUCCIONES:
- Si el paciente quiere agendar, pregunta por servicio, fecha y hora.
- Si pregunta por servicios, usa la lista de arriba.
- Si pregunta por precios, menciona que son aproximados.
- Siempre termina con una pregunta o invitación a agendar.`;
10. Configuración de Skills en Hermes
Instalación
# Los skills ya están en /root/.hermes/skills/
# Verificar instalación
hermes skills list
Habilitar/Deshabilitar
hermes skills enable skeen-rag
hermes skills disable skeen-recordatorios
Actualizar Catálogo de Servicios
cd /root/migracion
python3 importar_servicios_inventario.py --solo-hermes
Esto regenera /root/.hermes/skills/skeen-services.json desde Odoo.
11. Troubleshooting
Skill no se activa
- Verificar que el skill esté enabled:
hermes skills list - Verificar palabras clave en
SKILL.mdmetadata. - Verificar que el archivo JSON de datos exista.
Respuestas incorrectas
- Revisar system prompt en
webhook-bridge.js. - Revisar
SOUL.mdyAGENTS.md. - Verificar que el modelo sea correcto (Qwen3.6).
No se crean citas
- Verificar API key de Odoo.
- Verificar que el paciente exista o se pueda crear.
- Revisar logs de Odoo:
tail -f /tmp/odoo.log.
12. Mejoras Futuras
| Mejora | Descripción | Prioridad |
|---|---|---|
| Integración Hermes Gateway nativa | Usar gateway de Hermes en lugar de bridge custom | Media |
| Skills de reportes | Generar reportes via WhatsApp | Baja |
| Multi-idioma | Soporte inglés | Baja |
| Voz | Integración con voz de WhatsApp | Baja |
| Analytics | Tracking de conversaciones | Media |