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.
Before using this skill, the following prerequisites must be met:
HUAWEICLOUD_SDK_SECURITY_TOKEN environment variable is set along with AK/SK, the skill will use temporary credentials for authentication.hcss:lightInstance:create - Create Flexus L instanceshcss:lightInstance:list - Query instance informationrms:resource:list - Query resource informationcoc:execution:create - Execute COC scriptscoc:execution:list - Query COC task statusiam:project:list - Get project informationrequests - HTTP clienthuaweicloudsdkcore - Huawei Cloud SDK corehuaweicloudsdkcoc - COC service SDKhuaweicloudsdkrms - RMS service SDKhuaweicloudsdkiam - IAM service SDKThis skill is built on multiple Huawei Cloud services, involving the following cloud services and components:
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:
Phase 1: Environment Preparation → Phase 2: Create Instance → Phase 3: Install Dependencies → COC Status Query → Phase 4: Deploy Service → COC Status Query → Phase 5: Verify Deployment → Phase 6: Model Configuration → Phase 7: Message Channel Configuration
User may say:
English Examples:
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 |
============================================================
⚠️ Cloud Resource Creation Confirmation
============================================================
Operation to be executed: Create new Flexus L instance
Instance Specifications:
- Name: {instance_name}
- Flavor: {flavor}
- Region: {region}
- Estimated Cost: ~100 RMB/month (actual price subject to Huawei Cloud pricing)
Resources will be created immediately after confirmation.
Please reply "confirm" or "agree" to continue.
============================================================
1. Verify Huawei Cloud credentials (AK/SK)
2. Set environment variable: PYTHONIOENCODING=utf-8
3. Check dependency modules: requests, huaweicloudsdkcore, huaweicloudsdkcoc, huaweicloudsdkrms
4. Validate credential validity (via IAM API)
⚠️ The following steps can only be executed after obtaining customer confirmation!
1. Display instance configuration information to customer (name, flavor, region, estimated cost)
2. Wait for customer confirmation (reply "confirm" or "agree")
3. After confirmation, execute:
- Get Project ID (via IAM API)
- Call Flexus L create API
- Save order_id for subsequent queries
- Wait for instance creation to complete (poll RMS API)
- Get instance information: instance_id, public_ip, ecs_instance_id
Based on instance information from Phase 2: instance_id, public_ip, ecs_instance_id, execute:
1. Execute dependency installation script via COC
2. Install base tools: git, curl, vim, wget, net-tools, etc.
3. Check Python and Node.js environment
4. Wait for deployment to complete. Note: script execution takes approximately 8 minutes. Please be patient. Only retry if script execution errors occur.
1. Read deployment script template (assets/deploy_script_template.sh)
2. Execute complete deployment script on instance via COC
3. Install JiuwenSwarm and related dependencies
4. Configure systemd service
5. Start JiuwenSwarm service
6. Wait for deployment to complete. Note: script execution takes approximately 15 minutes. Please be patient. Only retry if script execution errors occur.
1. Query COC deployment task status
2. Verify port 5173 listening
3. Check service health status
4. Output web access URL
1. Interactively collect model configuration information:
- API_BASE: Model API URL
- API_KEY: Model API key
- MODEL_NAME: Model name
- MODEL_PROVIDER: Model provider
2. Generate configuration script (COC remote execution):
- Backup original .env file
- Update only four core parameters (API_BASE, API_KEY, MODEL_NAME, MODEL_PROVIDER)
- Keep other configuration parameters unchanged
- Set file permission to 600
3. Restart JiuwenSwarm service
1. Select channel type: xiaoyi / feishu / dingtalk
2. Collect configuration information based on channel type:
- xiaoyi: AK, SK, Agent ID
- feishu: App ID, App Secret
- dingtalk: Client ID, Client Secret, Allow From
3. Generate configuration script (COC remote execution):
- Backup original config.yaml file
- Update only key configuration fields for specified channel, keep other configurations unchanged
- Xiaoyi: Update only ak, sk, agent_id, enabled
- Feishu: Update only app_id, app_secret, enabled
- DingTalk: Update only client_id, client_secret, allow_from, enabled
- Set file permission to 644
4. Restart JiuwenSwarm service
1. Query task status by COC execution UUID
2. Support three query methods:
- Direct query: python query_coc_status.py --uuid <execute_uuid>
- Detailed output: python query_coc_status.py --uuid <execute_uuid> --verbose
- Wait for completion: pythonquery_coc_status.py --uuid <execute_uuid> --wait
3. Load UUID from JSON file:
- python query_coc_status.py --from-file new_instance_info.json
4. Return task status, duration, output results, etc.
COC task status query supports the following features:
1. Single query - Query current status of specified UUID task
2. Detailed output - Display script execution output
3. Wait for completion - Continuous polling until task completes or timeout
4. File loading - Read UUID from JSON file saved during deployment
Script location: scripts/query_coc_status.py
Usage examples:
# Query single task status
python query_coc_status.py --uuid SCT20250101000000000000000
# Query with detailed output
python query_coc_status.py --uuid SCT20250101000000000000000 --verbose
# Wait for task completion
python query_coc_status.py --uuid SCT20250101000000000000000 --wait
# Custom wait time and polling interval
python query_coc_status.py --uuid SCT20250101000000000000000 --wait --timeout 3600 --interval 30
# Load UUID from JSON file
python query_coc_status.py --from-file new_instance_info.json
COC Task Status Description:
| Status | Description |
|--------|-------------|
| READY | Ready |
| PROCESSING | Running, waiting required |
| FINISHED | Completed successfully |
| ABNORMAL | Execution abnormal, failed |
| CANCELED | Canceled |
============================================================
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
Submit Time: {submit_time}
============================================================
[SUCCESS] Deployment task completed!
============================================================
============================================================
[ERROR] Deployment Failed
============================================================
Error: {error_message}
Suggestions:
1. Check Huawei Cloud credentials
2. Verify instance status
3. Check deployment logs
============================================================
| Status | Description |
|---|---|
| PROCESSING | Running, waiting required |
| FINISHED | Completed successfully |
| ABNORMAL | Execution abnormal, failed |
| CANCELED | Canceled |
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 # Environment variable template
└── references/ # Reference documents
├── api_specs.md # API specifications
├── deployment_checklist.md # Deployment checklist
├── iam_policies.md # IAM policies
└── troubleshooting.md # Troubleshooting guide
# Install dependencies
pip install -r requirements.txt
# Configure Huawei Cloud credentials (Recommended: temporary security credentials - STS Token)
# export HUAWEICLOUD_SDK_AK=<your-temp-access-key>
# export HUAWEICLOUD_SDK_SK=<your-temp-secret-key>
# export HUAWEICLOUD_SDK_SECURITY_TOKEN=<your-security-token>
# export HUAWEICLOUD_REGION="cn-north-4"
# OR use permanent credentials (not recommended)
# export HUAWEICLOUD_SDK_AK=<your-access-key>
# export HUAWEICLOUD_SDK_SK=<your-secret-key>
# 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 medium --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
Web UI access requires manual security group configuration in Huawei Cloud Console:
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.| Parameter | Description | Default Value |
|---|---|---|
| --name | Instance name | jiuwenSwarm-{timestamp} |
| --flavor | Instance flavor | medium |
| --region | Region (cn-north-4 only) | cn-north-4 |
| --wait | Wait for creation completion | False |
| --timeout | Timeout in seconds | 600 |
| --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 |
Recommended: Use temporary security credentials (STS Token) by default. Please use this method first.
The skill supports temporary security credentials. Temporary credentials require an additional HUAWEICLOUD_SDK_SECURITY_TOKEN environment variable.
| Environment Variable | Description | Required |
|---|---|---|
HUAWEICLOUD_SDK_AK | Temporary Access Key | Yes |
HUAWEICLOUD_SDK_SK | Temporary Secret Key | Yes |
HUAWEICLOUD_SDK_SECURITY_TOKEN | Security Token | Yes |
HUAWEICLOUD_REGION | Huawei Cloud Region (default: cn-north-4) | Yes |
Credentials must be set via environment variables before running the skill.
| Environment Variable | Description | Required |
|---|---|---|
HUAWEICLOUD_SDK_AK | Huawei Cloud Access Key | Yes |
HUAWEICLOUD_SDK_SK | Huawei Cloud Secret Key | Yes |
HUAWEICLOUD_REGION | Huawei Cloud Region (default: cn-north-4) | Yes |
Credential Concept:
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 | https://iam.{region}.myhuaweicloud.com/v3/projects | Get Project ID |
| RMS | https://rms.{region}.myhuaweicloud.com/v1/resource-manager/domains/{domain_id}/resources | Query resources |
| COC | https://coc.{region}.myhuaweicloud.com | Remote script execution |
Supported Region: cn-north-4 only (China North 4)
System Image: Ubuntu 24.04 LTS only
systemctl status jiuwenswarmjournalctl -u jiuwenswarm -f