智能体电脑部署指南
可以在多个不同的服务器部署智能体电脑服务,通过配置实现分布式智能体沙箱能力。
环境要求:每台服务器需要安装 Docker 和 Docker Compose 环境,参考 Docker环境安装
一、快速部署
1. 创建工作目录并下载
mkdir nuwax_computer_deploy
cd nuwax_computer_deploy2.下载安装文件
wget https://nuwa-packages.oss-rg-china-mainland.aliyuncs.com/docker/20260126150124/docker-computer.zip3.解压文件
unzip docker-computer.zip如果解压失败,请检查系统是否安装了unzip,可以根据自己系统,选择对应安装命令,安装解压工具:
yum install unzipdnf install unzipapt install unzip4. 进入解压目录
cd docker-computer5. 启动服务
docker compose up -d6. 验证服务
查看容器状态
docker compose ps查看服务日志(可选)
docker compose logs -f服务启动后,会占用以下端口:
- 9086:主程序服务地址
- 9088:远程桌面服务地址
- 60001:文件上传服务地址
确保防火墙已开放上述端口。
7. 配置沙箱服务
智能体电脑服务部署完成后,需要在女娲智能体OS平台中配置沙箱服务。
💡 下一步:详细的沙箱配置操作说明,请参考 沙箱配置手册
配置路径:系统管理 → 系统配置 → 站点智能体设置 → 智能体沙箱配置
二、服务管理
常用命令
# 查看服务状态
docker compose ps
# 查看服务日志
docker compose logs -f [service_name]
# 停止服务
docker compose down
# 启动服务
docker compose up -d
# 重启服务
docker compose restart查看单个服务日志
# 查看主程序日志
docker compose logs -f rcoder
# 查看远程桌面日志
docker compose logs -f novnc三、升级更新
方式一:全量重新部署(推荐)
适合大版本升级或遇到问题时使用。
# 1. 停止服务
docker compose down
# 2. 备份配置文件(重要!)
cp -r docker-computer/config docker-computer/config.backup
# 3. 下载最新部署文件并解压
wget https://nuwa-packages.oss-rg-china-mainland.aliyuncs.com/docker/20260126150124/docker-computer.zip
tar -xzf docker-computer.tar.gz
# 4. 恢复配置文件(如需保留原配置)
cp -r config.backup/* docker-computer/config/
# 5. 启动服务
cd docker-computer
docker compose up -d重要提示:升级时务必保留
docker-computer/computer-project-workspace目录,该目录存储用户数据。
方式二:镜像更新
适合小版本更新。
# 进入部署目录
cd docker-computer
# 拉取最新镜像
docker compose pull
# 停止服务
docker compose down
# 重启服务
docker compose up -d四、高级配置
本章节介绍服务器端的详细配置选项,包括容器清理、资源限制等。这些配置可以根据实际需求调整,优化服务器资源使用。
配置文件位置:
docker-computer/config/rcoder/config.yml
5.1 容器清理配置
为了优化服务器资源使用,系统提供了自动容器清理功能。当用户容器闲置超过指定时间后,系统会自动清理,释放内存和 CPU 资源。
配置示例
cleanup_config:
# 是否启用自动清理(推荐开启)
enabled: true
# 容器闲置超时时间(秒)
# 默认 600 秒(10分钟),用户容器闲置超过此时间后会被自动清理
idle_timeout_seconds: 600
# 清理检查间隔(秒)
# 默认 300 秒(5分钟),系统每隔此时间检查一次闲置容器
cleanup_interval_seconds: 300
# Docker 容器停止超时时间(秒)
# 默认 30 秒,容器停止超过此时间会强制终止
docker_stop_timeout_seconds: 30
# 容器最小保护时间(秒)
# 默认 300 秒(5分钟),新创建的容器在此时间内不会被清理
container_protection_seconds: 300
# 日志清理配置
log_cleanup:
# 日志目录路径
log_dir: "/app/logs/container"
# 日志保留天数
log_retention_days: 10参数说明
| 参数 | 默认值 | 说明 | 推荐配置 |
|---|---|---|---|
enabled | true | 是否启用自动清理 | 建议开启,优化资源使用 |
idle_timeout_seconds | 600 | 闲置超时时间(秒) | 根据业务需求调整,频繁使用可延长至 1800(30分钟) |
cleanup_interval_seconds | 300 | 清理检查间隔(秒) | 推荐 300-600,过短会增加系统负载 |
docker_stop_timeout_seconds | 30 | 容器停止超时(秒) | 一般不需要修改 |
container_protection_seconds | 300 | 容器保护时间(秒) | 推荐至少 300,避免误清理 |
log_retention_days | 10 | 日志保留天数 | 根据磁盘空间调整 |
不同场景配置建议
场景一:高频使用环境(用户频繁操作)
cleanup_config:
enabled: true
idle_timeout_seconds: 1800 # 30分钟闲置才清理
cleanup_interval_seconds: 600 # 10分钟检查一次
container_protection_seconds: 600 # 新容器保护10分钟场景二:资源紧张环境(需要快速释放资源)
cleanup_config:
enabled: true
idle_timeout_seconds: 300 # 5分钟闲置就清理
cleanup_interval_seconds: 180 # 3分钟检查一次
container_protection_seconds: 180 # 新容器保护3分钟场景三:测试环境(关闭自动清理)
cleanup_config:
enabled: false # 关闭自动清理闲置超时的两个层面
系统提供了两个层面的闲置超时控制,它们作用于不同阶段:
层面一:容器清理超时 (cleanup_config.idle_timeout_seconds)
- 作用范围:主服务级别(rcoder)
- 默认值:600 秒(10分钟)
- 作用:当用户容器闲置超过此时间,主服务会自动停止并删除该容器
- 配置位置:
cleanup_config.idle_timeout_seconds
层面二:Agent 内部超时 (RCODER_AGENT_IDLE_TIMEOUT_SECS)
- 作用范围:容器内 Agent 进程级别
- 默认值:3600 秒(1小时)
- 作用:Agent 内部自检,闲置超时后可能进入待机状态
- 配置位置:
docker_config.multi_image_config.services.computer-agent-runner.environment.RCODER_AGENT_IDLE_TIMEOUT_SECS
推荐配置关系:
# 建议 Agent 内部超时 > 容器清理超时
cleanup_config:
idle_timeout_seconds: 600 # 10分钟后清理容器
docker_config:
multi_image_config:
services:
computer-agent-runner:
environment:
RCODER_AGENT_IDLE_TIMEOUT_SECS: "3600" # 1小时(内部超时)说明:
- 通常情况下,容器清理超时会先触发(10分钟),容器被清理后 Agent 也随之停止
- Agent 内部超时主要用于容器未被清理时的自检和资源管理
- 两者配合使用,提供多层次的资源回收保障
注意:
- 容器清理只清理闲置容器,不会影响正在使用的容器
- 清理后用户数据会保留在
computer-project-workspace目录- 用户下次使用时会自动创建新容器并加载数据
5.2 用户容器资源配置
用户可以根据服务器性能和业务需求,调整每个用户容器的资源限制和超时时间。
配置示例
docker_config:
multi_image_config:
services:
computer-agent-runner:
# 环境变量配置
environment:
# Agent 闲置超时时间(秒)
# 默认 3600 秒(1小时),Agent 内部闲置超过此时间会进入待机状态
RCODER_AGENT_IDLE_TIMEOUT_SECS: "3600"
# 资源限制配置(每个用户容器的资源上限)
resource_limits:
memory_limit: 4294967296 # 内存限制:4GB
cpu_limit: 2.0 # CPU 限制:2核
swap_limit: 8589934592 # Swap 限制:8GB说明:镜像配置(image、arm64_image、amd64_image 等)由系统管理,已预配置好,无需修改。
参数说明
| 配置项 | 默认值 | 说明 |
|---|---|---|
RCODER_AGENT_IDLE_TIMEOUT_SECS | 3600 | Agent 内部闲置超时(秒),与容器清理超时配合使用 |
memory_limit | 4294967296 | 内存限制(4GB = 4 × 1024³ 字节) |
cpu_limit | 2.0 | CPU 核心数限制(2核) |
swap_limit | 8589934592 | Swap 限制(8GB = 8 × 1024³ 字节) |
不同场景资源配置建议
场景一:标准配置(推荐)
适用于大多数场景,每个用户容器 4GB 内存 + 2 核 CPU。
resource_limits:
memory_limit: 4294967296 # 4GB
cpu_limit: 2.0 # 2核
swap_limit: 8589934592 # 8GB
environment:
RCODER_AGENT_IDLE_TIMEOUT_SECS: "3600" # 1小时场景二:高性能配置
适用于用户需要运行复杂任务(如 IDE、编译等),每个用户容器 8GB 内存 + 4 核 CPU。
resource_limits:
memory_limit: 8589934592 # 8GB
cpu_limit: 4.0 # 4核
swap_limit: 17179869184 # 16GB
environment:
RCODER_AGENT_IDLE_TIMEOUT_SECS: "3600" # 1小时场景三:节约资源配置
适用于服务器资源紧张或用户需求简单的场景,每个用户容器 2GB 内存 + 1 核 CPU。
resource_limits:
memory_limit: 2147483648 # 2GB
cpu_limit: 1.0 # 1核
swap_limit: 4294967296 # 4GB
environment:
RCODER_AGENT_IDLE_TIMEOUT_SECS: "3600" # 1小时5.3 配置修改后的重启方法
方式一:配置文件修改后重启(推荐)
修改 docker-computer/config/rcoder/config.yml 后:
# 进入部署目录
cd docker-computer
# 重启 rcoder 服务以应用新配置
docker compose restart rcoder
# 查看日志确认配置已生效
docker compose logs -f rcoder方式二:环境变量修改后重启
修改 docker-compose.yml 中的环境变量后:
# 停止服务
docker compose down
# 重新启动(会读取新的环境变量)
docker compose up -d配置热更新说明
以下配置支持热更新(无需重启):
- API Key 鉴权配置 (
api_key_auth):系统会自动检测配置文件变化并重新加载
以下配置需要重启服务才能生效:
- 容器清理配置 (
cleanup_config) - 用户容器资源配置 (
resource_limits) - 端口配置 (
port) - 项目目录配置 (
projects_dir)
注意:
- 修改资源配置后,只对新创建的容器生效,已存在的容器不受影响
- 资源配置要根据服务器总资源和预期并发用户数合理分配
- 建议每个用户容器至少分配 2GB 内存和 1 核 CPU
五、故障排查
1. 容器启动失败
# 查看容器状态
docker compose ps
# 查看详细日志
docker compose logs
# 检查端口占用
netstat -tlnp | grep -E '9086|9088|60001'2. 无法访问服务
- 检查防火墙设置,确保端口已开放
- 确认服务器 IP 地址配置正确
- 验证 Docker 服务是否正常运行
3. 数据丢失
检查 computer-project-workspace 目录是否完整,升级前务必备份此目录。
4. 性能问题
根据服务器实际配置调整 maxUsers、perUserMemoryGB 和 perUserCpuCores 参数。
更多性能优化,虚拟电脑并发上不去或会话超时卡死问题参考解决方案
5. 容器频繁被清理
现象:用户容器经常被自动清理,影响使用体验。
解决方案:
# 1. 检查当前清理配置
cat docker-computer/config/rcoder/config.yml | grep -A 10 "cleanup_config"
# 2. 调整闲置超时时间(延长至 30 分钟)
# 编辑 config.yml,修改以下配置:
cleanup_config:
idle_timeout_seconds: 1800 # 从 600 改为 1800
cleanup_interval_seconds: 600 # 从 300 改为 600
# 3. 重启服务
docker compose restart rcoder
# 4. 查看日志确认配置生效
docker compose logs -f rcoder | grep cleanup详细配置说明请参考:五、高级配置 → 5.1 容器清理配置
6. 容器资源不足
现象:容器频繁重启或性能差。
解决方案:
# 1. 查看容器资源使用情况
docker stats
# 2. 调整资源限制配置
# 编辑 config.yml,修改以下配置:
docker_config:
multi_image_config:
services:
computer-agent-runner:
resource_limits:
memory_limit: 8589934592 # 增加至 8GB
cpu_limit: 4.0 # 增加至 4核
swap_limit: 17179869184 # 增加至 16GB
# 3. 重启服务
docker compose restart rcoder详细配置说明请参考:五、高级配置 → 5.2 用户容器资源配置
7. 查看配置是否生效
# 查看当前生效的配置
docker compose exec rcoder cat /app/config.yml
# 查看环境变量配置
docker compose exec rcoder env | grep RCODER
# 查看服务启动日志中的配置信息
docker compose logs rcoder | grep -E "配置|Config|最终配置"