Cron vs. Heartbeat: Wann Sie was verwenden sollten
Sowohl Heartbeats als auch Cron-Jobs ermöglichen es Ihnen, Aufgaben nach einem Zeitplan auszuführen. Dieser Leitfaden hilft Ihnen, den richtigen Mechanismus für Ihren Anwendungsfall auszuwählen.Schnellentscheidungshilfe
| Fall verwenden | Empfohlen | Warum |
|---|---|---|
| Posteingang alle 30 Min prüfen | Heartbeat | Bündelt mit anderen Prüfungen, kontextbewusst |
| Täglichen Bericht exakt um 9 Uhr senden | Cron (isoliert) | Exaktes Timing erforderlich |
| Kalender auf bevorstehende Termine überwachen | Heartbeat | Natürliche Lösung für periodische Aufmerksamkeit |
| Wöchentliche Tiefenanalyse ausführen | Cron (isoliert) | Eigenständige Aufgabe, kann anderes Modell nutzen |
| Erinnere mich in 20 Minuten | Cron (main, --at) | Einmalig mit präzisem Timing |
| Hintergrund-Check zur Projektgesundheit | Heartbeat | Nutzt bestehenden Zyklus mit |
Heartbeat: Periodische Aufmerksamkeit
Heartbeats laufen in der Hauptsitzung in einem regelmäßigen Intervall (Standard: 30 Min). Sie sind dafür gedacht, dass der Agent Dinge überprüft und alles Wichtige hervorhebt.Wann Sie Heartbeat verwenden sollten
- Mehrere periodische Prüfungen: Statt 5 separater Cron-Jobs für Posteingang, Kalender, Wetter, Benachrichtigungen und Projektstatus kann ein einzelner Heartbeat all dies bündeln.
- Kontextbewusste Entscheidungen: Der Agent hat den vollständigen Kontext der Hauptsitzung und kann intelligent entscheiden, was dringend ist und was warten kann.
- Konversationelle Kontinuität: Heartbeat-Läufe teilen dieselbe Sitzung, sodass sich der Agent an kürzliche Gespräche erinnert und natürlich nachfassen kann.
- Überwachung mit geringem Overhead: Ein Heartbeat ersetzt viele kleine Polling-Aufgaben.
Vorteile von Heartbeat
- Bündelt mehrere Prüfungen: Ein Agenten-Zug kann Posteingang, Kalender und Benachrichtigungen gemeinsam prüfen.
- Reduziert API-Aufrufe: Ein einzelner Heartbeat ist günstiger als 5 isolierte Cron-Jobs.
- Kontextbewusst: Der Agent weiß, woran Sie gearbeitet haben, und kann entsprechend priorisieren.
- 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 Warteschlangenlast, was für die meisten Überwachungen ausreichend ist.
Heartbeat-Beispiel: HEARTBEAT.md-Checkliste
Heartbeat konfigurieren
Cron: Präzise Zeitplanung
Cron-Jobs laufen zu exakten Zeiten und können in isolierten Sitzungen ausgeführt werden, ohne den Hauptkontext zu beeinflussen.Wann Sie Cron verwenden sollten
- Exaktes Timing erforderlich: „Sende dies jeden Montag um 9:00 Uhr“ (nicht „irgendwann um 9“).
- Eigenständige Aufgaben: Aufgaben, die keinen konversationellen Kontext benötigen.
- Anderes Modell/Denken: Aufwendige Analysen, die ein leistungsfähigeres Modell rechtfertigen.
- Einmalige Erinnerungen: „Erinnere mich in 20 Minuten“ mit
--at. - Lautstarke/häufige Aufgaben: Aufgaben, die den Verlauf der Hauptsitzung überladen würden.
- Externe Trigger: Aufgaben, die unabhängig davon laufen sollen, ob der Agent sonst aktiv ist.
Vorteile von Cron
- Exaktes Timing: 5-Feld-Cron-Ausdrücke mit Zeitzonenunterstützung.
- Sitzungsisolation: Läuft in
cron:<jobId>, ohne den Hauptverlauf zu verschmutzen. - Modellüberschreibungen: Verwenden Sie pro Job ein günstigeres oder leistungsfähigeres Modell.
- Zustellkontrolle: Isolierte Jobs verwenden standardmäßig
announce(Zusammenfassung); wählen Sie bei Bedarfnone. - Sofortige Zustellung: Der Ankündigungsmodus postet direkt, ohne auf den Heartbeat zu warten.
- Kein Agentenkontext nötig: Läuft auch, wenn die Hauptsitzung inaktiv oder komprimiert ist.
- Einmalige Ausführung:
--atfür präzise zukünftige Zeitstempel.
Cron-Beispiel: Tägliches Morgenbriefing
Cron-Beispiel: Einmalige Erinnerung
Entscheidungsflussdiagramm
Kombination beider Ansätze
Die effizienteste Einrichtung nutzt beide:- Heartbeat übernimmt die routinemäßige Überwachung (Posteingang, Kalender, Benachrichtigungen) in einem gebündelten Zug alle 30 Minuten.
- Cron übernimmt präzise Zeitpläne (tägliche Berichte, wöchentliche Reviews) und einmalige Erinnerungen.
Beispiel: Effiziente Automatisierungseinrichtung
HEARTBEAT.md (alle 30 Min geprüft):Lobster: Deterministische Workflows mit Freigaben
Lobster ist die Workflow-Laufzeit für mehrstufige Tool-Pipelines, die deterministische Ausführung und explizite Freigaben benötigen. Verwenden Sie es, wenn die Aufgabe mehr als einen einzelnen Agenten-Zug umfasst und Sie einen wiederaufnehmbaren Workflow mit menschlichen Kontrollpunkten wünschen.Wann Lobster passt
- Mehrstufige Automatisierung: Sie benötigen eine feste Pipeline von Tool-Aufrufen, keinen einmaligen Prompt.
- Genehmigungsgates: Nebeneffekte sollten pausieren, bis du freigeschaltet hast, und dann wieder fortfahren.
- Wiederaufnehmbare Läufe: Setzen Sie einen pausierten Workflow fort, ohne frühere Schritte erneut auszuführen.
Zusammenspiel mit Heartbeat und Cron
- Heartbeat/Cron entscheiden, wann ein Lauf stattfindet.
- Lobster definiert, welche Schritte stattfinden, sobald der Lauf startet.
Operative Hinweise (aus dem Code)
- Lobster läuft als lokaler Subprozess (
lobsterCLI) im Tool-Modus und gibt einen JSON-Umschlag zurück. - Wenn das Tool
needs_approvalzurückgibt, setzen Sie mitresumeTokenund dem Flagapprovefort. - Das Tool ist ein optionales Plugin; aktivieren Sie es additiv über
tools.alsoAllow: ["lobster"](empfohlen). - Wenn Sie
lobsterPathübergeben, muss es ein absoluter Pfad sein.
Hauptsitzung vs. isolierte Sitzung
Sowohl Heartbeat als auch Cron können mit der Hauptsitzung interagieren, jedoch unterschiedlich:| Heartbeat | Cron (main) | Cron (isoliert) | |
|---|---|---|---|
| Sitzung | Main | Main (über Systemereignis) | cron:<jobId> |
| Verlauf | Geteilt | Geteilt | Bei jedem Lauf neu |
| Kontext | Vollständig | Vollständig | Keiner (startet sauber) |
| Modell | Modell der Hauptsitzung | Modell der Hauptsitzung | Kann überschrieben werden |
| Ausgabe | Zugestellt, wenn nicht HEARTBEAT_OK | Heartbeat-Prompt + Ereignis | Zusammenfassung ankündigen (Standard) |
Wann Sie Cron in der Hauptsitzung verwenden sollten
Verwenden Sie--session main mit --system-event, wenn Sie Folgendes möchten:
- Die Erinnerung/das Ereignis soll im Kontext der Hauptsitzung erscheinen
- Der Agent soll es beim nächsten Heartbeat mit vollem Kontext verarbeiten
- Kein separater isolierter Lauf
Wann Sie isolierten Cron verwenden sollten
Verwenden Sie--session isolated, wenn Sie Folgendes möchten:
- Ein unbeschriebenes Blatt ohne vorherigen Kontext
- Andere Modell- oder Denk-Einstellungen
- Zusammenfassungen direkt in einem Kanal ankündigen
- Verlauf, der die Hauptsitzung nicht überlädt
Kostenüberlegungen
| Mechanismus | Kostenprofil |
|---|---|
| Heartbeat | Ein Zug alle N Minuten; skaliert mit der Größe von HEARTBEAT.md |
| Cron (main) | Fügt Ereignis zum nächsten Heartbeat hinzu (kein isolierter Zug) |
| Cron (isoliert) | Voller Agenten-Zug pro Job; kann günstigeres Modell nutzen |
- Halten Sie
HEARTBEAT.mdklein, um den Token-Overhead zu minimieren. - Bündeln Sie ähnliche Prüfungen in Heartbeat statt in mehreren Cron-Jobs.
- Verwenden Sie
target: "none"bei Heartbeat, wenn Sie nur interne Verarbeitung wünschen. - Nutzen Sie isolierten Cron mit einem günstigeren Modell für Routineaufgaben.