作者:黄震
开源项目 OpenClaw(原名 Clawdbot / Moltbot)在 GitHub 上的星标数突破 14 万,揭示了 AI 技术栈的显著演进:人工智能正从被动生成的“对话框”,迈向具备自主规划能力的“智能代理(Autonomous Agents)”。OpenClaw 正是这一概念的工程化落地——它以轻量级 CLI 工具的形式,在用户设备上启动了一个本地网关服务,为 Agent 提供了一个安全、持久且可扩展的运行时环境。
在这个环境中,Agent 是决策核心,Skills 是能力边界。网关则作为运行时,负责协调交互、记忆与执行三大子系统。它依据 Skills 的标准化接口定义,将大模型的模糊意图映射为精准的系统指令,从而驱动整套智能体生命周期的运转:
- 交互与感知:它通过插件化适配器统一接入 WhatsApp、Telegram,并利用 Webhook 对接钉钉、飞书等国内平台;同时通过心跳机制与 Cron 调度器,实现 7×24 小时的任务值守与主动触发。
- 决策与记忆:内置的 Memory 子系统利用本地向量数据库,为 Agent 提供了持久化的长短期记忆,使其能记住用户偏好与历史决策;配合 Skills 注册表,Agent 可按需加载外部工具(如邮件收发、日历管理),不断扩展能力边界。
- 安全执行:它不依赖脆弱的本地环境,而是直接调度宿主机的 Docker Daemon,为每个任务动态创建临时沙箱容器来隔离运行代码;同时集成 Headless Chromium,利用 CDP 协议实现像素级的浏览器自动化。
这种架构让 AI 从“聊天窗口”真正走入“生产环境”,升级为能交付结果的“数字员工”。
为什么选择在 SAE 上托管 OpenClaw?
OpenClaw 的执行力依赖于对 Docker 运行时和系统资源的深度调用。阿里云 SAE 凭借全功能的容器环境与 Serverless 化的资源调度,为 OpenClaw 提供了一个既能完整运行其所有高级功能,又能避免资源闲置与运维复杂的理想托管平台。
▍1. 零门槛释放 Agent 全量能力
OpenClaw 的核心能力在于能动态创建“沙箱”来执行代码,这要求宿主环境具备完整的 Docker 运行时权限。
SAE 原生支持 Docker-in-Docker(DinD)模式,允许 OpenClaw 在实例内部独立运行一套完整的 Docker Daemon。这意味着无论是启动临时的 Python 执行环境,还是运行 Headless 浏览器进行网页操作,都能在云端顺畅执行,开发者无需关心底层的环境搭建,即可获得与本地部署一致的完整功能体验。
▍2. 极致弹性实现算力取用自由
OpenClaw 的工作负载往往具有显著的潮汐效应与脉冲特征,固定规格的部署方式必然无法兼顾性能和成本。
SAE 提供了秒级的水平扩缩与垂直规格调整能力,能够精准跟随 Agent 的实际负载动态分配资源。配合缩容至 0 与秒级冷启动机制,以及精准的按量付费模式,开发者可以真正实现“用多少付多少”,以最优的成本结构支撑 Agent 的全天候运行。
▍3. 全托管架构保障服务高可用
作为你的“数字员工”,OpenClaw 需要具备生产级的稳定性。
SAE 提供了全托管的运行环境,内置了跨可用区容灾、健康检查与故障自愈能力。开发者无需关注服务器的补丁更新或宕机恢复,只需专注于 Agent 的 Skills 开发与业务逻辑构建,即可获得 7×24 小时的企业级服务保障。
部署与配置步骤指引
▍前置准备
在开始部署前,请确保已完成以下准备工作:
- 已开通并授权 Serverless 应用引擎[1],详见准备工作[2]。
- 已安装并配置 saectl 命令行工具用于远程访问 OpenClaw 实例。安装与配置方法详见 Saectl 命令行工具[3]。
- 专有网络(VPC)中已配置公网 NAT 网关并绑定 EIP 用于沙箱容器访问公网(如模型 API、网页抓取等)。
▍Step 1:应用中心一键部署
1. 登录 SAE 控制台,进入「应用中心」。2. 搜索并点击模板「OpenClaw — Serverless 部署」,进入服务创建页面。3. 在表单中填写以下必要信息:
- 服务实例名称:自定义,如 openclaw-test
- 专有网络(VPC):选择已配置 NAT 网关的 VPC
- 交换机(vSwitch):选择对应可用区的交换机
4. 其余参数保持默认,点击「创建」。
服务创建通常需要 2–3 分钟。创建完成后,在 SAE 应用列表中将看到名为 openclaw-gateway 的应用。
▍Step 2:登陆应用实例并初始化配置
OpenClaw 的 CLI 命令需在 Gateway 容器内部执行。您可通过以下任一方式登录:
方式 A:通过 SAE 控制台 WebShell
1. 在 SAE 控制台找到 openclaw-gateway 应用。2. 进入「实例列表」,点击任意实例右侧的「WebShell」按钮,即可进入容器终端。
方式 B:通过 saectl 命令行工具(推荐)
saectl exec -it -n <namespace> <pod-name>
详见使用 Saectl 工具管理应用实例 Pod[4]。
后续所有命令均在容器实例内执行。
初始化 OpenClaw 运行环境
1. 设置终端逻辑尺寸(避免 TUI 渲染异常)。
stty rows 40 cols 120
2. 执行初始化命令。
openclaw onboard --install-daemon
此命令将通过交互形式引导您完成基础配置,并安装后台守护进程。
过程中若提示“Systemd user services are unavailable.”,属正常现象。OpenClaw 在容器环境中使用轻量级进程管理器 supervisord 替代 systemd。
启动 Gateway 服务
在容器内使用 supervisord 管理服务生命周期:
首次部署后启动服务:
supervisorctl start openclaw
后续修改配置后重启服务:
supervisorctl restart openclaw
▍Step 3:配置百炼为模型提供商
1. 将阿里云百炼接入为兼容 OpenAI 协议的模型后端。
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 } ] }'
请将 your-api-key-here 替换为有效的百炼 API Key。
2. 指定该模型为默认推理模型(需与上述 ID 一致):
openclaw config set agents.defaults.model.primary "dashscope/qwen3-max-2026-01-23"
3. 重启 Gateway 使配置生效。
▍Step 4:启用并配置沙箱环境
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" # 6. 设置浏览器沙箱的网络模式(同上,按需选择 "bridge" 或 "none") openclaw config set agents.defaults.sandbox.browser.network "bridge"
▍Step 5:访问 OpenClaw 控制界面
OpenClaw 支持两种交互方式:终端 TUI 和 Web Control UI。
方式 A:命令行 TUI
openclaw tui
默认进入 main Agent 的 main Session,可直接开始对话。
方式 B:Web Control UI
1. 确认 Gateway 绑定地址
# 查看配置 openclaw config get gateway.port openclaw config get gateway.bind # 应该是: # port: 18789 # bind: "lan"
若 gateway.bind 为 loopback,则无法从外部访问,需要设置为 lan。
# 修改为 lan(允许外部访问) openclaw config set gateway.bind "lan" # 重启 Gateway supervisorctl restart openclaw
2. 配置公网访问入口
在 SAE 控制台为应用绑定 CLB 并生成公网访问 IP[5],并配置 HTTPS 监听器,容器端口为 18789(OpenClaw Gateway 监听端口)。
3. 设备配对
获取认证凭据:
# 获取 Gateway 认证 Token openclaw config get gateway.auth
在浏览器中打开:
https://<CLB_PUBLIC_IP>:18789?token=<GATEWAY_AUTH_TOKEN>
首次访问将显示“Pairing required”,表示需授权当前设备。
批准设备配对请求:
# 列出待处理的配对请求 openclaw devices list --token "<GATEWAY_AUTH_TOKEN>" # 找到状态为 "pending" 的请求 ID,并批准 openclaw devices approve <requestId>
批准后刷新页面,即可正常使用 Web 控制台。
构建钉钉 AI 助理
▍Step 1:创建钉钉应用
创建钉钉应用需要您的钉钉账号有开发者权限。您可以联系您的组织管理员获取钉钉开放平台的开发权限,具体操作请参见获取开发者权限[6]。
1. 创建应用
a. 访问钉钉开放平台[7],点击创建。如果创建过应用但未展示应用开发指引,点击立即开始进入钉钉应用页面。
b. 在应用开发的左侧导航栏中,点击钉钉应用,在钉钉应用页面右上角点击创建应用。
c. 在创建应用面板,填写应用名称和应用描述,在应用图标上传图标,完成后点击保存。
2. 查看应用 Client ID 和 Client Secret
在左侧菜单选择凭证与基础信息,复制 Client ID 和 Client Secret,用于下一步创建连接流。
3. 创建消息卡片
a. 访问卡片平台[8],点击新建模板。
b. 在创建模板输入框,填入模板信息,单击创建。
- 卡片类型:选择消息卡片。
- 卡片模板场景:选择 AI 卡片。
- 关联应用:关联应用创建步骤中的应用[9]。
c. 在模拟编辑页面,不要使用预设模板,不需要进行任何额外操作,直接保存并发布模板。然后点击返回模板列表页面。
d. 直接保存并发布模板。然后点击返回模板列表页面。
e. 返回模板列表,复制模板 ID,用于创建钉钉连接流使用。
4. 授予应用发送卡片消息权限
创建卡片后,您需要给应用授予发送卡片消息的权限。
a. 访问钉钉应用列表[10]。找到刚刚创建的应用,点击应用名称进入详情页面。
b. 在左侧菜单选择开发配置 > 权限管理,在左侧搜索框分别输入 Card.Streaming.Write 和 Card.Instance.Write,并在操作列点击申请权限。
▍Step 2:创建 AppFlow 连接流
1. 使用 AppFlow 模板[11]创建连接流,单击立即使用进入创建流程。
2. 在连接流账号授权配置向导页,点击钉钉应用机器人下的添加新凭证,填入创建的应用的 Client ID 和 Client Secret,并设置一个自定义凭证名称。
3. 在连接流的账户授权配置向导页,点击 moltbot 下的添加新凭证。输入之前通过以下命令获取的 token。
openclaw config get gateway.auth
4. 在执行动作配置向导页按照页面提示配置完成后点击下一步。
- 公网地址:填写 SAE 应用访问配置中的公网访问地址 https://:18789。
- 模板 ID:填写保存的 AI 卡片模板 ID。
5. 在基本信息配置向导页,填写连接流名称和连接流描述(保持默认),完成后点击下一步。
6. 界面提示流程配置成功,复制 WebhookUrl,点击发布。
▍Step 3:配置钉钉机器人
1. 添加并配置机器人
- 进入钉钉开发者后台,找到您的应用,点击进入详情页。
- 在「应用能力」中点击「添加能力」,选择「机器人」。
- 开启机器人开关,消息接收模式选择 HTTP,并将消息接收地址填为 OpenClaw 生成的 Webhook URL,完成后点击「发布」。
2. 发布应用版本
- 在应用开发页面,进入「版本管理与发布」。
- 点击「创建新版本」,填写版本号和描述,设置可见范围后保存,并在弹窗中点击「直接发布」。
3. 在钉钉群中使用机器人
- 进入目标钉钉群 → 群设置 → 智能群助手 → 添加机器人。
- 搜索并选择您刚创建的机器人,完成添加。
- 在群聊或私聊中 @该机器人,即可开始对话。
本实践需加白使用,如果您有任何疑惑,欢迎加入“Serverless应用引擎(SAE)用户群”,钉钉群号:23198618。
相关链接:
[1] Serverless 应用引擎
https://saenext.console.aliyun.com/?spm=a2c4g.11186623.0.0.215561ffyGFHpM
[2] 准备工作
https://help.aliyun.com/zh/sae/sae-2-preparations
[3] Saectl 命令行工具
[4] 使用 Saectl 工具管理应用实例 Pod
https://help.aliyun.com/zh/sae/manage-sae-instances-using-saectl-tool
[5] 绑定 CLB 并生成公网访问 IP
https://help.aliyun.com/zh/sae/sae-2-bind-clb-for-application
[6] 获取开发者权限
https://open.dingtalk.com/document/dingstart/get-developer-permissions
[7] 钉钉开放平台
[8] 卡片平台
[9] 应用创建步骤中的应用
https://help.aliyun.com/zh/simple-application-server/use-cases/quickly-deploy-and-use-openclaw
[10] 钉钉应用列表
[11] AppFlow 模板