Zum Hauptinhalt springen

Hintergrundaufgaben

Auf der Suche nach Planung? Siehe Automation & Tasks, um den richtigen Mechanismus auszuwählen. Diese Seite behandelt die Nachverfolgung von Hintergrundarbeit, nicht deren Planung.
Hintergrundaufgaben verfolgen Arbeit, die außerhalb Ihrer Haupt-Konversationssitzung ausgeführt wird: ACP-Ausführungen, Subagent-Starts, Ausführungen isolierter Cron-Jobs und per CLI gestartete Vorgänge. Aufgaben ersetzen nicht Sitzungen, Cron-Jobs oder Heartbeats — sie sind das Aktivitätsprotokoll, das aufzeichnet, welche getrennte Arbeit stattgefunden hat, wann sie stattfand und ob sie erfolgreich war.
Nicht jede Agent-Ausführung erstellt eine Aufgabe. Heartbeat-Durchläufe und normaler interaktiver Chat tun das nicht. Alle Cron-Ausführungen, ACP-Starts, Subagent-Starts und CLI-Agent-Befehle tun es.

Kurzfassung

  • Aufgaben sind Einträge, keine Planer — Cron und Heartbeat entscheiden, wann Arbeit ausgeführt wird, Aufgaben erfassen, was passiert ist.
  • ACP, Subagents, alle Cron-Jobs und CLI-Vorgänge erstellen Aufgaben. Heartbeat-Durchläufe nicht.
  • Jede Aufgabe durchläuft queued → running → terminal (succeeded, failed, timed_out, cancelled oder lost).
  • Cron-Aufgaben bleiben aktiv, solange die Cron-Laufzeit den Job noch besitzt; chatgestützte CLI-Aufgaben bleiben nur aktiv, solange ihr zugehöriger Ausführungskontext noch aktiv ist.
  • Der Abschluss ist Push-gesteuert: Getrennte Arbeit kann direkt benachrichtigen oder die anfragende Sitzung bzw. den Heartbeat wecken, wenn sie beendet ist; Status-Polling-Schleifen sind daher meist der falsche Ansatz.
  • Isolierte Cron-Ausführungen und Subagent-Abschlüsse bereinigen nach bestem Bemühen verfolgte Browser-Tabs/Prozesse für ihre untergeordnete Sitzung vor der abschließenden Bereinigungsbuchführung.
  • Die Zustellung isolierter Cron-Ausführungen unterdrückt veraltete vorläufige Antworten des Elternteils, während untergeordnete Subagent-Arbeit noch ausläuft, und bevorzugt die endgültige Ausgabe des Nachfahren, wenn sie vor der Zustellung eintrifft.
  • Abschlussbenachrichtigungen werden direkt an einen Kanal zugestellt oder für den nächsten Heartbeat in die Warteschlange gestellt.
  • openclaw tasks list zeigt alle Aufgaben; openclaw tasks audit meldet Probleme.
  • Terminal-Einträge werden 7 Tage lang aufbewahrt und dann automatisch bereinigt.

Schnellstart

# Alle Aufgaben auflisten (neueste zuerst)
openclaw tasks list

# Nach Laufzeit oder Status filtern
openclaw tasks list --runtime acp
openclaw tasks list --status running

# Details zu einer bestimmten Aufgabe anzeigen (nach ID, Run-ID oder Sitzungsschlüssel)
openclaw tasks show <lookup>

# Eine laufende Aufgabe abbrechen (beendet die untergeordnete Sitzung)
openclaw tasks cancel <lookup>

# Benachrichtigungsrichtlinie für eine Aufgabe ändern
openclaw tasks notify <lookup> state_changes

# Einen Zustandsaudit ausführen
openclaw tasks audit

# Wartung anzeigen oder anwenden
openclaw tasks maintenance
openclaw tasks maintenance --apply

# TaskFlow-Zustand prüfen
openclaw tasks flow list
openclaw tasks flow show <lookup>
openclaw tasks flow cancel <lookup>

Was eine Aufgabe erstellt

