Cron ist der integrierte Scheduler des Gateway. Er persistiert Jobs, weckt den Agent zur richtigen Zeit und kann Ausgaben zurück an einen Chat-Kanal oder einen Webhook-Endpunkt liefern.Documentation Index
Fetch the complete documentation index at: https://docs.openclaw.ai/llms.txt
Use this file to discover all available pages before exploring further.
Schnellstart
So funktioniert Cron
- Cron läuft innerhalb des Gateway-Prozesses (nicht innerhalb des Modells).
- Job-Definitionen werden unter
~/.openclaw/cron/jobs.jsonpersistiert, damit Zeitpläne bei Neustarts nicht verloren gehen. - Der Laufzeit-Ausführungszustand wird daneben in
~/.openclaw/cron/jobs-state.jsonpersistiert. Wenn Sie Cron-Definitionen in Git verfolgen, verfolgen Siejobs.jsonund nehmen Siejobs-state.jsonin gitignore auf. - Nach der Aufteilung können ältere OpenClaw-Versionen
jobs.jsonlesen, Jobs aber möglicherweise als neu behandeln, weil Laufzeitfelder jetzt injobs-state.jsonliegen. - Wenn
jobs.jsonbearbeitet wird, während der Gateway läuft oder gestoppt ist, vergleicht OpenClaw die geänderten Zeitplanfelder mit den ausstehenden Metadaten des Laufzeit-Slots und löscht veraltetenextRunAtMs-Werte. Reine Formatierungsänderungen oder Umschreibungen nur der Schlüsselreihenfolge behalten den ausstehenden Slot bei. - Alle Cron-Ausführungen erstellen Datensätze für Hintergrundaufgaben.
- Beim Gateway-Start werden überfällige isolierte Agent-Turn-Jobs außerhalb des Kanalverbindungsfensters neu geplant, statt sofort wiedergegeben zu werden, sodass Discord-/Telegram-Start und Einrichtung nativer Befehle nach Neustarts reaktionsfähig bleiben.
- Einmalige Jobs (
--at) löschen sich nach erfolgreicher Ausführung standardmäßig automatisch. - Isolierte Cron-Ausführungen schließen nach bestem Aufwand nachverfolgte Browser-Tabs/-Prozesse für ihre
cron:<jobId>-Sitzung, wenn die Ausführung abgeschlossen ist, damit getrennte Browser-Automatisierung keine verwaisten Prozesse zurücklässt. - Isolierte Cron-Ausführungen, die die enge Cron-Selbstbereinigungsfreigabe erhalten, können weiterhin den Scheduler-Status, eine selbst gefilterte Liste ihres aktuellen Jobs und den Ausführungsverlauf dieses Jobs lesen, sodass Status-/Heartbeat-Prüfungen ihren eigenen Zeitplan einsehen können, ohne weitergehenden Zugriff auf Cron-Mutationen zu erhalten.
- Isolierte Cron-Ausführungen schützen außerdem vor veralteten Bestätigungsantworten. Wenn das erste Ergebnis nur eine vorläufige Statusaktualisierung ist (
on it,pulling everything togetherund ähnliche Hinweise) und keine nachgelagerte Subagent-Ausführung weiterhin für die endgültige Antwort verantwortlich ist, fragt OpenClaw vor der Zustellung einmal erneut nach dem tatsächlichen Ergebnis. - Isolierte Cron-Ausführungen bevorzugen strukturierte Metadaten zu Ausführungsverweigerungen aus der eingebetteten Ausführung und fallen dann auf bekannte Marker in abschließender Zusammenfassung/Ausgabe wie
SYSTEM_RUN_DENIEDundINVALID_REQUESTzurück, damit ein blockierter Befehl nicht als erfolgreiche Ausführung gemeldet wird. - Isolierte Cron-Ausführungen behandeln außerdem Ausführungsfehler auf Agent-Ebene als Job-Fehler, auch wenn keine Antwortnutzlast erzeugt wird, sodass Modell-/Provider-Fehler Fehlerzähler erhöhen und Fehlerbenachrichtigungen auslösen, statt den Job als erfolgreich abzuschließen.
- Wenn ein isolierter Agent-Turn-Job
timeoutSecondserreicht, bricht Cron die zugrunde liegende Agent-Ausführung ab und gibt ihr ein kurzes Bereinigungsfenster. Wenn die Ausführung nicht ausläuft, erzwingt Gateway-eigene Bereinigung das Freigeben der Sitzungszuständigkeit dieser Ausführung, bevor Cron das Timeout aufzeichnet, sodass eingereihte Chat-Arbeit nicht hinter einer veralteten Verarbeitungssitzung zurückbleibt. - Wenn ein isolierter Agent-Turn vor dem Start des Runners oder vor dem ersten Modellaufruf hängen bleibt, zeichnet Cron ein phasenspezifisches Timeout wie
setup timed out before runner startoderstalled before first model call (last phase: context-engine)auf. Diese Watchdogs decken eingebettete Provider und CLI-gestützte Provider ab, bevor deren externer CLI-Prozess tatsächlich gestartet wird, und sind unabhängig von langentimeoutSeconds-Werten begrenzt, damit Kaltstart-/Auth-/Kontextfehler schnell sichtbar werden, statt auf das gesamte Job-Budget zu warten.
Aufgabenabgleich für Cron ist zuerst laufzeitgesteuert und erst danach durch dauerhafte Historie gestützt: Eine aktive Cron-Aufgabe bleibt aktiv, solange die Cron-Laufzeit diesen Job noch als laufend nachverfolgt, selbst wenn noch eine alte untergeordnete Sitzungszeile existiert. Sobald die Laufzeit den Job nicht mehr besitzt und das 5-minütige Kulanzfenster abläuft, prüfen Wartungschecks persistierte Ausführungsprotokolle und den Job-Zustand für die passende
cron:<jobId>:<startedAt>-Ausführung. Wenn diese dauerhafte Historie ein terminales Ergebnis zeigt, wird das Aufgaben-Ledger daraus finalisiert; andernfalls kann Gateway-eigene Wartung die Aufgabe als lost markieren. Offline-CLI-Audit kann aus dauerhafter Historie wiederherstellen, behandelt aber die eigene leere prozessinterne Menge aktiver Jobs nicht als Beweis dafür, dass eine Gateway-eigene Cron-Ausführung verschwunden ist.Zeitplantypen
| Art | CLI-Flag | Beschreibung |
|---|---|---|
at | --at | Einmaliger Zeitstempel (ISO 8601 oder relativ wie 20m) |
every | --every | Festes Intervall |
cron | --cron | 5-Feld- oder 6-Feld-Cron-Ausdruck mit optionalem --tz |
--tz America/New_York für lokale Wanduhr-Zeitplanung hinzu.
Wiederkehrende Ausdrücke zur vollen Stunde werden automatisch um bis zu 5 Minuten gestaffelt, um Lastspitzen zu reduzieren. Verwenden Sie --exact, um exaktes Timing zu erzwingen, oder --stagger 30s für ein explizites Fenster.
Tag-des-Monats und Tag-der-Woche verwenden ODER-Logik
Cron-Ausdrücke werden von croner geparst. Wenn sowohl die Felder für Tag des Monats als auch Tag der Woche keine Wildcards sind, passt croner, wenn eines der beiden Felder passt — nicht beide. Das ist das Standardverhalten von Vixie cron.+-Tag-der-Woche-Modifikator (0 9 15 * +1) oder planen Sie über ein Feld und prüfen Sie das andere im Prompt oder Befehl Ihres Jobs.
Ausführungsarten
| Stil | --session-Wert | Läuft in | Am besten geeignet für |
|---|---|---|---|
| Hauptsitzung | main | Nächster Heartbeat-Turn | Erinnerungen, Systemereignisse |
| Isoliert | isolated | Dediziertes cron:<jobId> | Berichte, Hintergrundarbeiten |
| Aktuelle Sitzung | current | Beim Erstellen gebunden | Kontextbewusste wiederkehrende Arbeit |
| Benutzerdefinierte Sitzung | session:custom-id | Persistente benannte Sitzung | Workflows, die auf Historie aufbauen |
Hauptsitzung vs. isoliert vs. benutzerdefiniert
Hauptsitzung vs. isoliert vs. benutzerdefiniert
Jobs der Hauptsitzung reihen ein Systemereignis ein und wecken optional den Heartbeat (
--wake now oder --wake next-heartbeat). Diese Systemereignisse verlängern nicht die Aktualität für tägliche/Leerlauf-Zurücksetzungen der Zielsitzung. Isolierte Jobs führen einen dedizierten Agent-Turn mit einer frischen Sitzung aus. Benutzerdefinierte Sitzungen (session:xxx) persistieren Kontext über Ausführungen hinweg und ermöglichen Workflows wie tägliche Standups, die auf vorherigen Zusammenfassungen aufbauen.Was „frische Sitzung“ für isolierte Jobs bedeutet
Was „frische Sitzung“ für isolierte Jobs bedeutet
Für isolierte Jobs bedeutet „frische Sitzung“ eine neue Transcript-/Sitzungs-ID für jede Ausführung. OpenClaw kann sichere Präferenzen wie Denk-/Schnell-/Verbose-Einstellungen, Labels und explizit vom Benutzer ausgewählte Modell-/Auth-Overrides übernehmen, erbt aber keinen Umgebungs-Konversationskontext aus einer älteren Cron-Zeile: Kanal-/Gruppen-Routing, Sende- oder Queue-Richtlinie, Erhöhung, Ursprung oder ACP-Laufzeitbindung. Verwenden Sie
current oder session:<id>, wenn ein wiederkehrender Job absichtlich auf demselben Konversationskontext aufbauen soll.Laufzeitbereinigung
Laufzeitbereinigung
Für isolierte Jobs umfasst der Laufzeit-Abbau jetzt die Browserbereinigung nach bestem Aufwand für diese Cron-Sitzung. Bereinigungsfehler werden ignoriert, sodass weiterhin das tatsächliche Cron-Ergebnis Vorrang hat.Isolierte Cron-Ausführungen entsorgen außerdem alle gebündelten MCP-Laufzeitinstanzen, die für den Job erstellt wurden, über den gemeinsamen Laufzeit-Bereinigungspfad. Dies entspricht der Art, wie MCP-Clients von Hauptsitzungen und benutzerdefinierten Sitzungen abgebaut werden, sodass isolierte Cron-Jobs keine stdio-Kindprozesse oder langlebigen MCP-Verbindungen über Ausführungen hinweg leaken.
Subagent- und Discord-Zustellung
Subagent- und Discord-Zustellung
Wenn isolierte Cron-Ausführungen Subagents orchestrieren, bevorzugt die Zustellung ebenfalls die endgültige Ausgabe eines Nachkommen gegenüber veraltetem vorläufigem Text des Elternteils. Wenn Nachkommen noch laufen, unterdrückt OpenClaw diese teilweise Elternaktualisierung, statt sie anzukündigen.Für reine Text-Discord-Ankündigungsziele sendet OpenClaw den kanonischen endgültigen Assistant-Text einmal, statt sowohl gestreamte/zwischenzeitliche Textnutzlasten als auch die endgültige Antwort erneut wiederzugeben. Medien und strukturierte Discord-Nutzlasten werden weiterhin als separate Nutzlasten zugestellt, damit Anhänge und Komponenten nicht verworfen werden.
Nutzlastoptionen für isolierte Jobs
Prompt-Text (für isolierte Jobs erforderlich).
Modell-Override; verwendet das ausgewählte erlaubte Modell für den Job.
Override für Denkstufe.
Workspace-Bootstrap-Dateiinjektion überspringen.
Beschränken, welche Tools der Job verwenden kann, zum Beispiel
--tools exec,read.--model verwendet das ausgewählte erlaubte Modell als primäres Modell dieses Jobs. Es ist nicht dasselbe wie ein /model-Override einer Chat-Sitzung: Konfigurierte Fallback-Ketten gelten weiterhin, wenn das primäre Job-Modell fehlschlägt. Wenn das angeforderte Modell nicht erlaubt ist oder nicht aufgelöst werden kann, lässt Cron die Ausführung mit einem expliziten Validierungsfehler fehlschlagen, statt still auf die Agent-/Standardmodellauswahl des Jobs zurückzufallen.
Cron-Jobs können außerdem fallbacks auf Nutzlastebene tragen. Wenn vorhanden, ersetzt diese Liste die konfigurierte Fallback-Kette für den Job. Verwenden Sie fallbacks: [] in der Job-Nutzlast/API, wenn Sie eine strikte Cron-Ausführung möchten, die nur das ausgewählte Modell versucht. Wenn ein Job --model hat, aber weder Nutzlast- noch konfigurierte Fallbacks, übergibt OpenClaw einen explizit leeren Fallback-Override, sodass das primäre Agent-Modell nicht als verstecktes zusätzliches Wiederholungsziel angehängt wird.
Die Priorität der Modellauswahl für isolierte Jobs ist:
- Gmail-Hook-Modell-Override (wenn die Ausführung von Gmail kam und dieser Override erlaubt ist)
modelpro Job-Nutzlast- Vom Benutzer ausgewählter gespeicherter Cron-Sitzungsmodell-Override
- Agent-/Standardmodellauswahl
params.fastMode hat, verwendet isoliertes Cron dies standardmäßig. Ein gespeicherter Sitzungs-fastMode-Override hat weiterhin in beide Richtungen Vorrang vor der Konfiguration.
Wenn eine isolierte Ausführung eine Live-Modellwechsel-Übergabe erreicht, wiederholt Cron mit dem gewechselten Provider/Modell und persistiert diese Live-Auswahl für die aktive Ausführung vor dem erneuten Versuch. Wenn der Wechsel auch ein neues Auth-Profil enthält, persistiert Cron auch diesen Auth-Profil-Override für die aktive Ausführung. Wiederholungen sind begrenzt: Nach dem ersten Versuch plus 2 Wechsel-Wiederholungen bricht Cron ab, statt endlos zu laufen.
Bevor ein isolierter Cron-Lauf in den Agent-Runner eintritt, prüft OpenClaw erreichbare lokale Provider-Endpunkte für konfigurierte api: "ollama"- und api: "openai-completions"-Provider, deren baseUrl Loopback, privates Netzwerk oder .local ist. Wenn dieser Endpunkt nicht verfügbar ist, wird der Lauf als skipped mit einem klaren Provider-/Modellfehler aufgezeichnet, statt einen Modellaufruf zu starten. Das Endpunktergebnis wird 5 Minuten lang zwischengespeichert, sodass viele fällige Jobs, die denselben nicht erreichbaren lokalen Ollama-, vLLM-, SGLang- oder LM Studio-Server verwenden, eine kleine Probe teilen, statt eine Anfrageflut zu erzeugen. Übersprungene Provider-Preflight-Läufe erhöhen das Execution-Error-Backoff nicht; aktivieren Sie failureAlert.includeSkipped, wenn Sie wiederholte Benachrichtigungen über übersprungene Läufe wünschen.
Zustellung und Ausgabe
| Modus | Was geschieht |
|---|---|
announce | Fallback-Zustellung des finalen Texts an das Ziel, wenn der Agent nicht gesendet hat |
webhook | POST mit Finished-Event-Payload an eine URL |
none | Keine Runner-Fallback-Zustellung |
--announce --channel telegram --to "-1001234567890" für die Kanalzustellung. Für Telegram-Forumsthemen verwenden Sie -1001234567890:topic:123; direkte RPC-/Konfigurationsaufrufer können außerdem delivery.threadId als String oder Zahl übergeben. Slack-/Discord-/Mattermost-Ziele sollten explizite Präfixe verwenden (channel:<id>, user:<id>). Matrix-Raum-IDs beachten Groß-/Kleinschreibung; verwenden Sie die exakte Raum-ID oder die Form room:!room:server aus Matrix.
Wenn die Announce-Zustellung channel: "last" verwendet oder channel auslässt, kann ein mit Provider-Präfix versehenes Ziel wie telegram:123 den Kanal auswählen, bevor Cron auf den Sitzungsverlauf oder einen einzelnen konfigurierten Kanal zurückfällt. Nur Präfixe, die vom geladenen Plugin bekanntgegeben werden, sind Provider-Selektoren. Wenn delivery.channel explizit ist, muss das Zielpräfix denselben Provider benennen; zum Beispiel wird channel: "whatsapp" mit to: "telegram:123" abgelehnt, statt WhatsApp die Telegram-ID als Telefonnummer interpretieren zu lassen. Zielart- und Dienstpräfixe wie channel:<id>, user:<id>, imessage:<handle> und sms:<number> bleiben kanaleigene Zielsyntax, keine Provider-Selektoren.
Für isolierte Jobs wird die Chat-Zustellung geteilt. Wenn eine Chat-Route verfügbar ist, kann der Agent das message-Tool auch dann verwenden, wenn der Job --no-deliver nutzt. Wenn der Agent an das konfigurierte/aktuelle Ziel sendet, überspringt OpenClaw die Fallback-Announce-Zustellung. Andernfalls steuern announce, webhook und none nur, was der Runner nach dem Agent-Turn mit der finalen Antwort macht.
Wenn ein Agent aus einem aktiven Chat heraus eine isolierte Erinnerung erstellt, speichert OpenClaw das beibehaltene Live-Zustellungsziel für die Fallback-Announce-Route. Interne Sitzungsschlüssel können kleingeschrieben sein; Provider-Zustellungsziele werden nicht aus diesen Schlüsseln rekonstruiert, wenn aktueller Chat-Kontext verfügbar ist.
Implizite Announce-Zustellung verwendet konfigurierte Kanal-Allowlists, um veraltete Ziele zu validieren und umzuleiten. Genehmigungen aus dem DM-Pairing-Store sind keine Empfänger für Fallback-Automatisierung; setzen Sie delivery.to oder konfigurieren Sie den allowFrom-Eintrag des Kanals, wenn ein geplanter Job proaktiv an eine DM senden soll.
Fehlerbenachrichtigungen folgen einem separaten Zielpfad:
cron.failureDestinationlegt einen globalen Standard für Fehlerbenachrichtigungen fest.job.delivery.failureDestinationüberschreibt diesen pro Job.- Wenn keines davon gesetzt ist und der Job bereits über
announcezustellt, fallen Fehlerbenachrichtigungen jetzt auf dieses primäre Announce-Ziel zurück. delivery.failureDestinationwird nur für Jobs mitsessionTarget="isolated"unterstützt, sofern der primäre Zustellmodus nichtwebhookist.failureAlert.includeSkipped: truenimmt einen Job oder die globale Cron-Alarmrichtlinie in wiederholte Alerts für übersprungene Läufe auf. Übersprungene Läufe führen einen separaten Zähler für aufeinanderfolgende Überspringungen, sodass sie das Execution-Error-Backoff nicht beeinflussen.
CLI-Beispiele
- One-shot reminder
- Recurring isolated job
- Model and thinking override
Webhooks
Gateway kann HTTP-Webhook-Endpunkte für externe Trigger bereitstellen. Aktivieren Sie dies in der Konfiguration:Authentifizierung
Jede Anfrage muss das Hook-Token über einen Header enthalten:Authorization: Bearer <token>(empfohlen)x-openclaw-token: <token>
POST /hooks/wake
POST /hooks/wake
POST /hooks/agent
POST /hooks/agent
Führt einen isolierten Agent-Turn aus:Felder:
message (erforderlich), name, agentId, wakeMode, deliver, channel, to, model, fallbacks, thinking, timeoutSeconds.Mapped hooks (POST /hooks/<name>)
Mapped hooks (POST /hooks/<name>)
Benutzerdefinierte Hook-Namen werden über
hooks.mappings in der Konfiguration aufgelöst. Mappings können beliebige Payloads mit Templates oder Code-Transformationen in wake- oder agent-Aktionen umwandeln.Gmail-PubSub-Integration
Verbinden Sie Gmail-Inbox-Trigger über Google PubSub mit OpenClaw.Voraussetzungen:
gcloud-CLI, gog (gogcli), aktivierte OpenClaw-Hooks, Tailscale für den öffentlichen HTTPS-Endpunkt.Wizard-Einrichtung (empfohlen)
hooks.gmail-Konfiguration, aktiviert das Gmail-Preset und verwendet Tailscale Funnel für den Push-Endpunkt.
Gateway-Autostart
Wennhooks.enabled=true und hooks.gmail.account gesetzt ist, startet der Gateway beim Booten gog gmail watch serve und erneuert die Watch automatisch. Setzen Sie OPENCLAW_SKIP_GMAIL_WATCHER=1, um dies zu deaktivieren.
Manuelle einmalige Einrichtung
Select the GCP project
Wählen Sie das GCP-Projekt aus, dem der von
gog verwendete OAuth-Client gehört:Gmail-Modellüberschreibung
Jobs verwalten
Hinweis zur Modellüberschreibung:
openclaw cron add|edit --model ...ändert das für den Job ausgewählte Modell.- Wenn das Modell erlaubt ist, erreicht genau dieser Provider/dieses Modell den isolierten Agent-Lauf.
- Wenn es nicht erlaubt ist oder nicht aufgelöst werden kann, schlägt Cron den Lauf mit einem expliziten Validierungsfehler fehl.
- Konfigurierte Fallback-Ketten gelten weiterhin, weil Cron
--modelein Job-Primary ist, keine Sitzungsüberschreibung per/model. - Payload-
fallbacksersetzt konfigurierte Fallbacks für diesen Job;fallbacks: []deaktiviert Fallback und macht den Lauf strikt. - Ein einfaches
--modelohne explizite oder konfigurierte Fallback-Liste fällt nicht als stilles zusätzliches Retry-Ziel auf das primäre Agent-Modell durch.
Konfiguration
maxConcurrentRuns begrenzt sowohl die geplante Cron-Ausführung als auch die isolierte Agent-Turn-Ausführung. Isolierte Cron-Agent-Turns verwenden intern die dedizierte cron-nested-Ausführungsspur der Warteschlange. Wenn Sie diesen Wert erhöhen, können unabhängige Cron-LLM-Läufe parallel fortschreiten, statt nur ihre äußeren Cron-Wrapper zu starten. Die gemeinsame Nicht-Cron-nested-Spur wird durch diese Einstellung nicht erweitert.
Der Runtime-State-Sidecar wird aus cron.store abgeleitet: Ein .json-Store wie ~/clawd/cron/jobs.json verwendet ~/clawd/cron/jobs-state.json, während ein Store-Pfad ohne .json-Suffix -state.json anhängt.
Wenn Sie jobs.json manuell bearbeiten, lassen Sie jobs-state.json aus der Versionskontrolle heraus. OpenClaw verwendet diesen Sidecar für ausstehende Slots, aktive Markierungen, Last-Run-Metadaten und die Schedule-Identität, die dem Scheduler mitteilt, wann ein extern bearbeiteter Job ein frisches nextRunAtMs benötigt.
Cron deaktivieren: cron.enabled: false oder OPENCLAW_SKIP_CRON=1.
Retry behavior
Retry behavior
Einmaliger Retry: Vorübergehende Fehler (Rate Limit, Überlastung, Netzwerk, Serverfehler) werden bis zu 3 Mal mit exponentiellem Backoff erneut versucht. Dauerhafte Fehler deaktivieren sofort.Wiederkehrender Retry: exponentieller Backoff (30 s bis 60 min) zwischen Retries. Backoff wird nach dem nächsten erfolgreichen Lauf zurückgesetzt.
Wartung
Wartung
cron.sessionRetention (Standard 24h) bereinigt isolierte Run-Session-Einträge. cron.runLog.maxBytes / cron.runLog.keepLines bereinigen Run-Log-Dateien automatisch.Fehlerbehebung
Befehlskette
Cron wird nicht ausgelöst
Cron wird nicht ausgelöst
- Prüfen Sie
cron.enabledund die UmgebungsvariableOPENCLAW_SKIP_CRON. - Bestätigen Sie, dass der Gateway kontinuierlich läuft.
- Prüfen Sie bei
cron-Zeitplänen die Zeitzone (--tz) im Vergleich zur Host-Zeitzone. reason: not-duein der Ausführungsausgabe bedeutet, dass eine manuelle Ausführung mitopenclaw cron run <jobId> --duegeprüft wurde und der Job noch nicht fällig war.
Cron wurde ausgelöst, aber es erfolgt keine Zustellung
Cron wurde ausgelöst, aber es erfolgt keine Zustellung
- Der Zustellmodus
nonebedeutet, dass kein Runner-Fallback-Versand erwartet wird. Der Agent kann weiterhin direkt mit demmessage-Tool senden, wenn eine Chat-Route verfügbar ist. - Fehlendes/ungültiges Zustellziel (
channel/to) bedeutet, dass ausgehende Zustellung übersprungen wurde. - Bei Matrix können kopierte oder Legacy-Jobs mit kleingeschriebenen
delivery.to-Raum-IDs fehlschlagen, weil Matrix-Raum-IDs zwischen Groß- und Kleinschreibung unterscheiden. Bearbeiten Sie den Job auf den exakten Wert!room:serveroderroom:!room:serveraus Matrix. - Kanal-Authentifizierungsfehler (
unauthorized,Forbidden) bedeuten, dass die Zustellung durch Anmeldedaten blockiert wurde. - Wenn die isolierte Ausführung nur das stille Token (
NO_REPLY/no_reply) zurückgibt, unterdrückt OpenClaw die direkte ausgehende Zustellung und auch den Fallback-Pfad mit der eingereihten Zusammenfassung, sodass nichts zurück in den Chat gepostet wird. - Wenn der Agent dem Benutzer selbst eine Nachricht senden soll, prüfen Sie, ob der Job eine nutzbare Route hat (
channel: "last"mit einem vorherigen Chat oder einen expliziten Kanal/ein explizites Ziel).
Cron oder Heartbeat scheint /new-artigen Wechsel zu verhindern
Cron oder Heartbeat scheint /new-artigen Wechsel zu verhindern
- Die Aktualität für tägliche und Leerlauf-Zurücksetzungen basiert nicht auf
updatedAt; siehe Sitzungsverwaltung. - Cron-Wakeups, Heartbeat-Ausführungen, Exec-Benachrichtigungen und Gateway-Buchhaltung können die Sitzungszeile für Routing/Status aktualisieren, erweitern aber nicht
sessionStartedAtoderlastInteractionAt. - Bei Legacy-Zeilen, die erstellt wurden, bevor diese Felder existierten, kann OpenClaw
sessionStartedAtaus dem JSONL-Sitzungsheader des Transkripts wiederherstellen, wenn die Datei noch verfügbar ist. Legacy-Leerlaufzeilen ohnelastInteractionAtverwenden diese wiederhergestellte Startzeit als ihre Leerlauf-Baseline.
Fallstricke bei Zeitzonen
Fallstricke bei Zeitzonen
- Cron ohne
--tzverwendet die Zeitzone des Gateway-Hosts. at-Zeitpläne ohne Zeitzone werden als UTC behandelt.- Heartbeat
activeHoursverwendet die konfigurierte Zeitzonenauflösung.
Verwandte Themen
- Automatisierung — alle Automatisierungsmechanismen auf einen Blick
- Hintergrundaufgaben — Aufgaben-Ledger für Cron-Ausführungen
- Heartbeat — regelmäßige Turns der Hauptsitzung
- Zeitzone — Zeitzonenkonfiguration