johnson7788/MultiUserClaw

目前OpenClaw和NanoBot都是用于个人的,不太支持多用户,基于多用户重新修改Bot,没有对Openclaw进行任何更改,原生能力封装

MultiUserClaw – Hermes Agent を基盤とするマルチテナントAI SaaSプラットフォーム

何であるか

  • 同じサーバー上で複数の独立したAIアシスタント(エージェント)を運用できる完全なWebベースの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 サービスをオーケストレーションし、ユーザーごとに個別のコンテナを起動。

メッセージの流れ

  1. ユーザーがブラウザで入力 → フロントエンドが /api/... にWebSocketリクエストを送信。
  2. ゲートウェイがJWTを認証し、ユーザーのコンテナを検索/起動し、WebSocketをそのコンテナ内のHermes APIにプロキシ。
  3. Hermesがメッセージを処理し、ツールやスキルを呼び出す可能性がある。言語モデルが必要な場合は、ゲートウェイの /llm/v1/chat/completions エンドポイントを呼び出す。
  4. ゲートウェイはユーザーのトークンクォータを確認し、モデル名に基づいて適切なプロバイダー(OpenAI、Anthropic、DashScopeなど)を選択。プロバイダーのAPIキー(ゲートウェイのenv内にのみ保持)を挿入し、リクエストを転送。トークン使用量を記録し、レスポンスをHermes → フロントエンドにストリーミング。

主な機能

  • マルチテナントの分離 – 各ユーザーは独自のDockerコンテナ(2 GB RAM、4 CPU)で実行され、ファイルとチャット履歴のプライベートボリュームを保有。
  • エージェント管理 – 作成、名前変更、絵文字/アイコン設定、詳細表示、削除。
  • リアルタイムチャット – WebSocket、markdownレンダリング、コードハイライト、音声入力、ファイル/画像アップロード。
  • cronジョブ – 定期的またはワンタイムのタスクをスケジュール、有効/無効、即時実行、通知オプション。
  • 知識ベース – エージェントごとのファイルストア(テキスト、PDF、JSON、コード)でプレビュー、ダウンロード、削除可能。
  • スキルストアskills.sh からスキルをインストール、有効/無効、ユーザーがアップロードしたカスタムスキルも可能。
  • マルチチャネルボット – Telegram、Discord、メール、WhatsApp Web、Signal、Slack、iMessageなど、組み込みアダプタを備える。
  • APIアクセス – トークンを生成し、CLIや他のサービスからエージェントを呼び出し、セッションを再利用可能。
  • 複数のモデルプロバイダー – OpenAI、Anthropic、DashScope、DeepSeek、AiHubMix、Evolink、OpenRouterなど、数十種類のLLMをサポート。モデル名セレクタで簡単選択。
  • ダッシュボード – エージェント、セッション、スキル、システム全体の健全性に関する統計を即時確認。
  • セキュリティ – APIキーはユーザーコンテナに渡らない;JWT → コンテナトークンチェーン;リソース制限;監査ログ。

プラットフォームの起動方法

  1. Docker と Docker‑Compose をインストール。
  2. リポジトリのルートに .env ファイルを作成し、少なくとも1つのLLMプロバイダーのキーを追加(例:OPENAI_API_KEY=sk‑…)。
  3. 基本イメージをビルド:python prepare.py && bash build_base_image.sh
  4. Docker Composeでデプロイ:python deploy_docker.py --rebuild hermes,gateway,frontend(または単に docker compose up -d)。
  5. http://localhost:3080 でUIにアクセスし、登録してチャットを開始 – ゲートウェイが自動的に専用のHermesコンテナを起動する。

一般的な利用シーン

  • クライアントごとにカスタムAIアシスタントを提供したいSaaS企業(インフラから構築しなくてもよい)。
  • チームごとに独立したエージェントとプライベート知識ベース、スケジュールされたジョブが必要な社内ツール。
  • マルチモデルLLM、ツールコール、スキル拡張を実験したい開発者。

制限事項/注意点

  • プラットフォームはDockerに依存しており、アクティブユーザー1人あたりのコンテナを実行できる十分なCPU/RAMを備えたホストが必要。
  • すべてのLLM呼び出しはゲートウェイ経由でプロキシされるため、プロバイダーのAPIキー制限や遅延がすべてのユーザーに影響する。
  • デフォルトのリソース制限(2 GB RAM、4 CPU)は、重いワークロードでは調整が必要。
  • READMEには多数のデプロイスクリプトが記載されているが、プロダクションレベルの強化(TLS終端、シークレット管理、モニタリング)は運用者に任されている。

詳細情報の入手先

  • 詳細ドキュメントはREADMEにリンク(例:channel‑config wiki)。
  • UIのスクリーンショットとログは doc/ フォルダに格納。
  • deploy_copy/ ディレクトリには、初回起動時に新しいコンテナにコピーされる例として事前構成済みエージェント(HR、研究者、プログラマー)が含まれる。

上記のすべての情報はリポジトリのREADMEから直接取得;外部の仮定は一切追加されていません。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト