johnson7788/MultiUserClaw
目前OpenClaw和NanoBot都是用于个人的,不太支持多用户,基于多用户重新修改Bot,没有对Openclaw进行任何更改,原生能力封装
MultiUserClaw – Hermes Agent 기반 다중 테넌트 AI SaaS 플랫폼
무엇인가요
- 동일한 서버에서 여러 고객을 위한 고립된 AI 어시스턴트(에이전트)를 실행할 수 있는 완전한 웹 기반 SaaS 프레임워크입니다.
- 각 사용자는 고유의 Docker 컨테이너를 가지며, Hermes 기반 AI 에이전트 런타임을 실행합니다. 컨테이너는 필요 시 생성되며, 비활성 상태에서는 일시 중지되며, 수주간 사용하지 않으면 아카이브할 수 있습니다.
- 플랫폼은 미리 준비된 프론트엔드, FastAPI 게이트웨이, PostgreSQL 스토어, 그리고 즉시 사용 가능한 기능들(지식 기반, 스킬 스토어, cron 작업, 다중 채널 봇, API 토큰 등)을 제공합니다.
주요 구성 요소
| 구성 요소 | 역할 |
|---|---|
| 프론트엔드 (Vite + React) | 사용자가 상호작용하는 SPA – 로그인, 채팅, 스킬 스토어, 관리자 페이지. |
| 플랫폼 게이트웨이 (FastAPI) | 인증(JWT), Docker 컨테이너 관리, LLM 프록시(API 키 삽입), 할당량 추적, 이전 OpenClaw API와의 호환성 레이어. |
| Hermes 에이전트 컨테이너 (Python) | 실제 AI 에이전트를 실행합니다. 세션, 도구 호출, 스킬, 파일 워크스페이스 등을 처리하는 HTTP + SSE API(포트 18080)를 노출합니다. |
| PostgreSQL | 사용자 계정, 컨테이너 메타데이터, 사용 로그, 할당량을 저장합니다. |
| Docker Compose | 서비스를 오케스트레이션하고 사용자당 별도의 컨테이너를 생성합니다. |
메시지 흐름
- 사용자가 브라우저에 입력 → 프론트엔드가
/api/...로 WebSocket 요청을 보냅니다. - 게이트웨이가 JWT를 인증하고 사용자 컨테이너를 찾거나 시작한 후, WebSocket을 해당 컨테이너 내의 Hermes API로 프록시합니다.
- Hermes가 메시지를 처리하고, 도구나 스킬을 호출할 수 있으며, 언어 모델이 필요할 경우 게이트웨이의
/llm/v1/chat/completions엔드포인트를 호출합니다. - 게이트웨이가 사용자 토큰 할당량을 확인하고, 모델 이름에 따라 적절한 제공자(OpenAI, Anthropic, DashScope 등)를 선택합니다. 제공자의 API 키는 게이트웨이 환경 변수에만 보관되며, 요청을 전달하고 사용량을 기록한 후, 응답을 Hermes → 프론트엔드로 스트리밍합니다.
주요 기능
- 다중 테넌트 격리 – 각 사용자는 독립된 Docker 컨테이너(2 GB RAM, 4 CPU)에서 실행되며, 파일과 채팅 기록을 위한 개인 볼륨을 갖습니다.
- 에이전트 관리 – 생성, 이름 변경, 이모지/아이콘 설정, 세부 정보 보기, 삭제.
- 실시간 채팅 – WebSocket, 마크다운 렌더링, 코드 하이라이팅, 음성 입력, 파일/이미지 업로드.
- cron 작업 – 반복적 또는 단일 작업을 스케줄링, 활성/비활성화, 즉시 실행, 선택적 알림.
- 지식 기반 – 에이전트별 파일 저장소(텍스트, PDF, JSON, 코드)로 미리보기, 다운로드, 삭제 가능.
- 스킬 스토어 –
skills.sh에서 스킬 설치, 활성/비활성화, 사용자 업로드 커스텀 스킬 포함. - 다중 채널 봇 – Telegram, Discord, 이메일, WhatsApp Web, Signal, Slack, iMessage 등 내장 어댑터 제공.
- API 접근 – 토큰 생성, CLI 또는 기타 서비스에서 에이전트 호출, 세션 재사용.
- 다수의 모델 제공자 – OpenAI, Anthropic, DashScope, DeepSeek, AiHubMix, Evolink, OpenRouter 등 수십 가지 LLM을 지원하며, 간단한 모델명 선택기로 선택 가능.
- 대시보드 – 에이전트, 세션, 스킬, 전체 시스템 건강 상태에 대한 요약 통계.
- 보안 – API 키는 사용자 컨테이너에 전달되지 않음; JWT → 컨테이너 토큰 체인; 리소스 제한; 감사 로그.
플랫폼 실행 방법
- Docker 및 Docker‑Compose 설치.
- 리포지토리 루트에
.env파일 생성하고, 적어도 하나의 LLM 제공자 키 추가 (예:OPENAI_API_KEY=sk‑…). - 기본 이미지 빌드:
python prepare.py && bash build_base_image.sh. - Docker Compose로 배포:
python deploy_docker.py --rebuild hermes,gateway,frontend(또는 단순히docker compose up -d). http://localhost:3080에서 UI에 접속, 등록 후 채팅 시작 – 게이트웨이가 자동으로 전용 Hermes 컨테이너를 생성합니다.
일반적인 사용 사례
- 인프라를 처음부터 구축하지 않고도 각 고객에게 맞춤형 AI 어시스턴트를 제공하고자 하는 SaaS 기업.
- 각 팀이 독립된 에이전트와 개인 지식 기반, 스케줄된 작업이 필요한 내부 도구.
- 다중 모델 LLM, 도구 호출, 스킬 확장 기능을 실험하고자 하는 개발자.
제한 사항 / 주의할 점
- 플랫폼은 Docker에 의존하며, 활성 사용자당 하나의 컨테이너를 실행할 수 있는 충분한 CPU/RAM을 갖춘 호스트가 필요합니다.
- 모든 LLM 호출은 게이트웨이를 통해 프록시되므로, 제공자 API 키 제한 및 지연이 모든 사용자에게 영향을 미칩니다.
- 중량 작업에 적합하지 않을 수 있는 기본 리소스 제한(2 GB RAM, 4 CPU)은 조정이 필요할 수 있습니다.
- README에는 많은 배포 스크립트가 포함되어 있지만, 프로덕션 수준의 강화(TLS 종료, 시크릿 관리, 모니터링)는 운영자에게 맡겨져 있습니다.
더 많은 정보 찾기
- 자세한 문서는 README에 링크되어 있습니다(예: channel‑config 위키).
- UI 스크린샷과 로그는
doc/폴더에 있습니다. deploy_copy/디렉터리는 첫 실행 시 새 컨테이너에 복사되는 예제 사전 구성 에이전트(HR, 연구자, 프로그래머)를 포함합니다.
위 정보는 리포지토리의 README에서 직접 가져왔으며, 외부 가정은 추가되지 않았습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트