使用SAE部署OpenClaw

更新时间:
复制为 MD 格式

OpenClaw是能够自主执行任务(如管理邮件和日历、编写代码等)的个人AI助手,用户能够通过聊天应用和它进行交互。

方案优势

通过SAE部署OpenClaw,有以下优势:

  1. 功能完整:SAE提供了与本地一致的完整Docker运行时,用于OpenClaw动态创建代码沙箱,确保其核心执行力不受限。

  2. 弹性伸缩:SAE具备秒级扩缩容的能力,能够手动缩容至0并实现秒级恢复启动,精准匹配OpenClaw的潮汐式工作负载,实现按实际使用量付费,避免资源闲置。

  3. 全托管、免运维、高可用:SAE内置跨可用区容灾、健康检查和自愈能力,用户无需管理基础设施,即可实现生产级服务稳定性。

部署与配置 OpenClaw

前置准备

Step 1:应用中心一键部署

  1. 进入应用中心

  2. 选择模板Openclaw — Serverless 部署,点击部署

  3. 配置以下参数,其余保持默认。

    • 服务实例名称:自定义,例如openclaw-test

    • 地域:选择已配置公网 NAT 网关的 VPC 所在地域。

    • 选择已有/新建的专有网络:选择已有专有网络。

    • 是否创建NAT网关:选择已有公网nat网关

    • 可用区1可用区2:选择2个不同的可用区,以实现跨可用区容灾。

    • 专有网络VPC实例ID:选择已配置公网 NAT 网关的 VPC。

    • 交换机实例ID:参考以下步骤,配置可用区1的交换机实例。

      1. 点击新建交换机,跳转到创建交换机页面。

      2. 交换机区域,自定义名称IPv4网段

      3. 点击确定创建,等待创建完成。

      4. 返回交换机实例ID的配置页面,点击该配置项右侧的刷新按钮,然后在下拉列表中选择已创建的交换机实例。

    • 交换机实例ID:重复以上步骤,配置可用区2的交换机实例。

  4. 点击下一步:确认订单

  5. 点击立即创建,等待创建完成,通常需要 2~3 分钟。

    • 已部署场景页签,列表中显示已部署的场景ID/名称

    • 在左侧导航栏选择应用管理 > 应用列表,列表中显示已创建的openclaw-gateway应用。

Step 2:登录应用实例

配置 OpenClaw 的 CLI 命令需在 openclaw-gateway 应用实例的容器内部执行。

通过以下任一方式登录容器内部的终端。

方式 A:通过 SAE 控制台 WebShell

  1. 应用列表中点击openclaw-gateway应用 ID跳转到应用详情页。

  2. 点击实例列表页签,点击任意实例右侧的Webshell,即可登录容器内部的终端。

方式 B:通过 saectl 命令行工具(推荐)

  1. 安装并配置 saectl 命令行工具,详见安装与配置saectl工具

  2. 执行以下命令,即可登录容器内部的终端:

    saectl exec -it -n <namespace> <pod-name>

    详见使用saectl工具管理应用实例Pod

重要

后续所有命令均在容器内部的终端执行。

Step 3:初始化配置

初始化 OpenClaw 运行环境

  1. 设置终端逻辑尺寸(避免 TUI 渲染异常):

    stty rows 40 cols 120
    说明

    如果关闭容器内部的终端,下次进入终端后需要再次执行此命令,以避免 TUI 渲染异常。

  2. 执行初始化命令:

    openclaw onboard --install-daemon

    此命令将通过交互形式引导您完成基础配置,并安装后台守护进程:

    • Onboarding mode:选择 QuickStart

    • Model/auth provider:选择 Skip for now

    • Filter models by provider:选择 All providers

    • Default model:选择 Keep current

    • Select channel:选择 Skip for now

    • Configure skills now:选择 No

    • Enable hooks:选择 Skip for now

      说明
      • 等待初始化完成,通常需要 1~2 分钟。

      • 如果提示Systemd user services are unavailable,可忽略,因为OpenClaw 在容器环境中使用轻量级进程管理器 supervisord 替代 systemd

    • Install shell completion script:选择 Yes

  3. 初始化后,可查看以下配置文件和工作路径:

    • OpenClaw 配置文件cat /data/.clawdbot/openclaw.json

    • 工作区ls ~/.openclaw/workspace

    • 会话ls /data/.clawdbot/agents/main/sessions

