Gateway 서비스 런북
Gateway 서비스의 day-1 시작 및 day-2 운영에는 이 페이지를 사용하세요.Deep troubleshooting
정확한 명령 단계와 로그 시그니처를 포함한 증상 우선 진단.
Configuration
작업 중심 설정 가이드 + 전체 구성 참조.
5분 로컬 시작
Gateway 구성 다시 로드는 활성 구성 파일 경로(프로필/상태 기본값에서 확인되거나, 설정된 경우
OPENCLAW_CONFIG_PATH)를 감시합니다.
기본 모드: gateway.reload.mode="hybrid" (안전한 변경은 핫 적용, 중요 변경은 재시작).런타임 모델
- 라우팅, 제어 플레인 및 채널 연결을 위한 항상 실행되는 단일 프로세스.
- 단일 포트 멀티플렉스입니다.
- WebSocket 제어/RPC
- OpenResponses (HTTP):
/v1/responses. - 제어 UI 및 훅
- 기본 바인드 모드:
loopback. - Gateway 인증은 기본적으로 필요합니다:
gateway.auth.token(또는OPENCLAW_GATEWAY_TOKEN) 또는gateway.auth.password를 설정하십시오.
포트 및 바인드 우선순위
| 설정 | 결정 순서 |
|---|---|
| Gateway 포트 | 포트 우선순위: --port > OPENCLAW_GATEWAY_PORT > gateway.port > 기본값 18789. |
| 바인드 모드 | CLI/override → gateway.bind → loopback |
핫 리로드 모드
gateway.reload.mode="off"로 비활성화할 수 있습니다. | 동작 |
|---|---|
off | 구성 다시 로드 없음 |
hot | 핫 적용이 안전한 변경만 적용 |
restart | 다시 로드가 필요한 변경 시 재시작 |
hybrid (default) | 안전한 경우 핫 적용, 필요한 경우 재시작 |
운영자 명령 세트
원격 접근
선호: Tailscale/VPN. 대안: SSH 터널.ws://127.0.0.1:18789에 연결합니다.
참고: Remote Gateway, Authentication, Tailscale.
감독 및 서비스 수명 주기
프로덕션 수준의 안정성을 위해 supervised 실행을 사용하세요.- macOS (launchd)
- Linux (systemd user)
- Linux (system service)
bot.molt.gateway (또는 bot.molt.<profile> ; 레거시 com.openclaw.* 레이블도 정상적으로 언로드됨) 라벨로 설치할 수 있습니다.(이름이 지정된 프로필).openclaw doctor`는 서비스 구성 드리프트를 점검하고 복구합니다.다중 Gateway (동일 호스트)
기본적으로 호스트당 하나의 Gateway를 가정합니다. 여러 프로필을 실행하는 경우 포트/상태를 격리하고 올바른 인스턴스를 대상으로 하십시오. 인스턴스별 체크리스트:- 고유한
gateway.port - 고유한
OPENCLAW_CONFIG_PATH - 고유한
OPENCLAW_STATE_DIR - 고유한
agents.defaults.workspace
Dev 프로필 (--dev)
19001이 포함됩니다.
프로토콜 (운영자 관점)
- 클라이언트는 재연결해야 합니다.
- Gateway는
hello-ok스냅샷(presence,health,stateVersion,uptimeMs, limits/policy)을 반환합니다. - 요청:
{type:"req", id, method, params}→{type:"res", id, ok, payload|error} - 일반 이벤트:
connect.challenge,agent,chat,presence,tick,health,heartbeat,shutdown.
- 즉시 수락 확인 응답(
status:"accepted") agent응답은 2단계입니다: 먼저resack{runId,status:"accepted"}, 이후 실행이 끝나면 최종res{runId,status:"ok"|"error",summary}; 스트리밍 출력은event:"agent"로 도착합니다.
운영 점검
활성 상태 확인
- WS를 열고
connect를 전송합니다. - 스냅샷이 포함된
hello-ok응답을 예상하세요.
준비 상태
갭 복구
이벤트는 재생되지 않습니다. 시퀀스에 갭이 발생하면 계속하기 전에 상태(health, system-presence)를 새로 고치세요.
일반적인 실패 시그니처
| 시그니처 | 가능한 문제 |
|---|---|
refusing to bind gateway ... without auth | 토큰/비밀번호 없이 non-loopback에 바인딩 |
another gateway instance is already listening / EADDRINUSE | 포트 충돌 |
Gateway start blocked: set gateway.mode=local | 구성이 원격 모드로 설정됨 |
unauthorized during connect | 클라이언트와 Gateway 간 인증 불일치 |
안전 보장
- Gateway가 다운되면 전송은 즉시 실패합니다.
- 유효하지 않거나 connect가 아닌 첫 프레임은 거부되고 연결이 종료됩니다.
- 정상 종료: 닫기 전에
shutdown이벤트를 발행합니다.
관련 항목: