Skip to content

智能体电脑部署指南

可以在多个不同的服务器部署智能体电脑服务,通过配置实现分布式智能体沙箱能力。

环境要求:每台服务器需要安装 Docker 和 Docker Compose 环境,参考 Docker环境安装

一、快速部署

1. 创建工作目录并下载

bash
mkdir nuwax_computer_deploy
cd nuwax_computer_deploy

2.下载安装文件

bash
wget https://nuwa-packages.oss-rg-china-mainland.aliyuncs.com/docker/20260126150124/docker-computer.zip

3.解压文件

bash
unzip docker-computer.zip

如果解压失败,请检查系统是否安装了unzip,可以根据自己系统,选择对应安装命令,安装解压工具:

bash
yum install unzip
bash
dnf install unzip
bash
apt install unzip

4. 进入解压目录

bash
cd docker-computer

5. 启动服务

bash
docker compose up -d

6. 验证服务

查看容器状态

bash
docker compose ps

查看服务日志(可选)

bash
docker compose logs -f

服务启动后,会占用以下端口:

  • 9086:主程序服务地址
  • 9088:远程桌面服务地址
  • 60001:文件上传服务地址

确保防火墙已开放上述端口。

二、沙箱服务配置

配置路径:系统管理系统配置站点智能体设置(最右侧标签页)→ 智能体沙箱配置

说明:可以配置多台沙箱服务器,实现负载分担。端口固定,只需配置实际服务器的 IP 地址。

配置示例

单沙箱服务器配置: 如果是沙箱同机部署,IP调整为私网IP,例如:192.168.1.100。 如果是沙箱跨机部署,IP调整为公网IP,例如:47.242.1.100,且需要开启对应端口。

json
{
  "sandboxServers": [
    {
      "serverId": "1",
      "serverName": "测试环境沙箱1",
      "serverAgentUrl": "http://192.168.1.100:9086",
      "serverVncUrl": "http://192.168.1.100:9088",
      "serverFileUrl": "http://192.168.1.100:60001",
      "serverApiKey": "",
      "maxUsers": 20
    }
  ],
  "perUserMemoryGB": 4.0,
  "perUserCpuCores": 2
}

多沙箱服务器配置(更多类推):

json
{
  "sandboxServers": [
    {
      "serverId": "1",
      "serverName": "测试环境沙箱1",
      "serverAgentUrl": "http://192.168.1.100:9086",
      "serverVncUrl": "http://192.168.1.100:9088",
      "serverFileUrl": "http://192.168.1.100:60001",
      "serverApiKey": "",
      "maxUsers": 20
    },
    {
      "serverId": "2",
      "serverName": "测试环境沙箱2",
      "serverAgentUrl": "http://192.168.1.101:9086",
      "serverVncUrl": "http://192.168.1.101:9088",
      "serverFileUrl": "http://192.168.1.101:60001",
      "serverApiKey": "your_api_key",
      "maxUsers": 30
    }
  ],
  "perUserMemoryGB": 4.0,
  "perUserCpuCores": 2
}

参数说明

参数说明注意事项
serverId服务器唯一标识配置后不要变更,否则会导致用户数据映射混乱
serverName服务器描述名称便于识别和管理
serverAgentUrl主程序服务地址格式:http://IP:9086
serverVncUrl远程桌面服务地址格式:http://IP:9088
serverFileUrl文件上传服务地址格式:http://IP:60001
serverApiKeyAPI鉴权密钥默认未开启,详见下方鉴权配置说明
maxUsers最大用户数根据服务器配置设置,默认每用户4G内存/2核CPU
perUserMemoryGB每用户内存配额默认4.0GB
perUserCpuCores每用户CPU核心默认2核

API鉴权配置(可选)

如果服务器未进行网络隔离,建议开启 Header 鉴权。

配置文件位置:docker-computer/config/rcoder/config.yml

yaml
api_key_auth:
  enabled: true      # 开启鉴权
  api_key: "your_secure_api_key_here"  # 自定义密钥

配置完成后,将密钥填入上述 serverApiKey 字段。

三、服务管理

常用命令

bash
# 查看服务状态
docker compose ps

# 查看服务日志
docker compose logs -f [service_name]

# 停止服务
docker compose down

# 启动服务
docker compose up -d

# 重启服务
docker compose restart

查看单个服务日志

bash
# 查看主程序日志
docker compose logs -f rcoder

# 查看远程桌面日志
docker compose logs -f novnc

四、升级更新

方式一:全量重新部署(推荐)

适合大版本升级或遇到问题时使用。

bash
# 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 目录,该目录存储用户数据。

方式二:镜像更新

适合小版本更新。

bash
# 进入部署目录
cd docker-computer

