huawei-cloud-flexus-l-deploy-jiuwenswarm

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Important Notes:

重要说明:

  1. All Python files in the
    scripts
    directory have implemented all functions. Do not create additional py files.
  2. Do not modify the script files in the
    scripts
    directory.
  3. Please operate directly according to the provided code and documentation. No need to check Huawei Cloud official API documentation.

  1. scripts
    目录下的所有Python文件已实现全部功能。请勿创建额外的py文件.
  2. 请勿修改
    scripts
    目录下的脚本文件.
  3. 请直接按照提供的代码和文档操作,无需查阅华为云官方API文档.

security Execution Rules (Highest Priority):

安全执行规则(最高优先级):

  1. All scripts MUST be executed via skill action=exec, NEVER run directly in shell
  2. NEVER print script contents or commands containing AK/SK/Token in conversation
  3. NEVER create temporary script files, prefer inline execution (python -c)
  4. On execution failure, only return error info, do NOT rewrite scripts or print full commansds
  5. AK/SK/Token MUST be passed via environment variables, NEVER appear in conversation
  6. NEVER interactively collect Huawei Cloud credentials from users. Credentials MUST be obtained only through:
    • Temporary Security Credentials (STS Token) via environment variables
    • Permanent credentials via environment variables

  1. 所有脚本必须通过skill action=exec执行,绝不允许直接在shell中运行
  2. 绝不在对话中打印包含AK/SK/Token的脚本内容或命令
  3. 绝不创建临时脚本文件,优先使用内联执行方式(python -c)
  4. 执行失败时,仅返回错误信息,不得重写脚本或打印完整命令
  5. AK/SK/Token必须通过环境变量传递,绝不能出现在对话中
  6. 绝不以交互方式向用户收集华为云凭证。凭证仅能通过以下方式获取:
    • 通过环境变量获取临时安全凭证(STS Token)
    • 通过环境变量获取永久凭证

JiuwenSwarm Deployment Skill for Huawei Cloud Flexus L Instance

华为云Flexus L实例的JiuwenSwarm部署Skill

Overview

概述

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.

本Skill为在华为云Flexus L实例上部署JiuwenSwarm(JiuwenClaw)多Agent协作平台提供完整的自动化部署方案。它通过分阶段脚本实现从环境准备到消息渠道配置的全流程自动化。

Prerequisites

前提条件

Before using this skill, the following prerequisites must be met:
使用本Skill前,必须满足以下前提条件:

1. Huawei Cloud Account Requirements

1. 华为云账号要求

  • A valid Huawei Cloud account with active subscription
  • Sufficient balance or billing method configured
  • Flexus L instance quota available in the target region (cn-north-4)
  • 有效的华为云账号且处于活跃订阅状态
  • 账户余额充足或已配置计费方式
  • 目标区域(cn-north-4)拥有可用的Flexus L实例配额

2. IAM Credentials

2. IAM凭证

  • Huawei Cloud Access Key (AK) and Secret Key (SK) with appropriate permissions
  • Temporary Security Credentials (STS Token): Supports temporary security credentials. When
    HUAWEICLOUD_SDK_SECURITY_TOKEN
    environment variable is set along with AK/SK, the skill will use temporary credentials for authentication.
  • Required IAM permissions:
    • hcss:lightInstance:create
      - Create Flexus L instances
    • hcss:lightInstance:list
      - Query instance information
    • rms:resource:list
      - Query resource information
    • coc:execution:create
      - Execute COC scripts
    • coc:execution:list
      - Query COC task status
    • iam:project:list
      - Get project information
  • 拥有适当权限的华为云访问密钥(AK)和秘密密钥(SK)
  • 临时安全凭证(STS Token):支持临时安全凭证。当
    HUAWEICLOUD_SDK_SECURITY_TOKEN
    环境变量与AK/SK一同设置时,Skill将使用临时凭证进行身份验证。
  • 所需IAM权限:
    • hcss:lightInstance:create
      - 创建Flexus L实例
    • hcss:lightInstance:list
      - 查询实例信息
    • rms:resource:list
      - 查询资源信息
    • coc:execution:create
      - 执行COC脚本
    • coc:execution:list
      - 查询COC任务状态
    • iam:project:list
      - 获取项目信息

3. Environment Requirements

