OpenClaw 마스터 온보딩 위자드부터 모델·툴 세부구성 및 자동화

구분심화편 (Deep Dive)
버전OpenClaw (2026년 5월 최신)
전제Node.js 22+ 또는 Docker 환경
난이도초보자
OpenClaw 마스터 가이드를 통한 온보딩 완전 정복 Model Provider Tools & Skills MCP 연동 채널 설정 보안 & 인증 Automation
OpenClaw는 로컬 AI 에이전트를 메신저 채널과 연결하는 셀프호스티드 멀티채널 게이트웨이입니다. OpenClaw 초보를 위한 가이드를 통해 Telegram, WhatsApp, Discord, Slack, iMessage 등 10개 이상의 채널을 단일 Gateway 프로세스로 운영하고, 내 손 안의 AI 에이전트로 언제 어디서나 인터랙션할 수 있습니다. 이 글은 온보딩 Wizard 심화 해설부터 Model Provider 완전 설정, Tools/Skills/Plugins 구성, 보안 인증 체계, 자동화·스케줄링까지 공식 문서를 기반으로 폭넓게 다룹니다.
SECTIONO1

아키텍처 & 설치 전 체크리스트

🏗️ OpenClaw 아키텍처 이해

OpenClaw는 Gateway 중심 구조입니다. Gateway 하나가 모든 채널·에이전트·클라이언트를 잇는 단일 제어 포인트가 됩니다.

text — OpenClaw 전체 아키텍처
┌─────────────────────────────────────────────────────────┐
│                     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 불필요. 독립 실행수동 업데이트경량 서버, 임베디드

✅ 설치 전 체크리스트

