Autonomous Agents

OpenClaw 자율 에이전트 가이드: 아키텍처, Docker 배포 및 비용 분석

### 핵심 요약: OpenClaw란 무엇이며 왜 주목받는가?

OpenClaw는 분리형 Gateway 아키텍처, 20개 이상의 메신저 채널 통합, 컨테이너 기반 샌드박스를 제공하는 오픈소스 자율형 개인 AI 비서입니다. 월 20~50달러의 폐쇄형 SaaS 에이전트와 달리 셀프 호스팅 구독료가 무료($0)이며, LLM API 직결 방식으로 실행당 평균 0.003~0.042달러의 탁월한 가성비를 구현합니다.


1. 개요: 2026년 OpenClaw의 위치와 중요성

2026년 인공지능 에이전트 환경은 일회성 질의응답 창에서 벗어나 24시간 이벤트 기반으로 백그라운드에서 자율 실행되는 루프로 전환되었습니다. Claude Code와 OpenAI Codex가 로컬 개발자 터미널 환경에 집중하는 반면, OpenClaw(구 openclaw.ai)는 20여 개 메신저 연동, 예약형 Cron 작업, 격리된 멀티 에이전트 실행을 지원하는 오픈소스 개인 AI 비서의 표준으로 자리 잡았습니다.

OpenClaw는 3가지 핵심 축으로 설계되었습니다:

  1. 분리형 게이트웨이(Gateway Protocol): 포트 18789에서 동작하며 채널 라우팅, 세션 상태 유지, Cron 스케줄러, 웹훅 수신을 총괄하는 중앙 데몬.
  2. 채널 무관 멀티플랫폼 지원: Telegram, WhatsApp (Baileys), Discord (Bot API + Gateway), Slack (Bolt SDK), Signal, iMessage, Matrix, WebChat 등 20개 이상 플랫폼 기본 내장.
  3. 확장형 스킬 및 샌드박스 보안: ClawHub 레지스트리를 통한 Markdown 기반 스킬 표준(SKILL.md)과 Docker 및 POSIX 권한 격리를 적용한 안전한 셸 실행 환경.

2. OpenClaw 아키텍처: Gateway, 채널 및 워크스페이스

OpenClaw의 강점은 분리된 클라이언트-서버 제어 평면에 있습니다. 핵심 데몬인 OpenClaw Gateway가 WebSocket과 Unix 도메인 소켓을 통해 외부 채널 및 클라이언트와 통신합니다.

+-----------------------------------------------------------------------------------+
|                              외부 메신저 연동 채널                                |
|   Telegram  |  WhatsApp  |  Discord  |  Slack  |  Signal  |  iMessage  |  Matrix  |
+-----------------------------------------------------------------------------------+
                                          | (Webhook / WebSocket / Bot API)
                                          v
+-----------------------------------------------------------------------------------+
|                            OpenClaw Gateway (Port 18789)                          |
|  - DM 페어링 및 화이트리스트 검증 엔진    - 세션 컨텍스트 및 메모리 저장소        |
|  - 정기 Cron 스케줄러 엔진                - 웹훅 인제스천 및 라우팅               |
|  - 무중단 핫 리로드 (Hybrid Watch)        - LLM 모델 장애 조치 및 자동 페일오버   |
+-----------------------------------------------------------------------------------+
       |                                      |                              |
       v                                      v                              v
+------------------+                  +------------------+         +-------------------+
|  Agent: Home     |                  |  Agent: Work     |         |  Agent: DevOps    |
|  - Workspace-Home|                  |  - Workspace-Work|         |  - Workspace-Ops  |
|  - SOUL.md       |                  |  - SOUL.md       |         |  - SOUL.md        |
|  - 개인 일정/CRM |                  |  - Jira / Linear |         |  - 인프라 자동화  |
+------------------+                  +------------------+         +-------------------+
       |                                      |                              |
       +--------------------------------------+------------------------------+
                                          |
                                          v
