Optimiza tareas con OpenClaw: Cron vs Heartbeat
¿Alguna vez has sentido que tus automatizaciones son un caos? A veces necesitas que algo ocurra exactamente a las 9:00 AM, y otras veces solo quieres que tu agente esté al tanto de lo que pasa en tu inbox o calendario sin saturarte con notificaciones innecesarias.
Configurar esto correctamente es la diferencia entre tener un asistente que realmente te ayuda y uno que solo genera ruido. Tanto los heartbeats como los cron jobs te permiten ejecutar tareas de forma programada, pero cada uno brilla en situaciones distintas. Aquí te explico cómo elegir la mejor opción para tu caso.
Guía rápida de decisión
Sección titulada «Guía rápida de decisión»| Caso de uso | Recomendado | Por qué |
|---|---|---|
| Revisar inbox cada 30 min | Heartbeat | Agrupa con otros checks, tiene contexto |
| Enviar reporte diario a las 9am | Cron (isolated) | Necesitas precisión exacta |
| Monitorear eventos en el calendario | Heartbeat | Ideal para conciencia periódica |
| Análisis profundo semanal | Cron (isolated) | Tarea independiente, puede usar otro modelo |
| Recuérdame en 20 minutos | Cron (main, --at) | Ejecución única con tiempo preciso |
| Check de salud de un proyecto | Heartbeat | Aprovecha el ciclo existente |
Heartbeat: Conciencia periódica
Sección titulada «Heartbeat: Conciencia periódica»Los heartbeats se ejecutan en la main session en un intervalo regular (por defecto: 30 min). Están diseñados para que el agente revise cosas y saque a la luz cualquier tema importante.
Cuándo usar heartbeat
Sección titulada «Cuándo usar heartbeat»- Múltiples revisiones periódicas: En lugar de tener 5 cron jobs separados revisando el inbox, el calendario, el clima, las notificaciones y el estado del proyecto, un solo heartbeat puede agrupar todo esto.
- Decisiones con contexto: El agente tiene todo el contexto de la main session, por lo que puede decidir qué es urgente y qué puede esperar.
- Continuidad conversacional: Las ejecuciones de heartbeat comparten la misma sesión, así que el agente recuerda conversaciones recientes y puede dar seguimiento de forma natural.
- Monitoreo de baja carga: Un solo heartbeat reemplaza muchas tareas pequeñas de polling.
Ventajas de heartbeat
Sección titulada «Ventajas de heartbeat»- Agrupa múltiples checks: Un solo turno del agente puede revisar el inbox, el calendario y las notificaciones a la vez.
- Reduce llamadas a la API: Un solo heartbeat es más barato que 5 cron jobs aislados.
- Conciencia del contexto: El agente sabe en qué has estado trabajando y puede priorizar en consecuencia.
- Supresión inteligente: Si nada requiere tu atención, el agente responde
HEARTBEAT_OKy no se envía ningún mensaje. - Tiempos naturales: El horario puede variar ligeramente según la carga de la cola, lo cual está bien para la mayoría de los monitoreos.
Ejemplo de heartbeat: checklist HEARTBEAT.md
Sección titulada «Ejemplo de heartbeat: checklist HEARTBEAT.md»# Heartbeat checklist
- Check email for urgent messages- Review calendar for events in next 2 hours- If a background task finished, summarize results- If idle for 8+ hours, send a brief check-inEl agente lee esto en cada heartbeat y gestiona todos los puntos en un solo turno.
Configuración de heartbeat
Sección titulada «Configuración de heartbeat»{ agents: { defaults: { heartbeat: { every: "30m", // interval target: "last", // explicit alert delivery target (default is "none") activeHours: { start: "08:00", end: "22:00" }, // optional }, }, },}Consulta Heartbeat para ver la configuración completa.
Cron: Programación precisa
Sección titulada «Cron: Programación precisa»Los cron jobs se ejecutan en momentos exactos y pueden funcionar en sesiones aisladas sin afectar el contexto principal. Las programaciones recurrentes al inicio de la hora se distribuyen automáticamente mediante un desplazamiento determinista en una ventana de 0 a 5 minutos.
Cuándo usar cron
Sección titulada «Cuándo usar cron»- Se requiere tiempo exacto: “Envía esto a las 9:00 AM todos los lunes” (no “alrededor de las 9”).
- Tareas independientes: Tareas que no necesitan el contexto de la conversación.
- Diferente modelo o razonamiento: Análisis pesados que justifican el uso de un modelo más potente.
- Recordatorios de una sola vez: “Recuérdame en 20 minutos” usando
--at. - Tareas ruidosas o frecuentes: Tareas que llenarían de basura el historial de la main session.
- Triggers externos: Tareas que deben ejecutarse independientemente de si el agente está activo o no.
Ventajas de cron
Sección titulada «Ventajas de cron»- Tiempos precisos: Expresiones cron de 5 o 6 campos (segundos) con soporte para zona horaria.
- Distribución de carga integrada: Las programaciones recurrentes se desfasan hasta 5 minutos por defecto.
- Control por tarea: Puedes sobrescribir el desfase con
--stagger <duration>o forzar el tiempo exacto con--exact. - Aislamiento de sesión: Se ejecuta en
cron:<jobId>sin ensuciar el historial principal. - Sobrescritura de modelo: Usa un modelo más barato o más potente según la tarea.
- Control de entrega: Los jobs aislados usan
announce(resumen) por defecto; puedes elegirnonesi es necesario. - Entrega inmediata: El modo announce publica directamente sin esperar al heartbeat.
- Sin necesidad de contexto: Funciona incluso si la main session está inactiva o compactada.
- Soporte para ejecuciones únicas: Usa
--atpara timestamps precisos en el futuro.
Ejemplo de cron: Briefing matutino diario
Sección titulada «Ejemplo de cron: Briefing matutino diario»openclaw cron add \ --name "Morning briefing" \ --cron "0 7 * * *" \ --tz "America/New_York" \ --session isolated \ --message "Generate today's briefing: weather, calendar, top emails, news summary." \ --model opus \ --announce \ --channel whatsapp \ --to "+15551234567"Esto se ejecuta exactamente a las 7:00 AM hora de Nueva York, usa Opus para mayor calidad y envía un resumen directamente a WhatsApp.
Ejemplo de cron: Recordatorio único
Sección titulada «Ejemplo de cron: Recordatorio único»openclaw cron add \ --name "Meeting reminder" \ --at "20m" \ --session main \ --system-event "Reminder: standup meeting starts in 10 minutes." \ --wake now \ --delete-after-runConsulta Cron jobs para ver la referencia completa de la CLI.
Diagrama de flujo de decisión
Sección titulada «Diagrama de flujo de decisión»Does the task need to run at an EXACT time? YES -> Use cron NO -> Continue...
Does the task need isolation from main session? YES -> Use cron (isolated) NO -> Continue...
Can this task be batched with other periodic checks? YES -> Use heartbeat (add to HEARTBEAT.md) NO -> Use cron
Is this a one-shot reminder? YES -> Use cron with --at NO -> Continue...
Does it need a different model or thinking level? YES -> Use cron (isolated) with --model/--thinking NO -> Use heartbeatCombinando ambos
Sección titulada «Combinando ambos»La configuración más eficiente utiliza ambos:
- Heartbeat gestiona el monitoreo rutinario (inbox, calendario, notificaciones) en un solo turno agrupado cada 30 minutos.
- Cron gestiona horarios precisos (reportes diarios, revisiones semanales) y recordatorios únicos.
Ejemplo: Configuración de automatización eficiente
Sección titulada «Ejemplo: Configuración de automatización eficiente»HEARTBEAT.md (revisado cada 30 min):
# Heartbeat checklist
- Scan inbox for urgent emails- Check calendar for events in next 2h- Review any pending tasks- Light check-in if quiet for 8+ hoursCron jobs (tiempos precisos):
# Daily morning briefing at 7amopenclaw cron add --name "Morning brief" --cron "0 7 * * *" --session isolated --message "..." --announce
# Weekly project review on Mondays at 9amopenclaw cron add --name "Weekly review" --cron "0 9 * * 1" --session isolated --message "..." --model opus
# One-shot reminderopenclaw cron add --name "Call back" --at "2h" --session main --system-event "Call back the client" --wake nowLobster: Workflows deterministas con aprobaciones
Sección titulada «Lobster: Workflows deterministas con aprobaciones»Lobster es el runtime para pipelines de herramientas de varios pasos que necesitan una ejecución determinista y aprobaciones explícitas. Úsalo cuando la tarea sea más compleja que un solo turno del agente y quieras un workflow que se pueda pausar y reanudar con puntos de control humanos.
Cuándo encaja Lobster
Sección titulada «Cuándo encaja Lobster»- Automatización de varios pasos: Necesitas un pipeline fijo de llamadas a herramientas, no un prompt único.
- Puertas de aprobación: Las acciones con efectos secundarios deben pausarse hasta que las apruebes.
- Ejecuciones reanudables: Puedes continuar un workflow pausado sin repetir los pasos anteriores.
- Pipelines definidos: El flujo de trabajo sigue una estructura establecida.
Cómo se combina con heartbeat y cron
Sección titulada «Cómo se combina con heartbeat y cron»- Heartbeat/cron deciden cuándo ocurre una ejecución.
- Lobster define qué pasos ocurren una vez que la ejecución comienza.
Para workflows programados, usa cron o heartbeat para activar un turno del agente que llame a Lobster. Para workflows ad-hoc, llama a Lobster directamente.
Notas operativas (desde el código)
Sección titulada «Notas operativas (desde el código)»- Lobster se ejecuta como un subproceso local (CLI de
lobster) en modo herramienta y devuelve un JSON envelope. - Si la herramienta devuelve
needs_approval, reanudas con unresumeTokeny un flag deapprove. - La herramienta es un plugin opcional; actívalo de forma aditiva mediante
tools.alsoAllow: ["lobster"]. - Lobster espera que la CLI de
lobsteresté disponible en tuPATH.
Consulta Lobster para ver ejemplos y uso completo.
Main Session vs Isolated Session
Sección titulada «Main Session vs Isolated Session»Tanto heartbeat como cron pueden interactuar con la sesión principal, pero de formas distintas:
| Heartbeat | Cron (main) | Cron (isolated) | |
|---|---|---|---|
| Sesión | Main | Main (vía system event) | cron:<jobId> |
| Historial | Compartido | Compartido | Nuevo en cada ejecución |
| Contexto | Completo | Completo | Ninguno (empieza limpio) |
| Modelo | Modelo de la main session | Modelo de la main session | Se puede sobrescribir |
| Salida | Entregada si no es HEARTBEAT_OK | Prompt de heartbeat + evento | Resumen announce (por defecto) |
Cuándo usar cron en la sesión principal
Sección titulada «Cuándo usar cron en la sesión principal»Usa --session main con --system-event cuando quieras:
- Que el recordatorio o evento aparezca en el contexto de la sesión principal.
- Que el agente lo gestione durante el próximo heartbeat con todo el contexto.
- Evitar una ejecución aislada separada.
- Mantener la conciencia total del estado actual.
openclaw cron add \ --name "Check project" \ --every "4h" \ --session main \ --system-event "Time for a project health check" \ --wake nowCuándo usar cron aislado
Sección titulada «Cuándo usar cron aislado»Usa --session isolated cuando quieras:
- Empezar de cero sin contexto previo.
- Ajustes de modelo o razonamiento diferentes.
- Enviar resúmenes directamente a un canal.
- Un historial que no ensucie la sesión principal.
openclaw cron add \ --name "Deep analysis" \ --cron "0 6 * * 0" \ --session isolated \ --message "Weekly codebase analysis..." \ --model opus \ --thinking high \ --announceConsideraciones de costo
Sección titulada «Consideraciones de costo»| Mecanismo | Perfil de costo |
|---|---|
| Heartbeat | Un turno cada N minutos; escala con el tamaño de HEARTBEAT.md |
| Cron (main) | Añade un evento al siguiente heartbeat (sin turno aislado) |
| Cron (isolated) | Un turno completo del agente por job; puede usar modelos baratos |
Consejos:
- Mantén
HEARTBEAT.mdpequeño para minimizar el gasto de tokens. - Agrupa revisiones similares en el heartbeat en lugar de usar múltiples cron jobs.
- Usa
target: "none"en el heartbeat si solo quieres procesamiento interno. - Usa cron aislado con un modelo más barato para tareas rutinarias.
Relacionado
Sección titulada «Relacionado»- Heartbeat - configuración completa de heartbeat
- Cron jobs - referencia completa de API y CLI de cron
- System - eventos de sistema y controles de heartbeat
- CLI - guía de uso de la línea de comandos
¿Necesitas ayuda para configurar tu primera automatización? Prueba el AI Setup Assistant.
Siguiente paso: Aprende a configurar notificaciones externas para recibir alertas de tus cron jobs en Slack o WhatsApp.
OpenClaw Expert
Sigues atascado?
Si esta pagina no resolvio tu caso, pregunta a OpenClaw Expert para pasos concretos.