一键部署 OpenClaw:基于 ACS Agent Sandbox 构建企业级 AI Agent 应用

简介: 本文将详细介绍如何基于 ACS Agent Sandbox 一键部署 OpenClaw,实现按需休眠与秒级唤醒,并介绍其与钉钉等应用的集成方法。

OpenClaw 是一款开源、自托管的个人AI 助手,用户可通过聊天界面与其交互并委托执行各类任务。阿里云容器计算服务(ACS)提供的 Agent Sandbox 算力深度打通了 AI 应用与 Kubernetes 及容器生态的集成路径。借助 ACS Agent Sandbox,企业和开发者可以快速构建大规模、高弹性、安全隔离的 Agent 基础设施,加速 AI 智能体在实际场景中的落地与创新。本文将详细介绍如何基于 ACS Agent Sandbox 一键部署 OpenClaw,实现按需休眠与秒级唤醒,并介绍其与钉钉等应用的集成方法。


基于 ACS Agent Sandbox 部署 OpenClaw 的优势

  1. 开箱即用、深度集成 Kubernetes 与容器生态:ACS Agent Sandbox支持以 Kubernetes 作为统一使用界面,提供符合容器标准的 Serverless 算力资源。用户部署 OpenClaw 时,仅需指定应用镜像,即可秒级启动一个功能完备、安全隔离的 AI Agent 运行环境,无需管理底层节点、集群或基础设施。
  2. 灵活的沙箱休眠与唤醒机制ACS Agent Sandbox 支持为OpenClaw实例提供按需使用的休眠和唤醒功能。这意味着当没有任务时,实例可以自动进入休眠状态以节省成本;一旦有新的请求或任务出现,它又能立即被唤醒,并恢复之前的工作状态。
  3. 强化的安全隔离措施基于轻量级虚拟化与容器沙箱技术,ACS Agent Sandbox 为每个 OpenClaw 实例提供独立的运行空间,实现进程、文件系统、网络等维度的严格隔离。
  4. 具备超大规模资源弹性能力:基于阿里云容器服务的大规模资源管理和高效极致交付技术,ACS Agent Sandbox能够满足能满足  AI Agent 业务的弹性需求,支持企业级应用部署。


前提条件

通过创建 ACK/ACS 集群使用ACS算力

您可以通过创建 ACK Pro 或ACS集群使用ACS Agent Sandbox 算力。

在ACK/ACS集群中安装使用ACS Agent Sandbox的相关组件

  • 在集群组件管理中安装 ACK Virtual Node 组件。(若您使用ACS集群,则跳过该步骤即可。)
  • 在集群组件管理中安装 ack-agent-sandbox-controller 组件,版本>=v0.5.3。
  • 在集群组件管理中安装ack-extend-network-controller组件。


创建OpenClaw沙箱

方案一:通过Sandbox CR直接创建OpenClaw沙箱

直接创建如下Sandbox资源,请注意在yaml文件中修改如下两个参数完成配置:

为在体验初期避免产生超出预期的费用,可购买百炼Coding Plan,该订阅采用固定月费模式,提供月度请求额度。若需使用Coding Plan,可以在服务部署完成后,参考在OpenClaw中使用百炼购买的Coding Plan来修改Base URL。Coding Plan仅支持抵扣qwen3-max-2026-01-23qwen3-coder-plus模型调用费用,不支持抵扣多模态模型调用费用。

警告:请妥善保管百炼 API-Key。若发生泄露,第三方将有机会冒用您的身份进行恶意使用,产生超出预期的token费用。
  • GATEWAY_TOKEN:  自定义参数,配置OpenClaw访问Token。

Sandbox资源中通过声明如下注解,为沙箱自动分配EIP。

