文档首页/ AgentSphere/ 最佳实践/ 使用AgentSphere智能体沙箱部署OpenClaw
更新时间:2026-10-29 GMT+08:00
分享

使用AgentSphere智能体沙箱部署OpenClaw

操作场景

随着AI Agent在企业业务中的广泛应用,开发者需要一个安全、隔离的运行环境来部署和调试AI Agent应用。OpenClaw是一款开源的AI Agent网关,支持通过即时通讯软件与大模型进行对话交互,适用于智能客服、企业内部助手等场景。然而,直接在本地或生产服务器上运行OpenClaw存在安全风险和资源管理困难——Agent应用可能执行不可预测的代码操作,与宿主环境共享资源也容易引发冲突。

AgentSphere是华为云提供的AI Agent沙箱运行平台,能够为AI Agent提供安全隔离的代码执行环境。通过将OpenClaw部署在AgentSphere的沙箱中,既可以利用OpenClaw的Agent网关能力,又能借助沙箱的隔离机制保障宿主环境安全。

本文介绍如何在AgentSphere中创建OpenClaw沙箱实例,包括制作自定义镜像、通过E2B SDK创建沙箱以及在浏览器中访问OpenClaw的完整流程。

原理说明

在AgentSphere中创建OpenClaw的整体方案架构如下,分为镜像制作、沙箱创建和访问三个阶段:

  1. 镜像制作阶段:以OpenClaw官方镜像为基础,注入OpenClaw配置文件,构建自定义镜像,并使用该自定义镜像创建沙箱模板。
  2. 沙箱模板创建阶段:AgentSphere以自定义镜像为基础,自动注入ENVD,并完成设置健康检查、挂载外部存储等操作,构建出可以快速启动的模板快照。
  3. 沙箱创建阶段:通过E2B SDK调用AgentSphere的沙箱服务API,指定沙箱模板创建沙箱实例。
  4. 访问阶段:沙箱创建成功后,通过浏览器访问模板对应的网关域名,并在Header中注入沙箱身份认证信息,即可成功访问沙箱内的OpenClaw服务,进入OpenClaw对话界面。
图1 整体方案架构

前提条件

准备一个AgentSphere网关实例,并获取网关的公网访问域名。详情请参见创建网关实例。

阶段一:制作自定义镜像

本阶段以OpenClaw官方镜像为基础,集成ENVD守护进程和启动脚本,构建自定义Docker镜像并推送至SWR镜像仓库。

准备OpenClaw基础镜像

OpenClaw官方提供了基础Docker镜像,自定义镜像将以此为基础进行构建。

  1. 在本地或构建服务器上执行以下命令,拉取OpenClaw最新镜像。

    docker pull ghcr.io/openclaw/openclaw:latest

  2. 验证镜像拉取成功。

    docker images | grep openclaw

    回显结果中能看到ghcr.io/openclaw/openclaw且TAG为latest,说明镜像拉取成功。

准备OpenClaw配置文件

