CLI commands
Агент
openclaw agent
Запустить ход агента через Gateway (используйте --local для встроенного режима).
Используйте --agent <id>, чтобы напрямую выбрать настроенного агента.
Передайте хотя бы один селектор сессии:
--to <dest>--session-key <key>--session-id <id>--agent <id>
Связанные материалы:
- Инструмент отправки агенту: Отправка агенту
Параметры
-m, --message <text>: тело сообщения--message-file <path>: прочитать тело сообщения из UTF-8-файла-t, --to <dest>: получатель, используемый для вывода ключа сессии--session-key <key>: явный ключ сессии для маршрутизации--session-id <id>: явный идентификатор сессии--agent <id>: идентификатор агента; переопределяет привязки маршрутизации--model <id>: переопределение модели для этого запуска (provider/modelили идентификатор модели)--thinking <level>: уровень мышления агента (off,minimal,low,medium,high, а также пользовательские уровни, поддерживаемые провайдером, напримерxhigh,adaptiveилиmax)--verbose <on|off>: сохранить уровень подробности для сессии--channel <channel>: канал доставки; опустите, чтобы использовать основной канал сессии--reply-to <target>: переопределение цели доставки--reply-channel <channel>: переопределение канала доставки--reply-account <id>: переопределение аккаунта доставки--local: запустить встроенного агента напрямую (после предварительной загрузки реестра Plugin)--deliver: отправить ответ обратно в выбранный канал/цель--timeout <seconds>: переопределить тайм-аут агента (по умолчанию 600 или значение из конфигурации)--json: вывести JSON
Примеры
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" --localПримечания
- Передайте ровно один из параметров
--messageили--message-file.--message-fileсохраняет многострочное содержимое файла после удаления необязательного UTF-8 BOM и отклоняет файлы, не являющиеся допустимым UTF-8. - Режим Gateway откатывается к встроенному агенту, когда запрос к Gateway завершается ошибкой. Используйте
--local, чтобы сразу принудительно включить встроенное выполнение. --localвсё равно сначала предварительно загружает реестр Plugin, поэтому провайдеры, инструменты и каналы, предоставленные Plugin, остаются доступными во время встроенных запусков.- Запуски
--localи запуски через встроенный откат рассматриваются как одноразовые. Встроенные MCP-ресурсы local loopback и тёплые Claude stdio-сессии, открытые для этого локального процесса, освобождаются после ответа, поэтому скриптовые вызовы не оставляют локальные дочерние процессы активными. - Запуски на базе Gateway оставляют MCP-ресурсы loopback, принадлежащие Gateway, в запущенном процессе Gateway; более старые клиенты всё ещё могут отправлять исторический флаг очистки, но Gateway принимает его как совместимую no-op-операцию.
--channel,--reply-channelи--reply-accountвлияют на доставку ответа, а не на маршрутизацию сессии.--session-keyвыбирает явный ключ сессии. Ключи с префиксом агента должны использовать форматagent:<agent-id>:<session-key>, а--agentдолжен совпадать с идентификатором агента в ключе, когда указаны оба. Простые ключи без sentinel ограничиваются областью--agent, если он указан, либо настроенным агентом по умолчанию в противном случае; например,--agent ops --session-key incident-42маршрутизируется вagent:ops:incident-42. Литеральныеglobalиunknownостаются без области только если--agentне указан; в этом случае встроенный откат и владение хранилищем используют настроенного агента по умолчанию.--jsonоставляет stdout зарезервированным для JSON-ответа. Диагностика Gateway, Plugin и встроенного отката направляется в stderr, чтобы скрипты могли напрямую разбирать stdout.- JSON встроенного отката включает
meta.transport: "embedded"иmeta.fallbackFrom: "gateway", чтобы скрипты могли отличать запуски с откатом от запусков Gateway. - Если Gateway принимает запуск агента, но у CLI истекает время ожидания финального ответа, встроенный откат использует новый явный идентификатор сессии/запуска
gateway-fallback-*и сообщаетmeta.fallbackReason: "gateway_timeout"плюс поля сессии отката. Это предотвращает гонку с блокировкой транскрипта, принадлежащей Gateway, или незаметную замену исходной маршрутизированной сессии разговора. - Для запусков на базе Gateway
SIGTERMиSIGINTпрерывают ожидающий CLI-запрос. Если Gateway уже принял запуск, CLI также отправляетchat.abortдля этого принятого идентификатора запуска перед выходом. Локальные запуски--localи запуски через встроенный откат получают тот же сигнал отмены, но не отправляютchat.abort. Если дублирующий--run-idдостигает Gateway, пока исходный запуск агента ещё активен, дублирующий ответ сообщаетstatus: "in_flight", а не-JSON CLI печатает диагностическое сообщение в stderr вместо пустого ответа. Для внешних обёрток cron/systemd сохраняйте внешний жёсткий предохранитель завершения, напримерtimeout -k 60 600 openclaw agent ..., чтобы супервизор всё ещё мог убрать процесс, если завершение не удаётся корректно осушить. - Когда эта команда запускает регенерацию
models.json, учётные данные провайдера под управлением SecretRef сохраняются как несекретные маркеры (например, имена переменных окружения,secretref-env:ENV_VAR_NAMEилиsecretref-managed), а не как раскрытый секретный открытый текст. - Записи маркеров являются авторитетными относительно источника: OpenClaw сохраняет маркеры из активного снимка исходной конфигурации, а не из разрешённых значений секретов времени выполнения.
Статус доставки JSON
Когда используется --json --deliver, JSON-ответ CLI может включать верхнеуровневый deliveryStatus, чтобы скрипты могли отличать доставленные, подавленные, частичные и неудачные отправки:
{ "payloads": [{ "text": "Report ready", "mediaUrl": null }], "meta": { "durationMs": 1200 }, "deliveryStatus": { "requested": true, "attempted": true, "status": "sent", "succeeded": true, "resultCount": 1 }}deliveryStatus.status — одно из sent, suppressed, partial_failed или failed. suppressed означает, что доставка намеренно не была отправлена, например хук отправки сообщений отменил её или не было видимого результата; это всё равно терминальный результат без повторной попытки. partial_failed означает, что как минимум один payload был отправлен до того, как последующий payload завершился ошибкой. failed означает, что ни одна надёжная отправка не завершилась или предварительная проверка доставки завершилась ошибкой.
Ответы CLI на базе Gateway также сохраняют исходную форму результата Gateway, где тот же объект доступен в result.deliveryStatus.
Общие поля:
requested: всегдаtrue, когда объект присутствует.attempted:trueпосле выполнения пути надёжной отправки;falseдля ошибок предварительной проверки или отсутствия видимых payload.succeeded:true,falseили"partial";"partial"сочетается сstatus: "partial_failed".reason: причина в нижнем snake-case из надёжной доставки или предварительной проверки. Известные причины включаютcancelled_by_message_sending_hook,no_visible_payload,no_visible_result,channel_resolved_to_internal,unknown_channel,invalid_delivery_targetиno_delivery_target; неудачные надёжные отправки также могут сообщать этап, на котором произошла ошибка. Рассматривайте неизвестные значения как непрозрачные, поскольку набор может расширяться.resultCount: количество результатов отправки в канал, когда доступно.sentBeforeError:true, когда частичная ошибка отправила как минимум один payload до ошибки.error: логическоеtrueдля неудачных или частично неудачных отправок.errorMessage: включается только когда захвачено сообщение базовой ошибки доставки. Ошибки предварительной проверки несутerrorиreason, но безerrorMessage.payloadOutcomes: необязательные результаты по каждому payload сindex,status,reason,resultCount,error,stage,sentBeforeErrorили метаданными hook, когда доступны.