> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Агент

# `openclaw agent`

Запустить ход агента через Gateway (используйте `--local` для встроенного режима).
Используйте `--agent <id>`, чтобы напрямую выбрать настроенного агента.

Передайте хотя бы один селектор сессии:

* `--to <dest>`
* `--session-key <key>`
* `--session-id <id>`
* `--agent <id>`

Связанные материалы:

* Инструмент отправки агенту: [Отправка агенту](/ru/tools/agent-send)

## Параметры

* `-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

## Примеры

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw agent --to +15555550123 --message "status update" --deliver
openclaw agent --agent ops --message "Summarize logs"
openclaw agent --agent ops --message-file ./task.md
openclaw 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 medium
openclaw agent --to +15555550123 --message "Trace logs" --verbose on --json
openclaw 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`, чтобы скрипты могли отличать доставленные, подавленные, частичные и неудачные отправки:

```json theme={"theme":{"light":"min-light","dark":"min-dark"}}
{
  "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, когда доступны.

## Связанные материалы

* [Справочник CLI](/ru/cli)
* [Среда выполнения агента](/ru/concepts/agent)
