
Claude에서 OpenClaw 무제한 실행하기
OpenClaw는 허브 앤 스포크 아키텍처를 통해 Claude를 50개가 넘는 메시징 채널에 연결하는 다중 채널 AI 게이트웨이입니다. 각 채널은 독립적인 추론 엔드포인트입니다. Telegram 봇, Discord 서버, Slack 워크스페이스, 웹 위젯 및 사용자 지정 통합은 모두 자체 인프라에서 실행되는 중앙 게이트웨이를 통해 라우팅됩니다. 시스템 프롬프트에 주입되는 스킬과 상시 열린 채널을 통해 OpenClaw는 지속적인 상시 API 사용을 구현하며, 사용량은 활성 채널 및 사용자 수에 비례하여 증가합니다.
OpenClaw의 상시 운영 아키텍처
OpenClaw는 허브 앤 스포크 게이트웨이로 작동합니다. 허브는 모델 설정, 스킬 주입 및 요청 라우팅을 관리하는 중앙 프로세스로, 일반적으로 VPS의 18789 포트에서 실행됩니다. 스포크는 채널 커넥터입니다. 각 커넥터는 메시징 플랫폼과의 지속적인 연결을 유지하며 수신 메시지를 추론을 위해 허브로 전달합니다.
모든 채널은 추론 요청이 계속 유입될 수 있는 통로입니다. 사용자가 연결된 플랫폼에서 메시지를 보내면 채널 커넥터가 이를 허브로 전달합니다. 허브는 전체 프롬프트(시스템 프롬프트 + 스킬 + 대화 기록 + 사용자 메시지)를 구성하여 Claude에 보내고 응답을 채널로 스트리밍합니다. 대기열 처리나 일괄 처리는 없으며, 모든 메시지에 대해 즉시 추론이 실행됩니다.
게이트웨이는 쉬지 않습니다. 프로세스가 실행되는 동안 50개 이상의 모든 채널이 활성 상태를 유지하며, 수신되는 모든 메시지가 Claude API 호출을 트리거합니다. 개발자가 작업할 때만 토큰을 사용하는 대화형 도구와 달리, OpenClaw는 어느 채널에서든 사용자가 메시지를 보낼 때마다 토큰을 사용합니다. 활발하게 운영되는 배포 환경에서는 하루에 수백 또는 수천 건의 호출이 발생한다는 뜻입니다. 따라서 본격적인 운영 환경에서는 무제한 액세스가 단순한 편의를 넘어 경제적으로 필수적입니다.
openclaw.json의 공급자 설정
OpenClaw의 모델 설정은 ~/.openclaw/openclaw.json의 models.providers 블록에 있습니다. 각 공급자 항목에는 이름, api 필드(Claude의 경우 'anthropic-messages'로 명시적으로 설정MUST 하며, 기본값으로 설정되지 않음), 게이트웨이를 가리키는 baseUrl 및 인증용 apiKey가 필요합니다. api 필드는 OpenClaw가 사용하는 요청 형식을 제어합니다.
baseUrl을 https://aiprimetech.io으로 설정하세요(루트 호스트이며 /v1은 제외 — anthropic-messages 핸들러가 올바른 경로를 추가함). apiKey에는 직접 값을 입력하거나 ${ENV_VAR} 구문으로 환경 변수 보간을 사용할 수 있습니다. 보간을 사용하면 설정 파일에 비밀 정보를 저장하지 않을 수 있습니다. apiKey를 '${UNLIMITED_API_KEY}'로 설정하고 셸 또는 systemd 유닛에서 해당 변수를 내보내세요.
공급자 설정에서 사용자 지정 헤더를 지정할 수도 있습니다. headers 필드를 사용하여 anthropic-beta 플래그 또는 사용자 지정 라우팅 헤더를 전달하세요. 예를 들어 headers: {'anthropic-beta': 'max-tokens-3-5-sonnet-2024-07-15'}는 지원되는 모델에서 확장 출력을 활성화합니다. 무제한 게이트웨이에서는 표준 헤더를 수정 없이 사용할 수 있습니다.
모델 항목과 api 필드 요구 사항
OpenClaw 설정에서 반드시 주의해야 할 사항이 있습니다. 각 모델 항목의 api 필드는 'anthropic-messages'로 명시적으로 설정MUST 합니다. 이를 생략하면 OpenClaw는 Claude와 호환되지 않는 일반적인 completion 형식을 기본값으로 사용합니다. 이로 인해 연결 실패처럼 보이지만 실제로는 형식 불일치인 이해하기 어려운 오류가 발생합니다. 모든 Claude 모델 항목에 api: 'anthropic-messages'를 항상 포함하세요.
openclaw.json의 models.models 아래에 모델 항목을 정의하세요. 각 항목은 이름으로 공급자를 참조하고 모델 ID를 지정합니다. 각 Claude 변형에 대한 항목을 만드세요. 대부분의 채널에는 claude-sonnet-4-5을 기본값으로, 더 깊은 추론이 필요한 채널에는 claude-opus-4-6을, 추론의 깊이보다 속도가 중요한 대용량 채널에는 claude-haiku-4-5를 사용하세요.
채널 설정에서 모델을 채널에 할당하세요. 각 채널은 서로 다른 모델을 사용할 수 있습니다. 고객 지원 채널은 균형 잡힌 응답을 위해 Sonnet을, 기술 채널은 복잡한 설명을 위해 Opus를, 알림 채널은 빠른 확인 응답을 위해 Haiku를 사용할 수 있습니다. 무제한 요금제에서는 비용을 고려하지 않고 필요한 품질에 따라 할당하세요.
18789 포트의 허브 앤 스포크 게이트웨이
OpenClaw 게이트웨이는 일반적으로 18789 포트에서 실행됩니다(openclaw.json의 server.port에서 설정 가능). 채널 커넥터가 메시지를 제출하고 응답을 받는 데 사용하는 REST API를 제공합니다. 게이트웨이는 프롬프트 구성, 모델 선택, 대화 기록 관리 및 응답 스트리밍을 내부적으로 처리합니다.
안정적인 가동 시간을 제공하는 VPS에 게이트웨이를 배포하세요. 채널이 계속 응답하려면 게이트웨이가 24/7 실행되어야 합니다. systemd 또는 Docker를 사용하여 비정상 종료 시 자동으로 재시작되도록 하세요. 이 프로세스는 CPU와 메모리 사용량이 적으며, 병목은 항상 로컬 처리보다 업스트림 API 호출 지연에 있습니다. 소형 VPS(CPU 1개, RAM 1 GB)로도 수십 개의 동시 채널을 문제없이 처리할 수 있습니다.
게이트웨이는 대화 기록을 메모리에 유지합니다(디스크 또는 Redis에 영구 저장하도록 설정 가능). 모든 채널의 각 활성 대화에는 계속 늘어나는 고유한 컨텍스트가 있습니다. 채널이 50개이고 각 채널에 여러 활성 사용자가 있으면 게이트웨이는 수백 개의 대화 상태를 동시에 유지할 수 있습니다. 이 컨텍스트 관리는 자동으로 이루어지며, 오래된 대화는 설정 가능한 TTL에 따라 정리됩니다.
스킬 주입 및 시스템 프롬프트 관리
OpenClaw의 스킬 시스템은 모든 요청의 시스템 프롬프트에 기능별 지침을 주입합니다. 스킬은 skills 디렉터리의 텍스트 파일로 정의되며, 특정 채널에 할당하거나 전역으로 적용할 수 있습니다. 각 스킬은 고객 지원 어조, 기술 문서 스타일, 특정 도메인 지식 등 해당 채널의 목적에 맞게 Claude가 응답하도록 돕는 컨텍스트를 추가합니다.
모든 스킬은 할당된 각 채널의 모든 요청에 토큰을 추가합니다. 활성 스킬이 다섯 개인 채널에서는 대화 기록을 포함하기도 전에 각 요청의 시스템 프롬프트에 2,000-5,000개의 토큰이 추가될 수 있습니다. 다양한 스킬 설정을 사용하는 쉰 개의 채널 전체에서 발생하는 일일 스킬 오버헤드는 상당합니다. 무제한 요금제에서는 이것이 문제가 되지 않으므로, 요청당 비용을 걱정하지 않고 포괄적인 스킬을 작성하세요.
스킬에는 템플릿 변수를 통해 동적 콘텐츠를 포함할 수 있습니다. OpenClaw는 사용자 정보, 채널 컨텍스트, 시간대 및 사용자 지정 변수를 스킬 텍스트에 주입하는 기능을 지원합니다. 이러한 동적 주입은 요청 시점에 이루어지므로 스킬에는 항상 최신 정보가 포함됩니다. 이 유연성을 통해 복잡한 라우팅 로직 없이도 정교한 채널별 동작을 구현할 수 있습니다.
채널 설정 및 확장
OpenClaw의 각 채널은 openclaw.json의 channels 섹션 또는 별도의 채널 설정 파일에서 구성합니다. 채널 항목은 플랫폼 유형(telegram, discord, slack, web, custom), 해당 플랫폼의 인증 자격 증명, 사용할 모델, 할당된 스킬 및 대화 관리 설정(기록 길이, TTL, 페르소나)을 지정합니다.
확장은 선형적으로 이루어집니다. 새 채널마다 열린 추론 엔드포인트가 하나씩 추가됩니다. Telegram 봇을 추가하면 채널 하나가 추가됩니다. 모니터링하는 채널이 여러 개인 Discord 서버를 추가하면 열 개가 추가될 수도 있습니다. 모니터링하는 각 Discord 채널은 독립적인 컨텍스트를 갖는 별도의 대화 스트림입니다. Discord, Telegram, Slack, 웹 위젯을 사용하는 대규모 OpenClaw 배포에서는 활성 추론 엔드포인트가 쉽게 50-100개에 이를 수 있습니다.
토큰당 과금에서는 채널 확장이 곧 비용 증가로 이어집니다. 새 채널마다 메시지 양에 비례하는 API 비용이 추가됩니다. 무제한 요금제에서는 공정 사용 요청 한도 내에서 채널을 자유롭게 확장할 수 있습니다. 새 플랫폼, 새 봇, 새 위젯을 추가해도 정액 요금으로 모두 이용할 수 있습니다. 유일한 제약은 분당 요청 한도이며, 대부분의 다중 채널 배포에 충분한 수준입니다.
OpenClaw 배포 문제 해결
가장 흔한 설정 오류는 모델 항목에 api: 'anthropic-messages'를 넣지 않는 것입니다. 이 필드가 없으면 OpenClaw는 잘못된 형식으로 요청을 보내고 API로부터 이해하기 어려운 오류를 받습니다. 응답 파싱 실패나 예상치 못한 400 오류가 발생하면 먼저 api 필드를 확인하세요. 이 필드는 명시적으로 설정해야 하며, Claude 모델에 맞는 기본값은 없습니다.
다른 채널은 작동하는데 특정 채널만 실패한다면, 보통 해당 채널의 모델 설정이 존재하지 않거나 오타가 있는 모델 항목을 가리키는 것이 원인입니다. OpenClaw는 시작 시 모델 참조를 검증하지 않습니다. 채널이 잘못 설정된 모델을 사용하려고 요청하는 시점에 실패합니다. 모든 채널의 모델 참조가 기존 models.models 항목의 이름과 정확히 일치하는지 확인하세요.
다중 채널의 높은 부하로 요청 한도 오류가 발생한다면, 모든 채널이 동일한 API 키와 요청 한도를 공유한다는 점을 기억하세요. 사용량이 많은 시간대에 쉰 개 채널이 동시에 활성화되면 전체 요청률이 공정 사용 한도를 초과할 수 있습니다. 게이트웨이는 429 응답을 받으면 요청을 대기열에 넣고 재시도하므로 지연은 늘어나지만 메시지는 유실되지 않습니다. 처리량이 매우 많은 배포의 경우 AI Prime Tech에 요청 한도 상향을 문의하세요.
// ~/.openclaw/openclaw.json
{
"models": {
"providers": {
"unlimited": {
"api": "anthropic-messages",
"baseUrl": "https://aiprimetech.io",
"apiKey": "${UNLIMITED_API_KEY}"
}
},
"models": {
"sonnet": { "provider": "unlimited", "model": "claude-sonnet-4-5" },
"opus": { "provider": "unlimited", "model": "claude-opus-4-6" },
"haiku": { "provider": "unlimited", "model": "claude-haiku-4-5" }
}
},
"server": { "port": 18789 }
}
# IMPORTANT: api: "anthropic-messages" is REQUIRED
# Without it, OpenClaw uses wrong request format자주 묻는 질문
api를 anthropic-messages로 명시적으로 설정해야 하는 이유는 무엇인가요?
무제한 요금제에서 OpenClaw는 채널을 몇 개까지 처리할 수 있나요?
각 채널은 별도의 대화 기록을 유지하나요?
API 키에 환경 변수 보간을 사용할 수 있나요?
게이트웨이 프로세스가 비정상 종료되면 어떻게 되나요?
API 키를 발급받으세요 — Anthropic 계정이나 대기자 명단 등록이 필요하지 않습니다.
API 키 발급받기AI Prime Tech는 독립적인 API 게이트웨이입니다. Anthropic과 제휴 관계가 없으며, Anthropic의 보증을 받거나 Anthropic의 리셀러로 활동하지 않습니다. Claude 및 관련 모델 이름은 각 소유자의 상표입니다.