OpenClaw: Heartbeat vs. Cron – Die richtige Wahl treffen
Kennst du das? Du baust einen Agenten, der eigentlich nur ab und zu nach dem Rechten sehen soll, aber plötzlich ertrinkst du in unzähligen Cron-Jobs oder der Agent verliert den Kontext, weil jeder Task in einer isolierten Umgebung startet. Die Wahl zwischen Heartbeats und Cron-Jobs entscheidet oft darüber, ob dein System effizient läuft oder unnötig API-Kosten verursacht.
Sowohl Heartbeats als auch Cron-Jobs ermöglichen es dir, Aufgaben nach einem Zeitplan auszuführen. Dieser Guide hilft dir dabei, den richtigen Mechanismus für deinen Use Case zu wählen.
Kurzer Entscheidungs-Guide
Abschnitt betitelt „Kurzer Entscheidungs-Guide“| Use Case | Empfehlung | Warum |
|---|---|---|
| Inbox alle 30 Min. prüfen | Heartbeat | Bündelt Checks, kontextbewusst |
| Täglicher Report punkt 9:00 Uhr | Cron (isolated) | Exaktes Timing erforderlich |
| Kalender auf anstehende Events prüfen | Heartbeat | Passt natürlich zu periodischem Bewusstsein |
| Wöchentliche Tiefenanalyse | Cron (isolated) | Eigenständiger Task, anderes Modell möglich |
| Erinnerung in 20 Minuten | Cron (main, --at) | Einmalig mit präzisem Timing |
| Health Check für Hintergrundprojekte | Heartbeat | Nutzt bestehende Zyklen |
Heartbeat: Periodisches Bewusstsein
Abschnitt betitelt „Heartbeat: Periodisches Bewusstsein“Heartbeats laufen in der Main Session in einem regelmäßigen Intervall (Standard: 30 Min.). Sie sind dafür gedacht, dass der Agent nach dem Rechten sieht und wichtige Informationen an die Oberfläche bringt.
Wann du Heartbeat verwenden solltest
Abschnitt betitelt „Wann du Heartbeat verwenden solltest“- Mehrere periodische Checks: Statt 5 separate Cron-Jobs für Inbox, Kalender, Wetter, Benachrichtigungen und Projektstatus zu nutzen, kann ein einziger Heartbeat all das bündeln.
- Kontextbewusste Entscheidungen: Der Agent hat den vollen Kontext der Main Session. Er kann also kluge Entscheidungen treffen, was dringend ist und was warten kann.
- Kontinuität im Gespräch: Heartbeat-Durchläufe teilen sich dieselbe Session. Der Agent erinnert sich an letzte Gespräche und kann natürlich daran anknüpfen.
- Monitoring mit wenig Overhead: Ein Heartbeat ersetzt viele kleine Polling-Tasks.
Heartbeat-Vorteile
Abschnitt betitelt „Heartbeat-Vorteile“- Bündelt mehrere Checks: Ein Agent-Turn kann Inbox, Kalender und Benachrichtigungen zusammen prüfen.
- Reduziert API-Aufrufe: Ein einzelner Heartbeat ist günstiger als 5 isolierte Cron-Jobs.
- Kontextbewusst: Der Agent weiß, woran du gerade arbeitest, und kann Prioritäten entsprechend setzen.
- Intelligente Unterdrückung: Wenn nichts Aufmerksamkeit erfordert, antwortet der Agent mit
HEARTBEAT_OKund es wird keine Nachricht zugestellt. - Natürliches Timing: Verschiebt sich leicht je nach Queue-Last, was für die meisten Monitoring-Aufgaben völlig okay ist.
Heartbeat-Beispiel: HEARTBEAT.md Checkliste
Abschnitt betitelt „Heartbeat-Beispiel: HEARTBEAT.md Checkliste“# 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-inDer Agent liest dies bei jedem Heartbeat und bearbeitet alle Punkte in einem Turn.
Heartbeat konfigurieren
Abschnitt betitelt „Heartbeat konfigurieren“{ agents: { defaults: { heartbeat: { every: "30m", // interval target: "last", // explicit alert delivery target (default is "none") activeHours: { start: "08:00", end: "22:00" }, // optional }, }, },}Siehe Heartbeat für die vollständige Konfiguration.
Cron: Präzise Zeitplanung
Abschnitt betitelt „Cron: Präzise Zeitplanung“Cron-Jobs laufen zu exakten Zeiten und können in isolierten Sessions ausgeführt werden, ohne den Hauptkontext zu beeinflussen. Wiederkehrende Zeitpläne zur vollen Stunde werden automatisch durch einen deterministischen Offset pro Job in einem Fenster von 0-5 Minuten verteilt.
Wann du Cron verwenden solltest
Abschnitt betitelt „Wann du Cron verwenden solltest“- Exaktes Timing erforderlich: “Sende dies jeden Montag um Punkt 9:00 Uhr” (nicht “irgendwann um 9 herum”).
- Eigenständige Aufgaben: Tasks, die keinen Gesprächskontext benötigen.
- Anderes Modell/Thinking: Komplexe Analysen, die ein leistungsstärkeres Modell rechtfertigen.
- Einmalige Erinnerungen: “Erinnere mich in 20 Minuten” mit
--at. - Häufige Aufgaben: Tasks, die den Verlauf der Main Session unnötig aufblähen würden.
- Externe Trigger: Aufgaben, die unabhängig davon laufen sollen, ob der Agent ansonsten aktiv ist.
Cron-Vorteile
Abschnitt betitelt „Cron-Vorteile“- Präzises Timing: 5-Feld oder 6-Feld (Sekunden) Cron-Expressions mit Zeitzonen-Support.
- Integrierte Lastverteilung: Zeitpläne zur vollen Stunde werden standardmäßig um bis zu 5 Minuten versetzt.
- Kontrolle pro Job: Überschreibe den Versatz mit
--stagger <duration>oder erzwinge exaktes Timing mit--exact. - Session-Isolierung: Läuft in
cron:<jobId>, ohne die Main History zu belasten. - Modell-Overrides: Nutze ein günstigeres oder stärkeres Modell pro Job.
- Zustellungs-Kontrolle: Isolierte Jobs nutzen standardmäßig
announce(Zusammenfassung); wählenonenach Bedarf. - Sofortige Zustellung: Der Announce-Modus postet direkt, ohne auf den Heartbeat zu warten.
- Kein Agent-Kontext nötig: Läuft auch dann, wenn die Main Session inaktiv oder komprimiert ist.
- Einmaliger Support:
--atfür präzise zukünftige Zeitstempel.
Cron-Beispiel: Täglicher Morning Briefing
Abschnitt betitelt „Cron-Beispiel: Täglicher Morning Briefing“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"Dies läuft exakt um 7:00 Uhr New Yorker Zeit, nutzt Opus für hohe Qualität und sendet eine Zusammenfassung direkt an WhatsApp.
Cron-Beispiel: Einmalige Erinnerung
Abschnitt betitelt „Cron-Beispiel: Einmalige Erinnerung“openclaw cron add \ --name "Meeting reminder" \ --at "20m" \ --session main \ --system-event "Reminder: standup meeting starts in 10 minutes." \ --wake now \ --delete-after-runSiehe Cron jobs für die vollständige CLI-Referenz.
Entscheidungs-Flowchart
Abschnitt betitelt „Entscheidungs-Flowchart“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 heartbeatBeides kombinieren
Abschnitt betitelt „Beides kombinieren“Das effizienteste Setup nutzt beides:
- Heartbeat übernimmt das Routine-Monitoring (Inbox, Kalender, Benachrichtigungen) in einem gebündelten Turn alle 30 Minuten.
- Cron übernimmt präzise Zeitpläne (tägliche Reports, wöchentliche Reviews) und einmalige Erinnerungen.
Beispiel: Effizientes Automatisierungs-Setup
Abschnitt betitelt „Beispiel: Effizientes Automatisierungs-Setup“HEARTBEAT.md (alle 30 Min. geprüft):
# 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 (präzises Timing):
# 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: Deterministische Workflows mit Freigaben
Abschnitt betitelt „Lobster: Deterministische Workflows mit Freigaben“Lobster ist die Workflow-Runtime für mehrstufige Tool-Pipelines, die eine deterministische Ausführung und explizite Freigaben benötigen. Nutze es, wenn die Aufgabe mehr als ein einzelner Agent-Turn ist und du einen fortsetzbaren Workflow mit menschlichen Checkpoints willst.
Wann Lobster passt
Abschnitt betitelt „Wann Lobster passt“- Mehrstufige Automatisierung: Du brauchst eine feste Pipeline von Tool-Aufrufen, keinen einmaligen Prompt.
- Freigabe-Schranken: Side-Effects sollen pausieren, bis du sie genehmigst, und dann fortfahren.
- Fortsetzbare Durchläufe: Setze einen pausierten Workflow fort, ohne frühere Schritte erneut auszuführen.
Zusammenspiel mit Heartbeat und Cron
Abschnitt betitelt „Zusammenspiel mit Heartbeat und Cron“- Heartbeat/Cron entscheiden, wann ein Durchlauf stattfindet.
- Lobster definiert, welche Schritte passieren, sobald der Durchlauf startet.
Für geplante Workflows nutzt du Cron oder Heartbeat, um einen Agent-Turn auszulösen, der Lobster aufruft. Für Ad-hoc-Workflows rufst du Lobster direkt auf.
Operative Hinweise (aus dem Code)
Abschnitt betitelt „Operative Hinweise (aus dem Code)“- Lobster läuft als lokaler Subprozess (
lobsterCLI) im Tool-Modus und gibt ein JSON-Envelope zurück. - Wenn das Tool
needs_approvalzurückgibt, setzt du es mit einemresumeTokenund demapprove-Flag fort. - Das Tool ist ein optionales Plugin; aktiviere es additiv über
tools.alsoAllow: ["lobster"](empfohlen). - Lobster erwartet, dass die
lobsterCLI imPATHverfügbar ist.
Siehe Lobster für die vollständige Nutzung und Beispiele.
Main Session vs. Isolated Session
Abschnitt betitelt „Main Session vs. Isolated Session“Sowohl Heartbeat als auch Cron können mit der Main Session interagieren, aber auf unterschiedliche Weise:
| Heartbeat | Cron (main) | Cron (isolated) | |
|---|---|---|---|
| Session | Main | Main (via System-Event) | cron:<jobId> |
| History | Geteilt | Geteilt | Frisch bei jedem Start |
| Kontext | Vollständig | Vollständig | Keiner (startet sauber) |
| Modell | Main Session Modell | Main Session Modell | Kann überschrieben werden |
| Output | Zustellung, wenn nicht HEARTBEAT_OK | Heartbeat-Prompt + Event | Announce-Summary (Standard) |
Wann du Main Session Cron nutzen solltest
Abschnitt betitelt „Wann du Main Session Cron nutzen solltest“Nutze --session main mit --system-event, wenn du möchtest, dass:
- Die Erinnerung/das Event im Kontext der Main Session erscheint.
- Der Agent es beim nächsten Heartbeat mit vollem Kontext bearbeitet.
- Kein separater isolierter Durchlauf stattfindet.
openclaw cron add \ --name "Check project" \ --every "4h" \ --session main \ --system-event "Time for a project health check" \ --wake nowWann du Isolated Cron nutzen solltest
Abschnitt betitelt „Wann du Isolated Cron nutzen solltest“Nutze --session isolated, wenn du möchtest, dass:
- Ein sauberer Start ohne vorherigen Kontext erfolgt.
- Andere Modell- oder Thinking-Einstellungen verwendet werden.
- Zusammenfassungen direkt in einen Channel gepostet werden.
- Die History der Main Session nicht belastet wird.
openclaw cron add \ --name "Deep analysis" \ --cron "0 6 * * 0" \ --session isolated \ --message "Weekly codebase analysis..." \ --model opus \ --thinking high \ --announceKostenüberlegungen
Abschnitt betitelt „Kostenüberlegungen“| Mechanismus | Kostenprofil |
|---|---|
| Heartbeat | Ein Turn alle N Minuten; skaliert mit HEARTBEAT.md Größe |
| Cron (main) | Fügt Event zum nächsten Heartbeat hinzu (kein isolierter Turn) |
| Cron (isolated) | Voller Agent-Turn pro Job; kann günstigeres Modell nutzen |
Tipps:
- Halte die
HEARTBEAT.mdklein, um den Token-Overhead zu minimieren. - Bündle ähnliche Checks im Heartbeat, statt viele Cron-Jobs zu nutzen.
- Nutze
target: "none"beim Heartbeat, wenn du nur interne Verarbeitung wünschst. - Nutze isolierte Crons mit einem günstigeren Modell für Routineaufgaben.
Verwandte Themen
Abschnitt betitelt „Verwandte Themen“- Heartbeat – vollständige Heartbeat-Konfiguration
- Cron jobs – vollständige Cron CLI- und API-Referenz
- System – System-Events + Heartbeat-Steuerung
Nächste Schritte
Abschnitt betitelt „Nächste Schritte“- Richte deinen ersten Heartbeat in der
config.json5ein. - Erstelle eine
HEARTBEAT.mdin deinem Workspace. - Probiere
openclaw cron add --at "5m" --message "Test"aus.
OpenClaw Expert
Noch festgefahren?
Wenn diese Seite nicht hilft, frage OpenClaw Expert nach Schritt-fuer-Schritt-Loesungen.