CLI commands
Agent
openclaw agent
Führen Sie einen Agent-Durchlauf über den Gateway aus. Das explizite Flag --local ist der einzige eingebettete Ausführungspfad.
Übergeben Sie mindestens einen Sitzungsselektor: --to, --session-key, --session-id oder --agent.
Verwandt: Agent-Sendewerkzeug
Optionen
-m, --message <text>: Nachrichtentext--message-file <path>: Nachrichtentext aus einer UTF-8-Datei lesen-t, --to <dest>: Empfänger, aus dem der Sitzungsschlüssel abgeleitet wird--session-key <key>: expliziter Sitzungsschlüssel für das Routing--session-id <id>: explizite Sitzungs-ID--agent <id>: Agent-ID; überschreibt Routing-Zuordnungen--model <id>: Modellüberschreibung für diesen Durchlauf (provider/modeloder Modell-ID)--thinking <level>: Denkstufe des Agents (off,minimal,low,medium,highsowie vom Provider unterstützte benutzerdefinierte Stufen wiexhigh,adaptiveodermax)--verbose <on|off>: Ausführlichkeitsstufe für die Sitzung speichern--channel <channel>: Zustellungskanal; weglassen, um den Hauptkanal der Sitzung zu verwenden--reply-to <target>: Überschreibung des Zustellungsziels--reply-channel <channel>: Überschreibung des Zustellungskanals--reply-account <id>: Überschreibung des Zustellungskontos--local: eingebetteten Agent direkt ausführen (nach dem Vorladen der Plugin-Registry)--deliver: Antwort an den ausgewählten Kanal bzw. das ausgewählte Ziel zurücksenden--timeout <seconds>: Frist für den Agent-Durchlauf dieses Befehls überschreiben (Standard: 600 oderagents.defaults.timeoutSeconds);0deaktiviert die Gesamtfrist. Der Rückfallwert von 600 Sekunden gehört zu diesem CLI-Befehl, nicht zu gewöhnlichen Gateway-Durchläufen, deren Standardwert 48 Stunden beträgt.--json: JSON ausgeben
Beispiele
openclaw agent --to +15555550123 --message "status update" --deliveropenclaw agent --agent ops --message "Summarize logs"openclaw agent --agent ops --message-file ./task.mdopenclaw agent --agent ops --model openai/gpt-5.4 --message "Summarize logs"openclaw agent --session-key agent:ops:incident-42 --message "Summarize status"openclaw agent --agent ops --session-key incident-42 --message "Summarize status"openclaw agent --session-id 1234 --message "Summarize inbox" --thinking mediumopenclaw agent --to +15555550123 --message "Trace logs" --verbose on --jsonopenclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"openclaw agent --agent ops --message "Run locally" --localHinweise
- Übergeben Sie genau eines von
--messageoder--message-file.--message-fileentfernt eine führende UTF-8-BOM und erhält mehrzeilige Inhalte; Dateien ohne gültiges UTF-8 werden abgelehnt. Dateien mit mehr als 4 MiB werden vor der Weiterleitung abgelehnt. - Slash-Befehle (zum Beispiel
/compact) können nicht über--messageausgeführt werden. Die CLI lehnt sie ab und verweist stattdessen auf den entsprechenden eigenständigen Befehl (openclaw sessions compact <key>für Compaction). - Durchläufe mit
--localsind einmalig: Gebündelte MCP-Loopback-Ressourcen und für den Durchlauf geöffnete vorgewärmte Claude-stdio-Sitzungen werden nach der Antwort beendet, sodass skriptgesteuerte Aufrufe keine lokalen untergeordneten Prozesse weiterlaufen lassen. Gateway-gestützte Durchläufe verwalten Gateway-eigene MCP-Loopback-Ressourcen stattdessen im laufenden Gateway-Prozess. - Die eigenständige eingebettete Ausführung mit
--localverweigert die Wiederverwendung einer vorhandenen Hauptsitzung, solange die Wiederherstellung nach einem Neustart aussteht. Führen Sie den Durchlauf über einen funktionsfähigen Gateway aus oder setzen Sie ihn dort mit/newoder/resetzurück; ein unabhängiger eingebetteter Prozess kann die Zuständigkeit für diese Wiederherstellung nicht sicher mit dem Gateway-Scanner koordinieren. - Wenn
--agent,--channelund--togemeinsam verwendet werden, folgt das Sitzungsrouting dem kanonischen Empfänger des Kanals undsession.dmScope. Kanäle mit einer stabilen, ausschließlich ausgehenden Empfängeridentität verwenden eine vom Provider verwaltete Sitzung, die von der Hauptsitzung des Agents isoliert ist.--reply-channelund--reply-accountwirken sich nur auf die Zustellung aus. --session-keywählt einen expliziten Sitzungsschlüssel aus. Mit einem Agent-Präfix versehene Schlüssel müssenagent:<agent-id>:<session-key>verwenden, und--agentmuss mit der Agent-ID des Schlüssels übereinstimmen, wenn beide angegeben werden. Unpräfixierte Schlüssel, die keine Sentinel-Schlüssel sind, werden dem angegebenen--agentoder andernfalls dem konfigurierten Standard-Agent zugeordnet; beispielsweise wird--agent ops --session-key incident-42anagent:ops:incident-42weitergeleitet. Die literalen Schlüsselglobalundunknownbleiben nur dann ohne Zuordnung, wenn kein--agentangegeben ist.--jsonreserviert stdout für die JSON-Antwort; Diagnosemeldungen des Gateways, der Plugins und von--localwerden an stderr ausgegeben, damit Skripte stdout direkt parsen können.- Nachdem vorübergehende Wiederholungsversuche beim Handshake ausgeschöpft sind, führt ein Gateway-Timeout oder eine geschlossene Verbindung zum Fehlschlagen des Befehls; die CLI führt den Durchlauf niemals stillschweigend erneut eingebettet aus. Ein Transportverlust ist mehrdeutig — der Gateway hat den Durchlauf möglicherweise angenommen und schließt ihn gegebenenfalls weiterhin ab —, daher weist der Hinweis auf stderr darauf hin, vor einem erneuten Versuch oder einer erneuten Ausführung mit
--localzunächstopenclaw gateway statusund das Sitzungsprotokoll zu prüfen, um eine doppelte Ausführung des Durchlaufs zu vermeiden. SIGTERM/SIGINTunterbrechen eine wartende Gateway-gestützte Anfrage; wenn der Gateway den Durchlauf bereits angenommen hat, sendet die CLI vor dem Beenden außerdemchat.abortfür die ID dieses Durchlaufs. Durchläufe mit--localempfangen dasselbe Signal, senden jedoch keinchat.abort. Ein untergeordneter Launcher-Prozess, der aufgrund des ersten weitergeleitetenSIGINTbzw.SIGTERMbeendet wird, endet mit Status 130 bzw. 143. Wenn für den internen Schlüssel zur Deduplizierung von Durchläufen bereits ein aktiver Durchlauf für diese Sitzung vorhanden ist, meldet die Antwortstatus: "in_flight", und die Nicht-JSON-CLI gibt statt einer leeren Antwort eine Diagnosemeldung auf stderr aus. Behalten Sie für externe Cron-/systemd-Wrapper eine Absicherung zur erzwungenen Beendigung wietimeout -k 60 600 openclaw agent ...bei, damit der Supervisor den Prozess bereinigen kann, falls das Herunterfahren nicht abgeschlossen werden kann.- Wenn dieser Befehl die Neugenerierung von
models.jsonauslöst, werden durch SecretRef verwaltete Provider-Anmeldedaten als nicht geheime Markierungen gespeichert (zum Beispiel Namen von Umgebungsvariablen,secretref-env:ENV_VAR_NAMEodersecretref-managed), niemals als aufgelöster geheimer Klartext. Markierungen werden aus dem aktiven Snapshot der Quellkonfiguration geschrieben, nicht aus aufgelösten geheimen Laufzeitwerten.
JSON-Zustellungsstatus
Mit --json --deliver enthält die JSON-Antwort der CLI das oberste Feld deliveryStatus, damit Skripte zwischen zugestellten, unterdrückten, teilweise zugestellten und fehlgeschlagenen Sendungen unterscheiden können:
{ "payloads": [{ "text": "Bericht ist fertig", "mediaUrl": null }], "meta": { "durationMs": 1200 }, "deliveryStatus": { "requested": true, "attempted": true, "status": "sent", "succeeded": true, "resultCount": 1 }}Gateway-gestützte CLI-Antworten erhalten außerdem die unverarbeitete Ergebnisstruktur des Gateways unter result.deliveryStatus.
deliveryStatus.status ist einer der folgenden Werte:
| Status | Bedeutung |
|---|---|
sent |
Zustellung abgeschlossen. |
suppressed |
Die Zustellung wurde absichtlich nicht gesendet (zum Beispiel weil ein Hook zum Senden von Nachrichten sie abgebrochen hat oder kein sichtbares Ergebnis vorlag). Endgültig, keine Wiederholung. |
partial_failed |
Mindestens eine Nutzlast wurde gesendet, bevor eine spätere Nutzlast fehlschlug. |
failed |
Keine dauerhafte Sendung wurde abgeschlossen oder die Zustellungsvorprüfung ist fehlgeschlagen. |
Allgemeine Felder:
requested: immertrue, wenn das Objekt vorhanden ist.attempted:true, sobald der Pfad für die dauerhafte Sendung ausgeführt wurde;falsebei Fehlern der Vorprüfung oder wenn keine sichtbaren Nutzlasten vorhanden sind.succeeded:true,falseoder"partial";"partial"wird mitstatus: "partial_failed"kombiniert.reason: Grund in kleingeschriebener Snake-Case-Schreibweise aus der dauerhaften Zustellung oder Vorabvalidierung. Bekannte Werte sind unter anderemcancelled_by_message_sending_hook,no_visible_payload,no_visible_result,channel_resolved_to_internal,unknown_channel,invalid_delivery_targetundno_delivery_target; fehlgeschlagene dauerhafte Sendungen können außerdem die fehlgeschlagene Phase melden. Behandeln Sie unbekannte Werte als undurchsichtig, da die Menge erweitert werden kann.resultCount: Anzahl der Ergebnisse von Kanalsendungen, sofern verfügbar.sentBeforeError:true, wenn bei einem teilweisen Fehlschlag mindestens eine Nutzlast gesendet wurde, bevor ein Fehler auftrat.error:truefür fehlgeschlagene oder teilweise fehlgeschlagene Sendungen.errorMessage: nur vorhanden, wenn die Meldung eines zugrunde liegenden Zustellungsfehlers erfasst wurde. Fehler der Vorprüfung enthaltenerror/reason, aber keinerrorMessage.payloadOutcomes: optionale Ergebnisse pro Nutzlast mitindex,status,reason,resultCount,error,stage,sentBeforeErroroder Hook-Metadaten, sofern verfügbar.
Verwandte Themen
Was this useful?