Concepts and configuration
모델 CLI
인증 프로필 순환, 쿨다운, 그리고 이것이 폴백과 상호작용하는 방식입니다.
간단한 제공자 개요와 예시입니다.
OpenClaw, Codex 및 기타 에이전트 루프 런타임입니다.
모델 구성 키입니다.
모델 참조는 제공자와 모델을 선택합니다. 일반적으로 저수준 에이전트 런타임을 선택하지는 않습니다. OpenAI 에이전트 참조가 주요 예외입니다. openai/gpt-5.5는 공식 OpenAI 제공자에서 기본적으로 Codex 앱 서버 런타임을 통해 실행됩니다. 구독 Copilot 참조(github-copilot/*)는 추가로 외부 GitHub Copilot 에이전트 런타임 Plugin을 사용하도록 명시적으로 선택할 수 있습니다. 이 경로는 명시적으로 유지됩니다(auto 폴백 없음). 명시적 런타임 재정의는 전체 에이전트나 세션이 아니라 제공자/모델 정책에 속합니다. Codex 런타임 모드에서 openai/gpt-* 참조는 API 키 과금을 의미하지 않습니다. 인증은 Codex 계정 또는 openai OAuth 프로필에서 올 수 있습니다. 에이전트 런타임 및 GitHub Copilot 에이전트 런타임을 참조하세요.
모델 선택 작동 방식
OpenClaw는 다음 순서로 모델을 선택합니다.
기본 모델
agents.defaults.model.primary(또는 agents.defaults.model).
폴백
agents.defaults.model.fallbacks(순서대로).
제공자 인증 장애 조치
인증 장애 조치는 다음 모델로 이동하기 전에 제공자 내부에서 발생합니다.
관련 모델 표면
agents.defaults.models는 OpenClaw가 사용할 수 있는 모델의 허용 목록/카탈로그(및 별칭)입니다. 제공자 발견을 동적으로 유지하면서 표시되는 제공자를 제한하려면provider/*항목을 사용하세요.agents.defaults.imageModel은 기본 모델이 이미지를 받을 수 없을 때만 사용됩니다.agents.defaults.pdfModel은pdf도구에서 사용됩니다. 생략하면 도구는agents.defaults.imageModel로, 그다음 확인된 세션/기본 모델로 폴백합니다.agents.defaults.imageGenerationModel은 공유 이미지 생성 기능에서 사용됩니다. 생략해도image_generate는 인증이 뒷받침되는 제공자 기본값을 추론할 수 있습니다. 현재 기본 제공자를 먼저 시도한 다음, 나머지 등록된 이미지 생성 제공자를 제공자 ID 순서대로 시도합니다. 특정 제공자/모델을 설정하는 경우 해당 제공자의 인증/API 키도 구성하세요.agents.defaults.musicGenerationModel은 공유 음악 생성 기능에서 사용됩니다. 생략해도music_generate는 인증이 뒷받침되는 제공자 기본값을 추론할 수 있습니다. 현재 기본 제공자를 먼저 시도한 다음, 나머지 등록된 음악 생성 제공자를 제공자 ID 순서대로 시도합니다. 특정 제공자/모델을 설정하는 경우 해당 제공자의 인증/API 키도 구성하세요.agents.defaults.videoGenerationModel은 공유 비디오 생성 기능에서 사용됩니다. 생략해도video_generate는 인증이 뒷받침되는 제공자 기본값을 추론할 수 있습니다. 현재 기본 제공자를 먼저 시도한 다음, 나머지 등록된 비디오 생성 제공자를 제공자 ID 순서대로 시도합니다. 특정 제공자/모델을 설정하는 경우 해당 제공자의 인증/API 키도 구성하세요.- 에이전트별 기본값은
agents.list[].model과 바인딩을 통해agents.defaults.model을 재정의할 수 있습니다(멀티 에이전트 라우팅 참조).
선택 소스와 폴백 동작
동일한 provider/model도 어디에서 왔는지에 따라 다른 의미를 가질 수 있습니다.
- 구성된 기본값(
agents.defaults.model.primary및 에이전트별 기본 모델)은 일반적인 시작점이며agents.defaults.model.fallbacks를 사용합니다. - 자동 폴백 선택은 임시 복구 상태입니다.
modelOverrideSource: "auto"로 저장되므로 이후 턴에서 매번 알려진 불량 기본 모델을 탐색하지 않고 폴백 체인을 계속 사용할 수 있습니다. OpenClaw는 주기적으로 원래 기본 모델을 다시 탐색하고, 복구되면 자동 선택을 지우며, 폴백/복구 전환을 상태 변경당 한 번 알립니다. - 사용자 세션 선택은 정확합니다.
/model, 모델 선택기,session_status(model=...),sessions.patch는modelOverrideSource: "user"를 저장합니다. 선택한 제공자/모델에 도달할 수 없으면 OpenClaw는 다른 구성된 모델로 넘어가지 않고 눈에 보이게 실패합니다. agents.defaults.model.primary를 변경해도 기존 세션 선택은 다시 쓰지 않습니다. 상태에This session is pinned to X; config primary Y will apply to new/unpinned sessions.라고 표시되면/model default로 현재 세션 선택을 지워 구성된 기본 모델을 다시 상속하게 하세요.- Cron
--model/ 페이로드model은 작업별 기본 모델입니다. 작업이 명시적 페이로드fallbacks를 제공하지 않는 한 구성된 폴백을 계속 사용합니다(엄격한 cron 실행에는fallbacks: []사용). - CLI 기본 모델 및 허용 목록 선택기는 전체 내장 카탈로그를 로드하는 대신 명시적
models.providers.*.models를 나열하여models.mode: "replace"를 준수합니다. - Control UI 모델 선택기는 Gateway에 구성된 모델 보기를 요청합니다. 있으면 제공자 전체
provider/*항목을 포함한agents.defaults.models, 없으면 명시적models.providers.*.models와 사용 가능한 인증이 있는 제공자를 사용합니다. 전체 내장 카탈로그는view: "all"이 있는models.list또는openclaw models list --all같은 명시적 찾아보기 보기에 예약됩니다.
빠른 모델 정책
- 사용할 수 있는 가장 강력한 최신 세대 모델을 기본 모델로 설정하세요.
- 비용/지연 시간에 민감한 작업과 중요도가 낮은 채팅에는 폴백을 사용하세요.
- 도구 사용 에이전트나 신뢰할 수 없는 입력에는 오래되었거나 약한 모델 티어를 피하세요.
온보딩(권장)
구성을 직접 편집하고 싶지 않다면 온보딩을 실행하세요.
openclaw onboard일반적인 제공자의 모델 + 인증을 설정할 수 있으며, 여기에는 OpenAI Code (Codex) 구독(OAuth) 및 Anthropic(API 키 또는 Claude CLI)이 포함됩니다.
구성 키(개요)
agents.defaults.model.primary및agents.defaults.model.fallbacksagents.defaults.imageModel.primary및agents.defaults.imageModel.fallbacksagents.defaults.pdfModel.primary및agents.defaults.pdfModel.fallbacksagents.defaults.imageGenerationModel.primary및agents.defaults.imageGenerationModel.fallbacksagents.defaults.videoGenerationModel.primary및agents.defaults.videoGenerationModel.fallbacksagents.defaults.models(허용 목록 + 별칭 + 제공자 매개변수 +provider/*동적 제공자 항목)models.providers(models.json에 기록되는 사용자 지정 제공자)
안전한 허용 목록 편집
agents.defaults.models를 직접 업데이트할 때는 추가 쓰기를 사용하세요.
openclaw config set agents.defaults.models '{"openai/gpt-5.4":{}}' --strict-json --merge덮어쓰기 보호 규칙
openclaw config set은 모델/제공자 맵이 실수로 덮어써지는 것을 방지합니다. agents.defaults.models, models.providers 또는 models.providers.<id>.models에 대한 일반 객체 할당은 기존 항목을 제거하게 될 경우 거부됩니다. 추가 변경에는 --merge를 사용하고, 제공한 값이 완전한 대상 값이 되어야 할 때만 --replace를 사용하세요.
대화형 제공자 설정 및 openclaw configure --section model도 제공자 범위 선택을 기존 허용 목록에 병합하므로 Codex, Ollama 또는 다른 제공자를 추가해도 관련 없는 모델 항목이 삭제되지 않습니다. 제공자 인증을 다시 적용할 때 configure는 기존 agents.defaults.model.primary를 보존합니다. openclaw models auth login --provider <id> --set-default 및 openclaw models set <model> 같은 명시적 기본값 설정 명령은 여전히 agents.defaults.model.primary를 대체합니다.
"모델이 허용되지 않음"(그리고 응답이 중단되는 이유)
agents.defaults.models가 설정되어 있으면 /model 및 세션 재정의의 허용 목록이 됩니다. 사용자가 해당 허용 목록에 없는 모델을 선택하면 OpenClaw는 다음을 반환합니다.
Model "provider/model" is not allowed. Use /models to list providers, or /models <provider> to list models.Add it with: openclaw config set agents.defaults.models '{"provider/model":{}}' --strict-json --merge거부된 명령에 /model openai/gpt-5.5 --runtime codex 같은 런타임 재정의가 포함되어 있었다면 먼저 허용 목록을 수정한 다음 동일한 /model ... --runtime ... 명령을 다시 시도하세요. 네이티브 Codex 실행의 경우 선택된 모델은 여전히 openai/gpt-5.5입니다. codex 런타임은 하네스를 선택하고 Codex 인증을 별도로 사용합니다.
로컬/GGUF 모델의 경우 허용 목록에 전체 제공자 접두사 참조를 저장하세요.
예: ollama/gemma4:26b, lmstudio/Gemma4-26b-a4-it-gguf 또는
openclaw models list --provider <provider>에 표시된 정확한 제공자/모델입니다.
허용 목록이 활성 상태일 때는 로컬 파일 이름이나 표시 이름만으로는
충분하지 않습니다.
모든 모델을 수동으로 나열하지 않고 제공자를 제한하려면
agents.defaults.models에 provider/* 항목을 추가하세요.
{ agents: { defaults: { models: { "openai/*": {}, "vllm/*": {}, }, }, },}이 정책을 사용하면 /model, /models 및 모델 선택기는 해당 제공자에 대해서만 발견된
카탈로그를 표시합니다. 선택한 제공자의 새 모델은 허용 목록을 편집하지 않아도
나타날 수 있습니다. 다른 제공자의 특정 모델 하나가 필요할 때는 정확한 provider/model 항목을
provider/* 항목과 혼합할 수 있습니다.
허용 목록 구성 예시:
{ agents: { defaults: { model: { primary: "anthropic/claude-sonnet-4-6" }, models: { "anthropic/claude-sonnet-4-6": { alias: "Sonnet" }, "anthropic/claude-opus-4-6": { alias: "Opus" }, }, }, },}채팅에서 모델 전환하기(/model)
다시 시작하지 않고 현재 세션의 모델을 전환할 수 있습니다.
/model/model list/model 3/model openai/gpt-5.4/model default/model status선택기 동작
/model(및/model list)은 간결한 번호 매기기 선택기입니다(모델 계열 + 사용 가능한 제공자).- Discord에서는
/model및/models가 제공자 및 모델 드롭다운과 제출 단계가 있는 대화형 선택기를 엽니다. - Telegram에서는
/models선택기 선택이 세션 범위입니다.openclaw.json에서 에이전트의 영구 기본값을 변경하지 않습니다. /models add는 사용 중단되었으며 이제 채팅에서 모델을 등록하는 대신 사용 중단 메시지를 반환합니다./model <#>는 해당 선택기에서 선택합니다.
지속성 및 실시간 전환
/model은 새 세션 선택을 즉시 유지합니다.- 에이전트가 유휴 상태이면 다음 실행은 새 모델을 바로 사용합니다.
- 실행이 이미 활성 상태이면 OpenClaw는 실시간 전환을 대기 중으로 표시하고, 깔끔한 재시도 지점에서만 새 모델로 다시 시작합니다.
- 도구 활동이나 응답 출력이 이미 시작된 경우, 대기 중인 전환은 이후 재시도 기회나 다음 사용자 턴까지 큐에 남아 있을 수 있습니다.
/model default는 세션 선택을 지우고 세션을 구성된 기본 모델로 되돌립니다.- 사용자가 선택한
/model참조는 해당 세션에서 엄격하게 적용됩니다. 선택한 제공자/모델에 연결할 수 없으면agents.defaults.model.fallbacks에서 조용히 응답하는 대신 응답이 눈에 띄게 실패합니다. 이는 여전히 대체 체인을 사용할 수 있는 구성된 기본값 및 Cron 작업의 주 모델과 다릅니다. /model status는 상세 보기입니다(인증 후보 및, 구성된 경우, 제공자 엔드포인트baseUrl+api모드).
참조 파싱
- 모델 참조는 첫 번째
/를 기준으로 분할해 파싱합니다./model <ref>를 입력할 때는provider/model을 사용하세요. - 모델 ID 자체에
/가 포함된 경우(OpenRouter 방식), 제공자 접두사를 포함해야 합니다(예:/model openrouter/moonshotai/kimi-k2). - 제공자를 생략하면 OpenClaw는 다음 순서로 입력을 해석합니다.
- 별칭 일치
- 정확히 그 접두사 없는 모델 ID에 대한 고유한 구성된 제공자 일치
- 구성된 기본 제공자로의 사용 중단된 대체. 해당 제공자가 더 이상 구성된 기본 모델을 노출하지 않는 경우, OpenClaw는 오래되어 제거된 제공자 기본값이 드러나지 않도록 대신 첫 번째 구성된 제공자/모델로 대체합니다.
전체 명령 동작/구성: 슬래시 명령.
CLI 명령
openclaw models listopenclaw models statusopenclaw models set <provider/model>openclaw models set-image <provider/model> openclaw models aliases listopenclaw models aliases add <alias> <provider/model>openclaw models aliases remove <alias> openclaw models fallbacks listopenclaw models fallbacks add <provider/model>openclaw models fallbacks remove <provider/model>openclaw models fallbacks clear openclaw models image-fallbacks listopenclaw models image-fallbacks add <provider/model>openclaw models image-fallbacks remove <provider/model>openclaw models image-fallbacks clearopenclaw models(하위 명령 없음)는 models status의 단축 명령입니다.
models list
기본적으로 구성되었거나 인증상 사용 가능한 모델을 표시합니다. 유용한 플래그:
--allboolean전체 카탈로그입니다. 인증이 구성되기 전에도 번들 제공자가 소유한 정적 카탈로그 행을 포함하므로, 검색 전용 보기에서 일치하는 제공자 자격 증명을 추가하기 전까지 사용할 수 없는 모델도 표시할 수 있습니다.
--localboolean로컬 제공자만 표시합니다.
OPENCLAW_DOCS_MARKER:paramOpen:IHBhdGg9Ii0tcHJvdmlkZXIgPGlk
" type="string">
제공자 ID로 필터링합니다. 예: moonshot. 대화형 선택기에 표시되는 레이블은 허용되지 않습니다.
--plainboolean한 줄에 모델 하나씩 표시합니다.
--jsonboolean기계가 읽을 수 있는 출력입니다.
models status
해석된 주 모델, 대체 모델, 이미지 모델, 구성된 제공자의 인증 개요를 표시합니다. 또한 인증 저장소에서 발견된 프로필의 OAuth 만료 상태를 드러냅니다(기본적으로 24시간 이내이면 경고). --plain은 해석된 주 모델만 출력합니다.
인증 및 프로브 동작
- OAuth 상태는 항상 표시됩니다(
--json출력에도 포함됨). 구성된 제공자에 자격 증명이 없으면models status는 인증 누락 섹션을 출력합니다. - JSON에는
auth.oauth(경고 기간 + 프로필) 및auth.providers(환경 변수 기반 자격 증명을 포함한 제공자별 유효 인증)가 포함됩니다.auth.oauth은 인증 저장소 프로필 상태만 나타내며, 환경 변수만 사용하는 제공자는 여기에 나타나지 않습니다. - 자동화에는
--check를 사용하세요(누락/만료 시 종료 코드1, 만료 임박 시2). - 실시간 인증 확인에는
--probe를 사용하세요. 프로브 행은 인증 프로필, 환경 변수 자격 증명 또는models.json에서 올 수 있습니다. - 명시적
auth.order.<provider>가 저장된 프로필을 생략하면, 프로브는 이를 시도하는 대신excluded_by_auth_order를 보고합니다. 인증은 있지만 해당 제공자에 대해 프로브 가능한 모델을 해석할 수 없으면 프로브는status: no_model을 보고합니다.
예시(Claude CLI):
claude auth loginopenclaw models status스캔(OpenRouter 무료 모델)
openclaw models scan은 OpenRouter의 무료 모델 카탈로그를 검사하며, 선택적으로 도구 및 이미지 지원 여부를 확인하기 위해 모델을 프로브할 수 있습니다.
--no-probeboolean실시간 프로브를 건너뜁니다(메타데이터만).
"--min-params"--max-age-days"--provider"--max-candidates--set-defaultbooleanagents.defaults.model.primary를 첫 번째 선택으로 설정합니다.
--set-imagebooleanagents.defaults.imageModel.primary를 첫 번째 이미지 선택으로 설정합니다.
스캔 결과의 순위는 다음 기준으로 매겨집니다.
- 이미지 지원
- 도구 지연 시간
- 컨텍스트 크기
- 매개변수 수
입력:
- OpenRouter
/models목록(필터:free) - 실시간 프로브에는 인증 프로필 또는
OPENROUTER_API_KEY의 OpenRouter API 키가 필요합니다(환경 변수 참조). - 선택적 필터:
--max-age-days,--min-params,--provider,--max-candidates - 요청/프로브 제어:
--timeout,--concurrency
실시간 프로브가 TTY에서 실행되면 대체 모델을 대화형으로 선택할 수 있습니다. 비대화형 모드에서는 기본값을 수락하려면 --yes를 전달하세요. 메타데이터 전용 결과는 정보 제공용입니다. --set-default와 --set-image는 OpenClaw가 사용할 수 없는 키 없는 OpenRouter 모델을 구성하지 않도록 실시간 프로브가 필요합니다.
모델 레지스트리(models.json)
models.providers의 사용자 지정 제공자는 에이전트 디렉터리 아래의 models.json에 기록됩니다(기본값 ~/.openclaw/agents/<agentId>/agent/models.json). 제공자 Plugin 카탈로그는 에이전트의 Plugin 상태 아래에 생성된 Plugin 소유 카탈로그 조각으로 저장되며 자동으로 로드됩니다. 이 파일은 models.mode가 replace로 설정되지 않은 한 기본적으로 병합됩니다.
병합 모드 우선순위
일치하는 제공자 ID에 대한 병합 모드 우선순위:
- 에이전트
models.json에 이미 존재하는 비어 있지 않은baseUrl이 우선합니다. - 에이전트
models.json의 비어 있지 않은apiKey는 해당 제공자가 현재 구성/인증 프로필 컨텍스트에서 SecretRef 관리 대상이 아닐 때만 우선합니다. - SecretRef 관리 제공자
apiKey값은 해석된 비밀을 유지하는 대신 소스 마커(환경 변수 참조의 경우ENV_VAR_NAME, 파일/실행 참조의 경우secretref-managed)에서 새로 고칩니다. - SecretRef 관리 제공자 헤더 값은 소스 마커(환경 변수 참조의 경우
secretref-env:ENV_VAR_NAME, 파일/실행 참조의 경우secretref-managed)에서 새로 고칩니다. - 비어 있거나 누락된 에이전트
apiKey/baseUrl은 구성models.providers로 대체됩니다. - 기타 제공자 필드는 구성 및 정규화된 카탈로그 데이터에서 새로 고쳐집니다.