QuelleLaufzeittypWann ein Aufgabeneintrag erstellt wirdStandard-Benachrichtigungsrichtlinie
ACP-HintergrundläufeacpStarten einer untergeordneten ACP-Sitzungdone_only
Subagent-OrchestrierungsubagentStarten eines Subagent über sessions_spawndone_only
Cron-Jobs (alle Typen)cronJede Cron-Ausführung (Hauptsitzung und isoliert)silent
CLI-Vorgängecliopenclaw agent-Befehle, die über das Gateway laufensilent
Cron-Aufgaben der Hauptsitzung verwenden standardmäßig die Benachrichtigungsrichtlinie silent — sie erstellen Einträge zur Nachverfolgung, erzeugen aber keine Benachrichtigungen. Isolierte Cron-Aufgaben verwenden ebenfalls standardmäßig silent, sind aber sichtbarer, weil sie in ihrer eigenen Sitzung laufen. Was keine Aufgaben erstellt:
  • Heartbeat-Durchläufe — Hauptsitzung; siehe Heartbeat
  • Normale interaktive Chat-Durchläufe
  • Direkte /command-Antworten

Aufgabenlebenszyklus

StatusBedeutung
queuedErstellt, wartet auf den Start des Agent
runningDer Agent-Durchlauf wird aktiv ausgeführt
succeededErfolgreich abgeschlossen
failedMit einem Fehler abgeschlossen
timed_outDas konfigurierte Zeitlimit wurde überschritten
cancelledVom Operator über openclaw tasks cancel gestoppt
lostDie Laufzeit hat nach einer Schonfrist von 5 Minuten den autoritativen Basiszustand verloren
Übergänge erfolgen automatisch — wenn die zugehörige Agent-Ausführung endet, wird der Aufgabenstatus entsprechend aktualisiert. lost ist laufzeitbewusst:
  • ACP-Aufgaben: Metadaten der zugrunde liegenden ACP-Untergeordnetensitzung sind verschwunden.
  • Subagent-Aufgaben: Die zugrunde liegende untergeordnete Sitzung ist aus dem Speicher des Ziel-Agent verschwunden.
  • Cron-Aufgaben: Die Cron-Laufzeit verfolgt den Job nicht mehr als aktiv.
  • CLI-Aufgaben: Isolierte Aufgaben mit untergeordneter Sitzung verwenden die untergeordnete Sitzung; chatgestützte CLI-Aufgaben verwenden stattdessen den aktiven Ausführungskontext, sodass verbleibende Kanal-/Gruppen-/Direktsitzungszeilen sie nicht aktiv halten.

Zustellung und Benachrichtigungen

Wenn eine Aufgabe einen Terminal-Zustand erreicht, benachrichtigt OpenClaw Sie. Es gibt zwei Zustellpfade: Direkte Zustellung — wenn die Aufgabe ein Kanalziel hat (den requesterOrigin), wird die Abschlussnachricht direkt an diesen Kanal gesendet (Telegram, Discord, Slack usw.). Bei Subagent-Abschlüssen bewahrt OpenClaw außerdem gebundenes Thread-/Topic-Routing, wenn verfügbar, und kann ein fehlendes to / Konto aus der gespeicherten Route der anfragenden Sitzung (lastChannel / lastTo / lastAccountId) ergänzen, bevor die direkte Zustellung aufgegeben wird. Sitzungswarteschlangen-Zustellung — wenn die direkte Zustellung fehlschlägt oder kein Ursprung gesetzt ist, wird das Update als Systemereignis in die Warteschlange der anfragenden Sitzung gestellt und beim nächsten Heartbeat angezeigt.
Der Aufgabenabschluss löst ein sofortiges Heartbeat-Wecken aus, damit Sie das Ergebnis schnell sehen — Sie müssen nicht auf den nächsten geplanten Heartbeat-Takt warten.
Das bedeutet, dass der übliche Arbeitsablauf Push-basiert ist: Starten Sie getrennte Arbeit einmal, und lassen Sie dann die Laufzeit Sie beim Abschluss wecken oder benachrichtigen. Fragen Sie den Aufgabenstatus nur ab, wenn Sie Debugging, Eingriffe oder einen ausdrücklichen Audit benötigen.

Benachrichtigungsrichtlinien

Steuert, wie viel Sie über jede Aufgabe erfahren:
RichtlinieWas zugestellt wird
done_only (Standard)Nur der Terminal-Zustand (succeeded, failed usw.) — dies ist der Standard
state_changesJeder Zustandsübergang und jede Fortschrittsaktualisierung
silentGar nichts
Ändern Sie die Richtlinie, während eine Aufgabe läuft:
openclaw tasks notify <lookup> state_changes

CLI-Referenz

tasks list

openclaw tasks list [--runtime <acp|subagent|cron|cli>] [--status <status>] [--json]
Ausgabespalten: Aufgaben-ID, Art, Status, Zustellung, Run-ID, untergeordnete Sitzung, Zusammenfassung.

