CLI commands
Agent
openclaw agent
Führt einen Agent-Durchlauf über das Gateway aus (verwenden Sie --local für eingebettet).
Verwenden Sie --agent <id>, um einen konfigurierten Agent direkt anzusteuern.
Übergeben Sie mindestens einen Sitzungsauswähler:
--to <dest>--session-key <key>--session-id <id>--agent <id>
Verwandt:
- Agent-Sendetool: Agent senden
Optionen
-m, --message <text>: Nachrichtentext--message-file <path>: Nachrichtentext aus einer UTF-8-Datei lesen-t, --to <dest>: Empfänger, der zum Ableiten des Sitzungsschlüssels verwendet wird--session-key <key>: expliziter Sitzungsschlüssel für das Routing--session-id <id>: explizite Sitzungs-ID--agent <id>: Agent-ID; überschreibt Routing-Bindungen--model <id>: Modellüberschreibung für diesen Durchlauf (provider/modeloder Modell-ID)--thinking <level>: Denkstufe des Agent (off,minimal,low,medium,highplus vom Provider unterstützte benutzerdefinierte Stufen wiexhigh,adaptiveodermax)--verbose <on|off>: ausführliche Stufe für die Sitzung speichern--channel <channel>: Zustellkanal; auslassen, um den Hauptkanal der Sitzung zu verwenden--reply-to <target>: Überschreibung des Zustellziels--reply-channel <channel>: Überschreibung des Zustellkanals--reply-account <id>: Überschreibung des Zustellkontos--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>: Agent-Timeout überschreiben (Standardwert 600 oder Konfigurationswert)--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-filebehält mehrzeilige Dateiinhalte nach dem Entfernen einer optionalen UTF-8-BOM bei und lehnt Dateien ab, die kein gültiges UTF-8 sind. - Der Gateway-Modus fällt auf den eingebetteten Agent zurück, wenn die Gateway-Anfrage fehlschlägt. Verwenden Sie
--local, um die eingebettete Ausführung von Anfang an zu erzwingen. --locallädt dennoch zuerst die Plugin-Registry vor, sodass von Plugins bereitgestellte Provider, Tools und Kanäle während eingebetteter Durchläufe verfügbar bleiben.--localund eingebettete Fallback-Durchläufe werden als einmalige Durchläufe behandelt. Gebündelte MCP-loopback-Ressourcen und warme Claude-stdio-Sitzungen, die für diesen lokalen Prozess geöffnet wurden, werden nach der Antwort beendet, sodass skriptgesteuerte Aufrufe keine lokalen Kindprozesse am Leben halten.- Gateway-gestützte Durchläufe lassen Gateway-eigene MCP-loopback-Ressourcen unter dem laufenden Gateway-Prozess bestehen; ältere Clients senden möglicherweise weiterhin das historische Cleanup-Flag, aber das Gateway akzeptiert es aus Kompatibilitätsgründen als No-op.
--channel,--reply-channelund--reply-accountbeeinflussen die Antwortzustellung, nicht das Sitzungsrouting.--session-keywählt einen expliziten Sitzungsschlüssel aus. Agent-präfixierte Schlüssel müssenagent:<agent-id>:<session-key>verwenden, und--agentmuss mit der Agent-ID des Schlüssels übereinstimmen, wenn beide angegeben werden. Bloße Nicht-Sentinel-Schlüssel werden auf--agenteingeschränkt, wenn angegeben, andernfalls auf den konfigurierten Standard-Agent; zum Beispiel leitet--agent ops --session-key incident-42anagent:ops:incident-42weiter. Die Literaleglobalundunknownbleiben nur dann ohne Scope, wenn kein--agentangegeben wird; in diesem Fall verwenden eingebetteter Fallback und Store-Eigentümerschaft den konfigurierten Standard-Agent.--jsonreserviert stdout für die JSON-Antwort. Gateway-, Plugin- und eingebettete Fallback-Diagnosen werden an stderr geleitet, damit Skripte stdout direkt parsen können.- Eingebettetes Fallback-JSON enthält
meta.transport: "embedded"undmeta.fallbackFrom: "gateway", damit Skripte Fallback-Durchläufe von Gateway-Durchläufen unterscheiden können. - Wenn das Gateway einen Agent-Durchlauf akzeptiert, die CLI jedoch beim Warten auf die endgültige Antwort in ein Timeout läuft, verwendet der eingebettete Fallback eine neue explizite
gateway-fallback-*-Sitzungs-/Durchlauf-ID und meldetmeta.fallbackReason: "gateway_timeout"plus die Fallback-Sitzungsfelder. Dadurch wird vermieden, mit der Gateway-eigenen Transcript-Sperre zu konkurrieren oder die ursprüngliche geroutete Konversationssitzung stillschweigend zu ersetzen. - Bei Gateway-gestützten Durchläufen unterbrechen
SIGTERMundSIGINTdie wartende CLI-Anfrage. Wenn das Gateway den Durchlauf bereits akzeptiert hat, sendet die CLI vor dem Beenden außerdemchat.abortfür diese akzeptierte Durchlauf-ID. Lokale--local-Durchläufe und eingebettete Fallback-Durchläufe erhalten dasselbe Abbruchsignal, senden aber keinchat.abort. Wenn eine doppelte--run-iddas Gateway erreicht, während der ursprüngliche Agent-Durchlauf noch aktiv ist, meldet die doppelte Antwortstatus: "in_flight", und die Nicht-JSON-CLI gibt statt einer leeren Antwort eine stderr-Diagnose aus. Behalten Sie für externe Cron-/systemd-Wrapper eine äußere Hard-Kill-Absicherung wietimeout -k 60 600 openclaw agent ...bei, damit der Supervisor den Prozess weiterhin beenden kann, falls das Herunterfahren nicht sauber ablaufen kann. - Wenn dieser Befehl eine Regenerierung von
models.jsonauslöst, werden von SecretRef verwaltete Provider-Anmeldedaten als Nicht-Geheimnis-Markierungen gespeichert (zum Beispiel Env-Var-Namen,secretref-env:ENV_VAR_NAMEodersecretref-managed), nicht als aufgelöster geheimer Klartext. - Markerschreibvorgänge sind quellenautoritativ: OpenClaw speichert Markierungen aus dem aktiven Quell-Konfigurationssnapshot, nicht aus aufgelösten Laufzeit-Geheimniswerten.
JSON-Zustellstatus
Wenn --json --deliver verwendet wird, kann die CLI-JSON-Antwort ein deliveryStatus auf oberster Ebene enthalten, damit Skripte zwischen zugestellten, unterdrückten, teilweisen und fehlgeschlagenen Sendungen unterscheiden können:
{ "payloads": [{ "text": "Report ready", "mediaUrl": null }], "meta": { "durationMs": 1200 }, "deliveryStatus": { "requested": true, "attempted": true, "status": "sent", "succeeded": true, "resultCount": 1 }}deliveryStatus.status ist eines von sent, suppressed, partial_failed oder failed. suppressed bedeutet, dass die Zustellung absichtlich nicht gesendet wurde, zum Beispiel weil ein Hook zum Senden von Nachrichten sie abgebrochen hat oder kein sichtbares Ergebnis vorhanden war; es ist dennoch ein terminales Ergebnis ohne erneuten Versuch. partial_failed bedeutet, dass mindestens eine Payload gesendet wurde, bevor eine spätere Payload fehlschlug. failed bedeutet, dass keine dauerhafte Sendung abgeschlossen wurde oder die Zustellungs-Vorprüfung fehlgeschlagen ist.
Gateway-gestützte CLI-Antworten bewahren außerdem die rohe Gateway-Ergebnisform, wobei dasselbe Objekt unter result.deliveryStatus verfügbar ist.
Häufige Felder:
requested: immertrue, wenn das Objekt vorhanden ist.attempted:true, nachdem der dauerhafte Sendepfad ausgeführt wurde;falsebei Vorprüfungsfehlern oder keinen sichtbaren Payloads.succeeded:true,falseoder"partial";"partial"gehört zustatus: "partial_failed".reason: ein kleingeschriebener Snake-Case-Grund aus dauerhafter Zustellung oder Vorprüfungsvalidierung. Bekannte Gründe sindcancelled_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 Stufe melden. Behandeln Sie unbekannte Werte als opak, da die Menge erweitert werden kann.resultCount: Anzahl der Kanal-Sendeergebnisse, wenn verfügbar.sentBeforeError:true, wenn bei einem Teilfehler vor dem Fehler mindestens eine Payload gesendet wurde.error: booleschestruefür fehlgeschlagene oder teilweise fehlgeschlagene Sendungen.errorMessage: nur enthalten, wenn eine zugrunde liegende Fehlermeldung der Zustellung erfasst wird. Vorprüfungsfehler enthaltenerrorundreason, aber keinerrorMessage.payloadOutcomes: optionale Ergebnisse pro Payload mitindex,status,reason,resultCount,error,stage,sentBeforeErroroder Hook-Metadaten, wenn verfügbar.