OpenClaw启动时需要读取openclaw.json配置文件,用于定义Agent工作空间、消息渠道等运行参数。

  1. 创建openclaw.json文件,示例配置如下:

    {
     "gateway": {
        "bind": "lan",
        "mode": "local",
        "port": 18789,
        "auth": {
          "mode": "token",
          "token": "testgatewaytoken"
        },
        "trustedProxies": [
          "127.0.0.1",
          "169.254.169.0/24"
        ],
        "allowRealIpFallback": true,
        "controlUi": {
          "allowedOrigins": [
            "http://localhost:18789",
            "http://127.0.0.1:18789",
            "https://<your-sandbox-url>.huaweicloud-agentnetwork.com"
          ],
          "allowInsecureAuth": true,
          "dangerouslyDisableDeviceAuth": true,
          "enabled": true
        }
      },
      "agents": {
        "defaults": {
          "workspace": "~/.openclaw/workspace"
        },
        "list": [
          {
            "id": "default",
            "name": "OpenClaw Assistant",
            "workspace": "~/.openclaw/workspace"
          }
        ]
      },
      "cron": {
        "enabled": false
      }
    }

    配置参数说明:

    参数

    说明

    示例值

    agents.defaults.workspace

    Agent工作空间目录路径,用于存储Agent运行时产生的文件和数据。

    ~/.openclaw/workspace

    gateway.bind

    设置为 lan 表示网关将监听局域网内的所有可用 IP 地址,而不仅仅是本地回环地址。这意味着也可以从沙箱外部访问OpenClaw。

    lan

    gateway.auth.mode

    采用Token(令牌)认证方式。客户端在发起请求时,必须在请求头(如Authorization: Bearer <token>)中提供正确的令牌,否则会被拒绝。

    token

    gateway.auth.token

    这是实际用于验证的Token(令牌)字符串。

    testgatewaytoken

    gateway.trustedProxies

    受信任的代理列表。

    [
      "127.0.0.1",
      "169.254.169.0/24"
    ]

    gateway.controlUi.allowedOrigins

    允许的来源域名列表(CORS配置)。出于安全考虑,浏览器会限制跨域请求。这个列表指定了哪些域名可以访问OpenClaw的前端控制界面。

    填写对应的AgentSphere网关实例域名

    格式为:

    https://<your-sandbox-url>.huaweicloud-agentnetwork.com

    gateway.controlUi.allowInsecureAuth

    允许在没有HTTPS加密的情况下进行认证交互。在本地开发或非信任网络中方便使用,但在公网环境下极不安全,容易被中间人攻击窃取Token。本文中的设置仅作为示例。

    true

  2. 如需配置大模型对话能力,请在配置文件中补充模型相关参数。

    详细配置方法请参考OpenClaw官方文档:https://docs.openclaw.ai/gateway/configuration

编写Dockerfile并构建镜像

自定义镜像需要在OpenClaw基础镜像上加入自定义的配置文件。

  1. 在构建目录下创建Dockerfile文件,内容如下:

    FROM ghcr.io/openclaw/openclaw:latest
    RUN mkdir -p /home/node/.openclaw/workspace
    chown -R node:node/home/node/.openclaw/workspace
    COPY --chown=node:node openclaw.json /home/node/.openclaw/openclaw.json

  2. 执行以下命令构建自定义镜像。

    docker build -t openclaw-custom:latest .

  3. 建议在推送前本地运行验证。

    docker run --rm -p 49983:49983 openclaw-custom:latest

    启动日志中出现“[gateway] ready”,OpenClaw网关正常启动。

推送镜像到SWR

构建并验证通过后,需要将镜像推送到华为云容器镜像服务(SWR),供创建沙箱模板时使用。

以基础版SWR为例,步骤如下:

  1. 登录SWR控制台,选择左侧导航栏的“组织管理”,单击页面右上角的“创建组织”,创建一个组织。

    如已有组织可跳过此步骤。

  2. 在左侧导航栏选择“我的镜像”,单击右侧“客户端上传”,在弹出的页面中单击“生成登录指令”,单击复制临时登录指令。
  3. 在集群节点上执行上一步复制的登录指令,登录成功会显示“Login Succeeded”。
  4. 给镜像打上SWR标签。

    docker tag openclaw-custom:latest swr.<region>.myhuaweicloud.com/<namespace>/openclaw-custom:latest

    其中,swr.<region>.myhuaweicloud.com为镜像仓库地址可在SWR控制台上查询,登录指令中末尾的域名即为镜像仓库地址;<namespace>为SWR中已创建的组织名称。

  5. 推送镜像到 SWR:

    docker push swr.<region>.myhuaweicloud.com/<namespace>/openclaw-custom:latest

    推送完成后,可在SWR控制台对应组织的镜像列表中查看到该镜像。

阶段二:创建自定义模板并实例化沙箱

本阶段在AgentSphere控制台创建自定义沙箱模板,获取API Key,然后通过E2B-SDK创建沙箱实例并注入OpenClaw配置。

创建自定义沙箱模板

