Install
openclaw skills install @huaweiclouddev/huawei-cloud-flexus-l-deploy-jiuwenswarmOne-click deployment of JiuwenSwarm multi-Agent collaboration platform on Huawei Cloud Flexus L instances. Usage scenarios: When users need to quickly deploy JiuwenSwarm/JiuwenClaw on Huawei Cloud Flexus L instances, when they need to automatically create cloud instances and deploy AI Agent platforms, when they need to configure model APIs and message channels (Xiaoyi/Feishu/DingTalk). Automatically create instances, deploy applications via COC, configure models and message channels. Trigger keywords: JiuwenSwarm deployment, JiuwenClaw deployment, 九问Swarm部署, 九问Claw部署, 一键部署JiuwenSwarm, AI智能体平台部署, 部署九问Swarm, 部署九问Claw,云服务器部署AI平台.
openclaw skills install @huaweiclouddev/huawei-cloud-flexus-l-deploy-jiuwenswarmscripts directory have implemented all functions. Do not create additional py files.scripts directory.This skill provides a complete automated deployment solution for the JiuwenSwarm (JiuwenClaw) multi-Agent collaboration platform on Huawei Cloud Flexus L instances. It implements full-process automation from environment preparation to message channel configuration through phased scripts.
HUAWEICLOUD_SDK_SECURITY_TOKEN environment variable is set along with AK/SK, the skill will use temporary credentials for authentication.python3 -m venv .venv && source .venv/bin/activate
--break-system-packages when running pip on some newer Linux distributions.requests, huaweicloudsdkcore, huaweicloudsdkcochcloud) must be installed and available in PATH (used for IAM/RMS queries, see references/api-specs.md)User/Agent ──────▶│ Flexus L Instance │──────▶│ JiuwenSwarm App │──────▶│ Model Config │ ──────▶│ Channel Config │
(Skill caller) (Target Host) (Multi-Agent Platform) (API_BASE/KEY) (Xiaoyi/Feishu/Dingtalk)
Component Description:
hcloud RMS ListAllResources)English Examples:
This skill executes deployment in 7 phases. Each phase must complete before the next begins.
PYTHONIOENCODING=utf-8hcloud)hcloud IAM KeystoneListProjects)⚠️ Requires customer confirmation before execution!
--region parameter not provided, interactively prompt user to select a region from supported options--timeout) → Get instance_id, public_ip, ecs_instance_idjiuwenswarm service is running (systemctl is-active).env has FRONTEND_HOST=0.0.0.0curl localhost:5173 returns 200)http://{public_ip}:5173.env, update 4 core parameters, set permission 600config.yaml, update channel fields, set permission 644Query COC execution status by UUID. Supports single query, verbose output, wait-for-completion, and file loading. See references/verification-method.md for details.
| Status | Description |
|---|---|
| READY | Ready |
| PROCESSING | Running, waiting required |
| FINISHED | Completed successfully |
| ABNORMAL | Execution abnormal, failed |
| CANCELED | Canceled |
# Install dependencies
pip install -r requirements.txt
Credential configuration (choose one):
Option A — hcloud CLI config (recommended, no env vars needed):
hcloud configure set --cli-mode=AKSK --cli-region=cn-north-4 \
--cli-access-key=<your-ak> --cli-secret-key=<your-sk>
# For STS token: also add --cli-security-token=<your-token>
Option B — Environment variables:
export HUAWEICLOUD_SDK_AK=<your-access-key>
export HUAWEICLOUD_SDK_SK=<your-secret-key>
export HUAWEICLOUD_SDK_SECURITY_TOKEN=<your-security-token> # STS only
export HUAWEICLOUD_REGION="cn-north-4"
# 1. Environment preparation
python scripts/prepare_env.py
# 2. Create instance (interactive confirmation)
python scripts/create_instance.py --name jiuwenSwarm-<timestamp> --flavor 2c-4g-50g --wait
# 3. Install dependencies
python scripts/install_deps.py --ip <public_ip>
# 4. Deploy service
python scripts/deploy_service.py --ip <public_ip>
# 5. Verify deployment
python scripts/verify_deployment.py --ip <public_ip>
# 6. Configure model
python scripts/config_model.py --ip <public_ip> --interactive
# 7. Configure message channel
python scripts/config_channel.py --channel xiaoyi --ip <public_ip> --interactive
# 8. Query COC task status
python scripts/query_coc_status.py --uuid <execute_uuid> --verbose
# Query single task status
python scripts/query_coc_status.py --uuid <execute_uuid>
# Wait for task completion with custom timeout
python scripts/query_coc_status.py --uuid <execute_uuid> --wait --timeout 3600 --interval 30
# Load UUID from JSON file
python scripts/query_coc_status.py --from-file new_instance_info.json
Before executing any cloud resource creation operations, explicit customer consent must be obtained!
| Operation | Confirmation Required |
|---|---|
| Create new Flexus L instance | Required |
| Deploy application on existing instance | Required |
| Modify cloud resource configuration | Required |
Confirmation Template:
============================================================
⚠️ Cloud Resource Creation Confirmation
============================================================
Operation to be executed: Create new Flexus L instance
Instance Specifications:
- Name: {instance_name}
- Flavor: {flavor} (2c-4g-50g ~60 CNY/month / 2c-4g-70g ~100 CNY/month / 4c-8g-180g ~170 CNY/month)
- Region: {region}
- Estimated Cost: Calculated based on selected flavor
Resources will be created immediately after confirmation.
Please reply "confirm" or "agree" to continue.
============================================================
| Parameter | Description | Default Value |
|---|---|---|
| --name | Instance name | jiuwenSwarm-{timestamp} |
| --flavor | Instance flavor (2c-4g-50g / 2c-4g-70g / 4c-8g-180g) | 2c-4g-50g |
--region | Region (cn-north-4/cn-east-3/cn-south-1/cn-southwest-2). If not specified, interactive selection will be shown. | (Interactive) |
--wait | Wait for creation completion (polls RMS every 30s for instance status) | False |
| --timeout | Maximum time to wait in seconds when --wait is used | 600 (10 minutes) |
| --confirm | Skip confirmation prompt | False |
| Parameter | Description | Default Value |
|---|---|---|
| --ip | Instance public IP | Required |
| --wait | Wait for deployment completion | True |
| --timeout | Timeout in seconds | 1800 |
| Parameter | Description |
|---|---|
| --api-base | Model API URL |
| --api-key | Model API key |
| --model-name | Model name |
| --model-provider | Model provider |
| --ip | Instance public IP |
| --interactive | Interactive configuration |
| Parameter | Description |
|---|---|
| --channel | Channel type (xiaoyi/feishu/dingtalk) |
| --ip | Instance public IP |
| --interactive | Interactive configuration |
| Parameter | Description | Default Value |
|---|---|---|
| --uuid, -u | COC execution UUID | Required |
| --from-file, -f | Read UUID from JSON file | - |
| --key, -k | UUID key name in JSON file | execute_uuid |
| --verbose, -v | Show detailed output | False |
| --wait, -w | Wait for task completion | False |
| --timeout, -t | Wait timeout in seconds | 1800 |
| --interval, -i | Polling interval in seconds | 60 |
huawei-cloud-flexus-l-deploy-jiuwenswarm/
├── SKILL.md # Skill documentation
├── requirements.txt # Python dependency list
├── scripts/ # Phased deployment scripts
│ ├── utils.py # Utility functions
│ ├── prepare_env.py # Environment preparation
│ ├── create_instance.py # Create Flexus L instance
│ ├── install_deps.py # COC remote dependency installation
│ ├── deploy_service.py # COC remote service deployment
│ ├── verify_deployment.py # Verify deployment result
│ ├── config_model.py # Model configuration
│ ├── config_channel.py # Message channel configuration
│ └── query_coc_status.py # COC task status query
├── assets/ # Template files
│ ├── deploy_script_template.sh # Deployment script template
│ ├── jiuwenswarm.service.template # systemd service template
│ ├── config_template.yaml # Configuration template
│ └── env_template.env # Environment variable template
└── references/ # Reference documents
├── api-specs.md # API specifications
├── deployment-checklist.md # Deployment checklist
├── iam-policies.md # IAM policies
├── verification-method.md # Verification methods
├── acceptance-criteria.md # Acceptance criteria
└── troubleshooting.md # Troubleshooting guide
Web UI access requires two conditions:
.env FRONTEND_HOST=0.0.0.0)The .env file at /root/.jiuwenswarm/config/.env must use the correct variable names:
| .env Variable | Purpose | Required Value |
|---|---|---|
FRONTEND_HOST | Frontend HTTP bind | 0.0.0.0 |
FRONTEND_PORT | Frontend HTTP port | 5173 |
WEB_HOST | WebChannel bind | 0.0.0.0 |
AGENT_SERVER_HOST | AgentServer bind | 0.0.0.0 |
GATEWAY_HOST | Gateway bind | 0.0.0.0 |
Access URL: http://<instance_public_ip>:5173
Security Warning: After opening the port, JiuwenSwarm Web interface will be accessible. Please evaluate security risks before enabling. It is recommended to open temporarily only when needed and close after use.
Credential priority: hcloud config file → environment variables.
Credentials are read from ~/.hcloud/config.json. If encryption is enabled (authEncrypt=true), the script automatically disables it to read plaintext values.
# Permanent credentials
hcloud configure set --cli-mode=AKSK --cli-region=cn-north-4 \
--cli-access-key=<AK> --cli-secret-key=<SK>
# Temporary credentials (STS Token)
hcloud configure set --cli-mode=AKSK --cli-region=cn-north-4 \
--cli-access-key=<AK> --cli-secret-key=<SK> --cli-security-token=<TOKEN>
No environment variables needed — the script reads directly from the config file.
| Environment Variable | Description | Required |
|---|---|---|
HUAWEICLOUD_SDK_AK | Access Key (permanent or temporary) | Yes |
HUAWEICLOUD_SDK_SK | Secret Key (permanent or temporary) | Yes |
HUAWEICLOUD_SDK_SECURITY_TOKEN | Security Token (STS only) | No |
HUAWEICLOUD_REGION | Huawei Cloud Region (default: cn-north-4) | No |
Reference: https://support.huaweicloud.com/iam_faq/iam_01_0620.html
| Service | Endpoint | Purpose |
|---|---|---|
| Flexus L | https://hcss.{region}.myhuaweicloud.com/v1/light-instances | Create/query instances |
| IAM | KooCLI: hcloud IAM KeystoneListProjects --cli-region=<region> [--name=<region>] | Get Project ID / domain ID (global service, hcloud auto-resolves domain ID with valid credentials) |
| RMS | KooCLI: hcloud RMS ListAllResources --cli-region=cn-north-4 --cli-domain-id=<domain_id> [--region_id=<region>] [--type=hcss.l-instance] | Query resources (global service: always use unified cn-north-4 endpoint, filter by target region via region_id param) |
| COC | https://coc.myhuaweicloud.com/v1/job/scripts/{script_uuid} | Remote script execution (global service: SDK client always uses cn-north-4 endpoint, each target instance's region is carried in the request body) |
Supported Regions: cn-north-4 (North Beijing 4), cn-east-3 (East Shanghai 1), cn-south-1 (South Guangzhou), cn-southwest-2 (Southwest Guiyang 1)
System Image: Ubuntu 24.04 LTS
============================================================
JiuwenSwarm COC Deployment - Complete
============================================================
Target Instance:
Name: {instance_name}
ID: {instance_id}
IP: {public_ip}
COC Execution:
Execute UUID: {execute_uuid}
Status: FINISHED
Deployment Result:
Web Access: http://{public_ip}:5173
Port Binding: 0.0.0.0:5173 (verified)
Submit Time: {submit_time}
NOTE: Huawei Cloud security group must allow inbound TCP 5173
for external web access. Configure at:
https://console.huaweicloud.com/smb/?/resource/list
============================================================
[SUCCESS] Deployment task completed!
============================================================
============================================================
[ERROR] Deployment Failed
============================================================
Error: {error_message}
Suggestions:
1. Check Huawei Cloud credentials
2. Verify instance status
3. Check deployment logs
============================================================
The following reference documents provide detailed information for this skill:
| Document | Description |
|---|---|
| references/api-specs.md | API specifications for Huawei Cloud services (Flexus L, IAM, RMS, COC) |
| references/iam-policies.md | IAM permission policies and policy JSON for deployment |
| references/deployment-checklist.md | Pre/post deployment checklist for all phases |
| references/verification-method.md | Verification methods and acceptance testing procedures |
| references/acceptance-criteria.md | Acceptance criteria and sign-off requirements |
| references/troubleshooting.md | Troubleshooting guide for common deployment issues |