Skip to content

Tareas Programadas (Schedules)

Las tareas programadas te permiten automatizar trabajo recurrente ejecutando equipos de agentes en una cadencia basada en cron. Define un prompt, selecciona un equipo, configura la frecuencia, y AgentCrew se encarga del resto: desplegar el equipo, enviar el prompt, registrar el resultado y liberar la infraestructura.

Como Funcionan las Tareas Programadas

Cuando una tarea programada se activa, AgentCrew ejecuta los siguientes pasos automaticamente:

  1. Desplegar el equipo asignado (contenedores, bus NATS, workspace).
  2. Enviar el prompt configurado al lider del equipo via NATS.
  3. Esperar la respuesta del lider (hasta el timeout configurado).
  4. Registrar el prompt y la respuesta como una ejecucion de la tarea.
  5. Liberar la infraestructura del equipo para liberar recursos.

Todo el ciclo de vida es gestionado por un motor de programacion en segundo plano que verifica cada 60 segundos, evalua expresiones cron y lanza ejecuciones en paralelo con limites de concurrencia configurables. Cuando multiples tareas apuntan al mismo equipo, los mensajes se encolan y procesan secuencialmente (FIFO) — consulta Modelo de Procesamiento de Tareas para mas detalles.

Crear una Tarea Programada

Navega a la seccion Schedules en la barra lateral y haz clic en New Schedule. El constructor de tareas te guia a traves de:

  1. Nombre: Un nombre descriptivo para la tarea (por ejemplo, "Post Semanal del Blog", "Reporte Diario").
  2. Equipo: Selecciona que equipo de agentes ejecutara la tarea. El equipo debe existir previamente.
  3. Prompt: La instruccion enviada al lider del equipo cuando se activa la tarea. Escribela como lo harias en la interfaz de chat.
  4. Frecuencia: Usa el constructor visual para elegir cadencias por hora, diarias, semanales o mensuales. El constructor genera la expresion cron automaticamente.
  5. Zona horaria: Las tareas evaluan las expresiones cron en la zona horaria seleccionada. La zona horaria de tu navegador se detecta automaticamente, pero puedes cambiarla.

Constructor de Frecuencia

El constructor visual de frecuencia simplifica la creacion de expresiones cron. No necesitas conocer la sintaxis cron — solo elige el patron:

Frecuencia Opciones Ejemplo cron
Cada hora Se ejecuta una vez por hora en un minuto fijo 0 * * * *
Diaria Se ejecuta una vez al dia a una hora especifica 30 9 * * *
Semanal Elige uno o mas dias de la semana y una hora 0 10 * * 1,3,5
Mensual Elige un dia del mes y una hora 0 8 1 * *

La expresion cron generada se muestra como una vista previa en vivo en formato legible (por ejemplo, "Cada lunes, miercoles, viernes a las 10:00").

Gestionar Tareas Programadas

Activar / Desactivar

Cada tarea programada tiene un interruptor para activarla o desactivarla. Las tareas desactivadas no son evaluadas por el motor de programacion. Al reactivarlas, la proxima ejecucion se recalcula automaticamente.

Editar

Haz clic en cualquier tarea para editar su nombre, prompt, equipo, frecuencia o zona horaria. Los cambios toman efecto inmediatamente — la proxima ejecucion se recalcula al guardar.

Eliminar

Eliminar una tarea programada la borra junto con todo su historial de ejecuciones de forma permanente.

Historial de Ejecuciones

Cada tarea programada mantiene un historial paginado de todas las ejecuciones. Para cada ejecucion puedes ver:

  • Estado: exitoso, error o timeout.
  • Inicio / Fin: Marcas de tiempo en tu zona horaria local.
  • Duracion: Cuanto tiempo tomo la ejecucion.
  • Conversacion: Expande cualquier ejecucion para ver el prompt enviado y la respuesta del agente, renderizada como un mini-chat con soporte de Markdown.

Tambien puedes navegar directamente al chat del equipo desde cualquier pagina de detalle de tarea usando el icono de chat en el encabezado.

Configuracion

El comportamiento del motor de programacion se puede ajustar con variables de entorno:

Variable Defecto Descripcion
SCHEDULE_TIMEOUT 1h Tiempo maximo de espera para la respuesta del equipo antes de marcar la ejecucion como timeout. Acepta cadenas de duracion de Go (por ejemplo, 30m, 2h).
SCHEDULER_MAX_CONCURRENT 10 Numero maximo de tareas que pueden ejecutarse simultaneamente. Las tareas excedentes se difieren al siguiente tick.

Notas de Arquitectura

  • El programador se ejecuta como una goroutine en segundo plano dentro del proceso del servidor API — no se necesita un servicio separado.
  • Las reclamaciones de tareas son atomicas: el motor usa un compare-and-swap a nivel de base de datos (UPDATE WHERE status = 'idle') para prevenir ejecuciones dobles cuando los ticks se solapan.
  • Las ejecuciones estan aisladas: cada ejecucion despliega una instancia fresca del equipo y la libera al completarse, asegurando que no haya fugas de estado entre ejecuciones.
  • La recuperacion de panics asegura que una ejecucion fallida nunca crashee el programador — la tarea se resetea a idle y el error se registra en los logs.
  • Procesamiento FIFO por equipo: Cada equipo ejecuta un unico proceso Claude Code. Cuando multiples tareas programadas apuntan al mismo equipo, los mensajes se encolan y procesan uno a la vez en orden de llegada. Un ID de correlacion asegura que cada ejecutor reciba la respuesta correcta, incluso cuando las tareas se solapan.

Siguientes Pasos

  • Configuracion: Revisa todas las variables de entorno incluyendo las configuraciones especificas del programador.
  • Arquitectura: Comprende como el programador encaja en el diseno general del sistema.