本步骤基于上一步推送至SWR的自定义镜像创建AgentSphere沙箱模板。

  1. 登录AgentSphere控制台。
  2. 在左侧导航栏中选择“沙箱模板”,并单击右上角的“创建沙箱模板”。
  3. 填写基础配置。

    参数

    参数说明

    示例

    沙箱模板名称

    自定义名称,需以小写字母开头,以小写字母或数字结尾,可以包含小写字母、数字和中划线,长度为1-48个字符。

    openclaw-test

    描述

    您可以添加该沙箱模板的描述信息,最多1000字符。

    -

    选择镜像

    单击选择镜像,选择SWR中的自定义镜像。

    选择上一步已推送的镜像

    资源规格

    选择沙箱实例使用的CPU和内存配比。资源配额过小可能导致沙箱运行失败,过大则导致资源浪费。

    2vCPUs

    8GiB内存

    启动命令

    沙箱实例启动时执行的命令。此处可留空。

    node /app/openclaw.mjs gateway

    就绪检查命令

    用于检测沙箱实例是否就绪。

    curl -sf http://localhost:18789/healthz

    环境变量

    通过键值对为沙箱设置环境变量。

    键:OPENCLAW_CONFIG_PATH

    值:/home/node/.openclaw/openclaw.json

    图2 基础配置示例

  4. 填写网络与权限配置。

    参数

    参数说明

    示例

    入站(Inbound)网关

    入站网关用于接收外部请求,配置后可通过网关访问沙箱内的服务。

    如果没有可选网关,请单击“新建入站网关实例”进行创建,完成创建后单击刷新按钮。

    必填,浏览器可通过网关域名访问OpenClaw。

    选择已有网关实例

    出站(Outbound)网络配置

    选择公网模式(沙箱可通过公网对外访问,适用于调用第三方API、下载依赖等场景)或VPC模式(沙箱访问VPC内其他服务)。

    公网模式(OpenClaw需访问外部大模型API)

  5. 填写日志配置(可选)。建议开启日志对接LTS,方便后续排查问题。
  6. 填写高级配置,开启健康检查,探测沙箱内业务进程存活状态,以判断运行中的沙箱实例是否可用。

    本文中选择使用“HTTP请求检查”,并设置openclaw的健康检查端口为18789:/healthz,协议为HTTP。
    图3 设置openclaw的健康检查端口18789:/healthz

  7. 完成上述配置后,单击“创建”。

    模板创建成功后,在模板列表中记录沙箱模板ID,后续创建沙箱时需要使用。

获取API Key

API Key是调用AgentSphere API和SDK的认证凭证,所有通过API或SDK操作沙箱资源的请求均需携带API Key进行身份鉴权。

  1. 登录AgentSphere控制台。
  2. 在左侧导航栏中选择“API Key管理”,并单击右上角的“创建API Key”。
  3. 设置API Key参数。

    参数

    参数说明

    有效期

    根据需求设置API Key的有效期,过期后该API Key将不可用。

    描述

    您可以添加该API Key的描述信息。

  4. 单击“确定”,系统将自动为您生成API Key。

    为保障安全,生成的API Key将仅显示一次,请务必保存,关闭该页面后将无法再次查看。

    您可以单击“下载API Key凭证”将API Key保存至本地。

使用E2B SDK创建沙箱