network.alibabacloud.com/pod-with-eip: "true" # 表示为每个Pod自动分配一个EIP实例
network.alibabacloud.com/eip-bandwidth: "5" # 表示EIP实例带宽为5 Mbps
apiVersion: agents.kruise.io/v1alpha1
kind: Sandbox
metadata:  
  labels:        
    app: openclaw
  name: openclaw
  namespace: default  
spec:  
  template:
    metadata:      
      labels:        
        alibabacloud.com/acs: "true" # 使用ACS算力
        app: openclaw
      annotations:
        network.alibabacloud.com/pod-with-eip: "true" # 表示为每个Pod自动分配一个EIP实例
        network.alibabacloud.com/eip-bandwidth: "5" # 表示EIP实例带宽为5 Mbps
    spec:      
      containers:
      - env:
        - name: ENVD_DIR
          value: /mnt/envd
        - name: DASHSCOPE_API_KEY
          value: sk-xxxxxxxxxxxxxxxxx # 替换为您真实的API_KEY
        - name: GATEWAY_TOKEN
          value: clawdbot-mode-123456 # 替换为您希望访问OpenClaw的token
        image: registry.cn-hangzhou.aliyuncs.com/acs-samples/clawdbot:2026.1.24.3
        imagePullPolicy: IfNotPresent
        lifecycle:
          postStart:
            exec:
              command:
              - /bin/bash
              - -c
              - /mnt/envd/envd-run.sh
        name: openclaw
        resources:
          limits:
            cpu: "4"
            memory: 8Gi
          requests:
            cpu: "4"
            memory: 8Gi
        securityContext:
          readOnlyRootFilesystem: false
          runAsGroup: 0
          runAsUser: 0
        startupProbe:
          failureThreshold: 30
          initialDelaySeconds: 5
          periodSeconds: 5
          successThreshold: 1
          tcpSocket:
            port: 18789
          timeoutSeconds: 1
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /mnt/envd
          name: envd-volume
      dnsPolicy: ClusterFirst
      initContainers:
      - command:
        - sh
        - /workspace/entrypoint_inner.sh
        env:
        - name: ENVD_DIR
          value: /mnt/envd
        - name: __IGNORE_RESOURCE__
          value: "true"
        image: registry-cn-hangzhou.ack.aliyuncs.com/acs/agent-runtime:v0.0.2
        imagePullPolicy: IfNotPresent
        name: init
        resources: {}
        restartPolicy: Always
        terminationMessagePath: /dev/termination-log
        terminationMessagePolicy: File
        volumeMounts:
        - mountPath: /mnt/envd
          name: envd-volume
      paused: true
      restartPolicy: Always
      schedulerName: default-scheduler
      securityContext: {}
      terminationGracePeriodSeconds: 1
      volumes:
      - emptyDir: {}
        name: envd-volume

创建完成后,ACS会为该沙箱创建一个同名的Pod,待Pod启动完成,OpenClaw即处于可用状态。

$ k get sbx openclaw
NAME       STATUS    AGE   SHUTDOWN_TIME   PAUSE_TIME   MESSAGE
openclaw   Running   57s


方案二:通过SandboxSet CR创建OpenClaw沙箱预热池(推荐)

为OpenClaw沙箱进行预热

创建如下 SandboxSet 资源,为后续使用OpenClaw沙箱进行预热。

apiVersion: agents.kruise.io/v1alpha1
kind: SandboxSet
metadata:
  name: openclaw
  namespace: default
  annotations:
    e2b.agents.kruise.io/should-init-envd: "true"
  labels:
    app: openclaw
