Skip to main content

구성

OpenClaw 는 ~/.openclaw/openclaw.json 에서 선택적 구성을 읽습니다. 파일이 없으면 OpenClaw 는 안전한 기본값을 사용합니다. 다음과 같은 경우에 구성을 추가합니다:
  • 채널을 연결하고 누가 봇에 메시지를 보낼 수 있는지 제어
  • 모델, 도구, 샌드박스, 자동화(cron, hooks) 설정
  • 세션, 미디어, 네트워킹 또는 UI 튜닝
사용 가능한 모든 필드는 전체 레퍼런스를 참고하세요.
구성이 처음이신가요? openclaw onboard로 대화형 설정을 시작하거나, 완전한 복사-붙여넣기 예제가 포함된 Configuration Examples 가이드를 확인하세요.

Minimal config

Editing config

Strict validation

OpenClaw 는 스키마와 완전히 일치하는 구성만 허용합니다. 알 수 없는 키, 잘못된 타입, 유효하지 않은 값이 있으면 Gateway 는 시작을 거부합니다. 루트 레벨에서 허용되는 유일한 예외는 $schema (string)이며, 이는 에디터가 JSON Schema 메타데이터를 연결할 수 있도록 합니다.
검증에 실패하면:
  • Gateway 가 부팅되지 않습니다
  • 진단 명령만 동작합니다 (openclaw doctor, openclaw logs, openclaw health, openclaw status)
  • 정확한 문제를 확인하려면 openclaw doctor 를 실행하세요
  • openclaw doctor --fix (또는 --yes) 로 자동 복구를 적용하세요

Common tasks

각 채널은 channels.<provider> 아래에 자체 구성 섹션을 가집니다. 설정 단계는 각 채널 문서를 참고하세요:모든 채널은 동일한 DM 정책 패턴을 공유합니다:
기본 모델과 선택적 폴백을 설정합니다:
  • agents.defaults.models 는 모델 카탈로그를 정의하며 /model 의 허용 목록 역할을 합니다.
  • 모델 참조는 provider/model 형식을 사용합니다 (예: anthropic/claude-opus-4-6).
  • 채팅에서 모델을 전환하려면 Models CLI, 인증 회전 및 폴백 동작은 Model Failover를 참고하세요.
  • 커스텀/셀프 호스팅 프로바이더는 레퍼런스의 Custom providers를 참고하세요.
DM 접근은 채널별 dmPolicy 로 제어됩니다:
  • "pairing" (기본값): 알 수 없는 발신자는 1회용 페어링 코드를 받아 승인 필요
  • "allowlist": allowFrom (또는 페어링 허용 저장소)에 있는 발신자만 허용
  • "open": 모든 수신 DM 허용 (allowFrom: ["*"] 필요)
  • "disabled": 모든 DM 무시
그룹의 경우 groupPolicy + groupAllowFrom 또는 채널별 허용 목록을 사용하세요.자세한 내용은 전체 레퍼런스를 참고하세요.
그룹 메시지는 기본적으로 멘션 필요 입니다. 에이전트별로 패턴을 구성할 수 있습니다:
  • 메타데이터 멘션: 플랫폼 네이티브 @-멘션 (WhatsApp 탭 멘션, Telegram @bot 등)
  • 텍스트 패턴: mentionPatterns 의 정규식 패턴
  • 채널별 오버라이드 및 셀프 채팅 모드는 전체 레퍼런스를 참고하세요.
세션은 대화 연속성과 격리를 제어합니다:
  • dmScope: main (공유) | per-peer | per-channel-peer | per-account-channel-peer
  • 범위, 아이덴티티 링크, 전송 정책은 Session Management를 참고하세요.
  • 모든 필드는 전체 레퍼런스를 참고하세요.
에이전트 세션을 격리된 Docker 컨테이너에서 실행합니다:
먼저 이미지를 빌드하세요: scripts/sandbox-setup.sh전체 가이드는 Sandboxing, 모든 옵션은 전체 레퍼런스를 참고하세요.
  • every: 기간 문자열 (30m, 2h). 0m 으로 설정하면 비활성화.
  • target: last | whatsapp | telegram | discord | none
  • 전체 가이드는 Heartbeat를 참고하세요.
