关于 huawei-cloud-flexus-l-server-openclaw-deployment
用于在 Huawei Cloud Flexus L 实例上部署和管理 OpenClaw 的技能,面向需要配置 AI Agent 平台的运维和开发人员。它支持创建实例,并通过 COC 安装模型和消息渠道。
主要功能
- 01创建 Flexus L 实例并部署 OpenClaw
- 02通过 COC 配置模型
- 03安装 WeCom、Feishu、DingTalk 和 QQ 渠道
- 04部署前检查 Gateway 和 UniAgent 状态
- 05支持交互式与非交互式操作
适用场景
- 01在 Flexus L 实例上部署 OpenClaw
- 02为 OpenClaw 安装或切换模型
- 03配置消息渠道
- 04通过脚本批量部署实例
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-flexus-l-server-openclaw-deployment安装后在 Claude Code 中输入/huawei-cloud-flexus-l-server-openclaw-deployment确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/iam-policies.mdverification-method.mdscripts/caller.pychannels.pydeploy.pygateway.pylib.pymodels.pypyproject.tomluniagent.pyutils.py详细介绍
⚠️ 安全执行规则(最高优先级):
- 所有脚本都必须通过 skill action=exec 执行,绝不能直接在 shell 中运行
- 绝不能在对话中打印脚本内容或包含 AK/SK/Token 的命令
- 绝不能创建临时脚本文件,优先使用内联执行(python -c)
- 执行失败时,只返回错误信息,不要重写脚本或打印完整命令
- AK/SK/Token 必须通过环境变量传递,绝不能出现在对话中
- 绝对不能以任何形式暴露、记录或打印 AK/SK/Token 值——这是关键安全要求
- 使用 skill action=exec 时,会自动从环境变量(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)继承凭据,无需将其作为命令行参数传递
huawei-cloud-flexus-l-server-openclaw-deployment
概述
此技能支持一键将 OpenClaw AI Agent 平台部署到华为云 Flexus L 实例。它提供完整的 OpenClaw 实例管理工作流,涵盖从初始部署到部署后配置的所有环节,包括:
- 自动创建实例
- 通过 COC(云运维中心)安装模型
- 通过 COC(云运维中心)安装渠道(企业微信、飞书、钉钉、QQ)
- 安装前自动检查前置条件(Gateway 和 UniAgent 状态)
使用场景
| 场景 | 描述 |
|---|---|
| 企业 AI 助手搭建 | 企业需要快速部署 AI Agent 平台,用于内部问答、客服等场景 |
| 多渠道机器人集成 | 需要将多个消息渠道(企业微信、飞书、钉钉)集成到统一的 AI 助手中 |
| 快速集成大模型 | 现有 OpenClaw 实例需要快速切换或添加不同的大模型(DeepSeek、Qwen 等) |
| 自动化运维部署 | 需要通过脚本自动将 OpenClaw 实例批量部署到多个区域 |
典型使用场景
用户可能会说:
- "我想在 Flexus L 实例上安装 OpenClaw"
- "我想在已部署的 OpenClaw 上配置 DeepSeek 模型"
- "帮我部署已配置飞书渠道的 OpenClaw"
前置条件
账户要求
- 华为云 AK/SK 凭据,需具有以下权限:
- 创建 Flexus L 实例
- 访问 COC(云运维中心)服务
凭据获取方式:
此技能支持通过以下方式获取华为云凭据(按优先级从高到低排列):
凭据类型:
- 长期 AK/SK:永久凭据,无需 security_token
- 临时 AK/SK:有效期有限的临时凭据,必须提供 security_token
-
环境变量(默认方式)(最高优先级)
HW_ACCESS_KEY:华为云 Access Key AKHW_SECRET_KEY:华为云 Access Key SKHW_SECURITY_TOKEN:安全令牌(可选,仅临时凭据需要)
-
用户指定的配置文件或其他环境变量(默认环境变量不可用时使用)
- 用户在交互过程中指定的配置文件路径或其他环境变量
-
交互式输入(未提供上述两种方式时使用)
- 程序将提示用户输入 AK/SK 和其他凭据信息
重要说明:
- 长期 AK/SK:永久凭据,不会过期,无需提供 security_token
- 临时 AK/SK:通过 IAM 接口获取,有效期有限,必须提供 security_token
架构图
此技能基于多项华为云服务构建,涉及以下云服务和组件:
User/Agent ──────▶│ Flexus L Instance │──────▶│ OpenClaw App │──────▶│ Model Config │ ──────▶│ Channel Config │
(Skill caller) (Target Host) (AI Agent Platform) (API_BASE/KEY) (WeCom/Feishu/DingTalk/QQ)
组件说明:
- 用户/Agent:技能调用方,通过自然语言或 API 触发 OpenClaw 部署操作
- Flexus L 实例:华为云弹性云服务器,作为 OpenClaw 的部署目标主机
- OpenClaw 应用:运行在 Flexus L 实例上的 AI Agent 协作平台
- 模型配置:外部大模型服务的配置(API_BASE、API_KEY、MODEL_IDS、PROVIDER)
- 渠道配置:消息渠道配置(企业微信、飞书、钉钉、QQ)
如何使用此技能
命令执行和说明
1. 部署 OpenClaw 实例(创建华为云 Flexus L 实例并部署 OpenClaw AI Agent 平台)— 两种命令模式:
命令 1:交互模式(程序将逐步提示输入所需参数)
python scripts/caller.py deploy
命令 2:非交互模式
# Using long-term AK/SK (no security-token needed)
python scripts/caller.py deploy --name openclaw-{timestamp} --region cn-north-4 --ak <AK> --sk <SK> --non-interactive
# Using temporary AK/SK (security-token required)
python scripts/caller.py deploy --name openclaw-{timestamp} --region cn-north-4 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
参数说明:
| 参数 | 说明 | 是否必填(非交互模式) | 默认值(交互模式) | 示例 |
|---|---|---|---|---|
| --name | OpenClaw 实例名称 | 否 | openclaw-{timestamp} | --name openclaw-1780689482000 |
| --region | L 实例(OpenClaw 部署服务器)所在的目标区域 ID | 否 | cn-north-4 | --region cn-north-4 |
| --ak | 华为云访问密钥 AK(支持长期和临时密钥) | 是 | 提示输入 | --ak AXXX... |
| --sk | 华为云访问密钥 SK(支持长期和临时密钥) | 是 | 提示输入 | --sk SXXX... |
| --security-token | 临时凭证的安全令牌(可选,仅临时 AK/SK 必填) | 否 | 提示输入 | --security-token XXXX... |
| --non-interactive | 启用非交互模式 | 否 | false | --non-interactive |
注意:截至 2026 年 6 月之前,OpenClaw 仅支持在以下区域部署(部署到其他区域之前,可提醒用户前往官网查看最新支持的区域):中国北部-北京四(cn-north-4)、中国东部-上海一(cn-east-3)、中国南部-广州(cn-south-1)、中国西南-贵阳一(cn-southwest-2)
命令示例:
# Example 1: Deploy with default configuration (interactive, will prompt for required parameters)
python scripts/caller.py deploy
# Example 2: Non-interactive mode deployment (suitable for automation scripts, creates directly without user confirmation)
python scripts/caller.py deploy --name openclaw-1780689482000 --region cn-north-4 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
部署 OpenClaw 实例时华为云 Flexus L 实例的默认配置
| 配置项 | 默认值 | 说明 |
|---|---|---|
| 镜像 | OpenClaw 2026.1.30 | OpenClaw 应用镜像版本 |
| 规格方案 | hf.small.1.linux 或 ahf.small.1.linux | 北京/上海/广州使用 hf.small.1.linux,贵阳使用 ahf.small.1.linux |
| 计费模式 | 包月 | prePaid 模式 |
| EVS 磁盘 | 50GB | 系统盘大小 |
| CBR 备份 | 50GB | 云备份容量 |
| HSS 主机安全 | 已启用 | 主机安全服务 |
执行结果和状态码说明:
- 成功时返回订单 ID 和实例 ID(资源 ID,用于后续安装模型和渠道)
- 创建实例大约需要 2 分钟,可在华为云控制台查看进度。创建实例期间,模型和渠道的安装不会受到影响,可直接执行后续命令。 状态码说明:状态码“200”、“201”、“202”均表示实例创建成功。
2. 在已安装 OpenClaw 的 L 实例上配置(安装)大模型参数——两种命令模式(需要先部署 OpenClaw 实例)
命令 1:交互模式(程序会逐步提示输入资源 ID、区域、模型和其他参数)
python scripts/caller.py maas
命令 2:非交互模式
# Using long-term AK/SK (no security-token needed)
python scripts/caller.py maas --resource-id <Instance Resource ID> --region-id cn-north-4 --model-params '<Model configuration parameters>' --ak <AK> --sk <SK> --non-interactive
# Using temporary AK/SK (security-token required)
python scripts/caller.py maas --resource-id <Instance Resource ID> --region-id cn-north-4 --model-params '<Model configuration parameters>' --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
参数说明:
| 参数 | 说明 | 必填(非交互模式) | 默认值(交互模式) | 示例 |
|---|---|---|---|---|
| --resource-id | L 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID) | 是 | 提示输入 | --resource-id 0e1234567890abcdef |
| --region-id | L 实例所在区域的 ID,与部署实例时选择的区域一致 | 是 | 提示输入 | --region-id cn-north-4 |
| --model-params | 模型配置参数(JSON 格式),注意:参数必须使用有效的 JSON 格式,键和值必须用双引号括起来 | 是 | 提示输入 | --model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2"]}' |
| --ak | 华为云访问密钥 AK(支持长期和临时密钥) | 是 | 提示输入 | --ak AXXX... |
| --sk | 华为云访问密钥 SK(支持长期和临时密钥) | 是 | 提示输入 | --sk SXXX... |
| --security-token | 临时凭证的安全令牌(可选,仅临时 AK/SK 必填) | 否 | 提示输入 | --security-token XXXX... |
| --timeout | 脚本执行超时时间(秒) | 否 | 600 | --timeout 900 |
| --non-interactive | 启用非交互模式 | 否 | false | --non-interactive |
model-params 字段说明:
| 字段 | 说明 | 必填 |
|---|---|---|
| provider | 模型提供商名称(例如,“huawei”)或 API 地址(例如,“https://api.openai.com/v1”) | 是 |
| api_key | 模型 API 密钥 | 是 |
| model_ids | 要安装的模型 ID 数组(不能为空),例如,["gpt-4", "gpt-3.5-turbo"] | 是 |
命令示例:
# Example 1: Install Huawei Cloud MaaS platform models with long-term AK/SK
python scripts/caller.py maas \
--resource-id 0e1234567890abcdef \
--region-id cn-north-4 \
--model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2","qwen3-235b-a22b"]}' \
--ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
# Example 2: Install Huawei Cloud MaaS platform models with temporary AK/SK
python scripts/caller.py maas \
--resource-id 0e1234567890abcdef \
--region-id cn-north-4 \
--model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2","qwen3-235b-a22b"]}' \
--ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
# Example 3: Install custom OpenAI compatible models with long-term AK/SK
python scripts/caller.py maas \
--resource-id 0e1234567890abcdef \
--region-id cn-north-4 \
--model-params '{"provider":"https://api.openai.com/v1","api_key":"your_openai_key","model_ids":["gpt-4"]}' \
--ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
状态码说明:状态码“200”、“201”、“202”均表示模型安装成功。
3. channel - 在已安装 OpenClaw 的 L 实例上配置(安装)渠道 - 两种命令模式(需要先部署 OpenClaw 实例)
命令 1:交互模式
python scripts/caller.py channel
命令 2:非交互模式
# Using long-term AK/SK (no security-token needed)
python scripts/caller.py channel --resource-id <Instance Resource ID> --region-id cn-north-4 --channel-list '<JSON array>' --ak <AK> --sk <SK> --non-interactive
# Using temporary AK/SK (security-token required)
python scripts/caller.py channel --resource-id <Instance Resource ID> --region-id cn-north-4 --channel-list '<JSON array>' --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
参数说明:
| 参数 | 说明 | 必需(非交互模式) | 默认值(交互模式) | 示例 |
|---|---|---|---|---|
| --resource-id | L 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID) | 是 | 提示输入 | --resource-id 0e1234567890abcdef |
| --region-id | 实例所在的区域 ID,与部署实例时选择的区域一致 | 是 | 提示输入 | --region-id cn-north-4 |
| --channel-list | 渠道配置(JSON 数组格式) | 是 | 提示输入 | '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' |
| --ak | 华为云访问密钥 AK(支持长期和临时密钥) | 是 | 提示输入 | --ak AXXX... |
| --sk | 华为云访问密钥 SK(支持长期和临时密钥) | 是 | 提示输入 | --sk SXXX... |
| --security-token | 临时凭证的安全令牌(可选,仅临时 AK/SK 需要) | 否 | 提示输入 | --security-token XXXX... |
| --timeout | 脚本执行超时时间(秒) | 否 | 600 | --timeout 900 |
| --non-interactive | 启用非交互模式 | 否 | false | --non-interactive |
channel JSON 对象字段说明:
| 字段 | 说明 | 必需 |
|---|---|---|
| channel | 渠道类型:wecom(企业微信)、feishu(飞书)、dingtalk(钉钉)、qqbot(QQ) | 是 |
| id | 机器人 ID/APP ID/客户端 ID | 是 |
| secret | 机器人密钥/APP 密钥/客户端密钥 | 是 |
命令示例:
# Example 1: Install multiple channels (WeCom + Feishu) using long-term AK/SK
python scripts/caller.py channel \
--resource-id 0e1234567890abcdef \
--region-id cn-north-4 \
--channel-list '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' \
--ak <AK> --sk <SK> --non-interactive
# Example 2: Install multiple channels (WeCom + Feishu) using temporary AK/SK
python scripts/caller.py channel \
--resource-id 0e1234567890abcdef \
--region-id cn-north-4 \
--channel-list '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' \
--ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
状态码说明:状态码“200”“201”“202”均表示渠道安装成功。
Web UI 访问
需要在华为云控制台中手动启用 Web UI 访问,操作步骤如下:
- 登录华为云 Flexus 应用服务器 L 实例控制台
- 在实例列表中找到您的 OpenClaw 实例
- 点击实例名称进入详情页面
- 在详情页面的左侧菜单中找到并点击“应用详情”选项,然后进入“基本配置”标签页
- 在“基本配置”标签页中,找到左上方的“访问 OpenClaw Web 界面”选项,点击“启用”按钮。随后即可获取访问 OpenClaw Web 界面的 URL 地址。
代码结构、文件职责和关键函数
此技能采用模块化架构,便于维护:
scripts/
├── caller.py # Main entry - command line argument parsing, parameter parsing, command routing
├── lib.py # Core library - L instance creation, COC script management
├── utils.py # Utility functions - input prompts, credential configuration, region information
├── deploy.py # Deployment module - `do_deploy_openclaw()` function for OpenClaw instance creation
├── models.py # Model module - remote COC large model installation (with prerequisite checks), related functions `do_install_maas()`, `_check_prerequisites()`
├── channels.py # Channel module - remote COC channel installation (with prerequisite checks), related functions `do_install_channel()`, `_check_prerequisites()`
├── gateway.py # Gateway module - gateway status query (only for prerequisite checks), related functions `do_check_gateway()`
└── uniagent.py # UniAgent module - UniAgent status query (only for prerequisite checks), `do_check_uniagent()`
参考文档
参数确认
部署参数
- --name:OpenClaw 实例名称,可选参数,默认值为
openclaw-{timestamp} - --region:目标区域 ID,可选参数,默认值为
cn-north-4 - --ak:华为云临时访问密钥 AK,必需参数
- --sk:华为云临时访问密钥 SK,必需参数
- --security-token:临时凭证的安全令牌(必需),必需参数
- --non-interactive:启用非交互模式,可选参数
模型配置参数
- --resource-id:L 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID),必填参数
- --region-id:L 实例所在的区域 ID,需与部署实例时选择的区域一致,必填参数
- --model-params:模型配置参数(JSON 格式),必填参数
provider:模型提供商名称(例如,“huawei”)或 API 地址(例如,“https://api.openai.com/v1”)api_key:模型 API 密钥model_ids:要安装的模型 ID 数组(不能为空)
- --ak:华为云临时 Access Key AK,必填参数
- --sk:华为云临时 Access Key SK,必填参数
- --security-token:临时凭证的安全令牌(必填),必填参数
- --timeout:脚本执行超时时间(秒),可选参数,默认 600 秒
渠道配置参数
- --resource-id:L 实例资源 ID(部署 OpenClaw 实例后返回的实例 ID),必填参数
- --region-id:L 实例所在的区域 ID,需与部署实例时选择的区域一致,必填参数
- --channel-list:渠道配置(JSON 数组格式),可选参数
channel:渠道类型:wecom(企业微信)、feishu(飞书)、dingtalk(钉钉)、qqbot(QQ),必填id:机器人 ID,必填secret:机器人密钥,必填
- --ak:华为云临时 Access Key AK,必填参数
- --sk:华为云临时 Access Key SK,必填参数
- --security-token:临时凭证的安全令牌(必填),必填参数
- --timeout:脚本执行超时时间(秒),可选参数,默认 600 秒
环境变量支持
所有参数也可以通过环境变量提供:
HW_ACCESS_KEY:华为云 AK(对应 --ak 参数)HW_SECRET_KEY:华为云 SK(对应 --sk 参数)HW_SECURITY_TOKEN:临时凭证安全令牌(对应 --security-token 参数)HW_PROJECT_ID:华为云 Project ID(可选)
常见问题快速解决方案
| 问题 | 解决方案 |
|---|---|
| 实例创建失败 | 检查 AK/SK 权限,确保拥有创建 Flexus L 实例的权限 |
| 模型安装失败 | 检查 UniAgent 状态是否为 ONLINE、API Key 是否正确,以及 model-params 参数是否严格使用 JSON 格式 |
| 渠道安装失败 | 检查机器人参数是否正确、是否已在平台创建机器人,以及 channel-list 参数是否严格使用 JSON 数组格式 |