spec:
  replicas: 1
  template:
    metadata:
      labels:        
        alibabacloud.com/acs: "true" # 使用ACS算力
        app: openclaw
      annotations:
        network.alibabacloud.com/pod-with-eip: "true" # 表示为每个Pod自动分配一个EIP实例
        network.alibabacloud.com/eip-bandwidth: "5" # 表示EIP实例带宽为5 Mbps
    spec:
      initContainers:
        - name: init
          image: registry-cn-hangzhou.ack.aliyuncs.com/acs/agent-runtime:v0.0.2
          imagePullPolicy: IfNotPresent
          command: [ "sh", "/workspace/entrypoint_inner.sh" ]
          volumeMounts:
            - name: envd-volume
              mountPath: /mnt/envd
          env:
            - name: ENVD_DIR
              value: /mnt/envd
            - name: __IGNORE_RESOURCE__
              value: "true"
          restartPolicy: Always
      containers:
        - name: openclaw
          image: registry.cn-hangzhou.aliyuncs.com/acs-samples/clawdbot:2026.1.24.3         
          imagePullPolicy: IfNotPresent
          securityContext:
            readOnlyRootFilesystem: false
            runAsUser: 0
            runAsGroup: 0
          resources:
            requests:
              cpu: 4
              memory: 8Gi
            limits:
              cpu: 4
              memory: 8Gi
          env:
            - name: ENVD_DIR
              value: /mnt/envd
            - name: DASHSCOPE_API_KEY 
              value: sk-xxxxxxxxxxxxxxxxx # 替换为您真实的API_KEY
            - name: GATEWAY_TOKEN 
              value: clawdbot-mode-123456 # 替换为您希望访问OpenClaw的token
          volumeMounts:
            - name: envd-volume
              mountPath: /mnt/envd            
          startupProbe:
            tcpSocket:
              port: 18789
            initialDelaySeconds: 5
            periodSeconds: 5
            failureThreshold: 30
          lifecycle:
            postStart:
              exec:
                command: [ "/bin/bash", "-c", "/mnt/envd/envd-run.sh" ]        
      terminationGracePeriodSeconds: 1
      volumes:
        - emptyDir: { }
          name: envd-volume

SandboxSet创建完成后,可以看到1个沙箱已经处于可用状态:

$ k get sandboxsets
NAME       REPLICAS   AVAILABLE   UPDATEREVISION   AGE
openclaw   1          1           65744474f9       22m
$ k get sandboxes
NAME             STATUS    AGE   SHUTDOWN_TIME   PAUSE_TIME   MESSAGE
openclaw-c9wwc   Running   23m

对应地,您可以在ACS控制台看到与沙箱同名的Pod已经进入Running状态:

预热池中的沙箱可以直接使用,也可以通过如下方式从预热池中获取沙箱:

通过 SandboxClaim CR 从预热池获取沙箱

创建如下SandboxClaim资源,从SandbosSet中获取沙箱:

apiVersion: agents.kruise.io/v1alpha1
kind: SandboxClaim
metadata:
  name: openclaw-claim
spec:  
  templateName: openclaw # 之前创建的SandboxSet 名称
  replicas: 1
  claimTimeout: 1m
  ttlAfterCompleted: 5m

SandboxClaim 下发到集群之后,可以通过如下命令获取到 claim 成功的沙箱列表:

$ kubectl get sandboxclaims
NAME               PHASE       TEMPLATE   DESIRED   CLAIMED   AGE
openclaw-claim     Completed   openclaw   1         1         17s
$ kubectl get sandbox -l agents.kruise.io/claim-name=openclaw-claim
NAME             STATUS    AGE   SHUTDOWN_TIME   PAUSE_TIME   MESSAGE
openclaw-c9wwc   Running   96s

沙箱被claim后,SandboSet会迅速将预热池中的副本数补齐,保证预热的沙箱数量。

$ kubectl get sandboxsets
NAME       REPLICAS  AVAILABLE  UPDATEREVISION   AGE
openclaw   1         1          7f667d7d48       2m2s

通过EIP访问OpenClaw

在前面的介绍中,您成功创建了运行OpenClaw的沙箱实例。您可以通过查询与沙箱同名的Pod Yaml,在network.alibabacloud.com/allocated-eipAddress注解中找到系统自动分配的弹性公网IP,如下:

