johnson7788/MultiUserClaw

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

MultiUserClaw – 基于 Hermes Agent 的多租户 AI SaaS 平台

是什么

  • 一个完整的基于 Web 的 SaaS 框架,可在同一服务器上为不同客户运行多个隔离的 AI 助手(代理)。
  • 每个用户都拥有自己的 Docker 容器,运行基于 Hermes 的 AI 代理运行时。容器按需创建,空闲时暂停,数周未使用后可归档。
  • 平台提供现成的前端、FastAPI 网关、PostgreSQL 存储,以及一系列开箱即用的功能(知识库、技能库、定时任务、多渠道机器人、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 密钥(仅保留在网关环境变量中),转发请求,记录令牌使用量,并将响应流式返回给 Hermes → 前端。

主要功能

  • 多租户隔离 – 每个用户在独立的 Docker 容器中运行(2 GB 内存,4 CPU),拥有私有卷用于文件和聊天历史。
  • 代理管理 – 创建、重命名、设置表情符号/图标、查看详情、删除。
  • 实时聊天 – WebSocket、Markdown 渲染、代码高亮、语音输入、文件/图片上传。
  • 定时任务 – 安排重复或一次性任务,启用/禁用,立即运行,可选通知。
  • 知识库 – 每个代理的文件存储(文本、PDF、JSON、代码),支持预览、下载和删除。
  • 技能库 – 从 skills.sh 安装技能,启用/禁用,支持用户上传的自定义技能。
  • 多渠道机器人 – 内置 Telegram、Discord、邮件、WhatsApp Web、Signal、Slack、iMessage 等适配器。
  • API 访问 – 生成令牌,从 CLI 或其他服务调用代理,复用会话。
  • 多模型提供商 – 支持数十种 LLM(OpenAI、Anthropic、DashScope、DeepSeek、AiHubMix、Evolink、OpenRouter 等),通过简单模型名选择器切换。
  • 仪表板 – 快速查看代理、会话、技能及系统整体健康状态的统计数据。
  • 安全 – API 密钥永不进入用户容器;JWT → 容器令牌链;资源限制;审计日志。

运行平台

  1. 安装 Docker 与 Docker‑Compose。
  2. 在仓库根目录创建 .env 文件,并添加至少一个 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,注册并开始聊天——网关将自动为你启动专用的 Hermes 容器。

典型使用场景

  • 希望为每个客户免费提供定制 AI 助手但不想从零构建基础设施的 SaaS 公司。
  • 每个团队需要独立代理、私有知识库和定时任务的内部工具。
  • 需要即插即用平台来实验多模型 LLM、工具调用和技能扩展的开发者。

限制 / 需注意事项

  • 平台依赖 Docker;需要具备足够 CPU/RAM 的主机以运行每个活跃用户的容器。
  • 所有 LLM 调用均通过网关代理,因此提供方 API 密钥限制和延迟会影响所有用户。
  • 默认资源上限(2 GB 内存,4 CPU)可能需要针对重负载进行调整。
  • 虽然 README 提供了多个部署脚本,但生产级加固(TLS 终止、密钥管理、监控)需由操作者自行完成。

更多信息获取

  • 详细文档在 README 中链接(例如,channel‑config wiki)。
  • UI 截图和日志位于 doc/ 文件夹。
  • deploy_copy/ 目录包含示例预配置代理(HR、研究员、程序员),首次启动时会复制到新容器中。

以上所有信息均直接来自仓库的 README;未添加任何外部假设。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目