Concepts and configuration

모델 CLI

모델 참조는 제공자와 모델을 선택합니다. 일반적으로 저수준 에이전트 런타임을 선택하지는 않습니다. OpenAI 에이전트 참조가 주요 예외입니다. openai/gpt-5.5는 공식 OpenAI 제공자에서 기본적으로 Codex 앱 서버 런타임을 통해 실행됩니다. 명시적 런타임 재정의는 전체 에이전트나 세션이 아니라 제공자/모델 정책에 속합니다. Codex 런타임 모드에서 openai/gpt-* 참조는 API 키 과금을 의미하지 않습니다. 인증은 Codex 계정이나 openai-codex 인증 프로필에서 올 수 있습니다. 에이전트 런타임을 참조하세요.

모델 선택 작동 방식

OpenClaw는 다음 순서로 모델을 선택합니다.

  • 기본 모델

    agents.defaults.model.primary 또는 agents.defaults.model.

  • 대체 모델

    agents.defaults.model.fallbacks 순서대로.

  • 제공자 인증 장애 조치

    인증 장애 조치는 다음 모델로 이동하기 전에 제공자 내부에서 발생합니다.

  • 관련 모델 표면
    • agents.defaults.models는 OpenClaw가 사용할 수 있는 모델의 허용 목록/카탈로그입니다(별칭 포함). 제공자 검색을 동적으로 유지하면서 표시되는 제공자를 제한하려면 provider/* 항목을 사용하세요.
    • agents.defaults.imageModel은 기본 모델이 이미지를 받을 수 없을 때만 사용됩니다.
    • agents.defaults.pdfModelpdf 도구에서 사용됩니다. 생략하면 도구는 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"와 함께 저장됩니다.
    • 사용자 세션 선택은 정확합니다. /model, 모델 선택기, session_status(model=...), sessions.patchmodelOverrideSource: "user"를 저장합니다. 해당 선택된 제공자/모델에 연결할 수 없으면 OpenClaw는 다른 구성된 모델로 넘어가지 않고 명확히 실패합니다.
    • Cron --model / 페이로드 model은 작업별 기본 모델입니다. 작업이 명시적 페이로드 fallbacks를 제공하지 않는 한 구성된 대체 모델을 계속 사용합니다(엄격한 Cron 실행에는 fallbacks: [] 사용).
    • CLI 기본 모델 및 허용 목록 선택기는 전체 내장 카탈로그를 로드하는 대신 명시적 models.providers.*.models를 나열하여 models.mode: "replace"를 따릅니다.
    • Control UI 모델 선택기는 Gateway에 구성된 모델 뷰를 요청합니다. agents.defaults.models가 있으면 제공자 전체 provider/* 항목을 포함해 사용하고, 없으면 명시적 models.providers.*.models와 사용 가능한 인증이 있는 제공자를 사용합니다. 전체 내장 카탈로그는 view: "all"이 있는 models.list 또는 openclaw models list --all 같은 명시적 탐색 뷰에만 사용됩니다.

    빠른 모델 정책

    • 사용할 수 있는 가장 강력한 최신 세대 모델을 기본 모델로 설정하세요.
    • 비용/지연 시간에 민감한 작업과 중요도가 낮은 채팅에는 대체 모델을 사용하세요.
    • 도구가 활성화된 에이전트나 신뢰할 수 없는 입력에는 오래되었거나 약한 모델 계층을 피하세요.

    온보딩(권장)

    구성을 직접 편집하고 싶지 않다면 온보딩을 실행하세요.

    bash
    openclaw onboard

    OpenAI Code (Codex) 구독(OAuth) 및 Anthropic(API 키 또는 Claude CLI)을 포함해 일반적인 제공자의 모델과 인증을 설정할 수 있습니다.

    구성 키(개요)

    • agents.defaults.model.primaryagents.defaults.model.fallbacks
    • agents.defaults.imageModel.primaryagents.defaults.imageModel.fallbacks
    • agents.defaults.pdfModel.primaryagents.defaults.pdfModel.fallbacks
    • agents.defaults.imageGenerationModel.primaryagents.defaults.imageGenerationModel.fallbacks
    • agents.defaults.videoGenerationModel.primaryagents.defaults.videoGenerationModel.fallbacks
    • agents.defaults.models(허용 목록 + 별칭 + 제공자 매개변수 + provider/* 동적 제공자 항목)
    • models.providers(models.json에 기록되는 사용자 지정 제공자)

    안전한 허용 목록 편집

    agents.defaults.models를 직접 업데이트할 때는 추가 쓰기를 사용하세요.

    bash
    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-defaultopenclaw models set <model> 같은 명시적 기본값 설정 명령은 여전히 agents.defaults.model.primary를 교체합니다.

    "모델이 허용되지 않음"(및 응답이 중단되는 이유)

    agents.defaults.models가 설정되면 /model과 세션 재정의의 허용 목록이 됩니다. 사용자가 해당 허용 목록에 없는 모델을 선택하면 OpenClaw는 다음을 반환합니다.

    Code
    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>에 표시되는 정확한 provider/model입니다. 허용 목록이 활성화되어 있을 때는 순수 로컬 파일 이름이나 표시 이름만으로는 충분하지 않습니다.

    모든 모델을 직접 나열하지 않고 제공자를 제한하려면 provider/* 항목을 agents.defaults.models에 추가하세요.

    json5
    {  agents: {    defaults: {      models: {        "openai-codex/*": {},        "vllm/*": {},      },    },  },}

    이 정책에서는 /model, /models, 모델 선택기가 해당 제공자에 대해 검색된 카탈로그만 표시합니다. 선택된 제공자의 새 모델은 허용 목록을 편집하지 않아도 표시될 수 있습니다. 다른 제공자의 특정 모델 하나가 필요하면 정확한 provider/model 항목을 provider/* 항목과 함께 섞어 사용할 수 있습니다.

    허용 목록 구성 예시:

    json5
    {  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)

    재시작하지 않고 현재 세션의 모델을 전환할 수 있습니다.

    Code
    /model/model list/model 3/model openai/gpt-5.4/model status
    선택기 동작
    • /model(및 /model list)은 간결한 번호형 선택기입니다(모델 계열 + 사용 가능한 제공자).
    • Discord에서는 /model/models가 제공자 및 모델 드롭다운과 제출 단계가 포함된 대화형 선택기를 엽니다.
    • Telegram에서는 /models 선택기 선택이 세션 범위에만 적용되며, openclaw.json에 있는 에이전트의 영구 기본값을 변경하지 않습니다.
    • /models add는 더 이상 사용되지 않으며 이제 채팅에서 모델을 등록하는 대신 사용 중단 메시지를 반환합니다.
    • /model <#>는 해당 선택기에서 선택합니다.
    영속성과 실시간 전환
    • /model은 새 세션 선택을 즉시 저장합니다.
    • 에이전트가 유휴 상태라면 다음 실행은 새 모델을 바로 사용합니다.
    • 실행이 이미 활성 상태라면 OpenClaw는 실시간 전환을 보류 중으로 표시하고, 깔끔한 재시도 지점에서만 새 모델로 재시작합니다.
    • 도구 활동이나 응답 출력이 이미 시작된 경우 보류 중인 전환은 이후 재시도 기회나 다음 사용자 턴까지 대기열에 남을 수 있습니다.
    • 사용자가 선택한 /model 참조는 해당 세션에서 엄격합니다. 선택된 제공자/모델에 연결할 수 없으면 agents.defaults.model.fallbacks에서 조용히 답하는 대신 응답이 명확히 실패합니다. 이는 여전히 대체 체인을 사용할 수 있는 구성된 기본값 및 Cron 작업 기본 모델과 다릅니다.
    • /model status는 상세 뷰입니다(인증 후보 및 구성된 경우 제공자 엔드포인트 baseUrl + api 모드).
    참조 파싱
    • 모델 참조는 첫 번째 /를 기준으로 나누어 파싱합니다. /model <ref>를 입력할 때는 provider/model을 사용하세요.
    • 모델 ID 자체에 /가 포함된 경우(OpenRouter 스타일), 제공자 접두사를 포함해야 합니다(예: /model openrouter/moonshotai/kimi-k2).
    • 제공자를 생략하면 OpenClaw는 다음 순서로 입력을 해석합니다.
      1. 별칭 일치
      2. 정확히 그 접두사 없는 모델 ID에 대해 고유한 구성된 제공자 일치
      3. 구성된 기본 제공자로의 폐기 예정 폴백. 해당 제공자가 더 이상 구성된 기본 모델을 노출하지 않으면, OpenClaw는 오래된 제거된 제공자 기본값을 표시하지 않도록 대신 첫 번째로 구성된 제공자/모델로 폴백합니다.

    전체 명령 동작/구성: 슬래시 명령.

    CLI 명령

    bash
    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 clear

    openclaw 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):

    bash
    claude auth loginopenclaw models status

    스캔(OpenRouter 무료 모델)

    openclaw models scan은 OpenRouter의 무료 모델 카탈로그를 검사하며, 선택적으로 도구 및 이미지 지원 여부를 모델에 대해 프로브할 수 있습니다.

    --no-probeboolean

    실시간 프로브를 건너뜁니다(메타데이터만).

    "--min-params
    "--max-age-days
    "--provider
    "--max-candidates
    --set-defaultboolean

    agents.defaults.model.primary를 첫 번째 선택 항목으로 설정합니다.

    --set-imageboolean

    agents.defaults.imageModel.primary를 첫 번째 이미지 선택 항목으로 설정합니다.

    스캔 결과의 순위 기준:

    1. 이미지 지원
    2. 도구 지연 시간
    3. 컨텍스트 크기
    4. 매개변수 수

    입력:

    • 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). 이 파일은 models.modereplace로 설정되지 않은 한 기본적으로 병합됩니다.

    병합 모드 우선순위

    일치하는 제공자 ID에 대한 병합 모드 우선순위:

    • 에이전트 models.json에 이미 있는 비어 있지 않은 baseUrl이 우선합니다.
    • 에이전트 models.json의 비어 있지 않은 apiKey는 현재 구성/인증 프로필 컨텍스트에서 해당 제공자가 SecretRef로 관리되지 않는 경우에만 우선합니다.
    • SecretRef로 관리되는 제공자 apiKey 값은 해석된 비밀을 유지하는 대신 소스 마커(환경 변수 참조의 경우 ENV_VAR_NAME, 파일/exec 참조의 경우 secretref-managed)에서 새로 고쳐집니다.
    • SecretRef로 관리되는 제공자 헤더 값은 소스 마커(환경 변수 참조의 경우 secretref-env:ENV_VAR_NAME, 파일/exec 참조의 경우 secretref-managed)에서 새로 고쳐집니다.
    • 비어 있거나 누락된 에이전트 apiKey/baseUrl은 구성 models.providers로 폴백합니다.
    • 기타 제공자 필드는 구성 및 정규화된 카탈로그 데이터에서 새로 고쳐집니다.

    관련 항목

    Was this useful?