3. 环境要求

  • Python 3.8+ installed with pip
  • Required Python packages:
    • requests
      - HTTP client
    • huaweicloudsdkcore
      - Huawei Cloud SDK core
    • huaweicloudsdkcoc
      - COC service SDK
    • huaweicloudsdkrms
      - RMS service SDK
    • huaweicloudsdkiam
      - IAM service SDK
  • 安装Python 3.8+及pip
  • 所需Python包:
    • requests
      - HTTP客户端
    • huaweicloudsdkcore
      - 华为云SDK核心库
    • huaweicloudsdkrms
      - RMS服务SDK
    • huaweicloudsdkiam
      - IAM服务SDK

4. Network Requirements

4. 网络要求

  • Internet access to Huawei Cloud APIs
  • Security group rules allowing outbound HTTP/HTTPS traffic (ports 80, 443)
  • For web access: Port 5173 needs to be opened in security group after deployment
  • 能够访问华为云API的互联网连接
  • 安全组规则允许出站HTTP/HTTPS流量(端口80、443)
  • 若需Web访问:部署后需在安全组中开放端口5173

5. Resource Requirements

5. 资源要求

  • Flexus L instance with minimum specifications:
    • Flavor: medium (2 vCPUs, 4GB RAM) or higher
    • System disk: 40GB or larger
    • Network: Public IP required
  • Flexus L实例的最低规格:
    • 实例规格:medium(2核CPU,4GB内存)或更高
    • 系统盘:40GB及以上
    • 网络:需要公网IP

6. Configuration Requirements

6. 配置要求

  • Model API credentials (API_BASE, API_KEY) for LLM integration (required for Phase 6)
  • Message channel credentials (Xiaoyi/Feishu/DingTalk) if channel configuration is needed (required for Phase 7)

  • 用于LLM集成的模型API凭证(API_BASE、API_KEY)(第6阶段必需)
  • 若需配置消息渠道,需准备对应渠道凭证(小艺/飞书/钉钉)(第7阶段必需)

Architecture Diagram

架构图

This 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:
  • User/Agent: Skill caller that triggers JiuwenSwarm deployment operations via natural language or API
  • Flexus L Instance: Huawei Cloud Elastic Cloud Server, serving as the target host for JiuwenSwarm deployment
  • JiuwenSwarm App: Multi-agent collaboration platform running on the Flexus L instance
  • Model Config: Configuration for external LLM services (API_BASE, API_KEY, MODEL_NAME, MODEL_PROVIDER)
  • Channel Config: Messaging channel configuration (Huawei Xiaoyi, Feishu, Dingtalk)

本Skill基于多个华为云服务构建,涉及以下云服务和组件:
User/Agent      ──────▶│   Flexus L Instance   │──────▶│   JiuwenSwarm App    │──────▶│ Model Config     │ ──────▶│  Channel Config     │ 
(Skill caller)           (Target Host)                 (Multi-Agent Platform)           (API_BASE/KEY)            (Xiaoyi/Feishu/Dingtalk)            
组件描述:
  • User/Agent:通过自然语言或API触发JiuwenSwarm部署操作的Skill调用者
  • Flexus L Instance:华为云弹性云服务器,作为JiuwenSwarm部署的目标主机
  • JiuwenSwarm App:运行在Flexus L实例上的多Agent协作平台
  • Model Config:外部LLM服务的配置(API_BASE、API_KEY、MODEL_NAME、MODEL_PROVIDER)
  • Channel Config:消息渠道配置(华为小艺、飞书、钉钉)

Skill Responsibilities

Skill职责

Core Functions

核心功能

  1. Flexus L Instance Creation - Call Flexus L API to create instances, supporting parameters like instance name, flavor (medium/large), image version, etc.
  2. Instance Status Query - Query instance status, public IP, instance ID via RMS API
  3. COC Remote Deployment - Use Huawei Cloud COC (Cloud Operations Center) to remotely execute deployment scripts on instances
  4. COC Task Status Query - Query deployment task execution status and results via COC API
  5. System Service Configuration - Configure systemd service for auto-start on boot
  6. Model Configuration - Configure API_BASE, API_KEY, MODEL_NAME, MODEL_PROVIDER
  7. Message Channel Configuration - Support three message channels: Xiaoyi, Feishu, DingTalk
  1. Flexus L实例创建 - 调用Flexus L API创建实例,支持实例名称、规格(medium/large)、镜像版本等参数
  2. 实例状态查询 - 通过RMS API查询实例状态、公网IP、实例ID
  3. COC远程部署 - 使用华为云COC(Cloud Operations Center)在实例上远程执行部署脚本
  4. COC任务状态查询 - 通过COC API查询部署任务的执行状态和结果
  5. 系统服务配置 - 配置systemd服务实现开机自启
  6. 模型配置 - 配置API_BASE、API_KEY、MODEL_NAME、MODEL_PROVIDER
  7. 消息渠道配置 - 支持三种消息渠道:小艺、飞书、钉钉