apiVersion: v1
kind: Pod
metadata:
  annotations:
    ...    
    network.alibabacloud.com/allocated-eip-id: eip-xxxxx0y884ucrevoxxxxx # 系统自动分配的EIP实例ID
    network.alibabacloud.com/allocated-eipAddress: xxx.xxx.xxx.xxx # 系统自动分配的EIP地址
    network.alibabacloud.com/allocated-eni-id: eni-xxxxx563trofuhaxxxxx # 系统自动分配的弹性网卡实例ID
    ...

该EIP绑定在系统自动分配的弹性网卡实例上,您可以通过network.alibabacloud.com/allocated-eni-id注解中找到系统自动分配的弹性网卡实例,并在弹性网卡控制台中配置安全组规则。请您确保系统所分配的弹性网卡安全组开放了18789端口的访问权限。详情请参见:

安全组概述

确认配置完成后,替换如下访问链接中的IP,即可直接访问 OpenClaw 页面:

http://xxx.xxx.xxx.xxx:18789/?token=clawdbot-mode-123456


使用ACS沙箱的休眠唤醒能力

前提条件

联系阿里云工作人员协助您开启休眠、唤醒功能白名单

通过 Sandbox CR 休眠 OpenClaw实例

在您的OpenClaw沙箱运行期间,您可以通过如下命令查看其状态:

$ kubectl get sandboxes openclaw-c9wwc -o yaml 
apiVersion: agents.kruise.io/v1alpha1
kind: Sandbox
metadata:
  ...
  name: openclaw-c9wwc
spec:  
  template:
    ...

您可以通过编辑Sandbox CR的spec.paused字段,将其修改为true,触发沙箱休眠。

$ kubectl -n default edit sandbox openclaw-c9wwc  # 修改 `spec.paused` 为 true 
apiVersion: agents.kruise.io/v1alpha1
kind: Sandbox
metadata:
  ...
  name: openclaw-c9wwc
spec:  
  paused: true
  template:
    ...

沙箱休眠成功后,可通过 Sandbox CR YAML 查看实例休眠状态。

$ k get sbx openclaw-c9wwc                                             
NAME             STATUS   AGE   SHUTDOWN_TIME   PAUSE_TIME   MESSAGE
openclaw-c9wwc   Paused   72m

OpenClaw实例休眠期间,您的服务将处于不可访问状态。

通过 Sandbox CR 唤醒 OpenClaw实例

您可以通过以下命令唤醒OpenClaw实例。

kubectl -n default edit sandbox openclaw-c9wwc  # 修改 `spec.paused` 为 false
apiVersion: agents.kruise.io/v1alpha1
kind: Sandbox
metadata:
  ...
  name: openclaw-c9wwc
spec:  
  paused: false
  template:
    ...

可通过Sandbox CR YAML 观察实例唤醒状态。

$ k get sbx openclaw-c9wwc                                             
NAME             STATUS    AGE   SHUTDOWN_TIME   PAUSE_TIME   MESSAGE
openclaw-c9wwc   Running   75m


将OpenClaw集成至钉钉使用

创建钉钉应用

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

创建应用

  1. 访问钉钉开放平台,在应用开发的左侧导航栏中,点击钉钉应用,在钉钉应用页面右上角点击创建应用
  2. 创建应用面板,填写应用名称应用描述,在应用图标上传图标,完成后点击保存

查看应用 Client ID 和 Client Secret

在左侧菜单选择凭证与基础信息,复制Client IDClient Secret,用于下一步创建连接流。

创建消息卡片

钉钉机器人通过卡片消息支持流式返回结果,您需要创建卡片模板供消息发送使用。

  1. 访问卡片平台-模板列表,点击新建模板

  2. 在创建模板输入框,填入模板信息,单击创建
  • 卡片类型:选择消息卡片
  • 卡片模板场景:选择AI 卡片
  • 关联应用:关联应用创建步骤中的应用

  1. 在模拟编辑页面,不要使用预设模板,不需要进行任何额外操作,直接保存并发布模板。然后点击返回模板列表页面。

  2. 返回模板列表,复制模板ID,用于创建钉钉连接流使用。

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

