Install
openclaw skills install huawei-cloud-flexus-l-server-hermes-deploymentOne-click deployment tool for Hermes on Huawei Cloud Flexus L instances. Supports one-click deployment, ModelArts large model configuration, and robot channel configuration. This skill provides a complete workflow for deploying and configuring Hermes AI Agent platform. Trigger words: "Deploy Hermes", "Install Hermes", "Configure Model", "Configure Channel", "部署Hermes", "安装Hermes", "配置大模型", "配置机器人通道"
openclaw skills install huawei-cloud-flexus-l-server-hermes-deployment⚠️ Security Execution Rules (Highest Priority):
This skill supports one-click deployment of the Hermes AI Agent platform to Huawei Cloud Flexus L instances. It provides a complete workflow including:
This skill supports both interactive mode (step-by-step prompts) and non-interactive mode (scripted operations), suitable for manual and automated deployment scenarios.
Credential Acquisition Methods:
This skill supports both long-term and temporary Huawei Cloud credentials:
Environment Variables (optional):
HW_ACCESS_KEY: Access Key AK (long-term or temporary)HW_SECRET_KEY: Secret Key SK (long-term or temporary)HW_SECURITY_TOKEN: Security token for temporary credentials (only required for temporary AK/SK)This skill is built on multiple Huawei Cloud services, involving the following cloud services and components:
User/Agent ──────▶│ Flexus L Instance │──────▶│ Hermes App │──────▶│ Model Config │ ──────▶│ Channel Config │
(Skill caller) (Target Host) (AI Agent Platform) (ModelArts API) (Feishu/Wecom)
Component Description:
# Deploy using long-term AK/SK
python scripts/caller.py deploy --ak <AK> --sk <SK> --name hermes-{timestamp} --region cn-north-4
# Deploy using temporary AK/SK (requires security-token)
python scripts/caller.py deploy --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --name hermes-{timestamp} --region cn-north-4
# Deploy in interactive mode (if not specified, auto-generates timestamp format: hermes-20260605143022)
python scripts/caller.py deploy
Instance Name Description:
--name parameter (e.g., hermes-prod-01, hermes-dev, etc.)hermes-YYYYMMDDHHMMSS (e.g., hermes-20260605143022)# Configure model using long-term AK/SK
python scripts/caller.py maas --ak <AK> --sk <SK> --resource-id <instance_id> --region-id cn-north-4 --api-key <api_key> --model-name deepseek-v3.2
# Configure model using temporary AK/SK
python scripts/caller.py maas --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --resource-id <instance_id> --region-id cn-north-4 --api-key <api_key> --model-name deepseek-v3.2
# Configure model in interactive mode
python scripts/caller.py maas
# Configure Feishu channel using long-term AK/SK
python scripts/caller.py channel --ak <AK> --sk <SK> --resource-id <instance_id> --region-id cn-north-4 --bot-platform feishu --feishu-app-id <app_id> --feishu-app-secret <app_secret>
# Configure Feishu channel using temporary AK/SK
python scripts/caller.py channel --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --resource-id <instance_id> --region-id cn-north-4 --bot-platform feishu --feishu-app-id <app_id> --feishu-app-secret <app_secret>
# Configure WeCom channel using long-term AK/SK
python scripts/caller.py channel --ak <AK> --sk <SK> --resource-id <instance_id> --region-id cn-north-4 --bot-platform wecom --wecom-bot-id <bot_id> --wecom-secret <secret>
# Configure WeCom channel using temporary AK/SK
python scripts/caller.py channel --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --resource-id <instance_id> --region-id cn-north-4 --bot-platform wecom --wecom-bot-id <bot_id> --wecom-secret <secret>
# Configure channel in interactive mode
python scripts/caller.py channel
# Restart gateway using long-term AK/SK
python scripts/caller.py gateway --ak <AK> --sk <SK> --resource-id <instance_id> --region-id cn-north-4
# Restart gateway using temporary AK/SK
python scripts/caller.py gateway --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --resource-id <instance_id> --region-id cn-north-4
# Restart gateway in interactive mode
python scripts/caller.py gateway
# Query execution result using long-term AK/SK
python scripts/caller.py query --ak <AK> --sk <SK> --execute-uuid SCT2023083109562601af694bf
# Query execution result using temporary AK/SK
python scripts/caller.py query --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --execute-uuid SCT2023083109562601af694bf
Parameters:
--execute-uuid: Script execution UUID, format like SCTxxxxxxxxxxxxxxxbfStatus Description:
FINISHED: Execution successfulABNORMAL: Execution failedRUNNING: Executing# Query UniAgent status using long-term AK/SK
python scripts/caller.py uniagent --ak <AK> --sk <SK> --resource-id <instance_id>
# Query UniAgent status using temporary AK/SK
python scripts/caller.py uniagent --ak <temp_ak> --sk <temp_sk> --security-token <security_token> --resource-id <instance_id>
# Query UniAgent status in interactive mode
python scripts/caller.py uniagent
UniAgent Status Description:
ONLINE: UniAgent is running normally, can execute COC scriptsOFFLINE: UniAgent is not running, cannot execute COC scriptsUNKNOWN: Status cannot be determinedWhen to Use:
| Parameter | Description | Required | Default Value |
|---|---|---|---|
--ak | Huawei Cloud Access Key AK (supports both long-term and temporary) | No | Prompted |
--sk | Huawei Cloud Access Key SK (supports both long-term and temporary) | No | Prompted |
--security-token | Security token for temporary credentials (optional, only required for temporary AK/SK) | No | Prompted |
--non-interactive | Run in non-interactive mode | No | false |
| Parameter | Description | Required | Default Value |
|---|---|---|---|
--name | Instance name | No | Auto-generated |
--region | Target region | No | cn-north-4 |
| Parameter | Description | Required | Default Value |
|---|---|---|---|
--resource-id | L instance resource ID | Yes | - |
--region-id | COC service region | No | cn-north-4 |
--api-key | ModelArts API Key | Yes | - |
--model-name | Model name | Yes | - |
--api-base-url | API base URL | No | https://api.modelarts-maas.com/v2 |
--timeout | Execution timeout (seconds) | No | 600 |
--execute-user | Execution user | No | root |
| Parameter | Description | Required | Default Value |
|---|---|---|---|
--resource-id | L instance resource ID | Yes | - |
--region-id | COC service region | No | cn-north-4 |
--bot-platform | Bot platform: feishu or wecom | Yes | - |
--feishu-app-id | Feishu App ID | Conditional | - |
--feishu-app-secret | Feishu App Secret | Conditional | - |
--wecom-bot-id | WeCom Bot ID | Conditional | - |
--wecom-secret | WeCom Secret | Conditional | - |
--timeout | Execution timeout (seconds) | No | 600 |
--execute-user | Execution user | No | root |
| Parameter | Description | Required | Default Value |
|---|---|---|---|
--resource-id | L instance resource ID | Yes | - |
--region-id | COC service region | No | cn-north-4 |
--timeout | Execution timeout (seconds) | No | 120 |
--execute-user | Execution user | No | root |
| Parameter | Description | Required | Default Value |
|---|---|---|---|
--resource-id | L instance resource ID | Yes | - |
The skill follows these workflow steps:
Run the main entry point to access the interactive menu:
python scripts/caller.py
This will display a menu for selecting operations.
{
"status": "success",
"instance_id": "abc12345-6789-0abc-def1-23456789abc0",
"instance_name": "my-hermes",
"region": "cn-north-4",
"spec": "hf.small.1.linux",
"created_at": "2024-01-15T10:30:00Z"
}
{
"status": "success",
"resource_id": "abc12345-6789-0abc-def1-23456789abc0",
"model_name": "deepseek-v3.2",
"api_base_url": "https://api.modelarts-maas.com/v2",
"executed_at": "2024-01-15T10:35:00Z"
}
{
"status": "success",
"resource_id": "abc12345-6789-0abc-def1-23456789abc0",
"bot_platform": "feishu",
"channel_id": "channel_123",
"executed_at": "2024-01-15T10:40:00Z"
}
{
"status": "success",
"resource_id": "abc12345-6789-0abc-def1-23456789abc0",
"action": "restart",
"message": "Hermes gateway restarted successfully"
}
# Check instance status
python scripts/caller.py deploy --ak <ak> --sk <sk> --name my-hermes --region cn-north-4 --non-interactive
# Expected output: "Instance created successfully" with instance_id
# Check model configuration
python scripts/caller.py maas --ak <ak> --sk <sk> --resource-id <instance_id> --region-id cn-north-4 --api-key <key> --model-name deepseek-v3.2 --non-interactive
# Expected output: "Model configuration updated successfully"
# Check channel configuration
python scripts/caller.py channel --ak <ak> --sk <sk> --resource-id <instance_id> --region-id cn-north-4 --bot-platform feishu --feishu-app-id <id> --feishu-app-secret <secret> --non-interactive
# Expected output: "Channel configuration updated successfully"
# Check gateway restart
python scripts/caller.py gateway --ak <ak> --sk <sk> --resource-id <instance_id> --region-id cn-north-4 --non-interactive
# Expected output: "Hermes gateway restarted successfully"
--security-token parameter to pass the security tokencn-north-4 as default for China mainland deploymentshcss.cn-north-4.myhuaweicloud.com. The region parameter only selects instance specifications.cn-southwest-2) uses spec ahf.small.1.linuxhf.small.1.linuxCOC involves two different region concepts:
1. COC Service Region (--region-id): The region where COC API service is located (cn-north-4, ap-southeast-3, eu-west-101)
2. Target Instance Region: The region where the L instance is located (can be any Huawei Cloud region worldwide)
These can be different - e.g., COC service in cn-north-4 can execute scripts on instances in ap-southeast-1 (Hong Kong).
--ak and --sk parameters are provided, or use interactive modescripts/caller.py - Main CLI entry pointscripts/deploy.py - Hermes deployment modulescripts/models.py - ModelArts model configurationscripts/channels.py - Robot channel configurationscripts/lib.py - Core business logic (instance creation, model/channel installation)scripts/utils.py - Utility functions (credentials setup, input prompts)