关于 alibabacloud-openclaw-ecs-dingtalk
此技能通过 aliyun CLI 在 Alibaba Cloud ECS 上部署 OpenClaw,配置 Bailian LLM,并连接 DingTalk 群机器人。适用于需要在钉钉群中使用 AI 对话的部署流程。
主要功能
- 01创建并启动 ECS 实例
- 02自动获取或创建 Bailian API Key
- 03通过 Cloud Assistant 安装 OpenClaw
- 04配置 DingTalk 连接器与网关
- 05验证部署并提供资源清理步骤
适用场景
- 01在 Alibaba Cloud 上部署 OpenClaw
- 02将 OpenClaw 接入 DingTalk 群聊
- 03配置 Bailian 模型用于群聊回复
- 04检查网关及 DingTalk 机器人运行状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aliyun/ alibabacloud-aiops-skills --skill alibabacloud-openclaw-ecs-dingtalk安装后在 Claude Code 中输入/alibabacloud-openclaw-ecs-dingtalk确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/bailian-api-key-guide.mddingtalk-setup-guide.mdram-policies.md详细介绍
在 ECS 上部署 OpenClaw 并集成 DingTalk
一键在 Alibaba Cloud ECS 实例上部署 OpenClaw AI Agent 平台,配置 Alibaba Cloud Bailian 大模型,并通过 DingTalk 机器人连接到 DingTalk 群组,让用户可以直接在 DingTalk 中与 AI 聊天。
来源:此 Skill 基于 Alibaba Cloud 官方文档和 OpenClaw 开源项目文档。请参阅末尾的参考链接。
版本:此 Skill 面向 OpenClaw 2026 年 3 月版本和
@dingtalk-real-ai/dingtalk-connector插件编写,并于 2026-03-11 完成验证。
参数收集
执行前,请在一条消息中提示用户提供所有必需参数。收到并确认所有必需参数后,方可继续。
输入验证
使用前验证所有用户输入,以防止命令注入。拒绝包含 Shell 特殊字符(;、|、&、$、\、'、"、反引号、圆括号、方括号、换行符)的输入。参数必须符合预期格式:
region:cn-[a-z]+、ap-[a-z]+、us-[a-z]+等。instance_type:ecs.[a-z0-9]+.[a-z0-9]+vpc_id/vswitch_id/security_group_id:vpc-/vsw-/sg-[a-z0-9]+dingtalk_client_id:ding[a-z0-9]+dingtalk_client_secret:16-64 个字母数字字符
向 Cloud Assistant RunCommand 传递参数时,对敏感值使用 base64 编码。
ECS 实例参数
| 参数 | 必需 | 描述 | 示例 |
|---|---|---|---|
region | 是 | 部署区域 | cn-hangzhou |
instance_type | 否 | ECS 实例类型(默认:ecs.c6.large,2 vCPU、4 GB) | ecs.c6.large |
image_id | 否 | OS 镜像(默认:Ubuntu 22.04) | 自动选择 |
vpc_id | 否 | 现有 VPC ID(未提供时自动创建) | vpc-xxx |
vswitch_id | 否 | 现有 VSwitch ID(未提供时自动创建) | vsw-xxx |
security_group_id | 否 | 现有安全组 ID(未提供时自动创建) | sg-xxx |
OpenClaw 和 Bailian 参数
Bailian API Key(bailian_api_key)会在部署期间通过 CLI 自动获取(见步骤 2),无需手动操作控制台。此 Skill 使用 aliyun modelstudio 命令(ListWorkspaces + CreateApiKey)以编程方式获取或创建 API Key。
前提条件:用户的 Alibaba Cloud 账号必须已开通 Bailian(Model Studio)服务。若尚未开通,请引导用户访问 Bailian 控制台 并先行开通。
DingTalk 集成参数
| 参数 | 必需 | 描述 | 示例 |
|---|---|---|---|
dingtalk_client_id | 是 | DingTalk 应用客户端 ID | dingxxxxxx |
dingtalk_client_secret | 是 | DingTalk 应用客户端密钥 | xxxxxxxxxxxxx |
如果用户尚未创建 DingTalk 应用,请引导其参阅 DingTalk 应用设置指南,创建应用、配置机器人、添加权限、发布应用并获取凭证。
执行约束
- 敏感信息脱敏:隐藏密码、密钥、令牌、IP、实例 ID 的中间部分(例如:
ak****3d、i-bp1****7f2z) - 输入验证:拒绝 Shell 特殊字符(
;、|、&、$、反引号等)。使用参数化 API 调用 - 防止命令注入:使用 base64 编码敏感值,再传入 Cloud Assistant RunCommand
- 网络超时:所有 curl/wget 操作都必须包含
--connect-timeout和--max-time参数 - 按顺序执行各步骤;每步完成后验证是否成功,并告知用户当前步骤
- 如果任何步骤失败,继续之前先征求用户确认
- Cloud Assistant
RunCommand结果:每隔 15 秒或更久轮询一次DescribeInvocations - 破坏性操作:删除前征求用户确认并验证资源状态
步骤 1:创建 ECS 实例
1.1 验证 Alibaba Cloud 账号
aliyun sts GetCallerIdentity \
--user-agent AlibabaCloud-Agent-Skills
1.2 检查可用区库存
查询目标实例类型在哪些可用区有库存,避免在无库存的可用区创建资源:
aliyun ecs DescribeAvailableResource \
--RegionId ${region} \
--DestinationResource InstanceType \
--InstanceChargeType PostPaid \
--InstanceType ${instance_type} \
--user-agent AlibabaCloud-Agent-Skills
从结果中选择 StatusCategory 为 WithStock 的可用区,并记录为 ${zone_id}。
1.3 创建 VPC 和 VSwitch(如果用户未提供)
# Create VPC
aliyun vpc CreateVpc \
--RegionId ${region} \
--VpcName openclaw-vpc \
--CidrBlock 172.16.0.0/16 \
--user-agent AlibabaCloud-Agent-Skills
# Create VSwitch (use the zone with stock found in the previous step)
aliyun vpc CreateVSwitch \
--RegionId ${region} \
--VpcId ${vpc_id} \
--VSwitchName openclaw-vswitch \
--CidrBlock 172.16.0.0/24 \
--ZoneId ${zone_id} \
--user-agent AlibabaCloud-Agent-Skills
1.4 创建安全组并配置规则
# Create security group
aliyun ecs CreateSecurityGroup \
--RegionId ${region} \
--VpcId ${vpc_id} \
--SecurityGroupName openclaw-sg \
--Description "Security group for OpenClaw" \
--user-agent AlibabaCloud-Agent-Skills
# Allow SSH (port 22)
aliyun ecs AuthorizeSecurityGroup \
--RegionId ${region} \
--SecurityGroupId ${security_group_id} \
--IpProtocol tcp \
--PortRange 22/22 \
--SourceCidrIp 0.0.0.0/0 \
--user-agent AlibabaCloud-Agent-Skills
# Allow HTTP (port 80) and HTTPS (port 443)
aliyun ecs AuthorizeSecurityGroup \
--RegionId ${region} \
--SecurityGroupId ${security_group_id} \
--IpProtocol tcp \
--PortRange 80/80 \
--SourceCidrIp 0.0.0.0/0 \
--user-agent AlibabaCloud-Agent-Skills
aliyun ecs AuthorizeSecurityGroup \
--RegionId ${region} \
--SecurityGroupId ${security_group_id} \
--IpProtocol tcp \
--PortRange 443/443 \
--SourceCidrIp 0.0.0.0/0 \
--user-agent AlibabaCloud-Agent-Skills
1.5 创建 ECS 实例
首先,查询目标地域中最新的 Ubuntu 22.04 系统镜像 ID:
aliyun ecs DescribeImages \
--RegionId ${region} \
--OSType linux \
--ImageOwnerAlias system \
--ImageName "ubuntu_22_04*" \
--Status Available \
--PageSize 1 \
--user-agent AlibabaCloud-Agent-Skills
从结果中获取最新的 ImageId,然后创建实例(注意:不要设置 InternetMaxBandwidthOut;稍后将通过 EIP 配置公网访问):
aliyun ecs RunInstances \
--RegionId ${region} \
--InstanceType ${instance_type} \
--ImageId ${image_id} \
--SecurityGroupId ${security_group_id} \
--VSwitchId ${vswitch_id} \
--SystemDisk.Category cloud_essd \
--SystemDisk.Size 40 \
--InstanceChargeType PostPaid \
--InstanceName openclaw-server \
--Amount 1 \
--user-agent AlibabaCloud-Agent-Skills
1.6 配置公网访问(EIP)
创建一个弹性公网 IP,并将其绑定到 ECS 实例,带宽设为 100 Mbps(安装 OpenClaw 需要下载许多 npm 包):
# Create EIP (100 Mbps bandwidth)
aliyun vpc AllocateEipAddress \
--RegionId ${region} \
--Bandwidth 100 \
--InternetChargeType PayByTraffic \
--user-agent AlibabaCloud-Agent-Skills
# Bind EIP to ECS instance
aliyun vpc AssociateEipAddress \
--RegionId ${region} \
--AllocationId ${eip_allocation_id} \
--InstanceId ${instance_id} \
--InstanceType EcsInstance \
--user-agent AlibabaCloud-Agent-Skills
记录 EIP 地址,以便后续进行 SSH 连接和通过云助手执行命令。
1.7 启动实例并等待其进入运行状态
# Start instance
aliyun ecs StartInstance \
--InstanceId ${instance_id} \
--user-agent AlibabaCloud-Agent-Skills
# Query instance status, confirm it is Running
aliyun ecs DescribeInstances \
--RegionId ${region} \
--InstanceIds '["${instance_id}"]' \
--user-agent AlibabaCloud-Agent-Skills
第 2 步:通过 CLI 获取百炼 API Key
使用 aliyun modelstudio CLI 插件自动获取或创建百炼 API Key,无需手动操作控制台。
2.1 安装 Model Studio CLI 插件
aliyun modelstudio 命令需要 aliyun-cli-modelstudio 插件:
aliyun plugin install --names aliyun-cli-modelstudio \
--user-agent AlibabaCloud-Agent-Skills
2.2 列出工作空间(必须先执行)
CreateApiKey 的必填参数是 workspace-id,因此必须先通过 ListWorkspaces 获取该参数。每个已开通百炼的阿里云账号都有一个默认工作空间:
aliyun modelstudio list-workspaces \
--user-agent AlibabaCloud-Agent-Skills
将结果中的 WorkspaceId 记录为 ${workspace_id}。如果结果为空(没有工作空间),则用户尚未开通百炼服务——引导用户前往百炼控制台开通。
2.3 创建 API Key
使用 ${workspace_id} 创建新的 API Key:
aliyun modelstudio create-api-key \
--workspace-id ${workspace_id} \
--description "OpenClaw deployment API Key" \
--user-agent AlibabaCloud-Agent-Skills
将响应中的 ApiKeyValue(格式为 sk-xxx)记录为 ${bailian_api_key}。
重要提示:完整的 API Key 值仅在创建时返回。
list-api-keys始终返回脱敏后的值(sk-***),无法用于获取可用密钥。请务必在此处记录完整密钥。如果密钥丢失,请删除旧密钥并创建新密钥。
第 3 步:通过云助手安装基础环境
使用阿里云云助手在 ECS 实例上远程执行命令,无需手动建立 SSH 连接。
将 Git 安装、Node.js 22.x 安装和 npm 中国镜像配置合并为一条命令,以减少等待时间:
aliyun ecs RunCommand \
--RegionId ${region} \
--Type RunShellScript \
--CommandContent "apt-get update -y && apt-get install -y git curl wget && curl -fsSL --connect-timeout 30 --max-time 300 https://deb.nodesource.com/setup_22.x | bash - && apt-get install -y nodejs && npm config set registry https://registry.npmmirror.com && node -v && npm -v" \
--InstanceId.1 ${instance_id} \
--Timeout 600 \
--user-agent AlibabaCloud-Agent-Skills
使用 DescribeInvocations 查询命令执行结果并确认成功:
aliyun ecs DescribeInvocations \
--RegionId ${region} \
--InvokeId ${invoke_id} \
--user-agent AlibabaCloud-Agent-Skills
确认输出中的 Node.js 版本为 v22.x.x。
轮询提示:此命令通常需要 2–5 分钟才能完成。查询
DescribeInvocations时,每隔 15–30 秒轮询一次,避免过于频繁地轮询。当InvocationStatus从Running变为Success或Failed时,表示命令已完成。
第 4 步:一键安装 OpenClaw
使用安装脚本完成 OpenClaw 配置、百炼 API 配置和钉钉插件安装。
安全性:敏感参数通过 Base64 编码传递,以防止命令注入。
# Encode sensitive parameters
BAILIAN_KEY_B64=$(echo -n "${bailian_api_key}" | base64)
DINGTALK_ID_B64=$(echo -n "${dingtalk_client_id}" | base64)
DINGTALK_SECRET_B64=$(echo -n "${dingtalk_client_secret}" | base64)
aliyun ecs RunCommand \
--RegionId ${region} \
--Type RunShellScript \
--CommandContent "curl -fsSL --connect-timeout 30 --max-time 300 https://openclaw-install-scripts.oss-cn-hangzhou.aliyuncs.com/install.sh -o /tmp/openclaw-install.sh && BAILIAN_API_KEY=\$(echo '${BAILIAN_KEY_B64}' | base64 -d) DINGTALK_CLIENT_ID=\$(echo '${DINGTALK_ID_B64}' | base64 -d) DINGTALK_CLIENT_SECRET=\$(echo '${DINGTALK_SECRET_B64}' | base64 -d) bash /tmp/openclaw-install.sh --api-key \"\$BAILIAN_API_KEY\" --api-region '${region}' --dingtalk-client-id \"\$DINGTALK_CLIENT_ID\" --dingtalk-client-secret \"\$DINGTALK_CLIENT_SECRET\"" \
--InstanceId.1 ${instance_id} \
--Timeout 600 \
--user-agent AlibabaCloud-Agent-Skills
脚本将自动完成:安装 OpenClaw npm 包、配置百炼 API、安装钉钉插件并启动网关。查询 DescribeInvocations,确认出现 Gateway started(每隔 30 秒轮询一次,耗时 3–8 分钟)。
第 5 步:验收测试
5.1 验证网关状态
aliyun ecs RunCommand \
--RegionId ${region} \
--Type RunShellScript \
--CommandContent "openclaw gateway status" \
--InstanceId.1 ${instance_id} \
--Timeout 60 \
--user-agent AlibabaCloud-Agent-Skills
确认网关状态为 running,且钉钉渠道插件已加载。
5.2 在 DingTalk 中测试
指导用户:
- 确认已根据 DingTalk 应用设置指南 完成应用创建、权限配置、发布,并将机器人添加到群组
- 在添加了机器人的 DingTalk 群组中,@提及机器人并发送消息(例如:“你好,请介绍一下自己”)
- 等待机器人回复
验收标准:机器人在 DingTalk 群组中正常回复,且回复内容由 Bailian 大模型生成。此结果表明部署成功。
5.3 部署完成报告
确认所有组件均正常运行后,向用户提供部署摘要:
- ECS 实例 ID 和 EIP 公网 IP
- OpenClaw 版本和服务状态
- Bailian 模型配置(模型名称、API 端点)
- DingTalk 应用名称和机器人状态
- 费用信息
资源清理
警告:删除资源不可逆。执行前务必征得用户确认。
删除前检查
删除前,提示用户:“以下资源将被永久删除:${instance_id}、${eip_allocation_id}、${security_group_id}、${vswitch_id}、${vpc_id}。此操作不可逆。输入 ‘yes’ 确认继续。”
仅在收到明确的 “yes” 确认后继续。
删除顺序
按依赖顺序删除(实例 → EIP → 安全组 → VSwitch → VPC):
# 1. Stop instance if running, then delete
aliyun ecs StopInstance --InstanceId ${instance_id} --user-agent AlibabaCloud-Agent-Skills
# Poll DescribeInstances until Status='Stopped'
aliyun ecs DeleteInstance --InstanceId ${instance_id} --user-agent AlibabaCloud-Agent-Skills
# 2. Release EIP (after confirming unassociated)
aliyun vpc ReleaseEipAddress --RegionId ${region} --AllocationId ${eip_allocation_id} --user-agent AlibabaCloud-Agent-Skills
# 3. Delete security group (after confirming no instances)
aliyun ecs DeleteSecurityGroup --RegionId ${region} --SecurityGroupId ${security_group_id} --user-agent AlibabaCloud-Agent-Skills
# 4. Delete VSwitch then VPC (after confirming empty)
aliyun vpc DeleteVSwitch --VSwitchId ${vswitch_id} --user-agent AlibabaCloud-Agent-Skills
aliyun vpc DeleteVpc --VpcId ${vpc_id} --user-agent AlibabaCloud-Agent-Skills
费用影响
- ECS 实例:2 vCPU、4 GB(ecs.c6.large)按量付费,约 0.3-0.5 CNY/小时(以控制台实际价格为准)
- EIP 带宽:100 Mbps 按流量计费
- Bailian 模型调用:新用户享有免费额度;超出额度后按 Token 用量收费
注意:以上费用仅供参考。请以 Alibaba Cloud 控制台显示的实际价格和账单为准。
常见故障排查
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| DingTalk 机器人无响应 | Gateway 未运行 | 通过云助手执行 openclaw gateway status 检查状态 |
| 回复“0 characters”空消息 | Bailian 模型配置丢失 | 检查 ~/.openclaw/openclaw.json 中的 models.providers 是否包含 alibaba-cloud |
| 401 错误 | Gateway Token 不匹配 | 检查 gateway.auth.token 是否与 channels.dingtalk-connector.gatewayToken 匹配 |
| AI 卡片未显示 | 缺少卡片权限 | 在 DingTalk 开放平台添加 Card.Streaming.Write 和 Card.Instance.Write 权限 |
| npm 安装超时 | 网络问题 | 确认已配置 npm 中国镜像;确认 EIP 带宽充足 |
参考链接
| 资源 | 链接 |
|---|---|
| Bailian API Key 指南 | references/bailian-api-key-guide.md |
| DingTalk 应用设置指南 | references/dingtalk-setup-guide.md |
| Alibaba Cloud 部署 OpenClaw | https://help.aliyun.com/zh/simple-application-server/use-cases/quickly-deploy-and-use-openclaw |
| DingTalk 开放平台 ECS 部署 | https://open.dingtalk.com/document/dingstart/deployment-alibaba-cloud-ecs-server |
| OpenClaw 官方网站 | https://openclaw.ai/ |
| Bailian 控制台 | https://bailian.console.aliyun.com/ |
| DingTalk 开放平台 | https://open.dingtalk.com/ |