Programaciones

Ejecuta el prompt de un agente cada día de la semana, cada hora o una vez, en la zona horaria y conversación que elijas.

Una programación le da un prompt a un agente en momentos preestablecidos, por ejemplo, todos los días de la semana a las 08:00 o una vez el próximo martes. Cada vez, el agente recibe el prompt como un turno en la conversación que elegiste y responde allí.

Crear una programación

Abre Programaciones en la barra lateral izquierda y haz clic en Nueva programación. El formulario te pide:

CampoQué introducir
NombreUna etiqueta corta, como "Resumen matutino"
AgenteEl agente que realiza el trabajo
PromptLo que el agente debe hacer cada vez, escrito como lo harías en el chat
CuándoSe repite (cron), Se repite (RRULE) o Una vez, con la hora debajo
Zona horariaUna zona IANA como Europe/Amsterdam
Responder enTus mensajes directos con el agente, o uno de tus canales
El formulario Editar programación con nombre, agente, prompt, una hora cron semanal, zona horaria y el canal de soporte
Una programación que le pide al agente un resumen de soporte cada lunes a las 09:00.

Cómo escribir la hora:

  • Cron tiene cinco campos: minuto, hora, día del mes, mes y día de la semana. 0 8 * * 1-5 es días de la semana a las 08:00.
  • RRULE utiliza el formato de calendario, por ejemplo FREQ=WEEKLY;BYDAY=MO,WE;BYHOUR=9;BYMINUTE=0. Laze lo guarda como el cron coincidente.
  • Una vez toma una hora local en la zona, como 2026-11-02T09:00. Una programación de una sola vez se ejecuta una vez y luego se muestra como completada.

Una hora o zona horaria no válida se rechaza con schedule_invalid y no se guarda nada.

Una programación que se repite se ejecuta como máximo cada 30 minutos. Un cron o RRULE cuyas ejecuciones se acerquen, como */5 * * * *, se rechaza con schedule_too_frequent; para el trabajo que debe seguir a algo que sucede, usa un activador en su lugar.

Qué sucede cuando se ejecuta una programación

El agente publica "Ejecución programada: Resumen matutino" (con el nombre de la programación) y el prompt en la conversación que elegiste, y su respuesta va en un hilo debajo de ese mensaje. El prompt cuenta como un mensaje de la persona que creó la programación, por lo que el agente trabaja con el acceso de esa persona a la bóveda.

Cada ejecución comienza en una nueva sesión para un agente alojado: tiene las habilidades y archivos de memoria del agente, pero no sus chats anteriores, por lo que realiza la tarea desde los canales, archivos y conexiones cada vez. Cuando termina la ejecución, la sesión principal del agente recibe una nota breve de lo que hizo la ejecución. Una ejecución que no encuentra nada que hacer no publica nada.

Si el agente ha abandonado ese canal, la ejecución no publica nada y no le da ningún turno al agente. Si el agente fue eliminado, la ejecución se registra como omitida y la programación se detiene.

La página de Programaciones con una programación activa, su agente, canal, hora cron y próxima ejecución
Cada programación muestra su agente, conversación, hora y próxima ejecución.

Primero, verificar, despertar solo cuando algo cambió

Una programación que sondea cambios no necesita un modelo cada vez. Dale un verificador: un script ejecutable en la carpeta de trabajo del agente. En cada activación, el script se ejecuta en la computadora de agentes, antes de cualquier llamada al modelo.

El scriptQué sucede
Sale con código 0 y imprime algoEl agente se activa, y lo que imprimió se añade al prompt
Sale con código 0 y no imprime nadaNada. La ejecución se muestra como Nada nuevo y no se gastan créditos
Sale con un error, o se ejecuta más de 30 segundosLa verificación falló. El agente permanece inactivo y la programación se muestra bajo Requiere atención

Configúralo en Primero, verificar en el formulario, o con laze schedule add ... --check checks/new-calls.sh. Solo el agente o su propietario puede configurar o cambiar un verificador, porque se ejecuta con los archivos del agente y el comando laze. Se ejecuta fuera de cualquier turno, por lo que los comandos laze vault lo rechazan. Un verificador que llama a un modelo paga por esa llamada. Los agentes conectados desde tu propia máquina no tienen una computadora de agentes para ejecutar un verificador.

Guarda lo último que vio el script en un archivo propio. Este ejemplo activa al agente cuando un valor cambia, y el turno del agente guarda el nuevo valor:

#!/bin/sh
now=$(laze app records list picks --site published | sha256sum)
[ "$now" = "$(cat state/picks 2>/dev/null)" ] && exit 0
echo "picks changed: $now"

Los primeros 8000 caracteres de la salida llegan al agente, marcados como datos del script. No se publican en la conversación. Tres fallos consecutivos envían a la persona que creó la programación una tarjeta en el Feed. Ejecutar ahora primero ejecuta la verificación, así que prueba un script: activa al agente solo si el script imprime algo. Un verificador activa una computadora inactiva, que vuelve a la inactividad poco después cuando el verificador no encuentra nada.

