로컬 모델

로컬은 가능하지만, OpenClaw는 대규모 컨텍스트 + 프롬프트 인젝션에 대한 강력한 방어를 기대합니다. 작은 카드는 컨텍스트를 잘라내고 안전성을 누출합니다. 높은 목표를 세우세요: ≥2대의 최대 사양 Mac Studio 또는 동등한 GPU 장비 (~$30k+). 단일 24 GB GPU는 더 높은 지연 시간으로 가벼운 프롬프트에만 작동합니다. 실행할 수 있는 가장 크고 전체 크기의 모델 변형을 사용하세요; 공격적으로 양자화되거나 "작은" 체크포인트는 프롬프트 인젝션 위험을 높입니다 (Security 참조).

권장: LM Studio + MiniMax M2.1 (Responses API, 전체 크기)

현재 최고의 로컬 스택입니다. LM Studio에서 MiniMax M2.1을 로드하고, 로컬 서버를 활성화하고 (기본값 http://127.0.0.1:1234), Responses API를 사용하여 reasoning을 최종 텍스트와 별도로 유지합니다.

{
  agents: {
    defaults: {
      model: { primary: "lmstudio/minimax-m2.1-gs32" },
      models: {
        "anthropic/claude-opus-4-5": { alias: "Opus" },
        "lmstudio/minimax-m2.1-gs32": { alias: "Minimax" }
      }
    }
  },
  models: {
    mode: "merge",
    providers: {
      lmstudio: {
        baseUrl: "http://127.0.0.1:1234/v1",
        apiKey: "lmstudio",
        api: "openai-responses",
        models: [
          {
            id: "minimax-m2.1-gs32",
            name: "MiniMax M2.1 GS32",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 196608,
            maxTokens: 8192
          }
        ]
      }
    }
  }
}

설정 체크리스트

  • LM Studio 설치: https://lmstudio.ai
  • LM Studio에서 사용 가능한 가장 큰 MiniMax M2.1 빌드를 다운로드합니다 ("small"/과도하게 양자화된 변형 피하기), 서버를 시작하고, http://127.0.0.1:1234/v1/models가 목록에 있는지 확인합니다.
  • 모델을 로드된 상태로 유지하세요; 콜드 로드는 시작 지연 시간을 추가합니다.
  • LM Studio 빌드가 다른 경우 contextWindow/maxTokens를 조정합니다.
  • WhatsApp의 경우 최종 텍스트만 전송되도록 Responses API를 사용하세요.

로컬을 실행할 때도 호스팅된 모델을 설정된 상태로 유지하세요; models.mode: "merge"를 사용하면 fallback이 사용 가능한 상태로 유지됩니다.

하이브리드 설정: 호스팅된 primary, 로컬 fallback

{
  agents: {
    defaults: {
      model: {
        primary: "anthropic/claude-sonnet-4-5",
        fallbacks: ["lmstudio/minimax-m2.1-gs32", "anthropic/claude-opus-4-5"]
      },
      models: {
        "anthropic/claude-sonnet-4-5": { alias: "Sonnet" },
        "lmstudio/minimax-m2.1-gs32": { alias: "MiniMax Local" },
        "anthropic/claude-opus-4-5": { alias: "Opus" }
      }
    }
  },
  models: {
    mode: "merge",
    providers: {
      lmstudio: {
        baseUrl: "http://127.0.0.1:1234/v1",
        apiKey: "lmstudio",
        api: "openai-responses",
        models: [
          {
            id: "minimax-m2.1-gs32",
            name: "MiniMax M2.1 GS32",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 196608,
            maxTokens: 8192
          }
        ]
      }
    }
  }
}

로컬 우선 + 호스팅된 안전망

primary와 fallback 순서를 바꾸세요; 동일한 providers 블록과 models.mode: "merge"를 유지하여 로컬 박스가 다운되었을 때 Sonnet 또는 Opus로 fallback할 수 있습니다.

지역 호스팅 / 데이터 라우팅

  • 호스팅된 MiniMax/Kimi/GLM 변형도 OpenRouter에 지역 고정 엔드포인트(예: US 호스팅)와 함께 존재합니다. 선택한 관할권에 트래픽을 유지하면서도 Anthropic/OpenAI fallback을 위해 models.mode: "merge"를 사용할 수 있도록 해당 지역 변형을 선택하세요.
  • 로컬 전용은 가장 강력한 프라이버시 경로로 유지됩니다; 호스팅된 지역 라우팅은 제공자 기능이 필요하지만 데이터 흐름을 제어하려는 경우의 중간 지점입니다.

기타 OpenAI 호환 로컬 프록시

vLLM, LiteLLM, OAI-proxy 또는 커스텀 게이트웨이는 OpenAI 스타일의 /v1 엔드포인트를 노출하면 작동합니다. 위의 provider 블록을 엔드포인트 및 모델 ID로 교체하세요:

{
  models: {
    mode: "merge",
    providers: {
      local: {
        baseUrl: "http://127.0.0.1:8000/v1",
        apiKey: "sk-local",
        api: "openai-responses",
        models: [
          {
            id: "my-local-model",
            name: "Local Model",
            reasoning: false,
            input: ["text"],
            cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
            contextWindow: 120000,
            maxTokens: 8192
          }
        ]
      }
    }
  }
}

호스팅된 모델이 fallback으로 사용 가능한 상태로 유지되도록 models.mode: "merge"를 유지하세요.

문제 해결

  • Gateway가 프록시에 도달할 수 있나요? curl http://127.0.0.1:1234/v1/models.
  • LM Studio 모델이 언로드되었나요? 다시 로드하세요; 콜드 스타트는 일반적인 "정지" 원인입니다.
  • 컨텍스트 오류? contextWindow를 낮추거나 서버 제한을 높이세요.
  • 보안: 로컬 모델은 제공자 측 필터를 건너뜁니다; 프롬프트 인젝션 폭발 반경을 제한하기 위해 에이전트를 좁게 유지하고 compaction을 켜두세요.