Messages and delivery
스티어링 대기열
세션 실행이 이미 스트리밍 중일 때 일반 프롬프트가 도착하고 대기열 모드가 steer인 경우(기본값이며 설정 불필요), OpenClaw는 해당 프롬프트를 활성 런타임으로 보내려고 시도합니다. OpenClaw와 네이티브 Codex 앱 서버 하네스는 전송 세부 사항을 서로 다르게 구현합니다.
이 페이지에서는 steer 모드에서 일반 수신 메시지에 적용되는 대기열 모드 조정을 다룹니다. followup 또는 collect 모드에서는 일반 메시지가 이 경로를 건너뛰고 활성 실행이 끝날 때까지 기다립니다. 명시적인 /steer <message> 명령은 조정을 참조하세요.
런타임 경계
조정은 이미 실행 중인 도구 호출을 중단하지 않습니다. OpenClaw는 모델 경계에서 대기 중인 조정 메시지를 확인합니다.
- 어시스턴트가 도구 호출을 요청합니다.
- OpenClaw가 현재 어시스턴트 메시지의 도구 호출 배치를 실행합니다.
- OpenClaw가 턴 종료 이벤트를 발생시킵니다.
- OpenClaw가 대기 중인 조정 메시지를 모두 꺼냅니다.
- OpenClaw가 다음 LLM 호출 전에 해당 메시지를 사용자 메시지로 추가합니다.
이렇게 하면 도구 결과가 이를 요청한 어시스턴트 메시지와 짝을 유지하며, 다음 모델 호출에서는 최신 사용자 입력을 확인할 수 있습니다.
네이티브 Codex 앱 서버 하네스는 OpenClaw 런타임의 내부 조정 대기열 대신 turn/steer를 제공합니다. OpenClaw는 설정된 유휴 시간 동안 대기 중인 프롬프트를 배치로 모은 다음, 수집된 모든 사용자 입력을 도착 순서대로 포함하는 단일 turn/steer 요청을 보냅니다.
Codex 검토 및 수동 Compaction 턴은 동일 턴 조정을 거부합니다. 런타임이 steer 모드에서 조정을 수락할 수 없으면 OpenClaw는 활성 실행이 끝날 때까지 기다린 후 프롬프트를 시작합니다.
모드
| 모드 | 활성 실행 동작 | 이후 동작 |
|---|---|---|
steer |
가능한 경우 프롬프트를 활성 런타임으로 조정합니다. | 조정을 사용할 수 없으면 활성 실행이 끝날 때까지 기다립니다. |
followup |
조정하지 않습니다. | 활성 실행이 끝난 후 대기 중인 메시지를 나중에 실행합니다. |
collect |
조정하지 않습니다. | 디바운스 시간이 지난 후 호환되는 대기 메시지를 나중의 단일 턴으로 병합합니다. |
interrupt |
활성 실행을 조정하는 대신 중단합니다. | 중단 후 가장 최신 메시지를 시작합니다. |
연속 입력 예시
에이전트가 도구 호출을 실행하는 동안 사용자 네 명이 메시지를 보내는 경우:
- 기본 동작에서는 활성 런타임이 다음 모델 결정을 내리기 전에 네 메시지를 모두 도착 순서대로 받습니다. OpenClaw는 다음 모델 경계에서 메시지를 모두 꺼내며, Codex는 이를 하나로 묶인
turn/steer로 받습니다. /queue collect를 사용하면 OpenClaw는 조정하지 않습니다. 활성 실행이 끝날 때까지 기다린 다음, 디바운스 시간이 지난 후 호환되는 대기 메시지로 후속 턴을 만듭니다./queue interrupt를 사용하면 OpenClaw는 활성 실행을 중단하고 조정하는 대신 가장 최신 메시지를 시작합니다.
범위
조정은 항상 현재 활성 세션 실행을 대상으로 합니다. 새 세션을 만들거나, 활성 실행의 도구 정책을 변경하거나, 발신자별로 메시지를 분할하지 않습니다. 다중 사용자 채널에서는 수신 프롬프트에 이미 발신자 및 경로 컨텍스트가 포함되므로 다음 모델 호출에서 각 메시지를 누가 보냈는지 확인할 수 있습니다.
활성 실행을 조정하는 대신 기본적으로 메시지를 대기열에 넣으려면 followup 또는 collect를 사용하세요. 가장 최신 프롬프트가 활성 실행을 대체해야 한다면 interrupt를 사용하세요.
디바운스
messages.queue.debounceMs는 대기 중인 followup 및 collect 전송에 적용됩니다. 네이티브 Codex 하네스의 steer 모드에서는 배치된 turn/steer를 보내기 전의 유휴 시간도 설정합니다. OpenClaw에서는 다음 모델 경계까지 메시지를 자연스럽게 배치로 모으므로 활성 조정 자체에는 디바운스 타이머가 사용되지 않습니다.