Sign In

설정 시스템

Clawdbot의 설정 파일 구조와 관리 방법
테크권 · Clawdbot 사용 가이드
목차에서 필요한 설정을 찾으세요. 브라우저 설정은 전체 설정 예제에, 보안 설정은 별도 보안 개요에 연결됩니다.
기존 문서의 설정 예시입니다. 사용 중인 버전의 공식 문서를 확인하세요. 모바일에서는 넓은 표와 코드를 좌우로 밀어 확인하세요.

📋 목록

📁 설정 파일 위치

기본 경로

플랫폼
기본 경로
설명
macOS
~/.clawdbot/
사용자 홈 디렉토리
Linux
~/.clawdbot/
사용자 홈 디렉토리
Windows
%APPDATA%\clawdbot\
사용자 앱 데이터 디렉토리
Docker
/root/.clawdbot/
컨테이너 내

설정 파일 구조

~/.clawdbot/
├── clawdbot.json          # 메인 설정 파일
├── credentials/             # API 키 및 채널 크레덴셜
│   ├── anthropic.json
│   ├── openai.json
│   ├── whatsapp.json
│   ├── telegram.json
│   └── ...
├── channels/               # 채널별 설정
│   ├── whatsapp/
│   │   ├── allowlist.json
│   │   └── session.json
│   ├── telegram/
│   └── ...
├── gateway/               # Gateway 전용 설정
│   ├── tls/
│   │   ├── cert.pem
│   │   └── key.pem
│   └── state.json
└── logs/                  # 로그 파일들

🎨 설정 구조

메인 설정 파일 (clawdbot.json)