创建卡片后,您需要给应用授予发送卡片消息的权限。

  1. 访问钉钉应用列表。找到刚刚创建的应用,点击应用名称进入详情页面。
  2. 在左侧菜单选择开发配置 > 权限管理,在左侧搜索框搜索Card,勾选AI卡片流式更新权限(Card.Streaming.Write)和互动卡片实例写权限(Card.Instance.Write),单击批量申请

创建AppFlow连接流

  1. 使用AppFlow模板创建连接流,单击立即使用进入创建流程。
  2. 在连接流的账户授权配置向导页,点击添加新凭证。在创建凭证对话框中,填入创建的应用的Client ID 和 Client Secret,并设置一个自定义凭证名称。

    注意:在创建凭证时,请确保【Ip白名单】中的IP列表均已被您加入OpenClaw挂载的EIP安全组规则中放行,否则后续可能导致钉钉应用无法访问您的OpenClaw沙箱

  3. 在连接流的账户授权配置向导页,点击添加新凭证。输入您在创建OpenClaw沙箱时配置在GATEWAY_TOKEN 中的Token

  4. 执行动作配置向导页按照页面提示配置完成后点击下一步
  • 公网地址:端口:格式为您的OpenClaw实例分配的EIP:服务端口,例如,EIP为47.0.XX.XX,服务端口为18789,则应填写47.0.XX.XX:18789
  • 模板ID:填写步骤三1.3中保存的AI卡片模板ID。
  1. 基本信息配置向导页,填写连接流名称连接流描述(建议保持默认),完成后点击下一步
  2. 界面提示流程配置成功,复制WebhookUrl,点击发布

配置钉钉机器人

有了Webhook地址后,接下来您可以在钉钉应用中配置机器人来回答用户问题了。

配置钉钉机器人

  1. 访问钉钉应用列表。找到刚刚创建的应用,点击应用名称进入详情页面。
  2. 添加应用能力页面,找到机器人卡片,点击添加

在机器人配置页面,打开机器人配置开关,您可以参考下图完成配置。消息接收模式请选择HTTP模式消息接收地址AppFlow连接流配置发布成功后复制的WebhookUrl。然后点击发布

消息接收模式选择HTTP模式,目前AppFlow仅支持HTTP模式,选择Stream模式会导致无法返回消息。

发布应用版本

应用创建完成后,如果需要将应用供企业内其他用户使用,需要发布一个版本。

  1. 单击应用开发,在钉钉应用页面,点击目标应用。
  2. 在目标应用开发导航栏,单击版本管理与发布,在版本管理与发布页面,点击创建新版本。进入版本详情页面,输入应用版本号版本描述信息,选择合适的应用可见范围,完成后点击保存。并在弹窗中点击直接发布

测试机器人

你可以创建群聊或在已有群聊中添加机器人,并与机器人对话,查看效果。

  1. 在钉钉群管理中添加机器人。进入钉钉群群设置页面,点击机器人卡片区域,在机器人管理页面,点击添加机器人。在添加机器人的搜索文本框中输入目标机器人名称,并选中要添加的机器人。点击添加,完成后再点击完成添加
  2. 在钉钉群中@机器人进行交流互动。您也可以在钉钉的搜索栏中,输入机器人名称后,在功能页检索到对应机器人,进行私聊互动。

  1. 您与机器人的互动都可以在AppFlow连接流中查询运行日志,从而进行调试:

