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 | 编排服务并为每个用户启动独立容器。 |
消息流转流程
- 用户在浏览器输入 → 前端向
/api/...发送 WebSocket 请求。 - 网关验证 JWT,查找/启动用户容器,并将 WebSocket 代理到该容器内的 Hermes API。
- Hermes 处理消息,可能调用工具或技能;当需要语言模型时,调用网关的
/llm/v1/chat/completions端点。 - 网关检查用户令牌配额,根据模型名称选择合适的提供者(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 → 容器令牌链;资源限制;审计日志。
运行平台
- 安装 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,注册并开始聊天——网关将自动为你启动专用的 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;未添加任何外部假设。
相关
- 项目
- 项目
- 项目
- 项目
- 项目