Execution Flow

执行流程

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

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

Typical Use Cases

典型用例

User may say:
English Examples:
  1. "Help me deploy JiuwenSwarm to Huawei Cloud"
  2. "I want to install JiuwenClaw on Flexus L instance"
  3. "How to add Feishu bot to my JiuwenSwarm?"
  4. "I want to configure JiuwenSwarm to use custom model"
  5. "Help me deploy JiuwenSwarm with one click and configure Xiaoyi channel"

用户可能会说:
英文示例:
  1. "Help me deploy JiuwenSwarm to Huawei Cloud"
  2. "I want to install JiuwenClaw on Flexus L instance"
  3. "How to add Feishu bot to my JiuwenSwarm?"
  4. "I want to configure JiuwenSwarm to use custom model"
  5. "Help me deploy JiuwenSwarm with one click and configure Xiaoyi channel"

⚠️ Important: Customer Confirmation Required

⚠️ 重要提示:需获得客户确认

Before executing any cloud resource creation operations, explicit customer consent must be obtained!
在执行任何云资源创建操作前,必须获得客户的明确同意!

Scenarios Requiring Confirmation

需要确认的场景

OperationConfirmation Required
Create new Flexus L instanceRequired
Deploy application on existing instanceRequired
Modify cloud resource configurationRequired
操作是否需要确认
创建新的Flexus L实例
在现有实例上部署应用
修改云资源配置

Confirmation Template

确认模板

============================================================
⚠️ 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.
============================================================

============================================================
⚠️ 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.
============================================================

Execution Steps

执行步骤

Phase 1: Environment Preparation

阶段1:环境准备

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)
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)

Phase 2: Create Flexus L Instance

阶段2:创建Flexus L实例

⚠️ 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
⚠️ 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

Phase 3: COC Remote Dependency Installation

阶段3:COC远程依赖安装

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.
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.

Phase 4: COC Remote JiuwenSwarm Service Deployment

阶段4:COC远程JiuwenSwarm服务部署

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. 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.

Phase 5: Verify Deployment Result

阶段5:验证部署结果

1. Query COC deployment task status
2. Verify port 5173 listening
3. Check service health status
4. Output web access URL
1. Query COC deployment task status
2. Verify port 5173 listening
3. Check service health status
4. Output web access URL

Phase 6: Model Configuration

阶段6:模型配置

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. 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

Phase 7: Message Channel Configuration

阶段7:消息渠道配置

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. 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

COC Remote Script Execution Status Query

COC远程脚本执行状态查询

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.
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

COC任务状态查询

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 |

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 |

Output Standards

输出标准

Success Output Template

成功输出模板

============================================================
  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!
============================================================
============================================================
  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 Output Template

错误输出模板

============================================================
[ERROR] Deployment Failed
============================================================

Error: {error_message}

Suggestions:
  1. Check Huawei Cloud credentials
  2. Verify instance status
  3. Check deployment logs

============================================================
============================================================
[ERROR] Deployment Failed
============================================================

Error: {error_message}

Suggestions:
  1. Check Huawei Cloud credentials
  2. Verify instance status
  3. Check deployment logs

============================================================

COC Task Status Description

COC任务状态说明

StatusDescription
PROCESSINGRunning, waiting required
FINISHEDCompleted successfully
ABNORMALExecution abnormal, failed
CANCELEDCanceled

状态描述
PROCESSING运行中,需等待
FINISHED执行成功
ABNORMAL执行异常,失败
CANCELED已取消

Directory Structure

目录结构

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

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

Installation and Usage

安装与使用

Environment Preparation

环境准备

bash
undefined
bash
undefined

Install dependencies

Install dependencies

pip install -r requirements.txt
pip install -r requirements.txt

Configure Huawei Cloud credentials (Recommended: temporary security credentials - STS Token)

Configure Huawei Cloud credentials (Recommended: temporary security credentials - STS Token)

export HUAWEICLOUD_SDK_AK=<your-temp-access-key>

export HUAWEICLOUD_SDK_AK=<your-temp-access-key>

export HUAWEICLOUD_SDK_SK=<your-temp-secret-key>

export HUAWEICLOUD_SDK_SK=<your-temp-secret-key>

export HUAWEICLOUD_SDK_SECURITY_TOKEN=<your-security-token>

export HUAWEICLOUD_SDK_SECURITY_TOKEN=<your-security-token>