tasks show

openclaw tasks show <lookup>
Das Such-Token akzeptiert eine Aufgaben-ID, Run-ID oder einen Sitzungsschlüssel. Zeigt den vollständigen Eintrag einschließlich Zeitdaten, Zustellstatus, Fehler und Terminal-Zusammenfassung.

tasks cancel

openclaw tasks cancel <lookup>
Bei ACP- und Subagent-Aufgaben beendet dies die untergeordnete Sitzung. Der Status wechselt zu cancelled und eine Zustellungsbenachrichtigung wird gesendet.

tasks notify

openclaw tasks notify <lookup> <done_only|state_changes|silent>

tasks audit

openclaw tasks audit [--json]
Meldet betriebliche Probleme. Erkenntnisse erscheinen auch in openclaw status, wenn Probleme erkannt werden.
ErkenntnisSchweregradAuslöser
stale_queuedwarnMehr als 10 Minuten in der Warteschlange
stale_runningerrorMehr als 30 Minuten laufend
losterrorLaufzeitgestützte Aufgabenbesitzerschaft ist verschwunden
delivery_failedwarnZustellung fehlgeschlagen und Benachrichtigungsrichtlinie ist nicht silent
missing_cleanupwarnTerminal-Aufgabe ohne Bereinigungszeitstempel
inconsistent_timestampswarnVerstoß gegen die Zeitachse (zum Beispiel Ende vor Start)

tasks maintenance

openclaw tasks maintenance [--json]
openclaw tasks maintenance --apply [--json]
Verwenden Sie dies, um Abgleich, Bereinigungsmarkierung und Bereinigung für Aufgaben und den Task-Flow-Zustand anzuzeigen oder anzuwenden. Der Abgleich ist laufzeitbewusst:
  • ACP-/Subagent-Aufgaben prüfen ihre zugrunde liegende untergeordnete Sitzung.
  • Cron-Aufgaben prüfen, ob die Cron-Laufzeit den Job noch besitzt.
  • Chatgestützte CLI-Aufgaben prüfen den zugehörigen aktiven Ausführungskontext, nicht nur die Chat-Sitzungszeile.
Die Abschlussbereinigung ist ebenfalls laufzeitbewusst:
  • Der Subagent-Abschluss schließt nach bestem Bemühen verfolgte Browser-Tabs/Prozesse für die untergeordnete Sitzung, bevor die Bereinigungsankündigung fortgesetzt wird.
  • Der Abschluss eines isolierten Cron-Laufs schließt nach bestem Bemühen verfolgte Browser-Tabs/Prozesse für die Cron-Sitzung, bevor der Lauf vollständig heruntergefahren wird.
  • Die Zustellung isolierter Cron-Läufe wartet bei Bedarf auf nachfolgende untergeordnete Subagent-Arbeit und unterdrückt veralteten Bestätigungstext des Elternteils, anstatt ihn anzukündigen.
  • Die Zustellung beim Subagent-Abschluss bevorzugt den neuesten sichtbaren Assistant-Text; wenn dieser leer ist, wird auf bereinigten neuesten tool-/toolResult-Text zurückgegriffen, und reine Tool-Call-Ausführungen mit Timeout können auf eine kurze Zusammenfassung des Teilfortschritts reduziert werden.
  • Bereinigungsfehler überdecken nicht das tatsächliche Aufgabenergebnis.

tasks flow list|show|cancel

openclaw tasks flow list [--status <status>] [--json]
openclaw tasks flow show <lookup> [--json]
openclaw tasks flow cancel <lookup>
Verwenden Sie diese Befehle, wenn die orchestrierende Task Flow das ist, was Sie interessiert, und nicht ein einzelner Hintergrundaufgabeneintrag.

Chat-Aufgabenboard (/tasks)

Verwenden Sie /tasks in einer beliebigen Chat-Sitzung, um mit dieser Sitzung verknüpfte Hintergrundaufgaben anzuzeigen. Das Board zeigt aktive und kürzlich abgeschlossene Aufgaben mit Laufzeit, Status, Zeitdaten sowie Fortschritts- oder Fehlerdetails. Wenn die aktuelle Sitzung keine sichtbaren verknüpften Aufgaben hat, greift /tasks auf agent-lokale Aufgabenzähler zurück, sodass Sie dennoch einen Überblick erhalten, ohne Details aus anderen Sitzungen preiszugeben. Für das vollständige Operator-Protokoll verwenden Sie die CLI: openclaw tasks list.

