Cron vs Heartbeat
Guía para elegir entre heartbeats y cron jobs para automatización.
Tanto heartbeats como cron jobs te permiten ejecutar tareas en un horario. Esta guía te ayuda a elegir el mecanismo correcto para tu caso de uso.
Guía de decisión rápida
| Caso de uso | Recomendado | Por qué |
| --- | --- | --- |
| Sesión | Principal | Principal (vía evento de sistema) |
| Historial | Compartido | Compartido | Fresco cada ejecución |
| Contexto | Completo | Completo | Ninguno (inicio limpio) |
| Modelo | Modelo de sesión principal | Modelo de sesión principal | Puede sobrescribir |
| Salida | Entregada si no es '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'HEARTBEAT_OK'</code>' | Prompt de heartbeat + evento | Resumen publicado al principal |
#
Cuándo usar cron de sesión principal
Usa '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'--session main'</code>' con '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'--system-event'</code>' cuando necesites:
- Recordatorios/eventos que aparecen en el contexto de sesión principal
- El agente lo procese durante el próximo heartbeat con contexto completo
- Sin ejecución aislada separada
openclaw cron add --name "Check project" --every "4h" --session main --system-event "Time for a project health check" --wake now
#
Cuándo usar cron aislado
Usa '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'--session isolated'</code>' cuando necesites:
- Estado limpio sin contexto previo
- Modelo diferente o configuraciones de pensamiento
- Salida entregada directamente al canal (resumen aún publicado al principal por defecto)
- El historial no abarrota la sesión principal
openclaw cron add --name "Deep analysis" --cron "0 6 * * 0" --session isolated --message "Weekly codebase analysis..." --model opus --thinking high --deliver
Consideraciones de costo
| Mecanismo | Perfil de costo |
| --- | --- |
| Heartbeat | Se ejecuta cada N minutos; escala con tamaño de HEARTBEAT.md |
| Cron (principal) | Añade evento al próximo heartbeat (sin turno aislado) |
| Cron (aislado) | Turno completo de agente por trabajo; puede usar modelos más baratos |
<strong>Consejos</strong>:
- Mantén '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'HEARTBEAT.md'</code>' pequeño para minimizar costos de tokens.
- Agrupa verificaciones similares en heartbeat en lugar de múltiples cron jobs.
- Usa '<code className="bg-white/10 px-1.5 py-0.5 rounded text-emerald-300 text-sm">'target: "none"'</code>' en heartbeat si solo necesitas procesamiento interno.
- Usa cron aislado con modelos más baratos para tareas rutinarias.
Relacionado
- '<a href="/gateway/heartbeat" className="text-emerald-400 hover:text-emerald-300 transition-colors">'Heartbeat'</a>' - Configuración completa de heartbeat
- '<a href="/automation/cron-jobs" className="text-emerald-400 hover:text-emerald-300 transition-colors">'Cron jobs'</a>' - Referencia completa de CLI y API de cron
- '<a href="/cli/system" className="text-emerald-400 hover:text-emerald-300 transition-colors">'Sistema'</a>' - Eventos de sistema + control de heartbeat