Al escribir el prompt de un Agente IA en Configuración de Prompt puedes usar variables entre llaves dobles — por ejemplo {{today_formatted_local}} — que el sistema sustituye automáticamente por el valor real en cada conversación.
Fecha y hora — locales (zona del agente)
Se formatean usando la timezone del agente y el locale configurado. Si el agente hereda, usa la configuración de la organización; si no, cae a UTC / en_US.
| Variable | Ejemplo (Europe/Madrid + es_ES) | Cuándo usarla |
|---|---|---|
{{current_time_local}} | 15:47 | Hora actual en formato 24h |
{{current_date_local}} | 17/4/26 | Fecha corta según locale |
{{current_datetime_local}} | 17 abr 2026, 15:47 | Fecha + hora en formato medio |
{{today_formatted_local}} | viernes, 17 de abril de 2026 | Fecha larga humana |
{{tomorrow_formatted_local}} | sábado, 18 de abril de 2026 | Mañana en formato largo |
{{today_iso}} | 2026-04-17 | Hoy en ISO (sin hora) |
{{tomorrow_iso}} | 2026-04-18 | Mañana en ISO |
Fecha y hora — UTC (siempre iguales)
Útiles para logging, IDs o comparaciones. Independientes de la zona horaria del agente.
| Variable | Ejemplo | Cuándo usarla |
|---|---|---|
{{current_datetime_utc}} | 2026-04-17T13:47:59+00:00 | ISO 8601 UTC — ideal para APIs externas |
{{current_date_utc}} | 2026-04-17 | Fecha UTC sin hora |
️ Metadata del agente
| Variable | Ejemplo | Cuándo usarla |
|---|---|---|
{{agent_name}} | Laura | Nombre del agente |
{{agent_timezone}} | Europe/Madrid | Zona horaria del agente |
{{agent_locale}} | es_ES | Locale de formato |
{{organization_name}} | Screen Art | Nombre de la organización |
{{workspace_name}} | Panadería La Espiga | Nombre del workspace |
Variables personalizadas del agente
En la configuración del agente tienes un campo Variables personalizadas (JSON). Ahí puedes definir tus propias variables:
{
"empresa": "Panadería La Espiga",
"direccion": "Calle Mayor 12, Madrid",
"telefono_contacto": "911 234 567",
"horario_tienda": "Lunes a sábado de 7:00 a 20:00",
"saludo": "¡Hola, bienvenido!"
}
Y usarlas en el prompt con {{empresa}}, {{direccion}}, {{saludo}}, etc. Útiles para datos que cambian poco pero quieres poder editar sin tocar el prompt entero.
Bloque de contexto inyectado automáticamente
Esto no es una variable — es un bloque que el sistema añade automáticamente al inicio de tu system_prompt, así el modelo siempre tiene fuente de verdad aunque tu prompt no use variables. Siempre incluye:
## Contexto actual (inyectado por el sistema, no modificar)
- Hora actual: 15:47 (Europe/Madrid)
- Fecha: viernes, 17 de abril de 2026
- Mañana: sábado, 18 de abril de 2026
- Zona horaria del agente: Europe/Madrid
- Locale de formato: es_ES
Gracias a esto, incluso un prompt minimalista sin variables funciona bien — el modelo siempre sabe qué hora es y dónde está.
️ Aliases legacy (compatibilidad con prompts antiguos)
Estas variables siguen funcionando para no romper prompts antiguos, pero se recomienda usar las nuevas _local / _utc en prompts nuevos:
| Alias legacy | Apunta a |
|---|---|
{{current_time}} | {{current_time_local}} |
{{current_date}} | {{today_iso}} |
{{current_iso_date}} | {{today_iso}} |
{{tomorrow_iso_date}} | {{tomorrow_iso}} |
{{today_formatted}} | {{today_formatted_local}} |
{{tomorrow_formatted}} | {{tomorrow_formatted_local}} |
Otras variables legacy que siguen funcionando
| Variable | Ejemplo | Notas |
|---|---|---|
{{current_day_name}} | viernes | Nombre del día (siempre en español, no respeta locale) |
{{next_monday_iso_date}} | 2026-04-20 | Próximo lunes en ISO |
{{workspace_timezone}} | Europe/Madrid | Timezone del workspace (fallback: zona horaria del agente) |
️ Variables no reconocidas
Si escribes una variable que no existe (por ejemplo {{producto_destacado}} cuando no has creado esa variable personalizada), el sistema la elimina antes de enviar el prompt al modelo. Nunca verás la variable literal en las respuestas del agente.
Esto es intencional: protege al cliente final de ver marcadores técnicos como {{producto_destacado}} en pantalla.
Ejemplo completo — Panadería La Espiga
Prompt real con todas las variables en uso, optimizado para un agente de pedidos y reservas:
# INSTRUCCIONES DEL AGENTE — Panadería La Espiga
Eres **Carla**, asistente virtual de **{{workspace_name}}**.
Eres cercana, alegre y resolutiva. Tu misión: ayudar al cliente a hacer
pedidos de pan para recoger en tienda y reservar tartas personalizadas.
---
## 1. CONTEXTO AUTO
- HOY: {{today_iso}} → **{{today_formatted_local}}**
- MAÑANA: {{tomorrow_iso}} → **{{tomorrow_formatted_local}}**
- ZONA: {{agent_timezone}}
- HORA ACTUAL: **{{current_time_local}}**
---
## 2. DATOS DE LA TIENDA
- Dirección: **{{direccion}}**
- Teléfono: {{telefono_contacto}}
- Horario: {{horario_tienda}}
- Último pedido del día: 19:30 (30 min antes del cierre)
---
## 3. FUNCIONES DISPONIBLES
- Usa el calendario de MuseRelay para consultar huecos de recogida, reservar, cambiar la hora, cancelar y ver las reservas de un cliente.
---
## 4. DISPONIBILIDAD DE RECOGIDA (️ CRÍTICO)
- **Siempre** consulta la disponibilidad en el calendario antes de proponer una hora.
- Ejecuta cada vez que el cliente diga: hoy, mañana, fecha concreta,
"a qué hora puedo recoger", "tenéis huecos".
- Nunca inventes horarios: la disponibilidad cambia con cada pedido.
---
## 5. INTERPRETACIÓN DE FECHAS
- "hoy" = {{today_iso}}
- "mañana" = {{tomorrow_iso}}
- "pasado mañana" = hoy + 2
- "el lunes", "el viernes"… → el próximo día de la semana
- "para el fin de semana" → ofrecer sábado (no abrimos domingos)
---
## 6. ESTILO DE RESPUESTA
- Cálido, cercano, con emojis suaves ( sin abusar).
- Listas con bullets para opciones múltiples.
- Confirma siempre con día + fecha completa ("sábado 20 de abril").
- Nunca uses tecnicismos ni códigos internos.
---
## 7. FLUJO DE RESERVA DE TARTA
1. Preguntar: ¿qué tipo de tarta?, ¿para cuántas personas?, ¿alguna alergia?
2. Consultar `cal_check_availability` para el día pedido.
3. Ofrecer hueco disponible ("sábado 20 a las 10:30 me va bien").
4. Pedir nombre + email + teléfono.
5. Ejecutar `cal_create_booking`.
6. Confirmar: día, hora, referencia de reserva, total aproximado.
---
## 8. REGLAS FINALES
1. Nunca inventes horarios ni precios.
2. Nunca confirmes sin tener nombre y contacto.
3. Siempre ofrece alternativas si no hay disponibilidad.
4. Siempre recuerda el horario de cierre: {{horario_tienda}}.
5. Si el cliente se pone difícil, ofrece llamarle al {{telefono_contacto}}.
Este prompt aprovecha:
- Identidad:
{{workspace_name}}. - Tiempo (local, humano):
{{today_iso}},{{today_formatted_local}},{{tomorrow_iso}},{{tomorrow_formatted_local}},{{agent_timezone}},{{current_time_local}}. - Variables personalizadas:
{{direccion}},{{telefono_contacto}},{{horario_tienda}}. - Calendario: el calendario de MuseRelay conectado al agente (no necesita variables).
Recomendación práctica
- Cliente español → deja vacío timezone/locale (hereda de la organización) o pon
Europe/Madrid + es_ES. - Cliente mexicano →
America/Mexico_City + es_MX. - Para APIs externas o logs → usa las variables
_utc. - Para mostrar al usuario final → usa las variables
_local.
Consejos generales
- Usa ISO para lógica, humano para hablar. Donde el modelo tenga que razonar fechas (ej. "revisa si hay huecos mañana"), usa
{{tomorrow_iso}}. Donde tenga que decírselo al cliente, usa{{tomorrow_formatted_local}}. - No dependas solo de la memoria del modelo. El bloque de contexto automático garantiza que siempre está al día — especialmente útil en conversaciones largas o retomadas al día siguiente.
- Pon las reglas críticas al principio y al final. Los modelos prestan más atención al inicio y al cierre del prompt.
- Prueba en el playground antes de activar en producción. El panel derecho de la edición del agente te deja probar sin consumir conversaciones reales.
Cómo se construye el bloque de contexto automático
El bloque de contexto que el sistema inyecta al inicio de cada conversación depende de dos selectores que tienes en la sección Configuración Básica del agente: Zona horaria y Formato de fecha.
Cascada de resolución
Cada línea del bloque sale de uno de los campos con esta cascada (se busca primero en el agente; si está vacío, sube a la organización; si también está vacío, cae al valor por defecto):
| Línea del bloque | Campo | Cascada |
|---|---|---|
Hora actual: 15:47 (Europe/Madrid) | timezone | Agente → Organización → UTC |
Zona horaria del agente: Europe/Madrid | timezone | (misma) |
Locale de formato: es_ES | locale | Agente → Organización → en_US |
Fecha: viernes, 17 de abril de 2026 | timezone + locale | Ambos |
Mañana: sábado, 18 de abril de 2026 | timezone + locale | Ambos |
Ejemplos prácticos
Supongamos que hoy es viernes 17 de abril de 2026 y son las 15:47 hora de Madrid. Según los selectores, el bloque generado cambia:
Cliente de Madrid
- Zona horaria:
Europe/Madrid - Formato de fecha:
es_ES
15:47 · viernes, 17 de abril de 2026
Cliente mexicano
- Zona horaria:
America/Mexico_City - Formato de fecha:
es_MX
07:47 · viernes, 17 de abril de 2026
(misma fecha, distinta hora)
Cliente en Tokyo
- Zona horaria:
Asia/Tokyo - Formato de fecha:
ja_JP
22:47 · 2026年4月17日金曜日
️ Selects vacíos (Heredar)
- Zona horaria: heredar
- Formato de fecha: heredar
Busca en la organización → si tiene
Europe/Madrid + es_ES, los usa.Si la organización también está vacía →
UTC + en_US.
La decisión es del propio agente. Si editas los selectores, el modelo ve los valores nuevos en la siguiente conversación sin necesidad de cambiar el prompt.