# 拉取最新镜像
docker compose pull

# 停止服务
docker compose down

# 重启服务
docker compose up -d

五、高级配置

本章节介绍服务器端的详细配置选项,包括容器清理、资源限制等。这些配置可以根据实际需求调整,优化服务器资源使用。

配置文件位置docker-computer/config/rcoder/config.yml

5.1 容器清理配置

为了优化服务器资源使用,系统提供了自动容器清理功能。当用户容器闲置超过指定时间后,系统会自动清理,释放内存和 CPU 资源。

配置示例

yaml
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

参数说明

参数默认值说明推荐配置
enabledtrue是否启用自动清理建议开启,优化资源使用
idle_timeout_seconds600闲置超时时间(秒)根据业务需求调整,频繁使用可延长至 1800(30分钟)
cleanup_interval_seconds300清理检查间隔(秒)推荐 300-600,过短会增加系统负载
docker_stop_timeout_seconds30容器停止超时(秒)一般不需要修改
container_protection_seconds300容器保护时间(秒)推荐至少 300,避免误清理
log_retention_days10日志保留天数根据磁盘空间调整

不同场景配置建议

场景一:高频使用环境(用户频繁操作)

yaml
cleanup_config:
  enabled: true
  idle_timeout_seconds: 1800        # 30分钟闲置才清理
  cleanup_interval_seconds: 600     # 10分钟检查一次
  container_protection_seconds: 600 # 新容器保护10分钟

场景二:资源紧张环境(需要快速释放资源)

yaml
cleanup_config:
  enabled: true
  idle_timeout_seconds: 300         # 5分钟闲置就清理
  cleanup_interval_seconds: 180     # 3分钟检查一次
  container_protection_seconds: 180 # 新容器保护3分钟

场景三:测试环境(关闭自动清理)

yaml
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

推荐配置关系

yaml
# 建议 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 用户容器资源配置

用户可以根据服务器性能和业务需求,调整每个用户容器的资源限制和超时时间。

配置示例

yaml
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_SECS3600Agent 内部闲置超时(秒),与容器清理超时配合使用
memory_limit4294967296内存限制(4GB = 4 × 1024³ 字节)
cpu_limit2.0CPU 核心数限制(2核)
swap_limit8589934592Swap 限制(8GB = 8 × 1024³ 字节)

不同场景资源配置建议

场景一:标准配置(推荐)

适用于大多数场景,每个用户容器 4GB 内存 + 2 核 CPU。

yaml
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。

yaml
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。

yaml
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 后:

bash
# 进入部署目录
cd docker-computer

# 重启 rcoder 服务以应用新配置
docker compose restart rcoder

# 查看日志确认配置已生效
docker compose logs -f rcoder

方式二:环境变量修改后重启

修改 docker-compose.yml 中的环境变量后:

bash
# 停止服务
docker compose down

# 重新启动(会读取新的环境变量)
docker compose up -d

配置热更新说明

以下配置支持热更新(无需重启):

  • API Key 鉴权配置 (api_key_auth):系统会自动检测配置文件变化并重新加载

以下配置需要重启服务才能生效:

  • 容器清理配置 (cleanup_config)
  • 用户容器资源配置 (resource_limits)
  • 端口配置 (port)
  • 项目目录配置 (projects_dir)

注意

  • 修改资源配置后,只对新创建的容器生效,已存在的容器不受影响
  • 资源配置要根据服务器总资源和预期并发用户数合理分配
  • 建议每个用户容器至少分配 2GB 内存和 1 核 CPU

六、故障排查

1. 容器启动失败

bash
# 查看容器状态
docker compose ps

# 查看详细日志
docker compose logs

# 检查端口占用
netstat -tlnp | grep -E '9086|9088|60001'

2. 无法访问服务

  • 检查防火墙设置,确保端口已开放
  • 确认服务器 IP 地址配置正确
  • 验证 Docker 服务是否正常运行

3. 数据丢失

检查 computer-project-workspace 目录是否完整,升级前务必备份此目录。

4. 性能问题

根据服务器实际配置调整 maxUsersperUserMemoryGBperUserCpuCores 参数。

更多性能优化,虚拟电脑并发上不去或会话超时卡死问题参考解决方案

5. 容器频繁被清理

现象:用户容器经常被自动清理,影响使用体验。

解决方案

bash
# 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. 容器资源不足

现象:容器频繁重启或性能差。

解决方案

bash
# 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. 查看配置是否生效

bash
# 查看当前生效的配置
docker compose exec rcoder cat /app/config.yml

# 查看环境变量配置
docker compose exec rcoder env | grep RCODER

# 查看服务启动日志中的配置信息
docker compose logs rcoder | grep -E "配置|Config|最终配置"