{
  // ========== 게이트웨이 설정 ==========
  gateway: {
    port: 18789,                    // WebSocket 서버 포트
    bind: "loopback",               // 바인드 주소
    host: "127.0.0.1",             // 호스트 주소 (선택적)
    controlUi: true,                // 웹 UI 활성화
    controlUiPort: 18792,           // 웹 UI 포트
    auth: {
      mode: "password",              // 인증 모드: password, token, none
      password: "secure-password"      // mode="password" 시 필요
      // 또는
      // token: "auth-token-xyz123"   // mode="token" 시 필요
    },
    tls: {
      enabled: true,                 // TLS 활성화
      certPath: "~/.clawdbot/gateway/tls/cert.pem",
      keyPath: "~/.clawdbot/gateway/tls/key.pem",
      caPath: "~/.clawdbot/gateway/tls/ca.pem",  // 선택적
      autoGenerate: true             // 자체 서명 인증서 자동 생성
    },
    tailscale: {
      enabled: true,                 // Tailscale 통합 활성화
      allowTailscale: true         // Tailscale IP 자동 인증 허용
    },
    remote: {
      enabled: false,                // 원격 Gateway 활성화
      url: "ws://remote-host:18789"  // 원격 Gateway URL
      auth: {
        token: "remote-auth-token"   // 원격 Gateway 인증 토큰
      }
    }
  },

  // ========== 에이전트 설정 ==========
  agent: {
    model: "anthropic/claude-opus-4-5",  // 기본 모델
    thinkingLevel: "high",              // 사고 레벨: low, medium, high
    temperature: 0.7,                 // 온도 (0.0 ~ 1.0)
    maxTokens: 100000,                // 최대 토큰 수
    workspace: "~/clawd",              // 워크스페이스 경로
    systemPrompt: "~/.clawdbot/system.md",  // 시스템 프롬프트 (선택적)
    persona: "~/.clawdbot/persona.md",    // 페르소나 설정 (선택적)
    memory: {
      enabled: true,                 // 메모리 기능 활성화
      maxEntries: 1000,             // 최대 기록 수
      compaction: true               // 기록 압축 활성화
    }
  },

  // ========== 채널 설정 ==========
  channels: {
    // WhatsApp
    whatsapp: {
      enabled: true,
      dmPolicy: "pairing",            // DM 정책: pairing, open
      allowFrom: ["+1234567890", "*"],  // 연결 허용
      groupPolicy: {
        mode: "mention",            // 그룹 정책: mention, always
        mentions: ["clawdbot", "@clawdbot"]
      },
      replyTag: "[clawdbot]",          // 리플 태그
      maxAttachments: 10               // 최대 첨부 수
    },

    // Telegram
    telegram: {
      enabled: true,
      botToken: "123456:ABCDEF1234...",
      dmPolicy: "open",
      groupPolicy: {
        mode: "mention",
        mentions: ["clawdbot_bot", "@clawdbot_bot"]
      },
      inlineMode: false,
      webhookUrl: "https://your-domain.com/webhook"
    },

    // Slack
    slack: {
      enabled: true,
      token: "xoxb-1234567890-ABCDEF...",
      dm: {
        policy: "open",
        allowFrom: ["U1234567890", "*"]
      },
      appLevelToken: "xapp-...",
      signingSecret: "..."
    },

    // Discord
    discord: {
      enabled: true,
      token: "MTIyNzE1234...",
      dm: {
        policy: "open",
        allowFrom: ["1234567890123456789", "*"]
      },
      commandPrefix: "!",
      intents: ["guilds", "messages", "message_content"]
    },

    // Google Chat
    googlechat: {
      enabled: false,
      clientId: "...",
      clientSecret: "...",
      redirectUri: "https://your-domain.com/callback"
    },

    // Signal
    signal: {
      enabled: false,
      phoneNumber: "+1234567890",
      groupPolicy: {
        mode: "always"
      }
    },

    // iMessage
    imessage: {
      enabled: false,
      dmPolicy: "open",
      groupPolicy: {
        mode: "always"
      }
    },

    // WebChat
    webchat: {
      enabled: true,
      corsOrigins: ["https://your-domain.com"],
      allowAnonymous: true
    }
  },

  // ========== 브라우저 설정 ==========
  browser: {
    enabled: true,
    controlUrl: "http://127.0.0.1:18791",
    color: "#FF4500",
    headless: false,
    userDataDir: "~/.clawdbot/browser"
  },

  // ========== 캔버스 설정 ==========
  canvas: {
    enabled: true,
    port: 18793,
    host: "127.0.0.1",
    maxCanvasSize: 10485760,    // 10MB
    enableSnapshots: true
  },

  // ========== 샌드박스 설정 ==========
  sandbox: {
    mode: "non-main",              // none, non-main, all
    allowlist: [
      "bash",
      "process",
      "read",
      "write",
      "edit",
      "sessions_list",
      "sessions_history"
    ],
    denylist: [
      "browser",
      "canvas",
      "nodes",
      "cron",
      "discord",
      "slack",
      "gateway"
    ],
    dockerImage: "clawdbot/sandbox:latest",
    dockerTimeout: 300,             // 5분
    hostVolumePath: "/workspace"
  },

  // ========== 로깅 설정 ==========
  logging: {
    level: "info",                 // debug, info, warn, error
    file: {
      enabled: true,
      path: "~/.clawdbot/logs",
      maxSize: "100MB",
      maxFiles: 10
    },
    console: {
      enabled: true,
      colorize: true
    }
  },

  // ========== 세션 설정 ==========
  sessions: {
    maxSessions: 100,             // 최대 세션 수
    compaction: true,              // 기록 압축 활성화
    maxHistory: 1000,             // 최대 기록 수
    compactionThreshold: 10000,     // 압축 임계값
    compactionAfter: 3600,         // 1시간 후 압축
    autoExpire: false,            // 자동 만료 비활성화
    maxAge: 604800               // 7일 (초)
  },

  // ========== 에이전트 바인딩 ==========
  agents: {
    bindings: {
      // 채널:계정:피어 → 워크스페이스
      "whatsapp:+1234567890": "main",
      "whatsapp:+9876543210": "personal",
      "telegram:@clawdbot_bot": "main",
      "discord:server:123456789": "work",
      "slack:workspace:U1234567890": "main"
    },

    // 다중 워크스페이스
    workspaces: {
      "main": "~/clawd",
      "personal": "~/clawd-personal",
      "work": "~/clawd-work"
    },

    // 에이전트별 설정
    defaults: {
      thinkingLevel: "medium",
      temperature: 0.7,
      maxTokens: 100000
    }
  },

  // ========== 자동화 설정 ==========
  automation: {
    cron: {
      enabled: true,
      timezone: "UTC"
    },
    webhooks: {
      enabled: true,
      verifySecret: true
    },
    gmail: {
      enabled: false,
      watchInbox: false
    }
  },

  // ========== 피처 플래그 ==========
  features: {
    backgroundSync: true,           // 백그라운드 동기화
    presence: true,                // 프레즌스 기능
    voiceWake: true,               // 음성 웨이크
    metrics: false,                // 메트릭 수집
    analytics: false               // 분석 수집
  }
}

🔧 게이트웨이 설정

포트 및 바인딩

{
  gateway: {
    port: 18789,                    // 기본 포트
    bind: "loopback",               // 루프백만 허용
    // 또는
    // bind: "0.0.0.0"              // 모든 인터페이스 허용
  }
}

인증 설정

{
  gateway: {
    auth: {
      mode: "password",              // password, token, none
      password: "secure-password"      // mode="password" 시 필요
      // 또는
      // token: "auth-token-xyz123"   // mode="token" 시 필요
    }
  }
}

