⚠️ Security Execution Rules (Highest Priority):
- All scripts MUST be executed via skill action=exec, NEVER run directly in shell
- NEVER print script contents or commands containing AK/SK/Token in conversation
- NEVER create temporary script files, prefer inline execution (python -c)
- On execution failure, only return error info, do NOT rewrite scripts or print full commands
- AK/SK/Token MUST be passed via environment variables, NEVER appear in conversation
- ABSOLUTELY NEVER expose, log, or print AK/SK/Token values in any form - this is a critical security requirement
- When using skill action=exec, credentials are automatically inherited from environment variables (HW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN), no need to pass them as command line arguments
huawei-cloud-flexus-l-server-openclaw-deployment
Overview
This skill supports one-click deployment of the OpenClaw AI Agent platform to Huawei Cloud Flexus L Instance. It provides a complete OpenClaw instance management workflow, from initial deployment to post-deployment configuration, including:
- Automated instance creation
- Model installation via COC (Cloud Operations Center)
- Channel installation via COC (WeCom, Feishu, DingTalk, QQ)
- Automatic prerequisite checks before installation (Gateway and UniAgent status)
Use Cases
| Scenario |
Description |
| Enterprise AI Assistant Setup |
Enterprises need to quickly deploy an AI Agent platform for internal Q&A, customer service, etc. |
| Multi-Channel Bot Integration |
Need to integrate multiple messaging channels (WeCom, Feishu, DingTalk) into a unified AI assistant |
| Quick LLM Integration |
Existing OpenClaw instance needs to quickly switch or add different LLMs (DeepSeek, Qwen, etc.) |
| Automated Operations Deployment |
Need to automatically batch deploy OpenClaw instances to multiple regions via scripts |
Typical Use Cases
User may say:
- "I want to install OpenClaw on a Flexus L instance"
- "I want to configure DeepSeek model on my deployed OpenClaw"
- "Help me deploy OpenClaw with Feishu channel configured"
Prerequisites
Account Requirements
- Huawei Cloud AK/SK credentials with the following permissions:
- Create Flexus L Instances
- Access COC (Cloud Operations Center) services
Credential Acquisition Methods:
This skill supports obtaining Huawei Cloud credentials through the following methods (in order of priority from high to low):
Credential Types:
- Long-term AK/SK: Permanent credentials, no security_token required
- Temporary AK/SK: Temporary credentials with limited validity period, security_token required
Environment Variables (Default) (highest priority)
HW_ACCESS_KEY: Huawei Cloud Access Key AK
HW_SECRET_KEY: Huawei Cloud Access Key SK
HW_SECURITY_TOKEN: Security token (optional, only required for temporary credentials)
User-specified Configuration File or Other Environment Variables (used when default environment variables are not available)
- Configuration file path or other environment variables specified by user during interaction
Interactive Input (when neither of the above methods is provided)
- The program will prompt the user to enter AK/SK and other credential information
Important Notes:
- Long-term AK/SK: Permanent credentials that never expire, no security_token needed
- Temporary AK/SK: Obtained through IAM interface with limited validity period, must provide security_token
Architecture Diagram
This skill is built on multiple Huawei Cloud services, involving the following cloud services and components:
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)
Component Description:
- User/Agent: Skill caller that triggers OpenClaw deployment operations via natural language or API
- Flexus L Instance: Huawei Cloud Elastic Cloud Server, serving as the target host for OpenClaw deployment
- OpenClaw App: AI Agent collaboration platform running on the Flexus L instance
- Model Config: Configuration for external LLM services (API_BASE, API_KEY, MODEL_IDS, PROVIDER)
- Channel Config: Messaging channel configuration (WeCom, Feishu, DingTalk, QQ)
How to Use This Skill
Command Execution and Instructions
1. Deploy OpenClaw Instance (Create Huawei Cloud Flexus L Instance and deploy OpenClaw AI Agent platform) - Two Command Modes:
Command 1: Interactive Mode (The program will prompt for required parameters step by step)
python scripts/caller.py deploy
Command 2: Non-Interactive Mode
# 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
Parameter Description:
| Parameter |
Description |
Required (Non-interactive) |
Default (Interactive) |
Example |
| --name |
OpenClaw instance name |
No |
openclaw-{timestamp} |
--name openclaw-1780689482000 |
| --region |
Target region ID where L instance (OpenClaw deployed server) is located |
No |
cn-north-4 |
--region cn-north-4 |
| --ak |
Huawei Cloud Access Key AK (supports both long-term and temporary) |
Yes |
Prompted |
--ak AXXX... |
| --sk |
Huawei Cloud Access Key SK (supports both long-term and temporary) |
Yes |
Prompted |
--sk SXXX... |
| --security-token |
Security token for temporary credentials (optional, only required for temporary AK/SK) |
No |
Prompted |
--security-token XXXX... |
| --non-interactive |
Enable non-interactive mode |
No |
false |
--non-interactive |
Note: OpenClaw only supports deployment in the following regions before June 2026 (before deploying to other regions, you can remind users to check the official website for the latest supported regions): China North-Beijing-4 (cn-north-4), China East-Shanghai-1 (cn-east-3), China South-Guangzhou (cn-south-1), China Southwest-Guiyang-1 (cn-southwest-2)
Command Examples:
# 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
Default Configuration for Huawei Cloud Flexus L Instance when Deploying OpenClaw Instance
| Configuration Item |
Default Value |
Description |
| Image |
OpenClaw 2026.1.30 |
OpenClaw application image version |
| Plan Spec |
hf.small.1.linux or ahf.small.1.linux |
hf.small.1.linux for Beijing/Shanghai/Guangzhou, ahf.small.1.linux for Guiyang |
| Charging Mode |
Monthly subscription |
prePaid mode |
| EVS Disk |
50GB |
System disk size |
| CBR Backup |
50GB |
Cloud backup capacity |
| HSS Host Security |
Enabled |
Host security service |
Execution Result and Status Code Description:
- On success, returns order ID and instance ID (resource ID, used for subsequent model and channel installation)
- Instance creation takes approximately 2 minutes, progress can be viewed in Huawei Cloud console. During instance creation, the installation of models and channels will not be affected, and subsequent commands can be executed directly.
Status Code Description: Status codes "200", "201", "202" all indicate successful instance creation.
2. Configure (Install) Large Model Parameters on L Instance with OpenClaw Installed - Two Command Modes (Requires deploying OpenClaw instance first)
Command 1: Interactive Mode (The program will prompt for resource ID, region, model and other parameters step by step)
python scripts/caller.py maas
Command 2: Non-Interactive Mode
# 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
Parameter Description:
| Parameter |
Description |
Required (Non-interactive) |
Default (Interactive) |
Example |
| --resource-id |
L instance resource ID (instance ID returned after deploying OpenClaw instance) |
Yes |
Prompted |
--resource-id 0e1234567890abcdef |
| --region-id |
Region ID where L instance is located, consistent with the region selected when deploying the instance |
Yes |
Prompted |
--region-id cn-north-4 |
| --model-params |
Model configuration parameters (JSON format), note: parameters must use valid JSON format, keys and values must be wrapped in double quotes |
Yes |
Prompted |
--model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2"]}' |
| --ak |
Huawei Cloud Access Key AK (supports both long-term and temporary) |
Yes |
Prompted |
--ak AXXX... |
| --sk |
Huawei Cloud Access Key SK (supports both long-term and temporary) |
Yes |
Prompted |
--sk SXXX... |
| --security-token |
Security token for temporary credentials (optional, only required for temporary AK/SK) |
No |
Prompted |
--security-token XXXX... |
| --timeout |
Script execution timeout (seconds) |
No |
600 |
--timeout 900 |
| --non-interactive |
Enable non-interactive mode |
No |
false |
--non-interactive |
model-params Field Description:
| Field |
Description |
Required |
| provider |
Model provider name (e.g., "huawei") or API address (e.g., "https://api.openai.com/v1") |
Yes |
| api_key |
Model API key |
Yes |
| model_ids |
Array of model IDs to install (non-empty), e.g., ["gpt-4", "gpt-3.5-turbo"] |
Yes |
Command Examples:
# 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
Status Code Description: Status codes "200", "201", "202" all indicate successful model installation.
3. channel - Configure (Install) Channels on L Instance with OpenClaw Installed - Two Command Modes (Requires deploying OpenClaw instance first)
Command 1: Interactive Mode
python scripts/caller.py channel
Command 2: Non-Interactive Mode
# 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
Parameter Description:
| Parameter |
Description |
Required (Non-interactive) |
Default (Interactive) |
Example |
| --resource-id |
L instance resource ID (instance ID returned after deploying OpenClaw instance) |
Yes |
Prompted |
--resource-id 0e1234567890abcdef |
| --region-id |
Region ID where instance is located, consistent with the region selected when deploying the instance |
Yes |
Prompted |
--region-id cn-north-4 |
| --channel-list |
Channel configuration (JSON array format) |
Yes |
Prompted |
'[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' |
| --ak |
Huawei Cloud Access Key AK (supports both long-term and temporary) |
Yes |
Prompted |
--ak AXXX... |
| --sk |
Huawei Cloud Access Key SK (supports both long-term and temporary) |
Yes |
Prompted |
--sk SXXX... |
| --security-token |
Security token for temporary credentials (optional, only required for temporary AK/SK) |
No |
Prompted |
--security-token XXXX... |
| --timeout |
Script execution timeout (seconds) |
No |
600 |
--timeout 900 |
| --non-interactive |
Enable non-interactive mode |
No |
false |
--non-interactive |
channel JSON Object Field Description:
| Field |
Description |
Required |
| channel |
Channel type: wecom (WeCom), feishu (Feishu), dingtalk (DingTalk), qqbot (QQ) |
Yes |
| id |
Bot ID/APP ID/Client ID |
Yes |
| secret |
Bot secret/APP secret/Client secret |
Yes |
Command Examples:
# 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
Status Code Description: Status codes "200", "201", "202" all indicate successful channel installation.
Web UI Access
Web UI access needs to be manually enabled in Huawei Cloud console, operation steps:
- Log in to Huawei Cloud Flexus Application Server L Instance Console
- Find your OpenClaw instance in the instance list
- Click the instance name to enter the details page
- In the left menu of the details page, find and click "Application Details" option, then enter the "Basic Configuration" tab
- In the "Basic Configuration" tab, find the "Access OpenClaw Web Interface" option at the top left, click the "Enable" button. You will then get the URL address to access the OpenClaw Web interface.
Code Structure, File Responsibilities and Key Functions
This skill uses a modular architecture for easier maintenance:
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()`
Parameter Confirmation
Deployment Parameters
- --name: OpenClaw instance name, optional parameter, default is
openclaw-{timestamp}
- --region: Target region ID, optional parameter, default is
cn-north-4
- --ak: Huawei Cloud temporary Access Key AK, required parameter
- --sk: Huawei Cloud temporary Access Key SK, required parameter
- --security-token: Security token for temporary credentials (required), required parameter
- --non-interactive: Enable non-interactive mode, optional parameter
Model Configuration Parameters
- --resource-id: L instance resource ID (instance ID returned after deploying OpenClaw instance), required parameter
- --region-id: Region ID where L instance is located, consistent with the region selected when deploying the instance, required parameter
- --model-params: Model configuration parameters (JSON format), required parameter
provider: Model provider name (e.g., "huawei") or API address (e.g., "https://api.openai.com/v1")
api_key: Model API key
model_ids: Array of model IDs to install (non-empty)
- --ak: Huawei Cloud temporary Access Key AK, required parameter
- --sk: Huawei Cloud temporary Access Key SK, required parameter
- --security-token: Security token for temporary credentials (required), required parameter
- --timeout: Script execution timeout (seconds), optional parameter, default 600 seconds
Channel Configuration Parameters
- --resource-id: L instance resource ID (instance ID returned after deploying OpenClaw instance), required parameter
- --region-id: Region ID where L instance is located, consistent with the region selected when deploying the instance, required parameter
- --channel-list: Channel configuration (JSON array format), optional parameter
channel: Channel type: wecom (WeCom), feishu (Feishu), dingtalk (DingTalk), qqbot (QQ), required
id: Bot ID, required
secret: Bot secret, required
- --ak: Huawei Cloud temporary Access Key AK, required parameter
- --sk: Huawei Cloud temporary Access Key SK, required parameter
- --security-token: Security token for temporary credentials (required), required parameter
- --timeout: Script execution timeout (seconds), optional parameter, default 600 seconds
Environment Variable Support
All parameters can also be provided through environment variables:
HW_ACCESS_KEY: Huawei Cloud AK (corresponds to --ak parameter)
HW_SECRET_KEY: Huawei Cloud SK (corresponds to --sk parameter)
HW_SECURITY_TOKEN: Temporary credential security token (corresponds to --security-token parameter)
HW_PROJECT_ID: Huawei Cloud Project ID (optional)
Common Issues Quick Solutions
| Issue |
Solution |
| Instance creation failed |
Check AK/SK permissions, ensure permission to create Flexus L instances |
| Model installation failed |
Check if UniAgent status is ONLINE, if API Key is correct, if model-params parameter strictly uses JSON format |
| Channel installation failed |
Check if bot parameters are correct, if bot is created on platform, if channel-list parameter strictly uses JSON array format |
1---
2name: huawei-cloud-flexus-l-server-openclaw-deployment
3description: |
4 Create Huawei Cloud Flexus L Instance (Lightweight Server), deploy OpenClaw application platform on it, and support installation and configuration of models and channels for deployed OpenClaw instances. Web UI access needs to be manually enabled in Huawei Cloud console.
5 Trigger words: "Deploy OpenClaw", "Deploy Flexus L Instance", "Deploy Huawei Cloud Lightweight Server", "Model setting", "Channel Setting", "部署OpenClaw", "部署Flexus L实例", "部署华为云轻量服务器", "设置模型", "设置通道"
6tags:
7 - OpenClaw Deployment
8 - Huawei Cloud Lightweight Server Deployment
9 - Flexus L Instance Deployment
10 - AI Agent
11 - Model Management
12 - Channel Management
13metadata: {"openclaw": {"version": "1.0.0", "requires": {"bins": ["uv", "python3"]}, "install": [{"kind": "uv", "command": "uv sync --index-url https://repo.huaweicloud.com/repository/pypi/simple"}]}}
14---
15
16⚠️ Security Execution Rules (Highest Priority):
17 1. All scripts MUST be executed via skill action=exec, NEVER run directly in shell
18 2. NEVER print script contents or commands containing AK/SK/Token in conversation
19 3. NEVER create temporary script files, prefer inline execution (python -c)
20 4. On execution failure, only return error info, do NOT rewrite scripts or print full commands
21 5. AK/SK/Token MUST be passed via environment variables, NEVER appear in conversation
22 6. ABSOLUTELY NEVER expose, log, or print AK/SK/Token values in any form - this is a critical security requirement
23 7. When using skill action=exec, credentials are automatically inherited from environment variables (HW_ACCESS_KEY, HW_SECRET_KEY, HW_SECURITY_TOKEN), no need to pass them as command line arguments
24
25# huawei-cloud-flexus-l-server-openclaw-deployment
26## Overview
27
28This skill supports one-click deployment of the OpenClaw AI Agent platform to Huawei Cloud Flexus L Instance. It provides a complete OpenClaw instance management workflow, from initial deployment to post-deployment configuration, including:
29- Automated instance creation
30- Model installation via COC (Cloud Operations Center)
31- Channel installation via COC (WeCom, Feishu, DingTalk, QQ)
32- Automatic prerequisite checks before installation (Gateway and UniAgent status)
33
34### Use Cases
35
36| Scenario | Description |
37|----------|-------------|
38| **Enterprise AI Assistant Setup** | Enterprises need to quickly deploy an AI Agent platform for internal Q&A, customer service, etc. |
39| **Multi-Channel Bot Integration** | Need to integrate multiple messaging channels (WeCom, Feishu, DingTalk) into a unified AI assistant |
40| **Quick LLM Integration** | Existing OpenClaw instance needs to quickly switch or add different LLMs (DeepSeek, Qwen, etc.) |
41| **Automated Operations Deployment** | Need to automatically batch deploy OpenClaw instances to multiple regions via scripts |
42
43### Typical Use Cases
44
45User may say:
461. **"I want to install OpenClaw on a Flexus L instance"**
472. **"I want to configure DeepSeek model on my deployed OpenClaw"**
483. **"Help me deploy OpenClaw with Feishu channel configured"**
49
50## Prerequisites
51
52### Account Requirements
53
54- Huawei Cloud AK/SK credentials with the following permissions:
55 - Create Flexus L Instances
56 - Access COC (Cloud Operations Center) services
57
58**Credential Acquisition Methods:**
59
60This skill supports obtaining Huawei Cloud credentials through the following methods (in order of priority from high to low):
61
62**Credential Types:**
63- **Long-term AK/SK**: Permanent credentials, no security_token required
64- **Temporary AK/SK**: Temporary credentials with limited validity period, security_token required
65
661. **Environment Variables (Default)** (highest priority)
67 - `HW_ACCESS_KEY`: Huawei Cloud Access Key AK
68 - `HW_SECRET_KEY`: Huawei Cloud Access Key SK
69 - `HW_SECURITY_TOKEN`: Security token (optional, only required for temporary credentials)
70
712. **User-specified Configuration File or Other Environment Variables** (used when default environment variables are not available)
72 - Configuration file path or other environment variables specified by user during interaction
73
743. **Interactive Input** (when neither of the above methods is provided)
75 - The program will prompt the user to enter AK/SK and other credential information
76
77
78
79**Important Notes:**
80- Long-term AK/SK: Permanent credentials that never expire, no security_token needed
81- Temporary AK/SK: Obtained through IAM interface with limited validity period, must provide security_token
82
83### Architecture Diagram
84
85This skill is built on multiple Huawei Cloud services, involving the following cloud services and components:
86
87```
88User/Agent ──────▶│ Flexus L Instance │──────▶│ OpenClaw App │──────▶│ Model Config │ ──────▶│ Channel Config │
89(Skill caller) (Target Host) (AI Agent Platform) (API_BASE/KEY) (WeCom/Feishu/DingTalk/QQ)
90```
91
92**Component Description**:
93- **User/Agent**: Skill caller that triggers OpenClaw deployment operations via natural language or API
94- **Flexus L Instance**: Huawei Cloud Elastic Cloud Server, serving as the target host for OpenClaw deployment
95- **OpenClaw App**: AI Agent collaboration platform running on the Flexus L instance
96- **Model Config**: Configuration for external LLM services (API_BASE, API_KEY, MODEL_IDS, PROVIDER)
97- **Channel Config**: Messaging channel configuration (WeCom, Feishu, DingTalk, QQ)
98
99---
100
101## How to Use This Skill
102
103### Command Execution and Instructions
104
105#### 1. Deploy OpenClaw Instance (Create Huawei Cloud Flexus L Instance and deploy OpenClaw AI Agent platform) - Two Command Modes:
106
107**Command 1: Interactive Mode** (The program will prompt for required parameters step by step)
108```bash
109python scripts/caller.py deploy
110```
111
112**Command 2: Non-Interactive Mode**
113```bash
114# Using long-term AK/SK (no security-token needed)
115python scripts/caller.py deploy --name openclaw-{timestamp} --region cn-north-4 --ak <AK> --sk <SK> --non-interactive
116
117# Using temporary AK/SK (security-token required)
118python scripts/caller.py deploy --name openclaw-{timestamp} --region cn-north-4 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
119```
120
121**Parameter Description**:
122| Parameter | Description | Required (Non-interactive) | Default (Interactive) | Example |
123|-----------|-------------|----------------------------|-----------------------|---------|
124| --name | OpenClaw instance name | No | openclaw-{timestamp} | `--name openclaw-1780689482000` |
125| --region | Target region ID where L instance (OpenClaw deployed server) is located | No | cn-north-4 | `--region cn-north-4` |
126| --ak | Huawei Cloud Access Key AK (supports both long-term and temporary) | Yes | Prompted | `--ak AXXX...` |
127| --sk | Huawei Cloud Access Key SK (supports both long-term and temporary) | Yes | Prompted | `--sk SXXX...` |
128| --security-token | Security token for temporary credentials (optional, only required for temporary AK/SK) | No | Prompted | `--security-token XXXX...` |
129| --non-interactive | Enable non-interactive mode | No | false | `--non-interactive` |
130
131Note: OpenClaw only supports deployment in the following regions before June 2026 (before deploying to other regions, you can remind users to check the official website for the latest supported regions): China North-Beijing-4 (cn-north-4), China East-Shanghai-1 (cn-east-3), China South-Guangzhou (cn-south-1), China Southwest-Guiyang-1 (cn-southwest-2)
132
133**Command Examples**:
134```bash
135# Example 1: Deploy with default configuration (interactive, will prompt for required parameters)
136python scripts/caller.py deploy
137
138# Example 2: Non-interactive mode deployment (suitable for automation scripts, creates directly without user confirmation)
139python scripts/caller.py deploy --name openclaw-1780689482000 --region cn-north-4 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
140```
141
142**Default Configuration for Huawei Cloud Flexus L Instance when Deploying OpenClaw Instance**
143| Configuration Item | Default Value | Description |
144|--------------------|---------------|-------------|
145| **Image** | OpenClaw 2026.1.30 | OpenClaw application image version |
146| **Plan Spec** | hf.small.1.linux or ahf.small.1.linux | hf.small.1.linux for Beijing/Shanghai/Guangzhou, ahf.small.1.linux for Guiyang |
147| **Charging Mode** | Monthly subscription | prePaid mode |
148| **EVS Disk** | 50GB | System disk size |
149| **CBR Backup** | 50GB | Cloud backup capacity |
150| **HSS Host Security** | Enabled | Host security service |
151
152**Execution Result and Status Code Description**:
153- On success, returns order ID and instance ID (resource ID, used for subsequent model and channel installation)
154- Instance creation takes approximately 2 minutes, progress can be viewed in Huawei Cloud console. During instance creation, the installation of models and channels will not be affected, and subsequent commands can be executed directly.
155*Status Code Description*: Status codes "200", "201", "202" all indicate successful instance creation.
156---
157
158
159#### 2. Configure (Install) Large Model Parameters on L Instance with OpenClaw Installed - Two Command Modes (Requires deploying OpenClaw instance first)
160
161**Command 1: Interactive Mode** (The program will prompt for resource ID, region, model and other parameters step by step)
162```bash
163python scripts/caller.py maas
164```
165**Command 2: Non-Interactive Mode**
166```bash
167# Using long-term AK/SK (no security-token needed)
168python 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
169
170# Using temporary AK/SK (security-token required)
171python 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
172```
173**Parameter Description**:
174| Parameter | Description | Required (Non-interactive) | Default (Interactive) | Example |
175|-----------|-------------|----------------------------|-----------------------|---------|
176| --resource-id | L instance resource ID (instance ID returned after deploying OpenClaw instance) | Yes | Prompted | `--resource-id 0e1234567890abcdef` |
177| --region-id | Region ID where L instance is located, consistent with the region selected when deploying the instance | Yes | Prompted | `--region-id cn-north-4` |
178| --model-params | Model configuration parameters (JSON format), note: parameters must use valid JSON format, keys and values must be wrapped in double quotes | Yes | Prompted | --model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2"]}' |
179| --ak | Huawei Cloud Access Key AK (supports both long-term and temporary) | Yes | Prompted | `--ak AXXX...` |
180| --sk | Huawei Cloud Access Key SK (supports both long-term and temporary) | Yes | Prompted | `--sk SXXX...` |
181| --security-token | Security token for temporary credentials (optional, only required for temporary AK/SK) | No | Prompted | `--security-token XXXX...` |
182| --timeout | Script execution timeout (seconds) | No | 600 | `--timeout 900` |
183| --non-interactive | Enable non-interactive mode | No | false | `--non-interactive` |
184
185**model-params Field Description**:
186| Field | Description | Required |
187|-------|-------------|----------|
188| provider | Model provider name (e.g., "huawei") or API address (e.g., "https://api.openai.com/v1") | Yes |
189| api_key | Model API key | Yes |
190| model_ids | Array of model IDs to install (non-empty), e.g., ["gpt-4", "gpt-3.5-turbo"] | Yes |
191
192**Command Examples**:
193
194```bash
195# Example 1: Install Huawei Cloud MaaS platform models with long-term AK/SK
196python scripts/caller.py maas \
197 --resource-id 0e1234567890abcdef \
198 --region-id cn-north-4 \
199 --model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2","qwen3-235b-a22b"]}' \
200 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
201
202# Example 2: Install Huawei Cloud MaaS platform models with temporary AK/SK
203python scripts/caller.py maas \
204 --resource-id 0e1234567890abcdef \
205 --region-id cn-north-4 \
206 --model-params '{"provider":"huawei","api_key":"your_maas_api_key","model_ids":["deepseek-v3.2","qwen3-235b-a22b"]}' \
207 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
208
209# Example 3: Install custom OpenAI compatible models with long-term AK/SK
210python scripts/caller.py maas \
211 --resource-id 0e1234567890abcdef \
212 --region-id cn-north-4 \
213 --model-params '{"provider":"https://api.openai.com/v1","api_key":"your_openai_key","model_ids":["gpt-4"]}' \
214 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
215```
216
217**Status Code Description**: Status codes "200", "201", "202" all indicate successful model installation.
218
219#### 3. channel - Configure (Install) Channels on L Instance with OpenClaw Installed - Two Command Modes (Requires deploying OpenClaw instance first)
220
221**Command 1: Interactive Mode**
222```bash
223python scripts/caller.py channel
224```
225
226**Command 2: Non-Interactive Mode**
227```bash
228# Using long-term AK/SK (no security-token needed)
229python scripts/caller.py channel --resource-id <Instance Resource ID> --region-id cn-north-4 --channel-list '<JSON array>' --ak <AK> --sk <SK> --non-interactive
230
231# Using temporary AK/SK (security-token required)
232python 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
233```
234
235**Parameter Description**:
236| Parameter | Description | Required (Non-interactive) | Default (Interactive) | Example |
237|-----------|-------------|----------------------------|-----------------------|---------|
238| --resource-id | L instance resource ID (instance ID returned after deploying OpenClaw instance) | Yes | Prompted | `--resource-id 0e1234567890abcdef` |
239| --region-id | Region ID where instance is located, consistent with the region selected when deploying the instance | Yes | Prompted | `--region-id cn-north-4` |
240| --channel-list | Channel configuration (JSON array format) | Yes | Prompted | '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' |
241| --ak | Huawei Cloud Access Key AK (supports both long-term and temporary) | Yes | Prompted | `--ak AXXX...` |
242| --sk | Huawei Cloud Access Key SK (supports both long-term and temporary) | Yes | Prompted | `--sk SXXX...` |
243| --security-token | Security token for temporary credentials (optional, only required for temporary AK/SK) | No | Prompted | `--security-token XXXX...` |
244| --timeout | Script execution timeout (seconds) | No | 600 | `--timeout 900` |
245| --non-interactive | Enable non-interactive mode | No | false | `--non-interactive` |
246
247**channel JSON Object Field Description**:
248| Field | Description | Required |
249|-------|-------------|----------|
250| channel | Channel type: `wecom` (WeCom), `feishu` (Feishu), `dingtalk` (DingTalk), `qqbot` (QQ) | Yes |
251| id | Bot ID/APP ID/Client ID | Yes |
252| secret | Bot secret/APP secret/Client secret | Yes |
253
254
255
256**Command Examples**:
257```bash
258# Example 1: Install multiple channels (WeCom + Feishu) using long-term AK/SK
259python scripts/caller.py channel \
260 --resource-id 0e1234567890abcdef \
261 --region-id cn-north-4 \
262 --channel-list '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' \
263 --ak <AK> --sk <SK> --non-interactive
264
265# Example 2: Install multiple channels (WeCom + Feishu) using temporary AK/SK
266python scripts/caller.py channel \
267 --resource-id 0e1234567890abcdef \
268 --region-id cn-north-4 \
269 --channel-list '[{"channel":"wecom","id":"xxx","secret":"xxx"},{"channel":"feishu","id":"yyy","secret":"yyy"}]' \
270 --ak <Temporary AK> --sk <Temporary SK> --security-token <Security Token> --non-interactive
271```
272**Status Code Description**: Status codes "200", "201", "202" all indicate successful channel installation.
273
274### Web UI Access
275Web UI access needs to be manually enabled in Huawei Cloud console, operation steps:
2761. Log in to Huawei Cloud Flexus Application Server L Instance Console
277 - 🔗 Console URL: https://console.huaweicloud.com/smb/?/resource/list
2782. Find your OpenClaw instance in the instance list
2793. Click the instance name to enter the details page
2804. In the left menu of the details page, find and click "Application Details" option, then enter the "Basic Configuration" tab
2815. In the "Basic Configuration" tab, find the "Access OpenClaw Web Interface" option at the top left, click the "Enable" button. You will then get the URL address to access the OpenClaw Web interface.
282
283
284
285## Code Structure, File Responsibilities and Key Functions
286
287This skill uses a modular architecture for easier maintenance:
288
289```
290scripts/
291├── caller.py # Main entry - command line argument parsing, parameter parsing, command routing
292├── lib.py # Core library - L instance creation, COC script management
293├── utils.py # Utility functions - input prompts, credential configuration, region information
294├── deploy.py # Deployment module - `do_deploy_openclaw()` function for OpenClaw instance creation
295├── models.py # Model module - remote COC large model installation (with prerequisite checks), related functions `do_install_maas()`, `_check_prerequisites()`
296├── channels.py # Channel module - remote COC channel installation (with prerequisite checks), related functions `do_install_channel()`, `_check_prerequisites()`
297├── gateway.py # Gateway module - gateway status query (only for prerequisite checks), related functions `do_check_gateway()`
298└── uniagent.py # UniAgent module - UniAgent status query (only for prerequisite checks), `do_check_uniagent()`
299```
300
301
302## Parameter Confirmation
303
304### Deployment Parameters
305- **--name**: OpenClaw instance name, optional parameter, default is `openclaw-{timestamp}`
306- **--region**: Target region ID, optional parameter, default is `cn-north-4`
307- **--ak**: Huawei Cloud temporary Access Key AK, required parameter
308- **--sk**: Huawei Cloud temporary Access Key SK, required parameter
309- **--security-token**: Security token for temporary credentials (**required**), required parameter
310- **--non-interactive**: Enable non-interactive mode, optional parameter
311
312### Model Configuration Parameters
313- **--resource-id**: L instance resource ID (instance ID returned after deploying OpenClaw instance), required parameter
314- **--region-id**: Region ID where L instance is located, consistent with the region selected when deploying the instance, required parameter
315- **--model-params**: Model configuration parameters (JSON format), required parameter
316 - `provider`: Model provider name (e.g., "huawei") or API address (e.g., "https://api.openai.com/v1")
317 - `api_key`: Model API key
318 - `model_ids`: Array of model IDs to install (non-empty)
319- **--ak**: Huawei Cloud temporary Access Key AK, required parameter
320- **--sk**: Huawei Cloud temporary Access Key SK, required parameter
321- **--security-token**: Security token for temporary credentials (**required**), required parameter
322- **--timeout**: Script execution timeout (seconds), optional parameter, default 600 seconds
323
324### Channel Configuration Parameters
325- **--resource-id**: L instance resource ID (instance ID returned after deploying OpenClaw instance), required parameter
326- **--region-id**: Region ID where L instance is located, consistent with the region selected when deploying the instance, required parameter
327- **--channel-list**: Channel configuration (JSON array format), optional parameter
328 - `channel`: Channel type: `wecom` (WeCom), `feishu` (Feishu), `dingtalk` (DingTalk), `qqbot` (QQ), required
329 - `id`: Bot ID, required
330 - `secret`: Bot secret, required
331- **--ak**: Huawei Cloud temporary Access Key AK, required parameter
332- **--sk**: Huawei Cloud temporary Access Key SK, required parameter
333- **--security-token**: Security token for temporary credentials (**required**), required parameter
334- **--timeout**: Script execution timeout (seconds), optional parameter, default 600 seconds
335
336### Environment Variable Support
337All parameters can also be provided through environment variables:
338- `HW_ACCESS_KEY`: Huawei Cloud AK (corresponds to --ak parameter)
339- `HW_SECRET_KEY`: Huawei Cloud SK (corresponds to --sk parameter)
340- `HW_SECURITY_TOKEN`: Temporary credential security token (corresponds to --security-token parameter)
341- `HW_PROJECT_ID`: Huawei Cloud Project ID (optional)
342
343
344## Common Issues Quick Solutions
345
346| Issue | Solution |
347|-------|----------|
348| Instance creation failed | Check AK/SK permissions, ensure permission to create Flexus L instances |
349| Model installation failed | Check if UniAgent status is ONLINE, if API Key is correct, if model-params parameter strictly uses JSON format |
350| Channel installation failed | Check if bot parameters are correct, if bot is created on platform, if channel-list parameter strictly uses JSON array format |