export HUAWEICLOUD_REGION="cn-north-4"

export HUAWEICLOUD_REGION="cn-north-4"

OR use permanent credentials (not recommended)

OR use permanent credentials (not recommended)

export HUAWEICLOUD_SDK_AK=<your-access-key>

export HUAWEICLOUD_SDK_AK=<your-access-key>

export HUAWEICLOUD_SDK_SK=<your-secret-key>

export HUAWEICLOUD_SDK_SK=<your-secret-key>

export HUAWEICLOUD_REGION="cn-north-4"

export HUAWEICLOUD_REGION="cn-north-4"

undefined
undefined

Quick Deployment Flow

快速部署流程

bash
undefined
bash
undefined

1. Environment preparation

1. Environment preparation

python scripts/prepare_env.py
python scripts/prepare_env.py

2. Create instance (interactive confirmation)

2. Create instance (interactive confirmation)

python scripts/create_instance.py --name jiuwenSwarm-<timestamp> --flavor medium --wait
python scripts/create_instance.py --name jiuwenSwarm-<timestamp> --flavor medium --wait

3. Install dependencies

3. Install dependencies

python scripts/install_deps.py --ip <public_ip>
python scripts/install_deps.py --ip <public_ip>

4. Deploy service

4. Deploy service

python scripts/deploy_service.py --ip <public_ip>
python scripts/deploy_service.py --ip <public_ip>

5. Verify deployment

5. Verify deployment

python scripts/verify_deployment.py --ip <public_ip>
python scripts/verify_deployment.py --ip <public_ip>

6. Configure model

6. Configure model

python scripts/config_model.py --ip <public_ip> --interactive
python scripts/config_model.py --ip <public_ip> --interactive

7. Configure message channel

7. Configure message channel

python scripts/config_channel.py --channel xiaoyi --ip <public_ip> --interactive
python scripts/config_channel.py --channel xiaoyi --ip <public_ip> --interactive

8. Query COC task status

8. Query COC task status

python scripts/query_coc_status.py --uuid <execute_uuid> --verbose

---
python scripts/query_coc_status.py --uuid <execute_uuid> --verbose

---

Web UI Access

Web UI访问

Web UI access requires manual security group configuration in Huawei Cloud Console:
  1. Login to Huawei Cloud Flexus Application Server L Instance Console
  2. Find your JiuwenSwarm instance in the instance list
  3. Click instance name to enter details page
  4. Find "Security" or "Network" options in left menu
  5. Configure security group rules to open port 5173 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.

Web UI访问需要在华为云控制台手动配置安全组:
  1. 登录华为云Flexus应用服务器L实例控制台
  2. 在实例列表中找到你的JiuwenSwarm实例
  3. 点击实例名称进入详情页
  4. 在左侧菜单中找到“安全”或“网络”选项
  5. 配置安全组规则开放端口5173 访问地址
    http://<instance_public_ip>:5173
    安全警告:开放端口后,JiuwenSwarm Web界面将可被访问。请在启用前评估安全风险,建议仅在需要时临时开放,使用后关闭。

Script Parameter Description

脚本参数说明

create_instance.py

create_instance.py

ParameterDescriptionDefault Value
--nameInstance namejiuwenSwarm-{timestamp}
--flavorInstance flavormedium
--regionRegion (cn-north-4 only)cn-north-4
--waitWait for creation completionFalse
--timeoutTimeout in seconds600
--confirmSkip confirmation promptFalse
参数描述默认值
--name实例名称jiuwenSwarm-{timestamp}
--flavor实例规格medium
--region区域(仅支持cn-north-4)cn-north-4
--wait等待实例创建完成False
--timeout超时时间(秒)600
--confirm跳过确认提示False

deploy_service.py

deploy_service.py

ParameterDescriptionDefault Value
--ipInstance public IPRequired
--waitWait for deployment completionTrue
--timeoutTimeout in seconds1800
参数描述默认值
--ip实例公网IP必填
--wait等待部署完成True
--timeout超时时间(秒)1800

config_model.py

config_model.py

ParameterDescription
--api-baseModel API URL
--api-keyModel API key
--model-nameModel name
--model-providerModel provider
--ipInstance public IP
--interactiveInteractive configuration
参数描述
--api-base模型API地址
--api-key模型API密钥
--model-name模型名称
--model-provider模型提供商
--ip实例公网IP
--interactive交互式配置

config_channel.py

config_channel.py

ParameterDescription
--channelChannel type (xiaoyi/feishu/dingtalk)
--ipInstance public IP
--interactiveInteractive configuration
参数描述
--channel渠道类型(xiaoyi/feishu/dingtalk)
--ip实例公网IP
--interactive交互式配置

