Messages and delivery

스티어링 대기열

세션 실행이 이미 스트리밍 중일 때 일반 프롬프트가 도착하고 대기열 모드가 steer인 경우(기본값이며 설정 불필요), OpenClaw는 해당 프롬프트를 활성 런타임으로 보내려고 시도합니다. OpenClaw와 네이티브 Codex 앱 서버 하네스는 전송 세부 사항을 서로 다르게 구현합니다.

이 페이지에서는 steer 모드에서 일반 수신 메시지에 적용되는 대기열 모드 조정을 다룹니다. followup 또는 collect 모드에서는 일반 메시지가 이 경로를 건너뛰고 활성 실행이 끝날 때까지 기다립니다. 명시적인 /steer <message> 명령은 조정을 참조하세요.

런타임 경계

조정은 이미 실행 중인 도구 호출을 중단하지 않습니다. OpenClaw는 모델 경계에서 대기 중인 조정 메시지를 확인합니다.

  1. 어시스턴트가 도구 호출을 요청합니다.
  2. OpenClaw가 현재 어시스턴트 메시지의 도구 호출 배치를 실행합니다.
  3. OpenClaw가 턴 종료 이벤트를 발생시킵니다.
  4. OpenClaw가 대기 중인 조정 메시지를 모두 꺼냅니다.
  5. 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는 대기 중인 followupcollect 전송에 적용됩니다. 네이티브 Codex 하네스의 steer 모드에서는 배치된 turn/steer를 보내기 전의 유휴 시간도 설정합니다. OpenClaw에서는 다음 모델 경계까지 메시지를 자연스럽게 배치로 모으므로 활성 조정 자체에는 디바운스 타이머가 사용되지 않습니다.

관련 문서

Was this useful?
On this page

On this page