1
Node.js 버전 확인
Node 24 권장. 최소 Node 22.19+ (LTS). node --version으로 확인. 낮으면 nvm 또는 공식 설치 페이지에서 업그레이드.
2
AI Provider 준비
Ollama는 별도 API Key 불필요. 클라우드 사용 시: Anthropic (sk-ant-xxx), OpenAI (sk-xxx), Groq (gsk_xxx) 중 하나 이상 준비.
3
포트 확인
기본 포트 18789. ss -tlnp | grep 18789으로 충돌 여부 확인. Docker 사용 시 18789:18789 매핑.
4
채널 봇 준비 (선택)
Telegram은 @BotFather에서 사전 봇 생성 필요. WhatsApp은 QR 스캔 방식이므로 봇 없이 연결 가능. Discord는 개발자 포털에서 봇 토큰 발급.
5
Docker 환경 추가 확인사항
Ollama를 같은 스택에서 운영 시: 서비스명으로 통신 (http://ollama:11434). 호스트 Ollama 사용 시: extra_hosts: host.docker.internal:host-gateway 필수. OPENCLAW_DISABLE_BONJOUR=1 반드시 설정.
bash — NPM 설치 (가장 빠른 방법)
# Node 24 설치 (nvm 사용 권장)
nvm install 24 && nvm use 24

# OpenClaw 글로벌 설치
npm install -g openclaw@latest

# 설치 확인
openclaw --version

# 온보딩 실행 (시스템 데몬까지 자동 설치)
openclaw onboard --install-daemon
SECTIONO2

온보딩 Wizard 완전 심화 해설

온보딩 Wizard는 openclaw onboard 명령으로 실행됩니다. Docker 환경에서는 --no-install-daemon 플래그를 추가합니다. 각 프롬프트의 의미와 최적 선택을 상세히 설명합니다.

📌 OpenClaw 초보를 위한 가이드에 따른 단계별 프롬프트 완전 해설

1
Gateway bind address — 가장 중요한 선택
Loopback (127.0.0.1): 같은 머신에서만 접근. 최고 보안, 가장 제한적.
LAN (0.0.0.0): 로컬 네트워크 전체에서 접근 가능. Docker 환경 필수 선택. 포트 매핑이 작동하려면 컨테이너가 0.0.0.0으로 바인딩해야 함.
Tailnet: Tailscale VPN IP로만 바인딩. 원격 접근 + 보안 최적.
Auto: Loopback → LAN 자동 전환 (Tailscale 감지 시 Tailnet).
Custom IP: 특정 인터페이스 IP 지정.
2
AI Provider 선택 & API 인증
Ollama: API Key 불필요. URL만 입력 (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개 이상 지원. 온보딩 후 추가 가능.
3
Default Model 설정
형식: provider/model — provider prefix 필수!
Ollama: ollama/gemma4:e4b, ollama/llama3.1:8b
Anthropic: anthropic/claude-sonnet-4-5, anthropic/claude-opus-4-6
OpenAI: openai/gpt-4o, openai/gpt-4o-mini
Groq: groq/llama-3.3-70b-versatile
⚠️ prefix 없이 입력하면 기본값 openai가 붙어 Unknown model 에러 발생
4
How to hatch your agent
Hatch in Terminal: 온보딩 완료 즉시 현재 터미널에서 에이전트 실행 및 첫 대화 테스트. 일반 설치 환경에서 권장.
Hatch later: 온보딩만 완료. 에이전트 실행은 나중에 수동으로. Docker --no-deps 환경에서는 이 옵션 필수 — 임시 컨테이너에서 종속 서비스(Ollama 등)에 연결 불가.
5
Install Gateway daemon (NPM 설치 시)
Yes (권장): systemd/launchd 서비스로 등록. 서버 재부팅 후 자동 시작. openclaw gateway start/stop/restart로 관리.
No: 수동 실행만. openclaw gateway run으로 포그라운드 실행.
Docker 환경에서는 컨테이너가 데몬 역할을 하므로 --no-install-daemon 플래그 사용.
bash — Docker 환경 온보딩 전체 플로우
# 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.jsonGateway 전체 설정. 채널, 모델, 보안, 에이전트 구성
.env (게이트웨이 토큰)~/.openclaw/.envOPENCLAW_GATEWAY_TOKEN 등 민감 환경변수
인증 키~/.config/openclaw/OAuth 토큰, 채널 세션 암호화 키
workspace~/.openclaw/workspace/에이전트 작업 파일, 다운로드, AGENTS.md, TOOLS.md
⚠️
Docker 볼륨 마운트 시 반드시 auth 디렉터리 영속화

~/.config/openclaw를 볼륨으로 마운트하지 않으면 컨테이너 재시작마다 채널 토큰이 초기화됩니다. Telegram, WhatsApp 등 모든 채널을 재연결해야 하는 상황이 반복됩니다. docker-compose.yml./auth:/home/node/.config/openclaw 볼륨을 반드시 추가하세요.

⚙️ CLI 기반 재설정 (온보딩 이후 개별 설정 변경)

bash — openclaw config 명령 완전 레퍼런스
# 현재 설정 전체 조회
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
SECTIONO3

Model Provider 완전 설정 가이드

OpenClaw는 2026년 5월 기준 50개 이상의 모델 프로바이더를 지원합니다. 모델은 항상 provider/model 형식으로 지정합니다.

🗂️ 주요 Provider 일람 & 특징 비교

Provider키 형식특징추천 모델
Ollama없음완전 로컬. 인터넷 불필요. GPU 가속ollama/gemma4:e4b, ollama/llama3.1:8b
Anthropicsk-ant-api03-...Claude 최강 추론. 긴 컨텍스트. 코딩 탁월anthropic/claude-opus-4-6
OpenAIsk-...GPT-4o 멀티모달. 광범위한 호환성openai/gpt-4o
Groqgsk_...LPU 추론. 초고속 응답. 무료 티어 관대groq/llama-3.3-70b-versatile
OpenRoutersk-or-...100+ 모델 통합. 비용 최적화 라우팅openrouter/google/gemini-2.0-flash
Google GeminiGoogle API Key멀티모달 강점. 긴 컨텍스트(1M)google/gemini-2.0-flash
DeepSeeksk-...중국산 최강 오픈소스. 코딩 강점. 저렴deepseek/deepseek-chat
LM Studio없음로컬 GUI 런처. Ollama 대안lmstudio/model-name
LiteLLM설정에 따라통합 프록시 게이트웨이. 다중 Provider 단일화litellm/model-name
GitHub CopilotGitHub OAuthGitHub 구독 포함. 추가 비용 없음github-copilot/gpt-4o

🦙 Ollama 로컬 모델 완전 설정

json5 — openclaw.json Ollama Provider 설정
{
  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 모델로 자동 전환됩니다. 운영 안정성의 핵심 기능입니다.

bash — CLI로 모델 Failover 설정
# 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
💡
Control UI에서 Model Provider 설정 (GUI 방식)

브라우저에서 http://서버IP:18789 → Settings → Model Providers → Add Entry에서 JSON으로 Provider 설정을 직접 편집할 수 있습니다. CLI와 동기화됩니다.

Model Pricing Enabled 토글은 로컬 전용(Ollama) 환경에서는 OFF로 유지하세요. 켜두면 Gateway 시작 시 OpenRouter·LiteLLM 가격 카탈로그를 외부 fetch합니다.

SECTIONO4

채널 완전 설정 — Telegram · WhatsApp · Discord · Slack 외

OpenClaw는 하나의 Gateway로 11개 이상의 채널을 동시 운영합니다. 채널마다 봇 생성 방식과 인증 구조가 다릅니다.

📱 Telegram — 가장 빠른 시작 (권장)

1
봇 생성 (@BotFather)
Telegram에서 @BotFather에게 /newbot 전송 → 이름 입력 → 사용자명 입력 → HTTP API token 수령 (형식: 7891234567:AAHxxx...)
2
봇 토큰 등록
openclaw channels add --channel telegram --token "7891234567:AAHxxx..."
또는 Control UI → Settings → Channels → Telegram → Add
3
allowlist 설정 (필수 보안)
내 Telegram User ID 확인: @userinfobot에 아무 메시지 전송
openclaw config set channels.telegram.dmPolicy "allowlist"
openclaw config set channels.telegram.allowFrom '["YOUR_USER_ID"]'
4
연결 테스트
봇에게 메시지 전송 → 페어링 요청이 오면 Control UI에서 승인 → 첫 대화 완료
json5 — openclaw.json Telegram 완전 설정
{
  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 스캔 방식 연결

1
WhatsApp 채널 활성화
openclaw channels add --channel whatsapp 실행 → QR 코드가 터미널에 출력됨
2
QR 코드 스캔
WhatsApp 앱 → 연결된 기기 → 기기 연결 → QR 스캔. 스캔 성공 시 Gateway와 WhatsApp 계정이 연결됨.
3
allowFrom 설정 (필수)
국제 전화번호 형식 사용: +821012345678 (한국 010-1234-5678)
openclaw config set channels.whatsapp.allowFrom '["+821012345678"]'
⚠️
WhatsApp 이용 약관 주의

WhatsApp은 자동화 봇 사용에 제한이 있습니다. 개인 사용 목적으로만 사용하고, 대량 메시지 발송이나 스팸 행위는 계정 차단 사유가 됩니다. 비즈니스 사용은 공식 WhatsApp Business API를 권장합니다.

🎮 Discord — 서버 봇 완전 설정

bash — 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 봇 설정

bash — Slack 앱 등록 및 연결
# 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 필요
TelegramBot Token내장불필요
WhatsAppQR 스캔내장불필요
DiscordBot Token내장불필요
SlackOAuth Bot Token내장불필요
iMessagemacOS 시스템내장불필요 (macOS만)
Signal전화번호내장불필요
WebChat없음내장불필요
MatrixMatrix 계정Pluginbundled plugin
Microsoft TeamsAzure ADPluginbundled plugin
Google ChatService AccountPluginbundled plugin
ZaloOA TokenPluginbundled plugin
TwitchOAuthPluginbundled plugin
SECTIONO5

Tools · Skills · Plugins — 에이전트 능력 확장 완전판

OpenClaw 마스터 가이드를 통한 에이전트의 능력 확장은 세 레이어로 구성됩니다. 목적에 따라 올바른 레이어를 선택하세요.

레이어역할추가 인프라예시
ToolsAI가 호출하는 실행 가능한 함수. 외부 API, 파일, 셸 명령없음 (내장)웹 검색, 파일 편집, 코드 실행
Skills에이전트에게 특정 워크플로우를 가르치는 Markdown 문서없음“PR 리뷰 방법”, “배포 체크리스트”
Plugins런타임 기능을 추가하는 확장 모듈. Tool/채널/Provider/Hook 추가경우에 따라Memory wiki, Google Meet, Webhooks
MCP 서버표준 MCP 프로토콜로 외부 서비스 연결외부 HTTP 서버GitHub MCP, CalDAV, n8n

🔧 내장 Tool 카테고리 완전 일람

🌐 Web 검색 & 스크래핑
Web search: 기본 웹 검색 (SearXNG, Brave, DuckDuckGo, Exa, Tavily, Perplexity 등 선택적 연동)
Web fetch: 특정 URL 콘텐츠 수집
Firecrawl: 고급 웹 크롤링·스크래핑 (자체 서버 또는 API)
openclaw config set tools.webSearch.engine "searxng"
💻 코드 실행 & 파일
Code execution: Python, Shell, JavaScript 코드 직접 실행
Exec tool: 셸 명령 실행 (승인 정책 필요)
apply_patch: 코드 파일에 패치 적용
Diffs: 파일 변경 사항 비교·표시
OPENCLAW_ALLOW_INSECURE_TOOLS=true 환경변수로 활성화
🖼️ 미디어 생성
Image generation: ComfyUI, DALL-E, fal, PixVerse 연동
Music generation: 음악 AI 생성
Video generation: Runway 등 연동
Text-to-speech: ElevenLabs, Azure Speech 연동
PDF tool: PDF 생성·편집·추출
🤖 에이전트 조율
Sub-agents: 하위 에이전트 생성·작업 위임
Agent send: 다른 에이전트 세션에 메시지 전송
LLM task: 모델에 직접 작업 지시
Steer: 진행 중인 에이전트 턴 조정
ACP agents: Agent Communication Protocol 멀티에이전트
🔍 고급 추론
Thinking levels: 모델의 사고 깊이 조절 (빠름/보통/깊음)
Tokenjuice: 토큰 예산 최적화
BTW (side questions): 긴 작업 중 사이드 질문 처리
Tool Search: 대규모 Tool 카탈로그에서 필요 Tool 자동 탐색
Loop detection: 도구 루프 자동 감지·중단
🌐 Browser 도구
Browser: Chromium 기반 웹 브라우저 제어
Browser control API: CDP(Chrome DevTools Protocol) 직접 제어
Browser login: 자격증명 주입으로 로그인 자동화
Playwright/Puppeteer 없이 OpenClaw가 브라우저 전체 제어

🔗 MCP 서버 연동 완전 가이드

MCP(Model Context Protocol)는 표준화된 방식으로 외부 서비스를 AI 도구로 노출합니다. OpenClaw는 MCP Streamable HTTP를 네이티브 지원합니다.

bash — MCP 서버 추가 및 관리
# 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/" },
#     }
#   }
# }
bash — Firecrawl 웹 검색 엔진 설정
# 방법 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/ 디렉터리에 배치합니다.

markdown — SKILL.md 작성 예시: PR 코드 리뷰
# PR 코드 리뷰 Skill

## 언제 사용하나요?
GitHub Pull Request 코드 리뷰 요청 시 이 Skill을 따르세요.

## 리뷰 절차

1. **PR 변경사항 파악**
   - `git diff main...HEAD`로 전체 변경 파악
   - 변경된 파일 목록 확인

2. **코드 품질 체크리스트**
   - [ ] 버그 또는 논리 오류
   - [ ] 성능 병목 가능성
   - [ ] 보안 취약점 (SQL Injection, XSS 등)
   - [ ] 중복 코드 및 리팩토링 기회
   - [ ] 테스트 커버리지

3. **리뷰 결과 형식**
   ```
   ## 코드 리뷰 결과

   ### ✅ 잘된 점
   - ...

   ### ⚠️ 개선 제안
   - 파일명:줄번호 — 문제 설명
     ```언어
     // 개선된 코드
     ```

   ### ❌ 수정 필요
   - 크리티컬 이슈 목록
   ```

## 주의사항
- 비즈니스 로직 변경은 작성자에게 의도 확인 후 코멘트
- 스타일 지적은 린터 설정으로 자동화 권장

🔌 Plugin 설치 — 번들 & 커뮤니티

bash — 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
SECTIONO6

보안 & 인증 완전 가이드

🔑 Gateway 토큰 — 핵심 인증 메커니즘

Gateway 토큰은 Control UI 및 모든 API 클라이언트가 Gateway에 접근하기 위한 Bearer 토큰입니다. 온보딩 시 자동 생성되어 ~/.openclaw/.env에 저장됩니다.

bash — Gateway 토큰 관리
# 현재 토큰 확인
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를 제어하는 것을 방지하는 일회성 승인 절차입니다.

1
페어링 요청 화면
브라우저에서 “장치 페어링 필요” 메시지와 함께 UUID 표시됨. 예: b786149e-492d-431e-b696-e0d93f02d0e5
2
대기 중인 기기 확인
openclaw devices list — 승인 대기 중인 장치 목록 확인
3
승인
openclaw devices approve [UUID] — 브라우저에 표시된 UUID 입력
4
브라우저에서 재연결
승인 후 브라우저에서 “연결” 버튼 클릭 → Control UI 진입 완료
bash — 장치 관리 명령어
# 승인 대기 중인 장치 목록
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"]'
WhatsApp국제 전화번호: "+821012345678"openclaw config set channels.whatsapp.allowFrom '["+821012345678"]'
DiscordUser ID: "숫자ID"openclaw config set channels.discord.allowUsers '["User#1234"]'
SlackMember ID: "U1234567890"openclaw config set channels.slack.allowFrom '["U1234567890"]'

🌐 원격 접근 옵션 비교

방식보안설정 난이도추천도
Tailscale최고 (WireGuard VPN)낮음 (5분)★★★ 강력 추천
Cloudflare Tunnel높음 (Zero Trust)중간★★☆ 추천
Nginx + SSL높음 (기본 HTTPS)중간★★☆ 추천
직접 포트 포워딩낮음 (포트 노출)낮음★☆☆ 비권장
bash — Tailscale 원격 접근 설정
# 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
SECTIONO7

Automation — 스케줄 · Standing Orders · Hooks

OpenClaw의 자동화 시스템은 네 가지 레이어로 구성됩니다.

⏱️ Scheduled Tasks (Cron)
cron 표현식으로 정해진 시간에 에이전트 작업 실행. “매일 오전 9시에 날씨 + 뉴스 요약”, “매주 월요일에 주간 보고서 생성”
📋 Standing Orders
특정 조건이 감지될 때마다 자동 실행되는 상시 지시. “코드 에러 로그가 오면 즉시 분석”, “특정 키워드가 포함된 메시지 자동 처리”
⚡ Background Tasks
사용자 요청 없이 백그라운드에서 실행. 장시간 처리 작업, 데이터 수집, 파일 처리. 완료 시 채널로 알림 전송.
🔗 Hooks
Gateway 이벤트에 반응하는 트리거. 메시지 수신, 세션 시작/종료, 에러 발생, 채널 연결/해제 등 이벤트에 커스텀 동작 바인딩.
json5 — openclaw.json Automation 완전 설정
{
  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: "새 대화가 시작됐습니다. 간단한 인사와 도움 가능한 내용을 한국어로 안내해줘."
      }
    }
  }
}
bash — 채팅에서 자연어로 스케줄 등록
# 채팅에서 직접 자동화 등록 (자연어 지시)
사용자: "매일 오전 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
SECTIONO8

Control UI — 대시보드 완전 활용

Control UI는 http://서버IP:18789에서 접근하는 브라우저 기반 대시보드입니다. Gateway의 모든 기능을 시각적으로 관리합니다.

🗂️ 메뉴 구성 완전 가이드

메뉴기능주요 활용
Chat에이전트와 직접 대화. 세션 기록 조회. 모델 실시간 전환기본 기능 테스트, 빠른 작업 지시
Sessions모든 채널별 세션 목록. 대화 히스토리. 세션 종료/재개채널별 대화 관리, 히스토리 검토
Settings → Model ProvidersProvider 추가/편집. 모델 목록 등록. 가격 카탈로그Ollama 모델 등록, API Key 관리
Settings → Channels채널 연결 상태 확인. 토큰 갱신. allowlist 편집Telegram/Discord 채널 관리
Settings → MCPMCP 서버 추가/제거. 연결 상태 확인. 도구 목록 조회외부 서비스 연동 관리
Settings → Security장치 관리. 토큰 재발급. allowlist 글로벌 설정보안 감사, 미인가 기기 차단
NodesiOS/Android 모바일 노드 페어링 및 관리모바일 기기 연결, 카메라·음성 기능
Automation스케줄 작업 목록. 실행 기록. 활성화/비활성화자동화 작업 관리
💡
Control UI 빠른 접속 명령어

openclaw dashboard — 기본 브라우저에서 Control UI 자동 열기

openclaw dashboard --no-open — URL과 토큰만 출력 (원격 서버에서 유용)

출력된 URL에는 토큰이 쿼리 파라미터로 포함되어 있어 클릭 한 번으로 자동 로그인됩니다.

SECTIONO9

트러블슈팅 완전판 & 운영 팁

❌ 공통 오류 해결 모음

오류 메시지원인해결 방법
Unknown model: openai/gemma4:e4b모델 지정 시 provider prefix 누락 → 기본값 openai 자동 부여openclaw config set agents.defaults.model "ollama/gemma4:e4b"
mutually exclusive network_mode and networksDocker Compose에서 network_mode와 networks 동시 선언cli 서비스에서 networks: 항목 삭제
Connection refused :11434Ollama가 외부 바인딩 안 됨 또는 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 설정

📋 로그 분석 & 진단 명령어

bash — 진단 & 디버그 명령어 완전판
# ── 로그 조회 ──────────────────────────────────────────
# 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  # 시스템 전체 점검 리포트 생성

🔄 안전한 업데이트 절차

bash — 업데이트 (NPM) / Docker Compose
# ── 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

💾 설정 백업 & 마이그레이션

bash — 설정 백업 & 복원
# ── 설정 백업 ─────────────────────────────────────────
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 → 채널 재연결 확인
📋 OpenClaw 심화편 핵심 요약
  • 아키텍처: Gateway 중심 구조. 모든 채널·에이전트·클라이언트의 단일 제어 포인트
  • 온보딩: LAN 바인딩(Docker 필수) · provider/model 형식 · Hatch later(Docker) · auth 볼륨 영속화
  • 모델: 50+ Provider 지원 · provider/model prefix 필수 · 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에서 항상 최신 정보를 확인하세요.

Leave a reply

Please enter your comment!
Please enter your name here