完成自定义模板和API Key准备后,通过E2B SDK的Python接口创建沙箱实例,并将OpenClaw配置文件注入沙箱。

  1. 确保本地已安装E2B SDK和满足版本要求的Python,版本要求详见e2b-code-interpreter。若未安装SDK,请执行以下命令安装:

    pip install e2b==2.42.0  
    pip install e2b-code-interpreter==2.9.1

  2. 创建Python脚本create_sandbox.py,内容如下:

    import os
    from e2b_code_interpreter import Sandbox
    from time import sleep
    
    # ====== 请替换为AgentSphere控制台获取的真实值 ======
    E2B_SANDBOX_URL = "https://<your-sandbox-url>.huaweicloud-agentnetwork.com"
    E2B_API_URL = "https://agentsandbox.<region>.myhuaweicloud.com"
    E2B_API_KEY = "<your_api_key>"
    TEMPLATE_ID = "<template_id>"
    # ================================================ 
    
    # 创建沙箱实例,指定自定义模板和环境变量
    sbx =  Sandbox.create(
        api_key=E2B_API_KEY,
        api_url=E2B_API_URL,
        sandbox_url=E2B_SANDBOX_URL,
        template=TEMPLATE_ID,
    )
    print("Sandbox created:", sbx.sandbox_id)
    print("Sandbox envd_access_token:",sbx._envd_access_token)
    print("Sandbox traffic_access_token:",sbx.traffic_access_token)

    代码关键参数说明:

    参数

    说明

    注意事项

    E2B_SANDBOX_URL

    沙箱服务网关地址,用于浏览器访问时的流量入口。

    请替换为AgentSphere控制台中实际分配的网关地址,可在控制台“沙箱模板”详情页查看其入站网关的“公网域名”获取。

    E2B_API_KEY

    沙箱服务API密钥,用于API调用身份认证。

    请替换为实际密钥,注意妥善保管,避免泄露。

    E2B_API_URL

    沙箱服务API地址,用于SDK与AgentSphere平台通信。

    请替换为实际API地址,请通过《AgentSphere SDK参考》“配置本地E2B SDK执行环境”章节查询当前区域的API访问地址。

    template

    自定义模板ID,决定沙箱的基础镜像和运行环境。

    请替换为创建沙箱模板后获取的模板ID。

  3. 执行脚本创建沙箱。

    python create_sandbox.py

  4. 验证沙箱创建成功。脚本执行后,控制台将输出Sandbox ID、Traffic Access Token和Envd Access Token,后续浏览器访问时需要使用。

阶段三:在浏览器中访问OpenClaw

沙箱创建成功后,通过浏览器访问OpenClaw对话界面。由于沙箱通过入站网关对外提供服务,浏览器需要通过Modify Header插件注入沙箱身份认证信息才能访问。

  1. 在浏览器中安装请求头注入插件,用于在请求中注入沙箱身份认证信息。本文使用Modify Header插件。
  2. 在Modify Header插件中添加以下四个请求头:

    Header名称

    Header值

    说明

    E2b-Sandbox-Id

    阶段二输出的Sandbox ID

    标识目标沙箱实例

    E2b-Sandbox-Port

    18789

    OpenClaw监听端口

    E2b-Traffic-Access-Token

    阶段二输出的Traffic Access Token

    沙箱流量认证令牌

    X-Access-Token

    阶段二输出的Envd Access Token

    沙箱操作认证令牌

  3. 在浏览器地址栏中输入沙箱网关域名(即E2B_SANDBOX_URL的值),按Enter键访问。
  4. 在OpenClaw登录页面中输入网关令牌(配置文件中的gateway.auth.token值),单击连接。
  5. 验证访问成功。若页面显示OpenClaw对话界面,说明已成功访问。若在openclaw.json中配置了大模型,即可在界面中进行对话交互。

常见问题

  • Q:浏览器访问OpenClaw提示连接失败怎么办?

    A:请依次检查以下内容。

    1. Modify Header插件中的三个请求头是否填写正确。
    2. 沙箱是否仍在运行(沙箱有生命周期限制,超时后会自动销毁)。
    3. 网关令牌是否与Dockerfile中设置的OPENCLAW_GATEWAY_TOKEN一致。
  • Q:沙箱创建后ENVD启动失败怎么办?

    A:请检查自定义镜像中的envd和envd-healthcheck.sh文件是否正确复制,以及sudoers配置是否允许node用户执行envd命令。可通过docker run本地启动镜像查看entrypoint.sh的输出日志进行排查。

  • Q:如何在OpenClaw中配置大模型对话?

    A:在openclaw.json配置文件中添加模型相关参数(如API Key、模型名称等),具体配置方法请参考OpenClaw官方文档。配置完成后,重新执行阶段二中的E2B SDK脚本将更新后的配置文件写入沙箱即可。

相关文档

  • OpenClaw官方文档:了解OpenClaw网关的完整配置项和功能说明,请参见https://docs.openclaw.ai/gateway/configuration。
  • AgentSphere用户指南:了解沙箱模板、沙箱实例、API Key管理等详细操作,请参见沙箱概述。
  • E2B SDK文档:了解沙箱API的完整接口说明,包括代码执行、文件操作等能力,请参见E2B SDK官方文档。

相关文档