中大型企业在部署 OpenClaw 时,核心需求就是多租户隔离:不同部门、不同子公司需要独立的 AI 服务,数据互不干扰,权限分级管控,同时还要统一管理模型资源和调用成本。而 OpenClaw+4SAPI 的组合,能完美实现企业级多租户部署,一套服务满足全公司的 AI 使用需求。
本文就教大家如何基于 4SAPI,实现 OpenClaw 的多租户部署,打造企业级多部门 AI 服务平台。
前置准备
- Linux 服务器(推荐 Ubuntu 22.04),4 核 8G 以上配置,用于部署 OpenClaw 多租户服务
- 已完成 Docker、Docker Compose 环境安装,生产环境推荐容器化部署
- 已在 4SAPI 控制台创建企业级主 API Key,支持子令牌分发与权限管控
- 已完成 MySQL 数据库部署,用于存储租户信息、权限配置、调用日志
核心部署步骤
第一步:多租户架构设计
我们采用「统一网关 + 租户隔离 + 4SAPI 统一资源管理」的架构:
- 统一网关:OpenClaw 主网关负责请求转发、租户鉴权、权限校验
- 租户隔离:每个租户拥有独立的会话、Skill、知识库,数据完全隔离
- 4SAPI 资源管理:通过 4SAPI 的子令牌功能,为每个租户分配独立的 API 令牌,单独统计调用量和成本,统一管控
第二步:编写 Docker Compose 多租户部署配置
创建docker-compose.yml,实现 OpenClaw 主网关 + MySQL 租户数据库 + Redis 会话缓存的一键部署:
yaml
version: '3.8'
services:
openclaw-gateway:
image: openclaw/openclaw:enterprise-latest
container_name: openclaw-multi-tenant-gateway
restart: always
ports:
- "18789:18789"
environment:
- MULTI_TENANT_ENABLED=true
- DB_HOST=openclaw-mysql
- DB_PORT=3306
- DB_USER=root
- DB_PASSWORD=你的数据库密码
- DB_NAME=openclaw_tenant
- REDIS_HOST=openclaw-redis
- REDIS_PORT=6379
- 4SAPI_BASE_URL=https://4sapi。com/v1
- 4SAPI_MASTER_KEY=你的4SAPI企业级主API Key
volumes:
- ./tenant-config:/app/tenant-config
- ./tenant-skills:/app/tenant-skills
- ./logs:/app/logs
depends_on:
- openclaw-mysql
- openclaw-redis
networks:
- openclaw-multi-tenant-network
openclaw-mysql:
image: mysql:8.0
container_name: openclaw-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD:你的数据库密码
MYSQL_DATABASE: openclaw_tenant
volumes:
- ./mysql-data:/var/lib/mysql
networks:
- openclaw-multi-tenant-network
openclaw-redis:
image: redis:7-alpine
container_name: openclaw-redis
restart: always
volumes:
- ./redis-data:/data
networks:
- openclaw-multi-tenant-network
networks:
openclaw-multi-tenant-network:
driver: bridge
第三步:配置 4SAPI 租户子令牌管理
OpenClaw 多租户模式会自动对接 4SAPI 的子令牌 API,为每个新创建的租户分配独立的 API 子令牌,实现调用量单独统计、成本独立核算、权限分级管控。
在tenant-config目录下创建4sapi-tenant-config.json,配置租户权限规则:
json
{
"master_key": "你的4SAPI企业级主API Key",
"base_url": "https://4sapi。com/v1",
"default_tenant_config": {
"allowed_models": [
"claude-3-5-sonnet-20240620",
"claude-3-haiku-20240307",
"gpt-4o-mini"
],
"max_monthly_tokens": 10000000,
"max_concurrent_requests": 10,
"allowed_skills": ["file-skill", "document-retrieval-skill"],
"enable_rag": true
},
"tenant_custom_config": {
"admin": {
"allowed_models": ["*"],
"max_monthly_tokens": -1,
"allowed_skills": ["*"]
},
"hr-department": {
"allowed_models": ["claude-3-5-sonnet-20240620", "claude-3-haiku-20240307"],
"max_monthly_tokens": 5000000,
"allowed_skills": ["document-retrieval-skill", "content-generator"]
},
"operation-department": {
"allowed_models": ["claude-3-5-sonnet-20240620", "gpt-4o-mini"],
"max_monthly_tokens": 8000000,
"allowed_skills": ["content-generator", "cross-border-ecommerce"]
}
}
}
配置说明:
default_tenant_config:新租户的默认权限配置tenant_custom_config:为不同部门 / 租户自定义权限,包括可用模型、月度 Token 上限、可用 Skill、RAG 权限等- 支持通配符
*,表示管理员租户可使用所有模型和功能
第四步:启动服务并创建租户
执行以下命令启动多租户服务:
bash
运行
docker-compose up -d
服务启动后,执行以下命令创建管理员租户:
bash
运行
docker exec openclaw-multi-tenant-gateway openclaw tenant create \
--tenant-id admin \
--tenant-name "超级管理员" \
--is-admin true
创建部门租户示例:
bash
运行
# 创建人力资源部租户
docker exec openclaw-multi-tenant-gateway openclaw tenant create \
--tenant-id hr-department \
--tenant-name "人力资源部"
# 创建运营部租户
docker exec openclaw-multi-tenant-gateway openclaw tenant create \
--tenant-id operation-department \
--tenant-name "运营部"
创建完成后,OpenClaw 会自动为每个租户生成独立的访问令牌和 4SAPI 子令牌,每个部门通过自己的租户 ID 和令牌访问服务,数据完全隔离,权限严格管控。
核心优势
- 租户数据完全隔离:每个租户拥有独立的会话、Skill、知识库,不同部门数据互不干扰,满足企业数据安全要求
- 模型资源统一管控:通过 4SAPI 的主 / 子令牌能力,企业统一管理模型资源,为每个部门分配独立的调用额度,单独核算成本,避免资源浪费
- 权限分级管控:可针对不同部门、不同角色配置不同的模型、功能、额度权限,适配企业分级管理需求
- 国内稳定高可用:4SAPI 提供企业级 SLA 保障,99.9% 可用性,专线优化低延迟,多线路冗余,保证企业全部门 7×24 小时稳定使用
- 部署简单易维护:Docker Compose 一键部署,无需复杂的集群配置,中小团队也能快速搭建企业级多租户 AI 服务