게이트웨이 운영 문서
이 페이지는 게이트웨이 서비스의 Day 1 시작 및 Day 2 운영에 사용하세요.심층 문제 해결
정확한 명령 순서와 로그 시그니처를 포함한 증상 중심 진단.
구성
작업 중심 설정 가이드 + 전체 구성 참조.
Secrets 관리
SecretRef 계약, 런타임 스냅샷 동작, 마이그레이션/리로드 작업.
Secrets 계획 계약
정확한
secrets apply 대상/경로 규칙과 ref 전용 인증 프로필 동작.5분 로컬 시작
게이트웨이 config 리로드는 활성 config 파일 경로를 감시합니다(프로필/상태 기본값에서 해석되거나, 설정된 경우
OPENCLAW_CONFIG_PATH).
기본 모드는 gateway.reload.mode="hybrid"입니다.
첫 번째 성공적인 로드 후, 실행 중인 프로세스는 활성 메모리 내 config 스냅샷을 제공하며, 성공적인 리로드는 해당 스냅샷을 원자적으로 교체합니다.런타임 모델
- 라우팅, 제어 평면, 채널 연결을 위한 하나의 상시 실행 프로세스
- 다음을 위한 단일 다중화 포트:
- WebSocket 제어/RPC
- HTTP API, OpenAI 호환 (
/v1/models,/v1/embeddings,/v1/chat/completions,/v1/responses,/tools/invoke) - 제어 UI 및 hooks
- 기본 바인드 모드:
loopback - 기본적으로 인증이 필요합니다. 공유 비밀 설정은
gateway.auth.token/gateway.auth.password(또는OPENCLAW_GATEWAY_TOKEN/OPENCLAW_GATEWAY_PASSWORD)를 사용하며, non-loopback reverse-proxy 설정은gateway.auth.mode: "trusted-proxy"를 사용할 수 있습니다.
OpenAI 호환 엔드포인트
OpenClaw의 가장 활용도 높은 호환성 표면은 현재 다음과 같습니다:GET /v1/modelsGET /v1/models/{id}POST /v1/embeddingsPOST /v1/chat/completionsPOST /v1/responses
- 대부분의 Open WebUI, LobeChat, LibreChat 통합은 먼저
/v1/models를 확인합니다. - 많은 RAG 및 메모리 파이프라인은
/v1/embeddings를 기대합니다. - 에이전트 중심 클라이언트는 점점 더
/v1/responses를 선호합니다.
/v1/models는 agent 우선입니다.openclaw,openclaw/default,openclaw/<agentId>를 반환합니다.openclaw/default는 항상 구성된 기본 agent에 매핑되는 안정적인 별칭입니다.- 백엔드 provider/모델 재정의가 필요하면
x-openclaw-model을 사용하세요. 그렇지 않으면 선택된 agent의 일반 모델 및 임베딩 설정이 계속 제어권을 가집니다.
포트 및 바인드 우선순위
| 설정 | 해석 순서 |
|---|---|
| 게이트웨이 포트 | --port → OPENCLAW_GATEWAY_PORT → gateway.port → 18789 |
| 바인드 모드 | CLI/override → gateway.bind → loopback |
핫 리로드 모드
gateway.reload.mode | 동작 |
|---|---|
off | config 리로드 없음 |
hot | 핫 세이프 변경만 적용 |
restart | 리로드가 필요한 변경 시 재시작 |
hybrid (기본값) | 안전하면 핫 적용, 필요하면 재시작 |
운영자 명령 세트
gateway status --deep는 추가 서비스 검색용입니다(LaunchDaemons/systemd system
units/schtasks). 더 깊은 RPC 상태 프로브가 아닙니다.
다중 게이트웨이(동일 호스트)
대부분의 설치는 머신당 하나의 게이트웨이를 실행해야 합니다. 단일 게이트웨이로 여러 agents와 channels를 호스팅할 수 있습니다. 다중 게이트웨이는 의도적으로 격리 또는 구조용 봇이 필요할 때만 필요합니다. 유용한 점검:gateway status --deep는Other gateway-like services detected (best effort)를 보고하고 오래된 launchd/systemd/schtasks 설치가 남아 있을 때 정리 힌트를 출력할 수 있습니다.gateway probe는 둘 이상의 대상이 응답하면multiple reachable gateways를 경고할 수 있습니다.- 이것이 의도된 경우 게이트웨이별로 포트, config/상태, 워크스페이스 루트를 분리하세요.
원격 접근
권장: Tailscale/VPN. 대체: SSH 터널.ws://127.0.0.1:18789에 연결합니다.
참조: 원격 게이트웨이, 인증, Tailscale.
감독 및 서비스 수명 주기
프로덕션 수준의 신뢰성을 위해 감독된 실행을 사용하세요.- macOS (launchd)
- Linux (systemd user)
- Windows (native)
- Linux (system service)
ai.openclaw.gateway(기본) 또는 ai.openclaw.<profile>(이름 있는 프로필)입니다. openclaw doctor는 서비스 config 드리프트를 감사하고 복구합니다.한 호스트에서 여러 게이트웨이
대부분의 설정은 하나의 게이트웨이를 실행해야 합니다. 엄격한 격리/중복성(예: 구조용 프로필)을 위해서만 여러 개를 사용하세요. 인스턴스별 체크리스트:- 고유한
gateway.port - 고유한
OPENCLAW_CONFIG_PATH - 고유한
OPENCLAW_STATE_DIR - 고유한
agents.defaults.workspace
개발 프로필 빠른 경로
19001이 포함됩니다.
프로토콜 빠른 참조(운영자 관점)
- 첫 번째 클라이언트 프레임은 반드시
connect여야 합니다. - 게이트웨이는
hello-ok스냅샷(presence,health,stateVersion,uptimeMs, limits/policy)을 반환합니다. hello-ok.features.methods/events는 호출 가능한 모든 헬퍼 경로를 생성 덤프로 나열한 것이 아니라 보수적인 검색 목록입니다.- 요청:
req(method, params)→res(ok/payload|error). - 일반적인 이벤트에는
connect.challenge,agent,chat,session.message,session.tool,sessions.changed,presence,tick,health,heartbeat, pairing/approval 수명 주기 이벤트,shutdown이 포함됩니다.
- 즉시 수락 ack (
status:"accepted") - 최종 완료 응답 (
status:"ok"|"error"), 그 사이에 스트리밍된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 | config가 원격 모드로 설정되었거나 손상된 config에서 로컬 모드 표시가 누락됨 |
unauthorized during connect | 클라이언트와 게이트웨이 간 인증 불일치 |
안전 보장
- 게이트웨이 프로토콜 클라이언트는 게이트웨이를 사용할 수 없을 때 즉시 실패합니다(암묵적인 직접 채널 대체 없음).
- 잘못된/non-connect 첫 프레임은 거부되고 연결이 닫힙니다.
- 정상 종료 시 소켓이 닫히기 전에
shutdown이벤트를 보냅니다.
관련 문서: