튜토리얼 카테고리 Skills 소개
ZH EN JA KO
고급 활용

OpenClaw 다중 사용자 및 팀 관리 튜토리얼

· 20 분 소요

서문

OpenClaw가 더 이상 개인 전용이 아니라 전체 팀에 서비스를 제공해야 할 때, 사용자 관리, 권한 제어, 리소스 할당 등의 문제를 고려해야 합니다. 본 글에서는 OpenClaw를 개인 도구에서 팀 수준의 AI 어시스턴트 플랫폼으로 업그레이드하는 방법을 소개합니다.

1. 다중 사용자 아키텍처 개요

OpenClaw의 다중 사용자 아키텍처는 다음 핵심 개념을 기반으로 합니다:

┌──────────────────────────────────────────┐
│            OpenClaw Gateway              │
│                (:18789)                  │
├──────────────────────────────────────────┤
│           사용자 관리 모듈                  │
│  ┌──────┐  ┌──────┐  ┌──────┐           │
│  │Admin │  │User A│  │User B│  ...      │
│  │(관리) │  │(일반) │  │(일반) │           │
│  └──────┘  └──────┘  └──────┘           │
├──────────────────────────────────────────┤
│  공유 스킬풀 │  개인 스킬 영역 │  모델 할당량 관리 │
├──────────────────────────────────────────┤
│         채널 계층 (각 사용자별 독립 세션)       │
│  WhatsApp │ Telegram │ Discord │ Slack   │
└──────────────────────────────────────────┘

2. 다중 사용자 모드 활성화

2.1 기본 설정

// ~/.config/openclaw/openclaw.json5
{
  "multiUser": {
    "enabled": true,
    // 사용자 데이터 저장 디렉토리
    "dataDir": "/var/lib/openclaw/users",
    // 사용자 인증 방식
    "authMethod": "token",
    // 기본 사용자 역할
    "defaultRole": "user",
    // 셀프 등록 허용
    "selfRegistration": false
  }
}

2.2 관리자 계정 생성

# 다중 사용자 모드 초기화
openclaw onboard --multi-user

# 관리자 생성
openclaw user create \
  --username admin \
  --role admin \
  --email [email protected]

# 시스템이 API Token을 생성합니다. 안전하게 보관하세요
# Token: oc_admin_a1b2c3d4e5f6...

2.3 일반 사용자 추가

# 일반 사용자 생성
openclaw user create \
  --username alice \
  --role user \
  --email [email protected]

# 모든 사용자 목록 확인
openclaw user list

출력 예시:

┌──────────┬─────────┬──────────────────────┬─────────┐
│ Username │ Role    │ Email                │ Status  │
├──────────┼─────────┼──────────────────────┼─────────┤
│ admin    │ admin   │ [email protected]    │ active  │
│ alice    │ user    │ [email protected]    │ active  │
│ bob      │ user    │ [email protected]      │ active  │
└──────────┴─────────┴──────────────────────┴─────────┘

3. 사용자 격리 메커니즘

3.1 대화 격리

각 사용자의 대화 기록은 완전히 독립적이며 서로 볼 수 없습니다:

{
  "multiUser": {
    "isolation": {
      // 대화 기록 격리
      "conversations": true,
      // 사용자 환경 설정 격리
      "preferences": true,
      // 커스텀 프롬프트 격리
      "systemPrompts": true
    }
  }
}

3.2 데이터 저장 구조

/var/lib/openclaw/users/
├── admin/
│   ├── conversations/
│   ├── preferences.json
│   └── skills/           # 개인 스킬
├── alice/
│   ├── conversations/
│   ├── preferences.json
│   └── skills/
└── bob/
    ├── conversations/
    ├── preferences.json
    └── skills/

3.3 채널에서 사용자로의 매핑

각 채널의 사용자를 OpenClaw 내부 사용자에 매핑해야 합니다:

{
  "multiUser": {
    "channelMapping": {
      "telegram": {
        // Telegram 사용자 ID -> OpenClaw 사용자명
        "123456789": "alice",
        "987654321": "bob"
      },
      "whatsapp": {
        // WhatsApp 번호 -> OpenClaw 사용자명
        "+8613800138000": "alice",
        "+8613900139000": "bob"
      },
      "discord": {
        // Discord 사용자 ID -> OpenClaw 사용자명
        "1234567890": "alice"
      }
    },
    // 매핑되지 않은 사용자 처리 방식
    "unmappedUserPolicy": "create_auto"  // auto | reject | guest
  }
}

4. 역할 및 권한 관리

