전체 목차
아키텍처 & 설치 전 체크리스트
🏗️ OpenClaw 아키텍처 이해
OpenClaw는 Gateway 중심 구조입니다. Gateway 하나가 모든 채널·에이전트·클라이언트를 잇는 단일 제어 포인트가 됩니다.
┌─────────────────────────────────────────────────────────┐
│ OpenClaw Gateway │
│ │
│ ┌──────────────┐ ┌────────────┐ ┌───────────────┐ │
│ │ Channels │ │ Sessions │ │ Automation │ │
│ │ Telegram │ │ Routing │ │ Cron/Tasks │ │
│ │ WhatsApp │ │ Memory │ │ Hooks │ │
│ │ Discord │ │ Context │ │ Standing │ │
│ │ Slack +11 │ └─────┬──────┘ └───────────────┘ │
│ └──────┬───────┘ │ │
│ │ ┌──────▼──────┐ │
│ └──────────► Pi Agent │ │
│ │ (AI Core) │ │
│ └──────┬──────┘ │
│ │ Model API │
└───────────────────────────┼─────────────────────────────┘
│
┌─────────────┼─────────────┐
▼ ▼ ▼
Ollama Anthropic OpenAI
(로컬 LLM) (Claude) (GPT 등)
Groq / OpenRouter / ...
클라이언트:
┌──────────────┬───────────────┬──────────────┐
│ Web Control │ Mobile Node │ CLI / API │
│ UI :18789 │ (iOS/Android) │ │
└──────────────┴───────────────┴──────────────┘📋 설치 방식 비교
| 방식 | 장점 | 단점 | 권장 환경 |
|---|---|---|---|
| NPM 글로벌 | 가장 심플. 단일 명령 설치. 시스템 데몬 통합 | Node.js 직접 관리 필요 | 개인 서버, 개발 환경 |
| Docker Compose | 의존성 격리. 다른 AI 서비스와 스택 통합. 재현 가능 | 설정 파일 구성 필요. extra_hosts 등 주의사항 | 홈랩, 다중 서비스 서버 |
| macOS 앱 | GUI 온보딩. 시스템 트레이 상주. 자동 업데이트 | macOS 전용 | Mac 사용자 |
| 바이너리 직접 | Node.js 불필요. 독립 실행 | 수동 업데이트 | 경량 서버, 임베디드 |
✅ 설치 전 체크리스트
node --version으로 확인. 낮으면 nvm 또는 공식 설치 페이지에서 업그레이드.ss -tlnp | grep 18789으로 충돌 여부 확인. Docker 사용 시 18789:18789 매핑.http://ollama:11434). 호스트 Ollama 사용 시: extra_hosts: host.docker.internal:host-gateway 필수. OPENCLAW_DISABLE_BONJOUR=1 반드시 설정.# Node 24 설치 (nvm 사용 권장) nvm install 24 && nvm use 24 # OpenClaw 글로벌 설치 npm install -g openclaw@latest # 설치 확인 openclaw --version # 온보딩 실행 (시스템 데몬까지 자동 설치) openclaw onboard --install-daemon
온보딩 Wizard 완전 심화 해설
온보딩 Wizard는 openclaw onboard 명령으로 실행됩니다. Docker 환경에서는 --no-install-daemon 플래그를 추가합니다. 각 프롬프트의 의미와 최적 선택을 상세히 설명합니다.
📌 OpenClaw 초보를 위한 가이드에 따른 단계별 프롬프트 완전 해설
LAN (0.0.0.0): 로컬 네트워크 전체에서 접근 가능. Docker 환경 필수 선택. 포트 매핑이 작동하려면 컨테이너가 0.0.0.0으로 바인딩해야 함.
Tailnet: Tailscale VPN IP로만 바인딩. 원격 접근 + 보안 최적.
Auto: Loopback → LAN 자동 전환 (Tailscale 감지 시 Tailnet).
Custom IP: 특정 인터페이스 IP 지정.
http://localhost:11434 또는 Docker에서 http://ollama:11434).Anthropic:
sk-ant-api03-... 형식의 API Key 입력.OpenAI:
sk-... 형식의 API Key 입력.Groq:
gsk_... 형식의 API Key 입력. 무료 티어 제공.기타: OpenRouter, Gemini, DeepSeek 등 50개 이상 지원. 온보딩 후 추가 가능.
provider/model — provider prefix 필수!Ollama:
ollama/gemma4:e4b, ollama/llama3.1:8bAnthropic:
anthropic/claude-sonnet-4-5, anthropic/claude-opus-4-6OpenAI:
openai/gpt-4o, openai/gpt-4o-miniGroq:
groq/llama-3.3-70b-versatile⚠️ prefix 없이 입력하면 기본값 openai가 붙어 Unknown model 에러 발생
Hatch later: 온보딩만 완료. 에이전트 실행은 나중에 수동으로. Docker
--no-deps 환경에서는 이 옵션 필수 — 임시 컨테이너에서 종속 서비스(Ollama 등)에 연결 불가.
openclaw gateway start/stop/restart로 관리.No: 수동 실행만.
openclaw gateway run으로 포그라운드 실행.Docker 환경에서는 컨테이너가 데몬 역할을 하므로
--no-install-daemon 플래그 사용.
# Docker Compose로 설치한 경우 온보딩 명령 docker compose run --rm --no-deps \ --entrypoint node openclaw-gateway \ dist/index.js onboard --mode local --no-install-daemon # 온보딩 완료 후 게이트웨이 시작 docker compose up -d openclaw-gateway # 게이트웨이 상태 확인 docker compose logs -f openclaw-gateway # 정상 기동 메시지 예시: # [gateway] Listening on 0.0.0.0:18789 # [gateway] Gateway ready — token: oc_gt_xxxxxxxxxxxx # [gateway] Control UI: http://0.0.0.0:18789
🔑 온보딩 이후 생성되는 파일들
| 파일/디렉터리 | 위치 (NPM) | 내용 |
|---|---|---|
| openclaw.json | ~/.openclaw/openclaw.json | Gateway 전체 설정. 채널, 모델, 보안, 에이전트 구성 |
| .env (게이트웨이 토큰) | ~/.openclaw/.env | OPENCLAW_GATEWAY_TOKEN 등 민감 환경변수 |
| 인증 키 | ~/.config/openclaw/ | OAuth 토큰, 채널 세션 암호화 키 |
| workspace | ~/.openclaw/workspace/ | 에이전트 작업 파일, 다운로드, AGENTS.md, TOOLS.md |
~/.config/openclaw를 볼륨으로 마운트하지 않으면 컨테이너 재시작마다 채널 토큰이 초기화됩니다. Telegram, WhatsApp 등 모든 채널을 재연결해야 하는 상황이 반복됩니다. docker-compose.yml에 ./auth:/home/node/.config/openclaw 볼륨을 반드시 추가하세요.
⚙️ CLI 기반 재설정 (온보딩 이후 개별 설정 변경)
# 현재 설정 전체 조회 openclaw config show # 특정 항목 조회 openclaw config get agents.defaults.model openclaw config get channels.telegram # 값 설정 openclaw config set agents.defaults.model "ollama/gemma4:e4b" openclaw config set agents.defaults.systemPrompt "You are a helpful assistant." # 배열 형식 (JSON 문자열로 입력) openclaw config set channels.telegram.allowFrom '["123456789","987654321"]' # 항목 삭제 (기본값 복원) openclaw config unset agents.defaults.systemPrompt # Docker 환경에서 CLI 실행 방법 docker compose --profile cli run --rm openclaw-cli config show
Model Provider 완전 설정 가이드
OpenClaw는 2026년 5월 기준 50개 이상의 모델 프로바이더를 지원합니다. 모델은 항상 provider/model 형식으로 지정합니다.
🗂️ 주요 Provider 일람 & 특징 비교
| Provider | 키 형식 | 특징 | 추천 모델 |
|---|---|---|---|
| Ollama | 없음 | 완전 로컬. 인터넷 불필요. GPU 가속 | ollama/gemma4:e4b, ollama/llama3.1:8b |
| Anthropic | sk-ant-api03-... | Claude 최강 추론. 긴 컨텍스트. 코딩 탁월 | anthropic/claude-opus-4-6 |
| OpenAI | sk-... | GPT-4o 멀티모달. 광범위한 호환성 | openai/gpt-4o |
| Groq | gsk_... | LPU 추론. 초고속 응답. 무료 티어 관대 | groq/llama-3.3-70b-versatile |
| OpenRouter | sk-or-... | 100+ 모델 통합. 비용 최적화 라우팅 | openrouter/google/gemini-2.0-flash |
| Google Gemini | Google API Key | 멀티모달 강점. 긴 컨텍스트(1M) | google/gemini-2.0-flash |
| DeepSeek | sk-... | 중국산 최강 오픈소스. 코딩 강점. 저렴 | deepseek/deepseek-chat |
| LM Studio | 없음 | 로컬 GUI 런처. Ollama 대안 | lmstudio/model-name |
| LiteLLM | 설정에 따라 | 통합 프록시 게이트웨이. 다중 Provider 단일화 | litellm/model-name |
| GitHub Copilot | GitHub OAuth | GitHub 구독 포함. 추가 비용 없음 | github-copilot/gpt-4o |
🦙 Ollama 로컬 모델 완전 설정
{
models: {
// Model Catalog Mode: "merge"(기본) = 내장 Provider 유지 + 커스텀 추가
// "replace" = 커스텀 Provider만 사용
catalogMode: "merge",
providers: {
ollama: {
// Docker: 서비스명으로 접근
baseUrl: "http://ollama:11434",
// 호스트 Ollama 사용 시 (Docker 외부)
// baseUrl: "http://host.docker.internal:11434",
models: [
{
id: "gemma4:e4b",
contextWindow: 131072, // 128K context
maxOutputTokens: 8192,
},
{
id: "llama3.1:8b",
contextWindow: 131072,
},
{
id: "qwen2.5:14b",
contextWindow: 131072,
},
// nomic-embed-text: 임베딩 전용 (채팅에는 사용 안 함)
{
id: "nomic-embed-text",
contextWindow: 8192,
type: "embedding",
}
]
}
},
agents: {
defaults: {
model: {
primary: "ollama/gemma4:e4b",
// Failover: primary 실패 시 자동 전환
fallbacks: ["ollama/llama3.1:8b"],
}
}
}
}
}🔄 Model Failover — 자동 모델 전환
Primary 모델이 실패(API 오류, 속도 제한, 타임아웃)하면 Fallback 모델로 자동 전환됩니다. 운영 안정성의 핵심 기능입니다.
# Primary + Fallback 체인 설정 (CLI)
openclaw config set agents.defaults.model \
'{"primary":"anthropic/claude-opus-4-6","fallbacks":["openai/gpt-4o","ollama/gemma4:e4b"]}'
# 동작 순서:
# 1. Anthropic Claude Opus 4.6 시도
# 2. 실패 시 → OpenAI GPT-4o 시도
# 3. 실패 시 → Ollama Gemma4 E4B (로컬 최종 보루)
# 멀티 Provider 연결 추가 (온보딩 이후)
openclaw providers add --provider anthropic --key sk-ant-api03-xxx
openclaw providers add --provider groq --key gsk_xxx
openclaw providers add --provider openrouter --key sk-or-xxx
# 등록된 Provider 목록 확인
openclaw providers list
# 사용 가능한 모델 목록 확인
openclaw models list
openclaw models list --provider ollama브라우저에서 http://서버IP:18789 → Settings → Model Providers → Add Entry에서 JSON으로 Provider 설정을 직접 편집할 수 있습니다. CLI와 동기화됩니다.
Model Pricing Enabled 토글은 로컬 전용(Ollama) 환경에서는 OFF로 유지하세요. 켜두면 Gateway 시작 시 OpenRouter·LiteLLM 가격 카탈로그를 외부 fetch합니다.
채널 완전 설정 — Telegram · WhatsApp · Discord · Slack 외
OpenClaw는 하나의 Gateway로 11개 이상의 채널을 동시 운영합니다. 채널마다 봇 생성 방식과 인증 구조가 다릅니다.
📱 Telegram — 가장 빠른 시작 (권장)
/newbot 전송 → 이름 입력 → 사용자명 입력 → HTTP API token 수령 (형식: 7891234567:AAHxxx...)openclaw channels add --channel telegram --token "7891234567:AAHxxx..."또는 Control UI → Settings → Channels → Telegram → Add
openclaw config set channels.telegram.dmPolicy "allowlist"openclaw config set channels.telegram.allowFrom '["YOUR_USER_ID"]'{
channels: {
telegram: {
// DM 접근 정책
// "pairing" (기본): 누구나 페어링 요청 가능 — 공개 봇
// "allowlist": allowFrom 목록만 접근 — 개인/팀 사용 권장
// "open": 누구나 즉시 대화 — 공개 서비스용
dmPolicy: "allowlist",
// 허용 사용자 목록 (Telegram User ID, 숫자)
allowFrom: ["123456789"],
// 그룹 채팅 설정
groups: {
"*": {
// true: 그룹에서 @봇이름 언급 시에만 응답
requireMention: true,
}
},
// 멘션 패턴 (선택)
mentionPatterns: ["@mybotname"],
// 주제(Topics) 있는 그룹에서 주제별 분리
topicRouting: true,
}
}
}💬 WhatsApp — QR 스캔 방식 연결
openclaw channels add --channel whatsapp 실행 → QR 코드가 터미널에 출력됨+821012345678 (한국 010-1234-5678)openclaw config set channels.whatsapp.allowFrom '["+821012345678"]'WhatsApp은 자동화 봇 사용에 제한이 있습니다. 개인 사용 목적으로만 사용하고, 대량 메시지 발송이나 스팸 행위는 계정 차단 사유가 됩니다. 비즈니스 사용은 공식 WhatsApp Business API를 권장합니다.
🎮 Discord — 서버 봇 완전 설정
# 1. Discord Developer Portal에서 봇 생성 # https://discord.com/developers/applications # → New Application → Bot → Reset Token → 토큰 복사 # 2. Bot Intent 활성화 (중요!) # Bot 탭 → "Message Content Intent" 활성화 (필수) # → Privileged Gateway Intents도 확인 # 3. Bot 서버 초대 # OAuth2 → URL Generator # Scopes: bot, applications.commands # Bot Permissions: Send Messages, Read Messages, Add Reactions # → 생성된 URL로 봇을 서버에 초대 # 4. OpenClaw에 토큰 등록 openclaw channels add --channel discord --token "YOUR_DISCORD_BOT_TOKEN" # 5. 채널별 응답 설정 (선택) # 특정 채널 ID에서만 응답 openclaw config set channels.discord.allowChannels '["채널ID1","채널ID2"]' # 특정 역할에게만 응답 openclaw config set channels.discord.allowRoles '["역할ID"]' # 채널 목록 확인 openclaw channels list
💼 Slack — Workspace 봇 설정
# 1. Slack App 생성 # https://api.slack.com/apps → Create New App # → From scratch → 앱 이름, 워크스페이스 선택 # 2. Bot Token Scopes 추가 (OAuth & Permissions) # app_mentions:read, channels:history, chat:write, # im:history, im:read, im:write, users:read # 3. Event Subscriptions 활성화 # Request URL: https://your-server.com/webhooks/slack # Subscribe to: message.im, app_mention # 4. Bot Token 복사 (xoxb-로 시작) openclaw channels add --channel slack --token "xoxb-your-token" # DM 응답 정책 설정 openclaw config set channels.slack.dmPolicy "allowlist" openclaw config set channels.slack.allowFrom '["U1234567890"]' # Slack User ID
🌐 지원 채널 전체 목록
| 채널 | 인증 방식 | 상태 | Plugin 필요 |
|---|---|---|---|
| Telegram | Bot Token | 내장 | 불필요 |
| QR 스캔 | 내장 | 불필요 | |
| Discord | Bot Token | 내장 | 불필요 |
| Slack | OAuth Bot Token | 내장 | 불필요 |
| iMessage | macOS 시스템 | 내장 | 불필요 (macOS만) |
| Signal | 전화번호 | 내장 | 불필요 |
| WebChat | 없음 | 내장 | 불필요 |
| Matrix | Matrix 계정 | Plugin | bundled plugin |
| Microsoft Teams | Azure AD | Plugin | bundled plugin |
| Google Chat | Service Account | Plugin | bundled plugin |
| Zalo | OA Token | Plugin | bundled plugin |
| Twitch | OAuth | Plugin | bundled plugin |
Tools · Skills · Plugins — 에이전트 능력 확장 완전판
OpenClaw 마스터 가이드를 통한 에이전트의 능력 확장은 세 레이어로 구성됩니다. 목적에 따라 올바른 레이어를 선택하세요.
| 레이어 | 역할 | 추가 인프라 | 예시 |
|---|---|---|---|
| Tools | AI가 호출하는 실행 가능한 함수. 외부 API, 파일, 셸 명령 | 없음 (내장) | 웹 검색, 파일 편집, 코드 실행 |
| Skills | 에이전트에게 특정 워크플로우를 가르치는 Markdown 문서 | 없음 | “PR 리뷰 방법”, “배포 체크리스트” |
| Plugins | 런타임 기능을 추가하는 확장 모듈. Tool/채널/Provider/Hook 추가 | 경우에 따라 | Memory wiki, Google Meet, Webhooks |
| MCP 서버 | 표준 MCP 프로토콜로 외부 서비스 연결 | 외부 HTTP 서버 | GitHub MCP, CalDAV, n8n |
🔧 내장 Tool 카테고리 완전 일람
Web fetch: 특정 URL 콘텐츠 수집
Firecrawl: 고급 웹 크롤링·스크래핑 (자체 서버 또는 API)
openclaw config set tools.webSearch.engine "searxng"
Exec tool: 셸 명령 실행 (승인 정책 필요)
apply_patch: 코드 파일에 패치 적용
Diffs: 파일 변경 사항 비교·표시
OPENCLAW_ALLOW_INSECURE_TOOLS=true 환경변수로 활성화
Music generation: 음악 AI 생성
Video generation: Runway 등 연동
Text-to-speech: ElevenLabs, Azure Speech 연동
PDF tool: PDF 생성·편집·추출
Agent send: 다른 에이전트 세션에 메시지 전송
LLM task: 모델에 직접 작업 지시
Steer: 진행 중인 에이전트 턴 조정
ACP agents: Agent Communication Protocol 멀티에이전트
Tokenjuice: 토큰 예산 최적화
BTW (side questions): 긴 작업 중 사이드 질문 처리
Tool Search: 대규모 Tool 카탈로그에서 필요 Tool 자동 탐색
Loop detection: 도구 루프 자동 감지·중단
Browser control API: CDP(Chrome DevTools Protocol) 직접 제어
Browser login: 자격증명 주입으로 로그인 자동화
Playwright/Puppeteer 없이 OpenClaw가 브라우저 전체 제어
🔗 MCP 서버 연동 완전 가이드
MCP(Model Context Protocol)는 표준화된 방식으로 외부 서비스를 AI 도구로 노출합니다. OpenClaw는 MCP Streamable HTTP를 네이티브 지원합니다.
# MCP 서버 추가 (CLI)
openclaw mcp add --name "filesystem" --url "http://mcp-filesystem:3000/mcp"
openclaw mcp add --name "github" --url "https://api.githubcopilot.com/mcp/"
openclaw mcp add --name "n8n" --url "http://n8n:5678/mcp"
openclaw mcp add --name "caldav" --url "http://caldav-mcp:8080/mcp"
openclaw mcp add --name "trello" --url "http://trello-mcp:3001/mcp"
# MCP 서버 목록 확인
openclaw mcp list
# 특정 MCP 서버의 도구 목록 확인
openclaw mcp tools --name filesystem
# MCP 서버 제거
openclaw mcp remove --name filesystem
# openclaw.json으로 직접 설정
# {
# mcp: {
# servers: {
# filesystem: { url: "http://mcp-filesystem:3000/mcp" },
# github: { url: "https://api.githubcopilot.com/mcp/" },
# }
# }
# }# 방법 A: 자체 호스팅 Firecrawl (Docker Compose) # docker-compose.yml에 firecrawl 서비스 추가 후: openclaw config set tools.firecrawl.baseUrl "http://firecrawl:3002" openclaw config set tools.firecrawl.apiKey "your-firecrawl-key" # 방법 B: Firecrawl 클라우드 API openclaw config set tools.firecrawl.baseUrl "https://api.firecrawl.dev" openclaw config set tools.firecrawl.apiKey "fc-xxxxxxxxxxxxx" # 방법 C: SearXNG 자체 호스팅 (추천, 완전 무료) openclaw config set tools.webSearch.engine "searxng" openclaw config set tools.searxng.url "http://searxng:8080"
📖 Skills — 에이전트에게 워크플로우 가르치기
Skills는 SKILL.md 형식의 Markdown 파일입니다. 에이전트가 특정 상황에서 참조해 행동 지침으로 삼습니다. ~/.openclaw/workspace/skills/ 디렉터리에 배치합니다.
# PR 코드 리뷰 Skill
## 언제 사용하나요?
GitHub Pull Request 코드 리뷰 요청 시 이 Skill을 따르세요.
## 리뷰 절차
1. **PR 변경사항 파악**
- `git diff main...HEAD`로 전체 변경 파악
- 변경된 파일 목록 확인
2. **코드 품질 체크리스트**
- [ ] 버그 또는 논리 오류
- [ ] 성능 병목 가능성
- [ ] 보안 취약점 (SQL Injection, XSS 등)
- [ ] 중복 코드 및 리팩토링 기회
- [ ] 테스트 커버리지
3. **리뷰 결과 형식**
```
## 코드 리뷰 결과
### ✅ 잘된 점
- ...
### ⚠️ 개선 제안
- 파일명:줄번호 — 문제 설명
```언어
// 개선된 코드
```
### ❌ 수정 필요
- 크리티컬 이슈 목록
```
## 주의사항
- 비즈니스 로직 변경은 작성자에게 의도 확인 후 코멘트
- 스타일 지적은 린터 설정으로 자동화 권장🔌 Plugin 설치 — 번들 & 커뮤니티
# 설치 가능한 Plugin 목록 (ClawHub) openclaw plugins list --available # 주요 번들 Plugin 설치 예시 openclaw plugins install memory-wiki # 영구 메모리 (Markdown wiki) openclaw plugins install memory-lancedb # 영구 메모리 (벡터 DB) openclaw plugins install webhooks # 외부 서비스 Webhook 수신 openclaw plugins install meeting-notes # Google Meet 회의록 자동 생성 openclaw plugins install voice-call # 음성 통화 기능 openclaw plugins install skill-workshop # GUI에서 Skill 편집 # 설치된 Plugin 목록 openclaw plugins list --installed # Plugin 비활성화/활성화 openclaw plugins disable memory-wiki openclaw plugins enable memory-wiki # Plugin 제거 openclaw plugins remove memory-wiki # ClawHub에서 커뮤니티 Plugin URL로 직접 설치 openclaw plugins install https://clawhub.openclaw.ai/plugins/some-plugin
보안 & 인증 완전 가이드
🔑 Gateway 토큰 — 핵심 인증 메커니즘
Gateway 토큰은 Control UI 및 모든 API 클라이언트가 Gateway에 접근하기 위한 Bearer 토큰입니다. 온보딩 시 자동 생성되어 ~/.openclaw/.env에 저장됩니다.
# 현재 토큰 확인 openclaw gateway token show # 토큰 재생성 (기존 모든 클라이언트 연결 끊김) openclaw gateway token rotate # Control UI에서 토큰 입력 방법: # 브라우저 → http://서버IP:18789 → Gateway 토큰 필드에 붙여넣기 # 토큰 포함 대시보드 URL 자동 생성 (복사해서 바로 접속) openclaw dashboard --no-open # Docker 환경에서 토큰 확인 docker compose --profile cli run --rm openclaw-cli gateway token show
🖥️ 장치 페어링 (Device Pairing) — Control UI 접근 승인
새로운 브라우저 또는 IP에서 Control UI에 접속하면 장치 페어링이 필요합니다. 이는 모르는 기기가 무단으로 Gateway를 제어하는 것을 방지하는 일회성 승인 절차입니다.
b786149e-492d-431e-b696-e0d93f02d0e5openclaw devices list — 승인 대기 중인 장치 목록 확인openclaw devices approve [UUID] — 브라우저에 표시된 UUID 입력# 승인 대기 중인 장치 목록 openclaw devices list # 특정 장치 승인 openclaw devices approve b786149e-492d-431e-b696-e0d93f02d0e5 # 등록된 모든 장치 목록 (승인된 것 포함) openclaw devices list --all # 특정 장치 접근 취소 openclaw devices revoke [DEVICE_ID] # 모든 장치 접근 취소 (토큰 재발급 포함) openclaw devices revoke --all
🛡️ 채널별 allowlist 완전 설정
| 채널 | allowFrom 형식 | 설정 명령 예시 |
|---|---|---|
| Telegram | 숫자 User ID: "123456789" | openclaw config set channels.telegram.allowFrom '["123456789"]' |
국제 전화번호: "+821012345678" | openclaw config set channels.whatsapp.allowFrom '["+821012345678"]' | |
| Discord | User ID: "숫자ID" | openclaw config set channels.discord.allowUsers '["User#1234"]' |
| Slack | Member ID: "U1234567890" | openclaw config set channels.slack.allowFrom '["U1234567890"]' |
🌐 원격 접근 옵션 비교
| 방식 | 보안 | 설정 난이도 | 추천도 |
|---|---|---|---|
| Tailscale | 최고 (WireGuard VPN) | 낮음 (5분) | ★★★ 강력 추천 |
| Cloudflare Tunnel | 높음 (Zero Trust) | 중간 | ★★☆ 추천 |
| Nginx + SSL | 높음 (기본 HTTPS) | 중간 | ★★☆ 추천 |
| 직접 포트 포워딩 | 낮음 (포트 노출) | 낮음 | ★☆☆ 비권장 |
# 1. Tailscale 설치 curl -fsSL https://tailscale.com/install.sh | sh sudo tailscale up # 2. Tailscale IP 확인 tailscale ip -4 # 예: 100.64.0.1 # 3. 온보딩 시 Gateway bind address → Tailnet 선택 # 또는 기존 설정 변경 openclaw config set gateway.bind "tailnet" # 4. Gateway 재시작 openclaw gateway restart # 5. Tailscale 네트워크 내 어디서나 접근 가능 # http://100.64.0.1:18789
Automation — 스케줄 · Standing Orders · Hooks
OpenClaw의 자동화 시스템은 네 가지 레이어로 구성됩니다.
{
automation: {
// ── Scheduled Tasks (Cron) ─────────────────────────
scheduled: [
{
id: "morning-briefing",
name: "아침 브리핑",
// cron: 초 분 시 일 월 요일
cron: "0 0 9 * * 1-5", // 평일 오전 9시
channel: "telegram",
prompt: "오늘 날씨(서울)와 IT 주요 뉴스 3건을 한국어로 간결하게 요약해줘.",
enabled: true,
},
{
id: "weekly-report",
name: "주간 작업 보고",
cron: "0 0 18 * * 5", // 매주 금요일 오후 6시
channel: "slack",
prompt: "이번 주 완료된 작업과 다음 주 계획을 정리해줘. workspace의 recent_tasks.md를 참고해.",
enabled: true,
}
],
// ── Standing Orders ────────────────────────────────
standingOrders: [
{
id: "error-monitor",
name: "에러 로그 자동 분석",
// 채널에서 특정 패턴 감지 시 자동 실행
trigger: { pattern: "ERROR|Exception|Traceback", channel: "slack" },
prompt: "다음 에러 로그를 분석하고 원인과 해결책을 제시해줘: {{message}}",
enabled: true,
}
],
// ── Hooks ──────────────────────────────────────────
hooks: {
onSessionStart: {
prompt: "새 대화가 시작됐습니다. 간단한 인사와 도움 가능한 내용을 한국어로 안내해줘."
}
}
}
}# 채팅에서 직접 자동화 등록 (자연어 지시) 사용자: "매일 오전 8시 30분에 오늘 날씨랑 KOSPI 지수 알려줘" OpenClaw: 자동화 등록 완료! 매일 08:30에 실행됩니다. 사용자: "내 자동화 목록 보여줘" OpenClaw: [현재 등록된 자동화 목록 표시] 사용자: "morning-briefing 자동화 일시정지해" OpenClaw: morning-briefing이 비활성화되었습니다. # CLI로 스케줄 관리 openclaw automation list openclaw automation run morning-briefing # 즉시 실행 테스트 openclaw automation disable morning-briefing openclaw automation enable morning-briefing openclaw automation delete morning-briefing
Control UI — 대시보드 완전 활용
Control UI는 http://서버IP:18789에서 접근하는 브라우저 기반 대시보드입니다. Gateway의 모든 기능을 시각적으로 관리합니다.
🗂️ 메뉴 구성 완전 가이드
| 메뉴 | 기능 | 주요 활용 |
|---|---|---|
| Chat | 에이전트와 직접 대화. 세션 기록 조회. 모델 실시간 전환 | 기본 기능 테스트, 빠른 작업 지시 |
| Sessions | 모든 채널별 세션 목록. 대화 히스토리. 세션 종료/재개 | 채널별 대화 관리, 히스토리 검토 |
| Settings → Model Providers | Provider 추가/편집. 모델 목록 등록. 가격 카탈로그 | Ollama 모델 등록, API Key 관리 |
| Settings → Channels | 채널 연결 상태 확인. 토큰 갱신. allowlist 편집 | Telegram/Discord 채널 관리 |
| Settings → MCP | MCP 서버 추가/제거. 연결 상태 확인. 도구 목록 조회 | 외부 서비스 연동 관리 |
| Settings → Security | 장치 관리. 토큰 재발급. allowlist 글로벌 설정 | 보안 감사, 미인가 기기 차단 |
| Nodes | iOS/Android 모바일 노드 페어링 및 관리 | 모바일 기기 연결, 카메라·음성 기능 |
| Automation | 스케줄 작업 목록. 실행 기록. 활성화/비활성화 | 자동화 작업 관리 |
openclaw dashboard — 기본 브라우저에서 Control UI 자동 열기
openclaw dashboard --no-open — URL과 토큰만 출력 (원격 서버에서 유용)
출력된 URL에는 토큰이 쿼리 파라미터로 포함되어 있어 클릭 한 번으로 자동 로그인됩니다.
트러블슈팅 완전판 & 운영 팁
❌ 공통 오류 해결 모음
| 오류 메시지 | 원인 | 해결 방법 |
|---|---|---|
Unknown model: openai/gemma4:e4b | 모델 지정 시 provider prefix 누락 → 기본값 openai 자동 부여 | openclaw config set agents.defaults.model "ollama/gemma4:e4b" |
mutually exclusive network_mode and networks | Docker Compose에서 network_mode와 networks 동시 선언 | cli 서비스에서 networks: 항목 삭제 |
Connection refused :11434 | Ollama가 외부 바인딩 안 됨 또는 Docker 네트워크 오류 | OLLAMA_HOST=0.0.0.0:11434 설정. Docker에서 extra_hosts 확인 |
| Hatch in Terminal 모델 에러 | --no-deps 임시 컨테이너에서 Ollama 등 종속 서비스 접근 불가 | 온보딩 시 Hatch later 선택 → 게이트웨이 기동 후 테스트 |
| 채널 재연결 매번 필요 | auth 볼륨 미설정으로 컨테이너 재시작 시 토큰 초기화 | ./auth:/home/node/.config/openclaw 볼륨 추가 |
| Control UI 장치 페어링 반복 | 브라우저 쿠키/로컬스토리지 초기화 또는 인증 키 없음 | auth 볼륨 확인. openclaw devices list로 승인 상태 확인 |
| Gateway 시작 실패 (mDNS 에러) | Docker bridge 환경에서 Bonjour/mDNS 크래시 | OPENCLAW_DISABLE_BONJOUR=1 환경변수 추가 |
| WebSocket 연결 끊김 | Nginx proxy_read_timeout 짧음 또는 Upgrade 헤더 미설정 | proxy_read_timeout 600s + WebSocket 헤더 설정 |
| 메모리 부족 (OOM) | 대형 모델이 VRAM 초과 점유 | Ollama 환경변수 OLLAMA_MAX_LOADED_MODELS=1 설정 |
📋 로그 분석 & 진단 명령어
# ── 로그 조회 ────────────────────────────────────────── # NPM 데몬 로그 openclaw logs --follow openclaw logs --tail 100 # Docker 환경 docker compose logs -f openclaw-gateway docker compose logs --tail=100 openclaw-gateway # ── Gateway 상태 확인 ──────────────────────────────── openclaw gateway status curl -fsS http://127.0.0.1:18789/healthz && echo " Gateway OK" curl -fsS http://127.0.0.1:18789/readyz && echo " Gateway Ready" # ── 채널 연결 상태 ──────────────────────────────────── openclaw channels list openclaw channels status telegram # 채팅 테스트 (채널을 통해 자신에게 메시지 전송) openclaw channels send --channel telegram --to @me --text "ping" # ── 모델 연결 상태 ──────────────────────────────────── openclaw models list openclaw models test --model ollama/gemma4:e4b --prompt "hi" # ── 설정 검증 ───────────────────────────────────────── openclaw config show openclaw config validate # 설정 파일 문법 오류 확인 # ── 전체 진단 리포트 ───────────────────────────────── openclaw doctor # 시스템 전체 점검 리포트 생성
🔄 안전한 업데이트 절차
# ── NPM 글로벌 설치 업데이트 ───────────────────────── # 1. 현재 버전 확인 openclaw --version # 2. Gateway 중지 openclaw gateway stop # 3. 업데이트 npm update -g openclaw@latest # 4. 재시작 openclaw gateway start # ── Docker Compose 업데이트 ─────────────────────────── # 1. 새 이미지 미리 pull (다운타임 없이) docker compose pull openclaw-gateway # 2. 무중단 재시작 docker compose up -d --no-deps openclaw-gateway # 3. 정상 기동 확인 docker compose logs -f openclaw-gateway # ── 버전 고정 (Watchtower 등 자동 업데이트 방지) ───── # docker-compose.yml labels에 추가: # - "com.centurylinklabs.watchtower.enable=false" # # 또는 특정 버전 태그 사용: # image: ghcr.io/openclaw/openclaw:2026.5.x
💾 설정 백업 & 마이그레이션
# ── 설정 백업 ───────────────────────────────────────── BACKUP_DIR=~/backups/openclaw-$(date +%Y%m%d_%H%M%S) mkdir -p $BACKUP_DIR # NPM 설치 기준 cp ~/.openclaw/openclaw.json $BACKUP_DIR/ cp ~/.openclaw/.env $BACKUP_DIR/ cp -r ~/.config/openclaw/ $BACKUP_DIR/auth/ echo "백업 완료: $BACKUP_DIR" # Docker 볼륨 기준 (서비스 중 백업 가능) docker run --rm \ -v /경로/config:/data:ro \ -v $BACKUP_DIR:/backup \ alpine tar czf /backup/openclaw-config.tar.gz /data # ── 다른 서버로 마이그레이션 ───────────────────────── # 1. 위 방법으로 백업 # 2. 새 서버에 OpenClaw 설치 (onboard 실행) # 3. openclaw.json 덮어쓰기 (model/channel/automation 설정 유지) # 4. .env의 OPENCLAW_GATEWAY_TOKEN은 새로 생성 권장 # 5. auth/ 디렉터리 복원 (채널 토큰 재사용) # 6. gateway restart → 채널 재연결 확인
- 아키텍처: Gateway 중심 구조. 모든 채널·에이전트·클라이언트의 단일 제어 포인트
- 온보딩: LAN 바인딩(Docker 필수) · provider/model 형식 · Hatch later(Docker) · auth 볼륨 영속화
- 모델: 50+ Provider 지원 ·
provider/modelprefix 필수 · Failover 체인으로 안정성 확보 - 채널: Telegram(가장 빠름) · WhatsApp(QR) · Discord(Bot Token) · 11개 이상 동시 운영
- Tools/Skills: 웹 검색·코드 실행·브라우저·미디어 생성 내장 · MCP 서버로 외부 서비스 연동
- 보안: Gateway 토큰 + 장치 페어링 + 채널별 allowlist 3중 보호 · Tailscale 원격 접근 권장
- 자동화: Cron 스케줄 · Standing Orders · Background Tasks · 이벤트 Hooks
🦞 OpenClaw 심화편 완독 완료! 이제 로컬 AI 에이전트를 Telegram부터 Slack까지 원하는 채널에 연결하고, 자동화와 MCP 도구로 진정한 개인 AI 인프라를 구축할 준비가 됐습니다. 공식 문서는 docs.openclaw.ai에서 항상 최신 정보를 확인하세요.
