CLI commands
Agent
openclaw agent
Führt einen Agent-Durchlauf über das Gateway aus. Fällt auf den eingebetteten Agent zurück, wenn die Gateway-Anfrage fehlschlägt; übergeben Sie --local, um von Anfang an die eingebettete Ausführung zu erzwingen.
Übergeben Sie mindestens einen Sitzungsauswähler: --to, --session-key, --session-id oder --agent.
Verwandt: Tool zum Senden an einen Agent
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>: Denkniveau des Agents (off,minimal,low,medium,highsowie vom Provider unterstützte benutzerdefinierte Stufen wiexhigh,adaptiveodermax)--verbose <on|off>: Ausführlichkeitsstufe für die Sitzung dauerhaft speichern--channel <channel>: Zustellungskanal; weglassen, um den Kanal der Hauptsitzung 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>: Zeitlimit des Agents überschreiben (Standard: 600 oderagents.defaults.timeoutSeconds);0deaktiviert das Zeitlimit--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 eine der Optionen
--messageoder--message-file.--message-fileentfernt eine führende UTF-8-BOM und bewahrt mehrzeilige Inhalte; Dateien ohne gültige UTF-8-Codierung werden abgelehnt. - Schrägstrichbefehle (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
--localund eingebettetem Rückfall sind einmalig: Für den Durchlauf geöffnete gebündelte MCP-local-loopback-Ressourcen und vorbereitete Claude-stdio-Sitzungen werden nach der Antwort beendet, sodass skriptgesteuerte Aufrufe keine lokalen Unterprozesse weiterlaufen lassen. Gateway-gestützte Durchläufe belassen die dem Gateway gehörenden MCP-local-loopback-Ressourcen stattdessen unter dem laufenden Gateway-Prozess. - 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 Provider-eigene 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 sind. Unpräfixierte Schlüssel, die keine Sentinel-Schlüssel sind, werden bei Angabe von--agentdiesem Agent zugeordnet, andernfalls dem konfigurierten Standard-Agent; beispielsweise leitet--agent ops --session-key incident-42anagent:ops:incident-42weiter. Die literalen Schlüsselglobalundunknownbleiben nur dann ohne Gültigkeitsbereich, wenn kein--agentangegeben ist.--jsonreserviert stdout für die JSON-Antwort; Diagnosemeldungen des Gateways, von Plugins und des eingebetteten Rückfalls werden an stderr gesendet, sodass Skripte stdout direkt parsen können.- Das JSON des eingebetteten Rückfalls enthält
meta.transport: "embedded"undmeta.fallbackFrom: "gateway", damit Skripte einen Rückfalldurchlauf erkennen können. - Wenn das Gateway einen Durchlauf annimmt, die CLI jedoch beim Warten auf die endgültige Antwort das Zeitlimit überschreitet, verwendet der eingebettete Rückfall eine neue Sitzungs-/Durchlauf-ID im Format
gateway-fallback-*und meldetmeta.fallbackReason: "gateway_timeout"sowie die Sitzungsfelder des Rückfalls, anstatt mit dem dem Gateway gehörenden Transkript zu konkurrieren oder die ursprüngliche Sitzung stillschweigend zu ersetzen. SIGTERM/SIGINTunterbrechen eine wartende Gateway-gestützte Anfrage; wenn das Gateway den Durchlauf bereits angenommen hat, sendet die CLI vor dem Beenden außerdemchat.abortfür diese Durchlauf-ID. Durchläufe mit--localund eingebettetem Rückfall erhalten dasselbe Signal, senden jedoch keinchat.abort. Wenn für den internen Schlüssel zur Durchlauf-Deduplizierung 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. Verwenden Sie für externe Cron-/systemd-Wrapper eine Absicherung zum erzwungenen Beenden wietimeout -k 60 600 openclaw agent ..., damit der Supervisor den Prozess beenden kann, falls beim Herunterfahren kein ordnungsgemäßer Abschluss möglich ist.- Wenn dieser Befehl die Neuerzeugung von
models.jsonauslöst, werden von 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. Das Schreiben der Markierungen erfolgt aus dem aktiven Snapshot der Quellkonfiguration, nicht aus aufgelösten geheimen Laufzeitwerten.
JSON-Zustellungsstatus
Mit --json --deliver enthält die JSON-Antwort der CLI das Feld deliveryStatus auf oberster Ebene, damit Skripte zwischen zugestellten, unterdrückten, teilweise und vollständig 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 }}Gateway-gestützte CLI-Antworten bewahren außerdem die unverarbeitete Ergebnisstruktur des Gateways unter result.deliveryStatus.
deliveryStatus.status hat einen 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, kein erneuter Versuch. |
partial_failed |
Mindestens eine Nutzlast wurde gesendet, bevor eine spätere Nutzlast fehlschlug. |
failed |
Keine dauerhafte Sendung wurde abgeschlossen oder die Zustellungs-Vorprüfung ist fehlgeschlagen. |
Allgemeine Felder:
requested: immertrue, wenn das Objekt vorhanden ist.attempted:true, sobald der dauerhafte Sendepfad ausgeführt wurde;falsebei Fehlern der Vorprüfung oder wenn keine sichtbaren Nutzlasten vorhanden sind.succeeded:true,falseoder"partial";"partial"tritt zusammen mitstatus: "partial_failed"auf.reason: Grund in kleingeschriebener Snake-Case-Schreibweise aus der dauerhaften Zustellung oder der 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 der Fehler auftrat.error:truebei fehlgeschlagenen oder teilweise fehlgeschlagenen Sendungen.errorMessage: nur vorhanden, wenn eine zugrunde liegende Zustellungsfehlermeldung erfasst wurde. Fehler der Vorprüfung enthaltenerror/reason, aber keineerrorMessage.payloadOutcomes: optionale Ergebnisse pro Nutzlast mitindex,status,reason,resultCount,error,stage,sentBeforeErroroder Hook-Metadaten, sofern verfügbar.