4.1 내장 역할

역할 권한 적합한 시나리오
admin 모든 권한 시스템 관리자
manager 사용자 관리 + 설정 팀 리더
user 일반 사용 일반 팀 구성원
guest 제한된 사용 임시 사용자

4.2 권한 상세 목록

{
  "roles": {
    "admin": {
      "permissions": [
        "user.create", "user.delete", "user.modify",
        "config.modify", "skill.manage",
        "model.all", "channel.manage",
        "stats.view", "logs.view"
      ]
    },
    "manager": {
      "permissions": [
        "user.create", "user.modify",
        "skill.manage", "model.all",
        "stats.view"
      ]
    },
    "user": {
      "permissions": [
        "chat.send", "chat.history",
        "skill.use", "model.allowed",
        "preference.modify"
      ]
    },
    "guest": {
      "permissions": [
        "chat.send"
      ],
      "restrictions": {
        "maxMessagesPerDay": 50,
        "maxConversationLength": 10
      }
    }
  }
}

4.3 커스텀 역할

# 커스텀 역할 생성
openclaw role create developer \
  --permissions "chat.send,chat.history,skill.use,skill.create,model.all"

# 사용자에게 역할 할당
openclaw user modify alice --role developer

5. 모델 할당량 관리

5.1 사용자별 할당량 설정

{
  "quotas": {
    "default": {
      "dailyMessages": 200,
      "dailyTokens": 500000,
      "maxTokensPerMessage": 4096,
      "allowedModels": ["claude-sonnet-4-20250514", "gpt-4o-mini"]
    },
    "users": {
      "alice": {
        "dailyMessages": 500,
        "dailyTokens": 1000000,
        "allowedModels": ["claude-sonnet-4-20250514", "claude-opus-4-20250514", "gpt-4o"]
      },
      "bob": {
        "dailyMessages": 100,
        "dailyTokens": 200000,
        "allowedModels": ["claude-sonnet-4-20250514"]
      }
    }
  }
}

5.2 역할별 할당량 설정

{
  "quotas": {
    "byRole": {
      "admin": {
        "dailyMessages": -1,     // -1은 무제한
        "dailyTokens": -1,
        "allowedModels": ["*"]   // 모든 모델
      },
      "user": {
        "dailyMessages": 200,
        "dailyTokens": 500000,
        "allowedModels": ["claude-sonnet-4-20250514", "gpt-4o-mini"]
      },
      "guest": {
        "dailyMessages": 20,
        "dailyTokens": 50000,
        "allowedModels": ["gpt-4o-mini"]
      }
    }
  }
}

5.3 할당량 사용량 확인

# 모든 사용자의 할당량 사용 현황 확인
openclaw user stats

# 출력 예시:
# ┌──────────┬──────────┬──────────┬─────────────┐
# │ User     │ Messages │ Tokens   │ Quota Used  │
# ├──────────┼──────────┼──────────┼─────────────┤
# │ alice    │ 156/500  │ 342K/1M  │ 34.2%       │
# │ bob      │ 89/100   │ 178K/200K│ 89.0%       │
# └──────────┴──────────┴──────────┴─────────────┘

# 개별 사용자의 상세 사용 통계 확인
openclaw user stats alice --detail

5.4 할당량 초과 처리

{
  "quotas": {
    "onExceeded": {
      // 초과 시 응답 메시지
      "message": "오늘의 사용 할당량이 소진되었습니다. 내일 다시 시도해 주세요. 추가 할당량이 필요하면 관리자에게 문의하세요.",
      // 관리자에게 알림 여부
      "notifyAdmin": true,
      // 더 저렴한 모델로 다운그레이드 허용 여부
      "fallbackToFreeModel": true,
      "fallbackModel": "gpt-4o-mini"
    }
  }
}

6. 공유 스킬 vs 개인 스킬

6.1 스킬 디렉토리 구조

~/.openclaw/
├── skills/                    # 전역 공유 스킬
│   ├── translator.SKILL.md
│   ├── code-review.SKILL.md
│   └── meeting-notes.SKILL.md
└── users/
    ├── alice/
    │   └── skills/            # Alice의 개인 스킬
    │       └── my-custom.SKILL.md
    └── bob/
        └── skills/            # Bob의 개인 스킬
            └── data-analysis.SKILL.md

6.2 스킬 권한 설정