Statusintegration (Aufgabendruck)

openclaw status enthält eine Aufgabenübersicht auf einen Blick:
Tasks: 3 queued · 2 running · 1 issues
Die Zusammenfassung meldet:
  • active — Anzahl von queued + running
  • failures — Anzahl von failed + timed_out + lost
  • byRuntime — Aufschlüsselung nach acp, subagent, cron, cli
Sowohl /status als auch das Tool session_status verwenden einen bereinigungsbewussten Aufgaben-Schnappschuss: aktive Aufgaben werden bevorzugt, veraltete abgeschlossene Zeilen werden ausgeblendet und aktuelle Fehler werden nur angezeigt, wenn keine aktive Arbeit mehr verbleibt. So bleibt die Statuskarte auf das fokussiert, was jetzt wichtig ist.

Speicherung und Wartung

Wo Aufgaben gespeichert werden

Aufgabeneinträge werden in SQLite gespeichert unter:
$OPENCLAW_STATE_DIR/tasks/runs.sqlite
Die Registry wird beim Start des Gateway in den Speicher geladen und synchronisiert Schreibvorgänge nach SQLite für Beständigkeit über Neustarts hinweg.

Automatische Wartung

Ein Sweeper läuft alle 60 Sekunden und erledigt drei Dinge:
  1. Abgleich — prüft, ob aktive Aufgaben noch eine autoritative Laufzeitbasis haben. ACP-/Subagent-Aufgaben verwenden den Zustand der untergeordneten Sitzung, Cron-Aufgaben die Besitzerschaft des aktiven Jobs und chatgestützte CLI-Aufgaben den zugehörigen Ausführungskontext. Wenn dieser Basiszustand länger als 5 Minuten fehlt, wird die Aufgabe als lost markiert.
  2. Bereinigungsmarkierung — setzt einen cleanupAfter-Zeitstempel für Terminal-Aufgaben (endedAt + 7 days).
  3. Bereinigung — löscht Einträge nach ihrem cleanupAfter-Datum.
Aufbewahrung: Terminal-Aufgabeneinträge werden 7 Tage lang aufbewahrt und dann automatisch bereinigt. Keine Konfiguration erforderlich.

Wie Aufgaben mit anderen Systemen zusammenhängen

Aufgaben und Task Flow

Task Flow ist die Flow-Orchestrierungsebene über Hintergrundaufgaben. Ein einzelner Flow kann im Laufe seiner Lebensdauer mehrere Aufgaben koordinieren, indem er verwaltete oder gespiegelte Synchronisationsmodi verwendet. Verwenden Sie openclaw tasks, um einzelne Aufgabeneinträge zu prüfen, und openclaw tasks flow, um den orchestrierenden Flow zu prüfen. Siehe Task Flow für Details.

Aufgaben und Cron

Eine Cron-Job-Definition befindet sich in ~/.openclaw/cron/jobs.json. Jede Cron-Ausführung erstellt einen Aufgabeneintrag — sowohl in der Hauptsitzung als auch isoliert. Cron-Aufgaben der Hauptsitzung verwenden standardmäßig die Benachrichtigungsrichtlinie silent, damit sie verfolgt werden, ohne Benachrichtigungen zu erzeugen. Siehe Cron Jobs.

Aufgaben und Heartbeat

Heartbeat-Ausführungen sind Hauptsitzungs-Durchläufe — sie erstellen keine Aufgabeneinträge. Wenn eine Aufgabe abgeschlossen wird, kann sie ein Heartbeat-Wecken auslösen, damit Sie das Ergebnis zeitnah sehen. Siehe Heartbeat.

Aufgaben und Sitzungen

Eine Aufgabe kann auf einen childSessionKey (wo die Arbeit ausgeführt wird) und einen requesterSessionKey (wer sie gestartet hat) verweisen. Sitzungen sind der Konversationskontext; Aufgaben sind die Aktivitätsnachverfolgung darüber.

Aufgaben und Agent-Ausführungen

Die runId einer Aufgabe verknüpft sie mit der Agent-Ausführung, die die Arbeit erledigt. Ereignisse im Agent-Lebenszyklus (Start, Ende, Fehler) aktualisieren den Aufgabenstatus automatisch — Sie müssen den Lebenszyklus nicht manuell verwalten.

Verwandt