启动 OpenClaw Gateway 服务

在容器内使用 supervisord 管理服务生命周期:

  • 首次部署后启动服务:

    supervisorctl start openclaw
  • 后续修改配置后重启服务:

    supervisorctl restart openclaw

Step 4:配置阿里云百炼为模型提供商

  1. 将阿里云百炼配置为模型提供商(兼容 OpenAI 协议),并配置文本生成模型:

    说明
    • 请将以下代码中your-api-key-here 替换为有效的 API Key,详见首次调用通义千问API

    • 如需选用其他模型,请修改以下代码中idname的配置项。可选用的文本生成模型,详见模型列表

    openclaw config set models.providers.dashscope '{
      "baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
      "api": "openai-completions",
      "apiKey": "your-api-key-here",
      "models": [
        {
          "id": "qwen3-max-2026-01-23",
          "name": "qwen3-max-2026-01-23",
          "reasoning": false,
          "input": ["text"],
          "cost": {
            "input": 0,
            "output": 0,
            "cacheRead": 0,
            "cacheWrite": 0
          },
          "contextWindow": 262144,
          "maxTokens": 65536
        }
      ]
    }'
  2. 指定该模型为默认推理模型:

    说明

    如需选用其他模型,请将以下代码中qwen3-max-2026-01-23替换为实际的模型 id

    openclaw config set agents.defaults.model.primary "dashscope/qwen3-max-2026-01-23"
    supervisorctl restart openclaw # 重启服务使配置生效

Step 5:启用并配置沙箱环境

OpenClaw 的沙箱机制用于隔离 AI 代理的代码执行、文件操作和浏览器自动化行为。

启用并配置沙箱环境:

# 1. 启用全功能沙箱模式
openclaw config set agents.defaults.sandbox.mode "all"

# 2. 指定代码执行沙箱的基础镜像
openclaw config set agents.defaults.sandbox.docker.image "openclaw-sandbox:bookworm-slim"

# 3. 设置代码沙箱的网络模式(bridge 允许外网访问;若无需联网可设为 "none")
openclaw config set agents.defaults.sandbox.docker.network "bridge"

# 4. 启用浏览器自动化沙箱
openclaw config set agents.defaults.sandbox.browser.enabled true

# 5. 指定浏览器沙箱镜像
openclaw config set agents.defaults.sandbox.browser.image "openclaw-sandbox-browser:bookworm-slim"

supervisorctl restart openclaw # 重启服务使配置生效

Step 6:配置网络访问

默认情况下,用户无法从公网访问应用,应用也无法访问公网资源(如模型 API、网页抓取等),因此需要进行以下网络配置。

配置OpenClaw Gateway 绑定的端口和网络

# 查看当前配置
openclaw config get gateway.port # 应该返回:18789。如果不满足,需要修改为 18789。
openclaw config get gateway.bind # 应该返回:"lan"。如果返回 "loopback",则无法从外部访问,需要修改为 "lan"。
openclaw config get gateway.http.endpoints.responses.enabled # 应该返回:true。如果返回 false,则无法回复钉钉发送的消息。

# 修改配置
openclaw config set gateway.port 18789 # 修改为正确的绑定端口
openclaw config set gateway.bind "lan" # 允许外部访问
openclaw config set gateway.http.endpoints.responses.enabled true # 允许回复钉钉发送的消息

supervisorctl restart openclaw # 重启服务使配置生效

通过绑定 CLB 实现从公网访问应用

  1. 应用列表中点击openclaw-gateway应用 ID跳转到应用详情页。

  2. 应用信息页签的应用访问设置区域,选择基于 CLB 访问

  3. 点击公网访问地址右侧的添加公网CLB 访问。

  4. 选择HTTP 协议,配置如下:

    1. HTTP 端口:输入80

    2. 容器端口:输入18789,即 OpenClaw Gateway 监听端口。

  5. 选择HTTPS 协议,配置如下:

    1. HTTPS 端口:输入18789

    2. SSL 证书:选择已有的 SSL 证书,或点击创建SSL证书,详见创建证书

    3. 容器端口:输入18789,即 OpenClaw Gateway 监听端口。

    4. 其余参数保持默认,点击确定

    说明

    需要同时配置HTTP 协议HTTPS 协议的原因是:

    • HTTP 协议用于后续接收用户通过钉钉发送的消息。

    • HTTPS 协议用于后续访问OpenClaw的控制界面。

  6. 等待公网访问地址生成,通常需要 2~3 分钟。记录公网访问地址,后续步骤需要使用。