+-----------------------------------------------------------------------------------+
|                         멀티 에이전트 샌드박스 실행 레이어                        |
|  - Docker 컨테이너 완전 격리 (`mode: non-main` / `mode: all`)                      |
|  - POSIX 권한 박탈 (`cap_drop: ALL`, 비특권 UID 10001)                             |
|  - 읽기 전용 마운트 (`:ro`) 및 Tmpfs 메모리 스토리지 (`/tmp:noexec`)               |
|  - ClawHub 스킬 런타임 (`SKILL.md` 파서, 동적 바이너리 검증)                       |
+-----------------------------------------------------------------------------------+

워크스페이스 파일 구조

모든 에이전트는 ~/.openclaw/ 파일 시스템을 기반으로 구성됩니다:

~/.openclaw/
├── openclaw.json          # 메인 선언적 구성 파일 (JSON5 형식)
├── cron.json              # 등록된 Cron 작업 목록
├── state/                 # SQLite 세션, 키-값 캐시, 인증 토큰
├── skills/                # 전체 공유 글로벌 스킬
└── workspace/             # 기본 에이전트 작업 공간
    ├── AGENTS.md          # 전역 에이전트 규칙 및 행동 지침
    ├── SOUL.md            # 페르소나, 톤앤매너, 윤리적 제약사항
    ├── TOOLS.md           # 로컬 도구 가이드 및 환경 힌트
    └── skills/            # 워크스페이스 전용 스킬
        └── repo-analyzer/
            └── SKILL.md   # 실행 스킬 선언 파일

게이트웨이 운영 핵심 명령어

# Gateway 상태, 포트 바인딩 및 메모리 사용량 확인
openclaw gateway status

# 백그라운드 데몬으로 Gateway 시작
openclaw gateway start

# 상세 디버그 로그와 함께 포그라운드 실행
openclaw gateway --port 18789 --verbose

# 시스템 진단 및 설정 유효성 검사
openclaw doctor

# 파일 권한 및 누락된 디렉터리 자동 복구
openclaw doctor --fix

3. 프로덕션 Docker 자체 호스팅 배포 가이드

AI 에이전트에게 셸 권한을 부여할 때 호스트 머신에서 직접 실행하는 것은 심각한 보안 위험을 초래합니다. Docker Compose를 통한 네트워크 및 권한 분리가 표준입니다.

프로덕션 docker-compose.yml

version: "3.9"

