0 XP
L1
?
Lessons
Heartbeat: Tu Asistente Siempre Atento
concept ⏱ 12m
1/2

Heartbeat: Tu Asistente Siempre Atento

El heartbeat es lo que separa a OpenClaw de cualquier chatbot. No es que el agente esté sentado esperando tu mensaje — cada 30 minutos, despierta, revisa su checklist, y actúa si hay algo que hacer.

Cómo Funciona

Técnicamente es simple: un timer que ejecuta un turno del agente en la sesión principal. El agente lee HEARTBEAT.md, revisa si hay algo pendiente, y:

  • Si hay algo que hacer → te notifica o actúa
  • Si no hay nada → responde HEARTBEAT_OK y vuelve a dormir

No es un proceso corriendo 24/7. Es un check periódico — eficiente y barato.

Configuración Básica

En openclaw.json:

{
  "agents": {
    "defaults": {
      "heartbeat": {
        "every": "30m",           // Cada 30 minutos
        "target": "last",         // Envía al último canal usado
        "lightContext": true,     // Usa solo HEARTBEAT.md (ahorra tokens)
        "isolatedSession": false  // Comparte contexto con tu conversación
      }
    }
  }
}

Intervalos recomendados

Caso de usoIntervaloPor qué
EA de trabajo30mSuficiente para email e inbox
Familia/Logística1hNo necesita ser tan frecuente
Solo reminders2hMínimo overhead
Testing/desarrollo5mPara ver resultados rápido
Desactivado0mSin heartbeat

HEARTBEAT.md — El Checklist

Este archivo es el "qué revisar" de tu agente. Puede ser tan simple o complejo como quieras:

Ejemplo simple (EA personal):

# Heartbeat Check

  • Check my calendar for upcoming meetings in the next 2 hours
  • If there's a meeting soon, remind me with prep notes
  • Check email for anything urgent (flagged or from VIP contacts)
  • If it's 3pm on a weekday, ask who's picking up the kids

Ejemplo con tasks estructurados:

tasks:
  • name: inbox-triage
interval: 30m prompt: "Check Gmail for urgent emails. Summarize anything from clients or marked important."
  • name: calendar-prep
interval: 1h prompt: "Look at next 2 hours of calendar. If there's a meeting, prepare a brief with attendee info."
  • name: kid-pickup
interval: 1h prompt: "If it's between 2:30-3:30pm on weekdays, ask in the family group chat who's picking up the kids."

Solo las tasks "due" se ejecutan — si inbox-triage corrió hace 10 minutos, no corre de nuevo hasta que pasen 30m.

Active Hours — No Molestar

No quieres que tu agente te despierte a las 3am:

{
  "heartbeat": {
    "every": "30m",
    "activeHours": {
      "start": "07:00",
      "end": "22:00",
      "timezone": "America/Bogota"
    }
  }
}

Fuera de horario activo, el heartbeat simplemente no corre.

Optimización de Costos

Cada heartbeat es una llamada al modelo. Con Opus a ~$15/1M tokens, eso puede sumar. Tips:

  1. lightContext: true: Solo carga HEARTBEAT.md, no todo el workspace. Reduce tokens dramáticamente.
  2. isolatedSession: true: Sesión fresh sin historial. De ~100K tokens a 2-5K por heartbeat.
  3. HEARTBEAT.md minimal: Entre más corto, menos tokens.
  4. Modelo más barato para heartbeat: Puedes usar Sonnet para heartbeats y Opus para conversaciones.
  5. Con lightContext + isolatedSession, cada heartbeat puede costar menos de $0.01.

❓ Quiz 1
¿Qué hace el agente cuando no hay nada que reportar en un heartbeat?
HEARTBEAT_OK es la señal interna de 'nada que hacer'. Por default, esta respuesta se suprime — no te llega nada. Solo recibes notificación cuando hay algo real que necesita tu atención.
Answer to continue ↓

Ejemplos Reales de Heartbeat

Claire — Finn (agente familiar):

Cada tarde a las 3pm, Finn envía al group chat con su marido: "¿Quién recoge a cuál niño hoy?" Suena simple, pero es una conversación que antes olvidaban y terminaban coordinando a las 4:45pm en pánico.

Claire — Polly (EA de trabajo):

Cada hora revisa el inbox. Si hay un email de un cliente grande, notifica inmediatamente. Si es newsletter, archiva sin molestar.

Lenny (podcaster):

Su agente le avisa cuando tiene que salir para una reunión, considerando el tráfico actual. "You should leave now — traffic is a little higher right now."

Manual Trigger

Si no quieres esperar al próximo heartbeat:

openclaw system event --text "Check follow-ups" --mode now

Esto ejecuta todos los heartbeats configurados inmediatamente.

⚖ Decision 1
Configuraste el heartbeat cada 30 minutos. Después de un día, te das cuenta que recibes muchas notificaciones irrelevantes. Tu agente te reporta cosas como 'no hay emails nuevos' y 'tu próxima reunión es en 4 horas'.
A Reduce la frecuencia pero no la calidad. Seguirás recibiendo reportes irrelevantes, solo que menos.
B ★ La solución correcta. Agrega filtros como 'solo notifica si hay emails de VIPs o si una reunión es en menos de 1 hora'. La calidad del HEARTBEAT.md determina la calidad de las notificaciones.
C Tiras al bebé con el agua. El heartbeat es valioso — el problema es la calibración, no la feature.
Make your choice to continue ↓
🛠 Exercise 1
Escribe tu HEARTBEAT.md ideal. ¿Qué debería revisar tu agente cada vez que despierta? Incluye al menos 3 checks y define para cada uno: qué revisar, cuándo actuar, y cuándo quedarse callado.
✓ Saved
advance · ? shortcuts 05.01
Claude — Tutor
select text for context
Ask me anything about this lesson.
I can see your quiz answers and decisions.

💡 Select text in the lesson to use it as context.
CONTEXT