通过配置 NAT 网关实现应用访问公网资源

  1. 应用信息页签的应用信息区域,点击 VPC ID,跳转到 VPC 详情页。

  2. 资源管理页签的公网访问服务区域,查看公网NAT网关的数量并点击,跳转到公网NAT网关列表。

  3. 点击列表中公网NAT网关右侧的设置SNAT

    说明

    如果列表中没有公网NAT网关,则点击创建公网NAT网关,详见公网 NAT 网关

  4. 点击创建SNAT条目,配置如下:

    1. SNAT条目粒度:选择交换机粒度

    2. 选择交换机:选择部署应用时创建的2个交换机,以确保所有应用实例都能够访问公网资源。

    3. 选择弹性公网IP地址:选择已绑定到当前公网NAT网关的弹性公网IP。

      说明

      如果未绑定弹性公网IP,则点击新购弹性公网IP并绑定,详见公网 NAT 网关

    4. 点击确定创建

Step 7:访问控制界面并与 OpenClaw 交互

OpenClaw 支持两种交互方式:Web Control UI 和命令行 TUI。

通过 Web Control UI 访问 OpenClaw 控制界面

  1. 获取认证凭据:

    # 获取 Gateway 认证 Token
    openclaw config get gateway.auth
  2. 记录返回结果中的<GATEWAY_AUTH_TOKEN>,后续步骤需要使用。

    {
      "mode": "token",
      "token": "<GATEWAY_AUTH_TOKEN>"
    }
  3. 在浏览器中访问 OpenClaw 的控制界面,URL如下:

    https://<CLB_PUBLIC_IP>:18789?token=<GATEWAY_AUTH_TOKEN>
    
    # 将URL中的变量用实际值替换:
    # <CLB_PUBLIC_IP>:公网访问地址。
    # <GATEWAY_AUTH_TOKEN>:认证凭据。
  4. 首次访问将显示pairing required,表示需授权当前设备:

    # 避免 TUI 渲染异常
    stty rows 40 cols 120
    
    # 列出待处理的配对请求,注意将以下命令中<GATEWAY_AUTH_TOKEN>按实际值替换
    openclaw devices list --token "<GATEWAY_AUTH_TOKEN>"
    
    # 找到状态为 Pending 的 Request ID,并批准,注意将以下命令中<requestId>按实际值替换
    openclaw devices approve <requestId>
  5. 刷新浏览器页面,即可访问 OpenClaw 控制界面。

  6. Chat页面,开始对话。

    User: 你使用的模型是什么?# 测试模型配置是否成功
    Agent: 我当前使用的是 **DashScope 平台上的 Qwen3-Max 模型**... # 返回类似结果表明模型配置成功
    

通过命令行 TUI 与 OpenClaw 交互

开始对话(默认进入 main Agentmain Session):

openclaw tui

构建钉钉AI助理

前置准备

  • 创建钉钉应用需要您的钉钉账号有开发者权限。您可以联系您的组织管理员获取钉钉开放平台的开发权限,具体操作请参见获取开发者权限