services:
  openclaw-gateway:
    image: ghcr.io/openclaw/openclaw:latest
    container_name: openclaw-gateway
    restart: unless-stopped
    user: "10001:10001"
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    cap_add:
      - CHOWN
      - SETUID
      - SETGID
    environment:
      - NODE_ENV=production
      - OPENCLAW_HOME=/home/openclaw/.openclaw
      - OPENCLAW_STATE_DIR=/home/openclaw/.openclaw/state
      - OPENCLAW_GATEWAY_TOKEN=${OPENCLAW_GATEWAY_TOKEN}
      - OPENCLAW_GATEWAY_PASSWORD=${OPENCLAW_GATEWAY_PASSWORD}
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY}
    volumes:
      - openclaw-config:/home/openclaw/.openclaw
      - openclaw-workspace:/home/openclaw/.openclaw/workspace
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - "127.0.0.1:18789:18789"
    networks:
      - openclaw-net
    healthcheck:
      test: ["CMD", "openclaw", "health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 20s

  openclaw-sandbox:
    image: ghcr.io/openclaw/sandbox-runner:latest
    container_name: openclaw-sandbox
    restart: always
    network_mode: none
    read_only: true
    tmpfs:
      - /tmp:rw,noexec,nosuid,size=256m
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    volumes:
      - openclaw-workspace:/workspace:rw
    environment:
      - RUNNER_UID=10001
      - RUNNER_GID=10001

volumes:
  openclaw-config:
    driver: local
  openclaw-workspace:
    driver: local

networks:
  openclaw-net:
    driver: bridge

프로덕션 openclaw.json 설정

{
  agents: {
    defaults: {
      workspace: "/home/openclaw/.openclaw/workspace",
      model: {
        primary: "anthropic/claude-sonnet-4-6",
        fallbacks: ["deepseek/deepseek-chat", "openai/gpt-5.4"],
      },
      thinking: "high",
      sandbox: {
        mode: "non-main", // off | non-main | all
        scope: "agent",   // session | agent | shared
        dockerImage: "ghcr.io/openclaw/sandbox-runner:latest",
        timeoutSeconds: 300,
        memoryLimitMb: 1024,
      },
    },
    list: [
      {
        id: "main",
        default: true,
        workspace: "/home/openclaw/.openclaw/workspace",
      },
      {
        id: "devops",
        workspace: "/home/openclaw/.openclaw/workspace-devops",
        sandbox: { mode: "all" },
      },
    ],
  },
  channels: {
    telegram: {
      enabled: true,
      botToken: "7123456789:AAFq_example_token_secret",
      dmPolicy: "pairing", // pairing | allowlist | open | disabled
      allowFrom: ["tg:987654321"],
    },
    discord: {
      enabled: true,
      botToken: "MTI4OTexampleDiscordBotToken",
      dmPolicy: "allowlist",
      allowFrom: ["dc:382910394857291029"],
    },
  },
  cron: {
    enabled: true,
    maxConcurrentRuns: 4,
  },
  hotReload: "hybrid",
}

4. 멀티 에이전트 오케스트레이션 및 샌드박스 보안

인바운드 제어(DM Policy) 및 샌드박스 모드

  1. DM 수신 정책:
  • pairing(기본값): 미승인 사용자가 메시지를 보낼 경우 인증 코드를 발송하며, 관리자가 openclaw pairing approve [CODE]로 승인할 때까지 차단합니다.
  • allowlist: 지정된 화이트리스트 계정만 에이전트 호출을 허용합니다.
  • open: 모든 사용자 접근 허용(공개 봇용, sandbox는 all 필수).
  • disabled: 수신 메시지를 차단하고 Cron 알림 발송용으로만 사용합니다.
  1. 샌드박스 모드:
  • off: 호스트 환경에서 직접 실행(최고 속도, 보안 취약).
  • non-main(권장): 메인 에이전트는 일반 환경에서, 서브 에이전트 및 스크립트는 Docker 컨테이너에서 격리 실행.
  • all: 모든 도구 호출을 외부 인터넷이 차단된 컨테이너(network_mode: none)에서 실행.

5. 스킬 엔진 및 ClawHub 생태계

OpenClaw는 Skills를 통해 기능을 무한히 확장합니다. 스킬은 YAML 메타데이터와 Markdown 지침으로 작성된 SKILL.md 파일입니다.

---
name: github-pr-analyzer
description: GitHub 풀 리퀘스트를 분석하고 테스트를 실행한 후 리뷰 요약을 작성합니다.
metadata: {
  "openclaw": {
    "requires": {
      "bins": ["gh", "jq", "git"],
      "env": ["GITHUB_TOKEN"],
      "config": ["sandbox.enabled"]
    },
    "os": ["linux", "darwin"],
    "always": false,
    "primaryEnv": "GITHUB_TOKEN"
  }
}
---

# GitHub PR 분석 스킬

호출 시 수행 단계:
1. `gh pr diff <pr_number>` 명령으로 PR 차이점을 추출합니다.
2. 변경된 파일 목록 및 테스트 커버리지 영향을 평가합니다.
3. 코드 인용과 함께 구조화된 Markdown 리뷰 보고서를 생성합니다.

ClawHub 관리 명령어

# 사용 가능한 스킬 목록 검색
openclaw skills list

# 공식 레지스트리에서 스킬 설치
openclaw skills install web-researcher

# GitHub 저장소에서 직접 스킬 설치
openclaw skills install git:github.com/openclaw-community/postgres-inspector@v1.4.0

# 스킬 서명 및 권한 검증
openclaw skills verify web-researcher

# 설치된 모든 스킬 일괄 업데이트
openclaw skills update --all

6. 벤치마크 평가: SWE-bench, 지연 시간 및 리소스 소비량

평가 항목 / 벤치마크 OpenClaw (Self-Hosted + Sonnet 4.6) Claude Code (공식 CLI) Devin (엔터프라이즈) AutoGen v0.4 (Docker) 상용 SaaS 에이전트
SWE-bench Verified (해결률) 68.4% 72.4% 71.8% 52.1% 41.2%
도구 호출 성공률 94.6% 96.8% 95.2% 84.3% 79.5%
초기 응답 지연 (TTFT) 0.42초 (상주형 Gateway) 1.84초 4.80초 (클라우드 VM 구동) 1.10초 2.45초
대기 상태 메모리 점유 84 MB (Node/Rust 최적화) 해당 없음 (일회성 CLI) 클라우드 관리형 420 MB (Python 엔진) 클라우드 관리형
5개 작업 동시 실행 메모리 340 MB 해당 없음 클라우드 관리형 1,840 MB 클라우드 관리형
샌드박스 구동 오버헤드 180ms (Docker 대기) 없음 (호스트 직접 실행) 독점 가상화 450ms 독점 샌드박스
지원 통신 채널 수 20개 이상 터미널 전용 웹 UI 및 Slack Python API 전용 웹 / Telegram
데이터 주권 및 프라이버시 100% 사내 구축 로컬 / Cloud API 폐쇄형 클라우드 SaaS 100% 사내 구축 폐쇄형 클라우드 SaaS

7. OpenClaw 가격 체계: SaaS 대비 실제 운영 비용

openclaw pricing 검색어가 증명하듯 많은 엔지니어가 OpenClaw의 유료 여부를 확인하고자 합니다.

결론적으로 OpenClaw 소프트웨어 자체는 완전 무료 오픈소스(Apache 2.0 / MIT)입니다. 월 구독료나 시트당 비용은 전혀 없으며, 비용은 다음 2가지로만 구성됩니다:

  1. 호스팅 인프라: VPS 서버 비용(월 4~15달러 수준).
  2. LLM 모델 API 요금: Anthropic, OpenAI, DeepSeek 등에 직접 지불하는 종량제 비용.

1,000회 실행 시 비용 비교

플랫폼 모델 월 기본 구독료 과금 방식 단순 질의 1회 비용 복잡한 태스크 1회 (코드 감사) 월 500회 실행 예상 총액
OpenClaw (DeepSeek V4) $0.00 직접 API ($0.14 / $0.28 per 1M) $0.0008 $0.012 $6.40 ($5 VPS 포함)
OpenClaw (Claude Sonnet 4.6) $0.00 직접 API ($3.00 / $15.00 per 1M) $0.0042 $0.058 $29.50 ($5 VPS 포함)
Claude Code (Anthropic) $0.00 (Max 플랜 필요) 월 $20부터 + API 초과분 $0.0042 $0.058 $45.00 – $80.00
Devin Enterprise 좌석당 월 $500.00 포함된 ACU + 추가 요금 좌석 요금에 포함 좌석 요금에 포함 $500.00+
상용 SaaS 에이전트 봇 월 $20.00 – $50.00 쿼리 한도 초과 시 제한 쿼리 차감 한도 조기 소진 $20.00 – $100.00

8. 운영 관리 및 트러블슈팅

# 게이트웨이 및 세션 상태 확인
openclaw gateway status

# 실시간 로그 스트리밍
openclaw logs --follow --lines 50

# 설정 구문 무결성 검증
openclaw config validate

# 깊은 사고 모드로 에이전트 태스크 수행
openclaw agent --message "현재 코드베이스의 종속성 보안 취약점을 감사하라" --thinking high

# 승인된 텔레그램으로 완료 메시지 발송
openclaw message send --target "tg:987654321" --message "자동 배포가 성공적으로 완료되었습니다."

주요 문제 해결

  1. 포트 충돌 (EADDRINUSE 18789): 기존 프로세스가 점유 중입니다. openclaw gateway stop 또는 kill -9 $(lsof -t -i :18789)로 종료하십시오.
  2. 텔레그램 충돌 (409 Conflict): 동일 토큰으로 여러 컨테이너가 실행 중입니다. 하나의 인스턴스만 유지하십시오.
  3. 워크스페이스 권한 거부 (EACCES): 컨테이너 UID 불일치 문제입니다. chown -R 10001:10001 ~/.openclaw/workspace를 실행하십시오.

9. 결론 및 도입 제안

OpenClaw는 단순 터미널 CLI와 고가의 블랙박스 클라우드 SaaS 에이전트 사이의 간극을 완벽히 메웁니다. 24시간 자율 운영, 철저한 사내 데이터 격리, 80% 이상의 비용 절감을 원하는 팀에게 Docker 기반 OpenClaw 자체 구축을 강력히 권장합니다.

← 전체 아티클
0 / 4