OpenClaw 🦞
OpenClaw 는 오픈소스 로컬 AI 어시스턴트로, WhatsApp, Telegram, Slack 등 메시지 앱을 통해 상호작용하며, 이메일 관리, 캘린더, 항공편 체크인, 웹 브라우징 등 실제 작업을 수행합니다. 완전히 로컬에서 실행되며, 데이터가 기기를 떠나지 않습니다.
OfoxAI와 함께 사용하는 이유
- 100개 이상의 모델 통합 호출 — 하나의 API Key로 Claude, GPT, Gemini, Qwen, Doubao 등 모든 주요 모델에 접속
- 유연한 Agent 전략 — 다른 Agent에 다른 모델 할당: 주력은 Sonnet, 추론은 Opus, 경량은 Haiku
- 99.9% SLA — 다중 노드 이중화, 자동 장애 전환
- 비용 관리 — 통합 과금 대시보드, 실시간 토큰 소비 모니터링
OpenClaw는 Agentic AI 어시스턴트로, 단일 작업의 토큰 소비가 상당합니다 (일반적으로 10K-100K+ 토큰). 작업 복잡도에 따라 모델을 선택하여 불필요한 비용을 방지하세요. 이 문서에서는 참고용으로 세 가지 설정 방안을 제공합니다.
설치
curl -sSL https://openclaw.ai/install.sh | bash& ([scriptblock]::Create((iwr -useb https://openclaw.ai/install.ps1)))빠른 시작
1. API Key 발급
OfoxAI 콘솔 에서 API Key를 생성하세요.
2. 설정 마법사 실행
OpenClaw는 대화형 마법사를 제공합니다. 다음 명령을 입력하면 빠르게 설정을 완료할 수 있습니다:
openclaw onboard마법사에서 Custom Provider를 선택하고 다음 정보를 입력합니다:
| 설정 항목 | 값 |
|---|---|
| Provider Type | anthropic-messages |
| Base URL | https://api.ofox.ai/anthropic |
| API Key | OfoxAI API Key |
| Model | anthropic/claude-sonnet-4.5 |
3. 시작 및 확인
openclaw startOpenClaw에 메시지를 보내 연결을 테스트합니다. 정상적인 응답을 받으면 설정이 완료된 것입니다.
마법사가 자동으로 openclaw.json 설정 파일을 생성합니다. 더 세밀한 제어가 필요한 경우, 아래의 전체 설정을 참조하세요.
전체 설정
OpenClaw는 ~/.openclaw/openclaw.json으로 모든 설정을 관리합니다 (JSON5 형식 지원, 주석 작성 가능).
Provider 설정
Provider는 models.providers 아래에 정의되며, 각 Provider는 API 프로토콜 유형, 주소 및 키를 지정해야 합니다:
{
"models": {
"providers": {
"ofoxai-anthropic": {
"baseUrl": "https://api.ofox.ai/anthropic",
"apiKey": "${OFOXAI_API_KEY}",
"api": "anthropic-messages",
"models": []
},
"ofoxai-openai": {
"baseUrl": "https://api.ofox.ai/v1",
"apiKey": "${OFOXAI_API_KEY}",
"api": "openai-responses",
"models": []
},
"ofoxai-gemini": {
"baseUrl": "https://api.ofox.ai/gemini",
"apiKey": "${OFOXAI_API_KEY}",
"api": "google-generative-ai",
"models": []
}
}
}
}apiKey는 ${ENV_VAR} 구문으로 환경 변수를 참조할 수 있어, 설정 파일에 평문으로 기록하는 것을 방지합니다. 세 가지 프로토콜이 각각 다른 모델 시리즈에 대응합니다: Claude는 ofoxai-anthropic (anthropic-messages), OpenAI는 ofoxai-openai (openai-responses), Gemini는 ofoxai-gemini (google-generative-ai)를 사용합니다. 기타 모델은 ofoxai-openai를 통해 접속할 수 있습니다.
Models 설정
모델은 해당 Provider의 models 배열에 정의됩니다. 세 가지 방안을 제공하며, 필요에 따라 선택하세요:
최강 설정
풀 Claude 라인업 — 최고 성능 추구, 높은 요구 시나리오에 적합.
{
"models": {
"providers": {
"ofoxai-anthropic": {
"baseUrl": "https://api.ofox.ai/anthropic",
"apiKey": "${OFOXAI_API_KEY}",
"api": "anthropic-messages",
"models": [
{
"id": "anthropic/claude-sonnet-4.5",
"name": "Claude Sonnet 4.5",
"input": ["text", "image", "file"],
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "anthropic/claude-opus-4.6",
"name": "Claude Opus 4.6",
"reasoning": true,
"input": ["text", "image", "file"],
"contextWindow": 200000,
"maxTokens": 128000
},
{
"id": "anthropic/claude-haiku-4.5",
"name": "Claude Haiku 4.5",
"input": ["text", "image", "file"],
"contextWindow": 200000,
"maxTokens": 64000
}
]
}
}
}
}| 모델 | 역할 | 적용 시나리오 |
|---|---|---|
anthropic/claude-sonnet-4.5 | 주력 모델 | 일상 대화, 작업 실행, 코드 생성 |
anthropic/claude-opus-4.6 | 심층 추론 | 복잡한 분석, 긴 체인 추론, 연구 작업 |
anthropic/claude-haiku-4.5 | 빠른 응답 | 간단한 조회, 빠른 답변, 경량 작업 |
Agents 설정
OpenClaw는 agents.defaults로 전역 기본값을 설정하고, agents.list 배열로 각 Agent를 정의합니다. 각 Agent는 기본 설정을 덮어쓸 수 있습니다:
{
"agents": {
"defaults": {
"model": {
"primary": "ofoxai-anthropic/anthropic/claude-sonnet-4.5",
"fallbacks": ["ofoxai-anthropic/anthropic/claude-haiku-4.5"]
},
"models": {
"ofoxai-anthropic/anthropic/claude-opus-4.6": { "alias": "opus" },
"ofoxai-anthropic/anthropic/claude-sonnet-4.5": { "alias": "sonnet" },
"ofoxai-anthropic/anthropic/claude-haiku-4.5": { "alias": "haiku" }
},
"thinkingDefault": "low",
"timeoutSeconds": 600,
"maxConcurrent": 3
},
"list": [
{
"id": "main",
"default": true
},
{
"id": "research",
"model": {
"primary": "ofoxai-anthropic/anthropic/claude-opus-4.6"
}
},
{
"id": "quick",
"model": {
"primary": "ofoxai-anthropic/anthropic/claude-haiku-4.5"
}
}
]
}
}| Agent | 모델 | 용도 |
|---|---|---|
| main | claude-sonnet-4.5 (defaults 상속) | 기본 Agent, 일상 모든 작업 |
| research | claude-opus-4.6 | 심층 연구, 복잡한 추론, 장문 분석 |
| quick | claude-haiku-4.5 | 간단한 Q&A, 빠른 응답, 저비용 |
모델 참조 형식은 provider명/model-id (예: ofoxai-anthropic/anthropic/claude-sonnet-4.5)입니다. defaults의 models 필드에 모델 별칭을 정의하면, 대화에서 /model opus로 빠르게 전환할 수 있습니다. list의 Agent는 defaults의 모든 설정을 상속하며, 변경이 필요한 필드만 덮어쓰면 됩니다.
전체 설정 예제
다음은 Provider, Models, Agents 설정을 통합한 완전한 openclaw.json입니다 (최강 설정 방안):
{
"models": {
"providers": {
"ofoxai-anthropic": {
"baseUrl": "https://api.ofox.ai/anthropic",
"apiKey": "${OFOXAI_API_KEY}",
"api": "anthropic-messages",
"models": [
{
"id": "anthropic/claude-sonnet-4.5",
"name": "Claude Sonnet 4.5",
"input": ["text", "image", "file"],
"contextWindow": 200000,
"maxTokens": 64000
},
{
"id": "anthropic/claude-opus-4.6",
"name": "Claude Opus 4.6",
"reasoning": true,
"input": ["text", "image", "file"],
"contextWindow": 200000,
"maxTokens": 128000
},
{
"id": "anthropic/claude-haiku-4.5",
"name": "Claude Haiku 4.5",
"input": ["text", "image", "file"],
"contextWindow": 200000,
"maxTokens": 64000
}
]
},
"ofoxai-gemini": {
"baseUrl": "https://api.ofox.ai/gemini",
"apiKey": "${OFOXAI_API_KEY}",
"api": "google-generative-ai",
"models": [
{
"id": "models/google/gemini-2.5-flash",
"name": "Gemini 2.5 Flash",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 64000
},
{
"id": "models/google/gemini-2.5-pro",
"name": "Gemini 2.5 Pro",
"reasoning": true,
"input": ["text", "image"],
"contextWindow": 1000000,
"maxTokens": 64000
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "ofoxai-anthropic/anthropic/claude-sonnet-4.5",
"fallbacks": ["ofoxai-anthropic/anthropic/claude-haiku-4.5"]
},
"models": {
"ofoxai-anthropic/anthropic/claude-opus-4.6": { "alias": "opus" },
"ofoxai-anthropic/anthropic/claude-sonnet-4.5": { "alias": "sonnet" },
"ofoxai-anthropic/anthropic/claude-haiku-4.5": { "alias": "haiku" }
},
"thinkingDefault": "low",
"timeoutSeconds": 600,
"maxConcurrent": 3
},
"list": [
{
"id": "main",
"default": true
},
{
"id": "research",
"model": {
"primary": "ofoxai-anthropic/anthropic/claude-opus-4.6"
}
},
{
"id": "quick",
"model": {
"primary": "ofoxai-anthropic/anthropic/claude-haiku-4.5"
}
}
]
}
}사용 시나리오
설정 완료 후, 메시지 앱을 통해 OpenClaw에 명령을 전송합니다:
- 이메일 관리 — “오늘 읽지 않은 이메일을 정리하고, 우선순위별로 정렬해주세요”
- 일정 관리 — “내일 오후 3시에 팀 회의를 예약해주세요”
- 정보 검색 — “최근 AI Agent 관련 기술 글을 검색하고 요점을 정리해주세요”
- 코드 지원 — “이 Python 코드를 리뷰하고, 보안 문제를 확인해주세요”
- 워크플로 자동화 — “매일 아침 9시에 Slack #general 채널로 팀 일간 보고서를 전송해주세요”
문제 해결
OfoxAI에 연결할 수 없는 경우
baseUrl 설정이 올바른지 확인하세요:
- Anthropic 프로토콜:
https://api.ofox.ai/anthropic - OpenAI-Response 프로토콜:
https://api.ofox.ai/v1 - Gemini 프로토콜:
https://api.ofox.ai/gemini
모델이 존재하지 않는 경우
모델 ID 형식이 올바른지 확인하세요. models.providers에서 모델을 정의할 때, id는 OfoxAI가 반환하는 전체 ID를 사용합니다 (예: anthropic/claude-sonnet-4.5). agents에서 모델을 참조할 때는 Provider 이름 접두사를 추가해야 합니다: ofoxai-anthropic/anthropic/claude-sonnet-4.5.
토큰 소비가 너무 높은 경우
OpenClaw의 단일 작업 소비가 크므로, 다음을 권장합니다:
- 일상 작업에는
claude-haiku-4.5또는 가성비 모델 사용 - 복잡한 작업에서만
researchAgent로 전환 (claude-opus-4.6사용) - OfoxAI 콘솔 에서 사용량 모니터링
모델을 빠르게 전환하는 방법
대화에서 별칭으로 전환: /model opus, /model sonnet, /model haiku (agents.defaults.models에서 별칭 설정 필요).