Step 1:创建钉钉应用

  1. 创建应用

    1. 访问钉钉开放平台 - 钉钉应用页面,在右上角点击创建应用

    2. 在创建应用面板,配置以下信息:

      • 应用名称:可自定义,例如test-app

      • 应用描述:可自定义,例如test-app-desc

      • 应用图标:(可选)点击页面上的图标,然后根据页面提示上传应用图标。

      • 点击保存,进入应用详情页。

  2. 查看应用 Client ID 和 Client Secret

    1. 在应用详情页的左侧导航栏,选择凭证与基础信息

    2. 复制并记录 Client IDClient Secret,后续步骤需要使用。

  3. 创建消息卡片

    1. 访问钉钉开放平台 - 卡片平台页面,在左侧导航栏点击新建模板

    2. 配置以下信息:

      • 模板名称:可自定义,例如test-card

      • 卡片类型:选择消息卡片

      • 卡片模板场景:选择 AI 卡片

      • 关联应用:点击选择应用,选择已创建的应用。

      • 点击创建

    3. 在模板编辑页面,无需进行额外操作,直接点击右上角的保存,然后点击发布确认

    4. 点击左上角的返回按钮,在左侧导航栏选择模板列表

    5. 找到已创建的模板,复制并记录模板 ID,后续步骤需要使用。

  4. 授予应用发送卡片消息权限

    1. 访问钉钉开放平台 - 钉钉应用页面,点击已创建的应用名称,进入应用详情页。

    2. 在左侧导航栏选择权限管理,在搜索框分别搜索Card.Streaming.WriteCard.Instance.Write,并分别申请权限(如果当前账号有管理员权限,则点击立即开通即可)。

Step 2:创建 AppFlow 连接流

  1. 访问AppFlow 模板

  2. 点击立即使用

  3. 账户授权

    1. 钉钉应用机器人:在下拉列表中点击添加新凭证

      • 凭证名称:可自定义,例如test-dingding

      • Client ID Client Secret:填写已创建的应用的Client ID Client Secret

      • Ip白名单:OpenClaw 应用绑定的 CLB 实例默认无访问控制策略,即允许所有公网IP访问。建议创建访问控制策略,并添加以下IP(具体配置方法,详见访问控制):

        • 您的设备的公网出口IP,确保您能够访问 OpenClaw 的控制界面。

        • 当前页面显示的AppFlowIP列表(点击复制IP列表),确保 AppFlow 能够访问 OpenClaw。

      • 点击确定

      • 选择已添加的凭证。

    2. MoltBot:在下拉列表中点击添加新凭证

      • token:输入通过以下命令获取的 token。

        openclaw config get gateway.auth
      • 凭证名称:可自定义,例如test-bot

      • 点击确定

      • 选择已添加的凭证。

  4. 执行动作

    • 公网地址:填写之前配置的SAE 应用公网访问地址<CLB_PUBLIC_IP>:80

    • 模板ID:填写之前已创建的模板 ID

  5. 基本信息:保持默认配置。

  6. 完成

    1. 复制并保存WebhookUrl,后续步骤需要使用。

    2. 点击发布

Step 3:配置钉钉机器人

  1. 添加并配置机器人

    1. 访问钉钉开放平台 - 钉钉应用页面,点击已创建的应用名称,进入应用详情页。

    2. 在左侧导航栏点击添加应用能力,选择机器人,点击添加

    3. 开启机器人配置开关。

      • 消息接收模式:选择HTTP模式

      • 消息接收地址:填写之前保存的WebhookUrl。

      • 其他参数可自定义。

    4. 点击发布

  2. 发布应用版本

    1. 在左侧导航栏点击版本管理与发布

    2. 点击创建新版本

      • 应用版本号:可自定义,例如1.0.0

      • 版本描述:可自定义,例如应用正式版本

      • 应用可用范围:建议先选择全部员工,待测试通过后,再细化配置。

      • 点击保存。然后根据页面提示操作,完成发布。

  3. 在钉钉群中使用机器人

    1. 在钉钉中进入目标钉钉群。

    2. 点击右上角...图标,进入群设置页面。

    3. 找到并点击机器人,进入机器人管理页面。

    4. 点击添加机器人,在企业机器人中,点击已创建的机器人。

    5. 点击添加,根据页面提示完成添加。

    6. 在群聊中@该机器人,或与该机器人私聊 ,即可开始对话。

删除 OpenClaw

如果不需要继续使用OpenClaw,可以在应用中心快速删除应用并释放资源,避免产生额外费用。

重要

删除 OpenClaw 将导致全部配置丢失,请谨慎操作。

  1. 在左侧导航栏选择应用中心

  2. 已部署场景页签,找到已部署的OpenClaw,点击右侧的删除,根据页面提示完成操作。