{
  "skills": {
    "shared": {
      "path": "~/.openclaw/skills",
      // 모든 사용자 사용 가능
      "accessLevel": "all"
    },
    "private": {
      // 각 사용자에게 자신만의 스킬 디렉토리
      "pathTemplate": "~/.openclaw/users/{{username}}/skills",
      "accessLevel": "owner"
    },
    // 스킬 관리 권한
    "management": {
      "createShared": ["admin", "manager"],
      "createPrivate": ["admin", "manager", "user"],
      "deleteShared": ["admin"],
      "deletePrivate": ["admin", "owner"]
    }
  }
}

6.3 팀 공유 스킬 예시

<!-- ~/.openclaw/skills/team-qa.SKILL.md -->
# 팀 Q&A 어시스턴트

당신은 팀 내부의 Q&A 어시스턴트로, 회사 정책, 프로세스 및 기술 규범에 관한 질문에 답변하는 역할을 합니다.

## 지식베이스
- /data/company-docs/ 디렉토리의 문서 참조
- 최신 버전의 문서를 우선 사용

## 답변 규범
- 구체적인 문서 이름과 섹션을 인용
- 확실하지 않으면 명확히 밝히고 담당자에게 문의를 권장
- 기밀 정보는 그룹에서 공개하지 않음

7. 사용 통계 분석

7.1 통계 수집 설정

{
  "analytics": {
    "enabled": true,
    "storage": "sqlite",
    "dbPath": "/var/lib/openclaw/analytics.db",
    "retention": "90d",   // 데이터 90일 보존
    "collect": {
      "messageCount": true,
      "tokenUsage": true,
      "modelUsage": true,
      "responseTime": true,
      "skillUsage": true,
      "channelUsage": true
    }
  }
}

7.2 통계 보고서 확인

# 전체 사용 현황 확인
openclaw dashboard

# 지정 기간의 통계 확인
openclaw stats --from 2026-04-01 --to 2026-04-08

# CSV 보고서 내보내기
openclaw stats --export csv --output /tmp/openclaw-stats.csv

7.3 API를 통한 통계 조회

# 사용자별 사용 순위 조회
curl -s http://localhost:18789/api/v1/admin/stats/users \
  -H "Authorization: Bearer ADMIN_TOKEN" | jq .

# 모델 사용 통계 조회
curl -s http://localhost:18789/api/v1/admin/stats/models \
  -H "Authorization: Bearer ADMIN_TOKEN" | jq .

8. 팀 배포 모범 사례

8.1 배포 체크리스트

□ 다중 사용자 모드 활성화 및 관리자 생성
□ 각 팀 구성원에 대한 계정 생성 및 역할 할당
□ 적절한 사용 할당량 설정
□ 팀 공유 스킬 생성
□ 채널에서 사용자로의 매핑 설정
□ 사용 통계 및 모니터링 설정
□ 사용 규범 수립 및 팀에 공지
□ 정기적으로 사용 현황 및 할당량 검토

8.2 보안 권장사항

조치 중요도 설명
정기적 API Token 교체 높음 90일마다 교체
감사 로그 활성화 높음 모든 관리 작업 기록
최소 권한 원칙 높음 필요한 권한만 부여
민감 정보 필터링 보통 AI의 민감 데이터 유출 방지
정기적 사용자 목록 검토 보통 퇴직자 즉시 삭제
할당량 알림 보통 80% 초과 시 관리자 알림

8.3 용량 계획

팀 규모 권장 사양 월 예산 참고
5명 이하 1코어 2G VPS $50-100
5-20명 2코어 4G VPS $100-300
20-50명 4코어 8G VPS $300-800
50명 이상 클러스터 배포 $800+

8.4 사용자 관리 명령어 빠른 참조

# 사용자 생성
openclaw user create --username NAME --role ROLE --email EMAIL

# 사용자 역할 변경
openclaw user modify USERNAME --role NEW_ROLE

# 사용자 비활성화
openclaw user disable USERNAME

# 사용자 활성화
openclaw user enable USERNAME

# 사용자 삭제
openclaw user delete USERNAME

# 사용자 Token 재설정
openclaw user reset-token USERNAME

# 사용자 상세 정보 확인
openclaw user info USERNAME

# 사용자 일괄 가져오기
openclaw user import --file users.csv

위의 설정을 통해 OpenClaw를 안전하고 효율적인 팀 AI 어시스턴트 플랫폼으로 구축하여 각 구성원이 AI의 강력한 능력을 활용하면서도 우수한 관리 및 제어를 유지할 수 있습니다.

OpenClaw는 무료 오픈소스 개인 AI 어시스턴트로, WhatsApp, Telegram, Discord 등 다양한 플랫폼을 지원합니다