기능 개요 및 CLI 예제는 Cron jobs를 참고하세요.
Gateway 에 HTTP 웹훅 엔드포인트를 활성화합니다:
모든 매핑 옵션과 Gmail 통합은 전체 레퍼런스를 참고하세요.
분리된 워크스페이스와 세션을 가진 여러 에이전트를 실행합니다:
바인딩 규칙과 에이전트별 접근 프로필은 Multi-Agent전체 레퍼런스를 참고하세요.
$include 를 사용하여 큰 구성을 정리할 수 있습니다:
  • 단일 파일: 포함된 객체를 대체
  • 파일 배열: 순서대로 deep-merge (나중 것이 우선)
  • 형제 키: include 이후 병합 (포함 값 덮어씀)
  • 중첩 include: 최대 10단계 지원
  • 상대 경로: 포함 파일 기준으로 해석
  • 오류 처리: 누락 파일, 파싱 오류, 순환 포함에 대해 명확한 오류 제공

Config hot reload

Gateway 는 ~/.openclaw/openclaw.json 파일을 감시하며 대부분의 설정 변경을 자동으로 적용합니다 — 일반적으로 수동 재시작이 필요하지 않습니다.

Reload modes

무엇이 즉시 적용되고 무엇이 재시작이 필요한가

대부분의 필드는 다운타임 없이 즉시 적용됩니다. hybrid 모드에서는 재시작이 필요한 변경도 자동 처리됩니다.
gateway.reloadgateway.remote 는 예외입니다 — 변경해도 재시작을 트리거하지 않습니다.

Config RPC (programmatic updates)

전체 구성을 검증 + 기록하고 Gateway 를 한 단계로 재시작합니다.
config.apply전체 구성을 교체합니다. 일부만 변경하려면 config.patch 또는 openclaw config set 을 사용하세요.
Params:
  • raw (string) — 전체 구성을 위한 JSON5 페이로드
  • baseHash (optional) — config.get 의 구성 해시 (구성이 존재하는 경우 필요)
  • sessionKey (optional) — 재시작 후 깨우기 ping 을 위한 세션 키
  • note (optional) — 재시작 센티널 메모
  • restartDelayMs (optional) — 재시작 전 지연 (기본값 2000)
기존 구성에 부분 업데이트를 병합합니다 (JSON merge patch 의미론):
  • 객체는 재귀적으로 병합
  • null 은 키 삭제
  • 배열은 교체
Params:
  • raw (string) — 변경할 키만 포함한 JSON5
  • baseHash (required) — config.get 의 구성 해시
  • sessionKey, note, restartDelayMsconfig.apply 와 동일

Environment variables

OpenClaw 는 부모 프로세스의 환경 변수와 함께 다음을 읽습니다:
  • 현재 작업 디렉터리의 .env (존재 시)
  • ~/.openclaw/.env (전역 폴백)
두 파일 모두 기존 환경 변수를 덮어쓰지 않습니다. 구성에서 인라인 환경 변수도 설정할 수 있습니다:
활성화되어 있고 필요한 키가 설정되지 않은 경우, OpenClaw 는 로그인 셸을 실행하여 누락된 키만 가져옵니다:
Env var equivalent: OPENCLAW_LOAD_SHELL_ENV=1
어떤 구성 문자열 값에서도 ${VAR_NAME} 형식으로 환경 변수를 참조할 수 있습니다:
Rules:
  • 대문자 이름만 매칭: [A-Z_][A-Z0-9_]*
  • 누락/빈 변수는 로드 시 오류 발생
  • 리터럴 출력은 $${VAR} 로 이스케이프
  • $include 파일 내부에서도 동작
  • 인라인 치환: "${BASE}/v1""https://api.example.com/v1"
전체 우선순위와 소스는 Environment를 참고하세요.

Full reference

모든 필드에 대한 전체 문서는 Configuration Reference 를 참고하세요.
관련 문서: Configuration Examples · Configuration Reference · Doctor