相关文章
|
22小时前
|
人工智能 运维 安全
国际权威报告:阿里云获评Agentic AI开发平台市场领导者
2月12日,国际市场研究机构Omdia发布《2026年亚太Agentic AI开发平台市场评估报告》,阿里云凭借卓越的技术深度和全栈AI布局摘得“领导者”桂冠,5项核心能力获得最高评级(Advanced),是国内厂商最优,与AWS、谷歌、微软等全球科技巨头同处最高评级梯队。
|
3天前
|
人工智能 弹性计算 自然语言处理
专属个人主页助你在求职季脱引而出
AI时代是时候告别传统的“纸片简历”了!你需要一个能动态展示、深度链接、真正代表你的“云端名片”——专属个人主页! 本方案介绍如何通过自然语言,5分钟快速在云端搭建一个可对外提供访问的个人主页。
|
3天前
|
存储 人工智能 运维
2026年阿里云企业用户优惠政策与专属服务介绍,企业上云优惠攻略参考
2026年阿里云为企业用户推出专属优惠,涵盖199元/年通用算力型u1实例等高性价比云服务器,以及u2a实例和第九代实例等高性能选择。企业可申请最低3500元、最高10万元上云抵扣金,及5亿迁云补贴优惠券,有效降低上云成本。同时,阿里云提供专家一对一服务、初创企业专属支持及免费试用机会,助力企业平滑迁移、高效运维,满足企业从入门到高阶的多元上云需求。
|
3天前
|
存储 监控 NoSQL
阿里云服务器ESSD云盘怎么样?ESSD云盘规格、计费与应用场景解析参考
阿里云ESSD云盘融合25GE网络与RDMA技术,为单个云盘提供高达100万随机读写性能,实现低时延,是阿里云在存储技术领域的重要成果。ESSD云盘规格多样,性能级别分PL0至PL3四档,满足不同业务需求,且性能随容量增加而提升。计费方式灵活,包括按量付费、包年包月及存储容量单位包。不同容量范围和性能级别,以及实例规格的存储I/O性能的差异可适应不同的应用场景,为用户提供稳定高效的存储支持。
|
4天前
|
运维 Kubernetes Linux
Kubernetes 网络一出事,先别重启:一条从 Pod 打到内核的排查路线图
Kubernetes 网络一出事,先别重启:一条从 Pod 打到内核的排查路线图
56 4
|
4月前
|
人工智能 文字识别 监控
|
20小时前
|
SQL 安全 前端开发
WordPress Fontsy Plugin SQL注入漏洞深度剖析与防御指南
本文深度解析WordPress Fontsy插件CVE-2022-4447高危SQL注入漏洞:影响1.8.6及以下所有版本,未授权即可通过AJAX接口(get_fonts等)触发,CVSS最高9.8分。详述成因(参数未过滤+未用$wpdb->prepare)、危害(数据窃取、服务器沦陷)及紧急卸载、WAF拦截、安全开发等防御方案。(239字)
37 8
|
21小时前
|
人工智能 自然语言处理 前端开发
一句话生成应用正在改变什么?2026 AI开发范式新观察
AI开发正从代码补全、模块生成迈向应用级生成:一句话描述需求,即可自动生成含前后端、数据库的可运行系统骨架。这大幅压缩启动周期,降低技术门槛,但不替代开发者,而是重塑“人定义需求、AI构建骨架”的协作范式。
|
19小时前
|
存储 NoSQL 关系型数据库
什么是向量数据库 —— 零基础也能懂的核心概念
本文用生活化案例零基础解读向量数据库:它本质是“存向量、找相似”的工具,将文本/图片等转为数字向量,通过相似度检索解决大模型知识滞后与幻觉问题。涵盖向量化原理、与传统数据库区别、RAG实战流程及核心价值,附实操入口,助新手快速上手。(239字)
|
15小时前
|
安全 开发者
云服务器租用价格多少钱一年?
阿里云服务器年付低至38元起!经济型e实例99元/年,u1实例199元/年,u2a实例492.6元/年(直降超900元)。轻量应用服务器限时秒杀38元/年。价格含基础配置,地域、镜像及增值服务可能影响最终费用,详情请以官网实时报价为准。