query_coc_status.py

query_coc_status.py

ParameterDescriptionDefault Value
--uuid, -uCOC execution UUIDRequired
--from-file, -fRead UUID from JSON file-
--key, -kUUID key name in JSON fileexecute_uuid
--verbose, -vShow detailed outputFalse
--wait, -wWait for task completionFalse
--timeout, -tWait timeout in seconds1800
--interval, -iPolling interval in seconds60

参数描述默认值
--uuid, -uCOC执行UUID必填
--from-file, -f从JSON文件读取UUID-
--key, -kJSON文件中的UUID键名execute_uuid
--verbose, -v显示详细输出False
--wait, -w等待任务完成False
--timeout, -t等待超时时间(秒)1800
--interval, -i轮询间隔(秒)60

Huawei Cloud Credential Configuration

华为云凭证配置

Recommended: Use temporary security credentials (STS Token) by default. Please use this method first.
推荐:默认使用临时安全凭证(STS Token)。请优先使用此方式。

Temporary Security Credentials (STS Token) - Recommended (Default)

临时安全凭证(STS Token)- 推荐(默认)

The skill supports temporary security credentials. Temporary credentials require an additional
HUAWEICLOUD_SDK_SECURITY_TOKEN
environment variable.
Environment VariableDescriptionRequired
HUAWEICLOUD_SDK_AK
Temporary Access KeyYes
HUAWEICLOUD_SDK_SK
Temporary Secret KeyYes
HUAWEICLOUD_SDK_SECURITY_TOKEN
Security TokenYes
HUAWEICLOUD_REGION
Huawei Cloud Region (default: cn-north-4)Yes
本Skill支持临时安全凭证。临时凭证需要额外设置
HUAWEICLOUD_SDK_SECURITY_TOKEN
环境变量。
环境变量描述是否必填
HUAWEICLOUD_SDK_AK
临时访问密钥
HUAWEICLOUD_SDK_SK
临时秘密密钥
HUAWEICLOUD_SDK_SECURITY_TOKEN
安全令牌
HUAWEICLOUD_REGION
华为云区域(默认:cn-north-4)

Permanent Credentials

永久凭证

Credentials must be set via environment variables before running the skill.
Environment VariableDescriptionRequired
HUAWEICLOUD_SDK_AK
Huawei Cloud Access KeyYes
HUAWEICLOUD_SDK_SK
Huawei Cloud Secret KeyYes
HUAWEICLOUD_REGION
Huawei Cloud Region (default: cn-north-4)Yes
Credential Concept:
  • Temporary credentials (Default): AK + SK + SECURITY_TOKEN + REGION (STS token is added to permanent credentials)
  • Permanent credentials: AK + SK + REGION

运行Skill前必须通过环境变量设置凭证。
环境变量描述是否必填
HUAWEICLOUD_SDK_AK
华为云访问密钥
HUAWEICLOUD_SDK_SK
华为云秘密密钥
HUAWEICLOUD_REGION
华为云区域(默认:cn-north-4)
凭证概念:
  • 临时凭证(默认): AK + SK + SECURITY_TOKEN + REGION(在永久凭证基础上添加STS令牌)
  • 永久凭证: AK + SK + REGION

Key API Endpoints

核心API端点

Supported Region: cn-north-4 only (China North 4)
System Image: Ubuntu 24.04 LTS only

支持区域: 仅cn-north-4(中国-华北4)
系统镜像: 仅Ubuntu 24.04 LTS

Troubleshooting

故障排查

Instance Creation Failed

实例创建失败

  • Check if AK/SK are correct
  • Confirm sufficient account quota
  • Ensure using cn-north-4 region
  • 检查AK/SK是否正确
  • 确认账户配额充足
  • 确保使用cn-north-4区域

COC Deployment Unresponsive

COC部署无响应

  • Check if execute_uuid is correct
  • Confirm instance status is RUNNING
  • Verify COC service permissions
  • 检查execute_uuid是否正确
  • 确认实例状态为RUNNING
  • 验证COC服务权限

Web Service Unaccessible

Web服务无法访问

  • Check security group rules (port 5173 open)
  • Confirm service is started:
    systemctl status jiuwenswarm
  • View logs:
    journalctl -u jiuwenswarm -f
  • 检查安全组规则(端口5173是否开放)
  • 确认服务已启动:
    systemctl status jiuwenswarm
  • 查看日志:
    journalctl -u jiuwenswarm -f