Messages and delivery
Очередь управления
Когда обычный запрос поступает во время уже транслируемого выполнения сеанса, OpenClaw
по умолчанию пытается отправить этот запрос в активную среду выполнения, если режим очереди
равен steer. Для такого поведения по умолчанию не требуется ни запись конфигурации,
ни директива очереди. OpenClaw и нативный серверный harness приложения Codex реализуют
детали доставки по-разному.
Граница среды выполнения
Управление не прерывает уже выполняющийся вызов инструмента. OpenClaw проверяет поставленные в очередь управляющие сообщения на границах модели:
- Ассистент запрашивает вызовы инструментов.
- OpenClaw выполняет пакет вызовов инструментов из текущего сообщения ассистента.
- OpenClaw отправляет событие завершения хода.
- OpenClaw выгружает поставленные в очередь управляющие сообщения.
- OpenClaw добавляет эти сообщения как пользовательские перед следующим вызовом LLM.
Так результаты инструментов остаются связаны с сообщением ассистента, которое их запросило, а следующий вызов модели видит самый свежий пользовательский ввод.
Нативный серверный harness приложения Codex предоставляет turn/steer вместо
внутренней очереди управления среды выполнения OpenClaw. OpenClaw группирует поставленные
в очередь запросы в течение настроенного окна тишины, затем отправляет один запрос
turn/steer со всем собранным пользовательским вводом в порядке поступления.
Ходы ревью Codex и ручной Compaction отклоняют управление в рамках того же хода. Когда
среда выполнения не может принять управление в режиме steer, OpenClaw ждет завершения
активного выполнения перед запуском запроса.
На этой странице описано управление в режиме очереди для обычных входящих сообщений, когда режим
равен steer. Если режим равен followup или collect, обычные сообщения не попадают
в этот путь управления; они ждут, пока активное выполнение завершится. Для явной команды
/steer <message> см. Управление.
Режимы
| Режим | Поведение при активном выполнении | Последующее поведение |
|---|---|---|
steer |
Направляет запрос в активную среду выполнения, когда это возможно. | Ждет завершения активного выполнения, если управление недоступно. |
followup |
Не выполняет управление. | Запускает поставленные в очередь сообщения позже, после завершения активного выполнения. |
collect |
Не выполняет управление. | Объединяет совместимые поставленные в очередь сообщения в один последующий ход после окна debounce. |
interrupt |
Прерывает активное выполнение вместо управления им. | Запускает новейшее сообщение после прерывания. |
Пример всплеска
Если четыре пользователя отправляют сообщения, пока агент выполняет вызов инструмента:
- При поведении по умолчанию активная среда выполнения получает все четыре сообщения
в порядке поступления перед следующим решением модели. OpenClaw выгружает их на следующей
границе модели; Codex получает их как один сгруппированный
turn/steer. - При
/queue collectOpenClaw не выполняет управление. Он ждет завершения активного выполнения, затем создает последующий ход с совместимыми поставленными в очередь сообщениями после окна debounce. - При
/queue interruptOpenClaw прерывает активное выполнение и запускает новейшее сообщение вместо управления.
Область действия
Управление всегда нацелено на текущее активное выполнение сеанса. Оно не создает новый сеанс, не меняет политику инструментов активного выполнения и не разделяет сообщения по отправителю. В многопользовательских каналах входящие запросы уже включают контекст отправителя и маршрута, поэтому следующий вызов модели может видеть, кто отправил каждое сообщение.
Используйте followup или collect, когда хотите, чтобы сообщения по умолчанию ставились в очередь
вместо управления активным выполнением. Используйте interrupt, когда новейший запрос должен
заменить активное выполнение.
Debounce
messages.queue.debounceMs применяется к доставке поставленных в очередь followup и collect.
В режиме steer с нативным harness Codex он также задает окно тишины
перед отправкой сгруппированного turn/steer. Для OpenClaw само активное управление не использует
таймер debounce, потому что OpenClaw естественным образом группирует сообщения до следующей
границы модели.