Si lo que observas es un registro de app o un canal, usa un activador o un monitor en su lugar: se activan con el cambio y no necesitan una computadora hasta entonces.

Zonas horarias, horario de verano e inactividad

Las horas siguen la zona horaria de la programación, incluyendo el horario de verano:

  • Cuando los relojes se adelantan y la hora no existe ese día, la programación se ejecuta una vez, justo después del salto.
  • Cuando los relojes se atrasan y la hora ocurre dos veces, la programación se ejecuta una vez, en la primera.
  • Si Laze estuvo inactivo y se perdieron ejecuciones, la programación se ejecuta una vez cuando Laze vuelve a estar activo, y esa ejecución anota cuántas se perdieron. La siguiente ejecución se cuenta a partir de ahora.

Pausar, editar y eliminar una programación

Cada fila en la página de Programaciones tiene Se ejecuta, Editar, Pausar o Reanudar, y Eliminar:

  • Se ejecuta lista cada ejecución con su hora y resultado.
  • Pausar borra la próxima ejecución. Reanudar cuenta la próxima ejecución a partir de ahora y no recupera el tiempo pausado.
  • Editar cambia el nombre, prompt, hora, zona o conversación. Una programación pausada permanece pausada después de una edición, y una de una sola vez completada se ejecuta de nuevo si le das una hora futura.
  • Eliminar elimina la programación; nunca se ejecuta de nuevo.

Cualquiera que pueda hablar con el agente ve sus programaciones y puede crearlas, editarlas, pausarlas, reanudarlas y eliminarlas: su propietario, las personas con las que se comparte, y todos para un agente de equipo. La persona que solicitó una programación también la mantiene. Otras personas, incluidos los administradores del espacio de trabajo, no ven las programaciones del agente; programar un agente con el que no puedes hablar se rechaza con schedule_agent_not_allowed.

Programar desde la línea de comandos

Las personas y los agentes usan laze schedule. Proporciona exactamente uno de --cron, --rrule o --at. Sin --tz, la zona es UTC.

laze schedule add "Morning brief" --prompt "Write my morning brief from my inbox and calendar" --cron "0 8 * * 1-5" --tz Europe/Amsterdam
laze schedule add "Renewal reminder" --prompt "Remind the team about the ACME renewal" --at 2026-11-02T09:00 --tz Europe/Amsterdam --channel <channelId>
laze schedule list
laze schedule pause <scheduleId>
laze schedule runs <scheduleId>
laze schedule run <scheduleId>

Ejecutar ahora y ejecuciones que no ocurrieron

Ejecutar ahora en la fila de una programación, o laze schedule run <scheduleId>, la ejecuta una vez de inmediato. La próxima activación no se mueve.

Si una programación se activa mientras su agente no está conectado, fue eliminado o su conversación desapareció, la persona para la que se ejecuta la programación recibe una tarjeta en su Feed: Your scheduled run "<name>" did not run, con el motivo y un botón de Ejecutar ahora. Otra falta de la misma programación trae la misma tarjeta de vuelta.

Ejemplo: un resumen matutino en el Feed

Un resumen matutino es una programación cuyo prompt le dice al agente que publique tarjetas de Feed como un grupo. El Feed muestra el grupo más reciente debajo del saludo, con un chip de filtro por etiqueta.

laze schedule add "Morning brief" --cron "45 7 * * 1-5" --tz Europe/Amsterdam --prompt "Check my inbox, calendar and open loops. Post one feed card per thing that needs me with --group \"Morning brief <d Mon>\", one --label of money, promise, decide, nudge, risk or fyi, and --loop <stable key>. Then run laze feed group-summary \"Morning brief <d Mon>\" and post its output."

Para un resumen más amplio, divide la lectura entre scouts. Instala la habilidad brief-scout en cada agente scout y morning-brief en el agente que escribe el resumen, luego programa los scouts antes del resumen. Cada scout sube su informe como briefs/<YYYY-MM-DD>/<scout>.md al canal que lee el resumen, con la evidencia de cada elemento. El agente de resumen lee esos archivos, espera hasta 15 minutos por uno tardío, verifica cada elemento y publica los elementos verificados como tarjetas en el grupo. Un scout que no se ejecutó lidera el resumen, y su propietario también recibe la tarjeta de ejecución perdida con Ejecutar ahora.

Publicar una tarjeta de nuevo con la misma clave --loop la mueve al nuevo grupo y muestra cuántas veces se ha visto. --auto-send-on <YYYY-MM-DD> añade una cuenta regresiva con un botón de Detener a cualquier tarjeta.

Cuando un agente ejecuta laze schedule add con su propia clave, la programación se dirige a ese agente y se cuenta como creada por el propietario del agente. Un agente al que se le pidió en el chat un trabajo recurrente puede crear la programación de esta manera.

Consulta también: Referencia de la CLI, Agentes alojados.