TLS 설정

{
  gateway: {
    tls: {
      enabled: true,                 // TLS 활성화
      certPath: "~/.clawdbot/gateway/tls/cert.pem",
      keyPath: "~/.clawdbot/gateway/tls/key.pem",
      caPath: "~/.clawdbot/gateway/tls/ca.pem",  // 선택적
      autoGenerate: true             // 자체 서명 인증서 자동 생성
    }
  }
}

📱 채널 설정

WhatsApp 설정

{
  channels: {
    whatsapp: {
      enabled: true,
      dmPolicy: "pairing",            // pairing, open
      allowFrom: ["+1234567890", "*"],  // "*": 모든 연결 허용
      groupPolicy: {
        mode: "mention",            // mention, always
        mentions: ["clawdbot", "@clawdbot"]
      },
      replyTag: "[clawdbot]",          // 리플 태그
      maxAttachments: 10               // 최대 첨부 수
    }
  }
}

Telegram 설정

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "123456:ABCDEF1234...",
      dmPolicy: "open",
      groupPolicy: {
        mode: "mention",
        mentions: ["clawdbot_bot", "@clawdbot_bot"]
      },
      inlineMode: false,
      webhookUrl: "https://your-domain.com/webhook"
    }
  }
}

채널별 공통 설정

{
  channels: {
    [channel-name]: {
      enabled: true,                  // 채널 활성화
      dmPolicy: "pairing",            // DM 정책
      allowFrom: ["user1", "*"],    // 연결 허용
      groupPolicy: {
        mode: "mention",            // 그룹 정책
        mentions: ["bot-name"]
      }
    }
  }
}

🤖 에이전트 설정

기본 에이전트 설정

{
  agent: {
    model: "anthropic/claude-opus-4-5",  // 기본 모델
    thinkingLevel: "high",              // 사고 레벨: low, medium, high
    temperature: 0.7,                 // 온도 (0.0 ~ 1.0)
    maxTokens: 100000,                // 최대 토큰 수
    workspace: "~/clawd"               // 워크스페이스 경로
  }
}

다중 워크스페이스

{
  agents: {
    bindings: {
      // 채널:계정:피어 → 워크스페이스
      "whatsapp:+1234567890": "main",
      "whatsapp:+9876543210": "personal",
      "telegram:@clawdbot_bot": "main",
      "discord:server:123456789": "work"
    },

    // 다중 워크스페이스
    workspaces: {
      "main": "~/clawd",
      "personal": "~/clawd-personal",
      "work": "~/clawd-work"
    },

    // 에이전트별 기본 설정
    defaults: {
      thinkingLevel: "medium",
      temperature: 0.7,
      maxTokens: 100000
    }
  }
}

🛠 샌드박스 설정

샌드박스 모드

{
  sandbox: {
    mode: "non-main",              // none, non-main, all
    allowlist: [
      "bash",
      "process",
      "read",
      "write",
      "edit",
      "sessions_list",
      "sessions_history"
    ],
    denylist: [
      "browser",
      "canvas",
      "nodes",
      "cron",
      "discord",
      "slack",
      "gateway"
    ],
    dockerImage: "clawdbot/sandbox:latest",
    dockerTimeout: 300,             // 5분
    hostVolumePath: "/workspace"
  }
}

도구 권한

도구 그룹
포함 도구
비-Main 허용
파일
read, write, edit, list, delete
✅
프로세스
process, bash
✅
세션
sessions_list, sessions_history
✅
브라우저
browser.*
❌
Canvas
canvas.*
❌
노드
camera.*, screen.*, location.*
❌
자동화
cron.*, webhook.*
❌
Gateway
gateway.*
❌
채널
discord.*, slack.*
❌

🔍 설정 관리 명령어

설정 조회

# 전체 설정 조회
clawdbot config get

# 특정 설정 조회
clawdbot config get agent.model

# 중첩 설정 조회
clawdbot config get channels.whatsapp.enabled

# 스키마 조회
clawdbot config get --schema

설정 변경

# 설정 변경
clawdbot config set agent.model "anthropic/claude-opus-4-5"

# 중첩 설정 변경
clawdbot config set channels.whatsapp.dmPolicy "open"

# 복수 설정 변경
clawdbot config set sandbox.allowlist '["bash","read","write"]'

# 설정 삭제
clawdbot config set channels.whatsapp.dmPolicy null

설정 편집

# 설정 편집기 열기
clawdbot config edit

# 특정 파일 편집
clawdbot config edit channels

설정 검증

# 설정 검증
clawdbot config validate

# 스키마 검증
clawdbot config validate --schema

🔗 관련 문서