huawei-cloud-flexus-l-server-hermes-deployment
huawei-cloud-flexus-l-server-hermes-deployment について
Huawei Cloud Flexus L インスタンスに Hermes AI Agent プラットフォームをデプロイするスキルです。ModelArts のモデルやボットチャネルも設定でき、対話形式とスクリプト形式で操作できます。
主な機能
- 01Flexus L インスタンスの作成
- 02COC 経由の ModelArts モデル設定
- 03Feishu と WeCom のチャネル設定
- 04ゲートウェイ管理と状態照会
- 05対話形式と非対話形式の操作
活用シーン
- 01Huawei Cloud インスタンスへの Hermes デプロイ
- 02モデルとボットチャネルの設定
- 03デプロイ済みゲートウェイの再起動
- 04UniAgent または実行状態の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ huaweicloud/ huaweicloud-skills --skill huawei-cloud-flexus-l-server-hermes-deploymentインストール後、Claude Code で/huawei-cloud-flexus-l-server-hermes-deploymentを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/acceptance-criteria.mdcli-installation-guide.mdiam-policies.mdverification-method.mdscripts/caller.pychannels.pydeploy.pygateway.pylib.pymodels.pypyproject.tomlsmoke_test.pyuniagent.pyutils.py詳細
⚠️ セキュリティ実行ルール(最優先):
- すべてのスクリプトは、必ず skill action=exec を介して実行してください。シェルから直接実行してはいけません
- AK/SK/Token を含むスクリプトの内容やコマンドを、会話内に絶対に出力しないでください
- 一時スクリプトファイルは絶対に作成せず、インライン実行(python -c)を優先してください
- 実行に失敗した場合は、エラー情報のみを返してください。スクリプトを書き換えたり、コマンド全体を出力したりしてはいけません
- AK/SK/Token は環境変数経由で渡し、会話内に絶対に表示しないでください
- いかなる形であっても、AK/SK/Token の値を絶対に公開、記録、出力しないでください。これは重要なセキュリティ要件です
- skill action=exec を使用する場合、認証情報は環境変数(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)から自動的に引き継がれるため、コマンドライン引数として渡す必要はありません
Hermes ワンクリックデプロイメントスキル
概要
このスキルは、Huawei Cloud Flexus L インスタンスへの Hermes AI エージェントプラットフォームのワンクリックデプロイメントに対応しています。以下を含む、完全なワークフローを提供します。
- 最適化された構成でのインスタンス作成の自動化
- COC(Cloud Operations Center)による ModelArts 大規模モデルの構成
- COC によるロボットチャネルの構成(Feishu、WeCom、DingTalk など)
- デプロイ済みインスタンスのゲートウェイ管理
このスキルは、対話モード(ステップごとのプロンプト)と非対話モード(スクリプトによる操作)の両方に対応しており、手動および自動のデプロイメントシナリオに適しています。
前提条件
アカウント要件
- 十分な権限を持つ有効な Huawei Cloud アカウント
- Huawei Cloud の認証情報:長期 AK/SK、または一時 AK/SK と security_token
- 必要な権限:
- Flexus L インスタンスの作成
- COC(Cloud Operations Center)サービスへのアクセス
認証情報の取得方法:
このスキルは、Huawei Cloud の長期認証情報と一時認証情報の両方に対応しています。
- 長期 AK/SK:security_token は不要です
- 一時 AK/SK:セキュリティトークンが必要です
環境変数(任意):
HW_ACCESS_KEY:アクセスキー AK(長期または一時)HW_SECRET_KEY:シークレットキー SK(長期または一時)HW_SECURITY_TOKEN:一時認証情報用のセキュリティトークン(一時 AK/SK の場合のみ必要)
アーキテクチャ図
このスキルは複数の Huawei Cloud サービスを基盤としており、以下のクラウドサービスとコンポーネントを使用します。
User/Agent ──────▶│ Flexus L Instance │──────▶│ Hermes App │──────▶│ Model Config │ ──────▶│ Channel Config │
(Skill caller) (Target Host) (AI Agent Platform) (ModelArts API) (Feishu/Wecom)
コンポーネントの説明:
- ユーザー/エージェント:自然言語または API を介して Hermes のデプロイメント操作を開始するスキルの呼び出し元
- Flexus L インスタンス:Huawei Cloud のエラスティッククラウドサーバー。Hermes のデプロイ先ホストとして機能します
- Hermes App:Flexus L インスタンス上で稼働する AI エージェントプラットフォーム
- モデル構成:ModelArts 大規模モデルの構成(API_BASE、API_KEY、MODEL_NAME)
- チャネル構成:ロボットチャネルの構成(Feishu、WeCom)
コアコマンド
デプロイメントコマンド
# 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
インスタンス名の説明:
--nameパラメーターでインスタンス名をカスタマイズできます(例:hermes-prod-01、hermes-devなど)- 名前を指定しない場合、タイムスタンプ形式の
hermes-YYYYMMDDHHMMSSが自動生成されます(例: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
パラメーター:
--execute-uuid:スクリプト実行 UUID。形式はSCTxxxxxxxxxxxxxxxbfなどです
ステータスの説明:
FINISHED:実行成功ABNORMAL:実行失敗RUNNING:実行中
UniAgent のステータス確認コマンド
# 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 のステータスの説明:
ONLINE:UniAgent は正常に稼働しており、COC スクリプトを実行できますOFFLINE:UniAgent は稼働しておらず、COC スクリプトを実行できませんUNKNOWN:ステータスを判定できません
使用するタイミング:
- モデルまたはチャネルを設定する前に、UniAgent が ONLINE であることを確認します
- COC スクリプトの実行失敗をトラブルシューティングします
- デプロイ後にインスタンスの稼働ステータスを確認します
- インスタンスの作成コマンドが正常に発行された後(ステータスコードが「200」、「201」、または「202」の場合)、前提条件が満たされているか(ゲートウェイと UniAgent のステータス)を自動的に確認します。前提条件が満たされていれば、すぐに次の手順に進めます!
パラメーターリファレンス
グローバルパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
--ak | Huawei Cloud アクセスキー AK(長期および一時キーの両方に対応) | いいえ | 入力を促されます |
--sk | Huawei Cloud アクセスキー SK(長期および一時キーの両方に対応) | いいえ | 入力を促されます |
--security-token | 一時認証情報用のセキュリティトークン(任意。一時的な AK/SK の場合のみ必要) | いいえ | 入力を促されます |
--non-interactive | 非対話モードで実行します | いいえ | false |
デプロイコマンドのパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
--name | インスタンス名 | いいえ | 自動生成 |
--region | 対象リージョン(--cli-region も指定できます) | いいえ | cn-north-4 |
MaaS コマンドのパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
--resource-id | L インスタンスのリソース ID | はい | - |
--region-id | COC サービスのリージョン(--cli-region も指定できます) | いいえ | cn-north-4 |
--api-key | ModelArts API キー | はい | - |
--model-name | モデル名 | はい | - |
--api-base-url | API ベース URL | いいえ | https://api.modelarts-maas.com/v2 |
--timeout | 実行タイムアウト(秒) | いいえ | 600 |
--execute-user | 実行ユーザー | いいえ | root |
チャネルコマンドのパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
--resource-id | L インスタンスのリソース ID | はい | - |
--region-id | COC サービスのリージョン(--cli-region も指定できます) | いいえ | cn-north-4 |
--bot-platform | ボットプラットフォーム:feishu または wecom | はい | - |
--feishu-app-id | Feishu アプリ ID | 条件付き | - |
--feishu-app-secret | Feishu アプリシークレット | 条件付き | - |
--wecom-bot-id | WeCom ボット ID | 条件付き | - |
--wecom-secret | WeCom シークレット | 条件付き | - |
--timeout | 実行タイムアウト(秒) | いいえ | 600 |
--execute-user | 実行ユーザー | いいえ | root |
ゲートウェイコマンドのパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
--resource-id | L インスタンスのリソース ID | はい | - |
--region-id | COC サービスのリージョン(--cli-region も指定できます) | いいえ | cn-north-4 |
--timeout | 実行タイムアウト(秒) | いいえ | 120 |
--execute-user | 実行ユーザー | いいえ | root |
UniAgent コマンドのパラメーター
| パラメーター | 説明 | 必須 | デフォルト値 |
|---|---|---|---|
--resource-id | L インスタンスのリソース ID | はい | - |
ワークフロー
このスキルでは、次の手順でワークフローを実行します。
- Hermes をデプロイ:Hermes AI Agent プラットフォームを備えた Flexus L インスタンスを作成して設定します
- モデルを設定:COC(Cloud Operations Center)を介して ModelArts の大規模言語モデルを設定します
- チャネルを設定:COC を介してロボットチャネル(Feishu、WeCom)を設定します
- ゲートウェイを管理:必要に応じてゲートウェイサービスを再起動します
対話モード(メニュー)
メインのエントリーポイントを実行して、対話型メニューを開きます。
python scripts/caller.py
操作を選択するためのメニューが表示されます。
出力形式
デプロイコマンドの出力
{
"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"
}
MaaS コマンドの出力
{
"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"
}
検証方法
1. デプロイの検証
# 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
2. モデル設定の検証
# 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"
3. チャネル設定の検証
# 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"
4. ゲートウェイの検証
# 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"
ベストプラクティス
1. 認証情報の管理
- 一時的な認証情報:一時的な AK/SK と security_token を認証に使用すると、セキュリティが向上します
- 一時的な認証情報は、期限が設定された状態で STS サービスから発行されます
--security-tokenパラメーターを使用してセキュリティトークンを渡します- 環境変数、コマンドラインパラメーター、対話式入力に対応しています
- 本番環境では、最小限の権限を持つ IAM ロールを使用します
- セキュリティポリシーに従って、認証情報を定期的にローテーションします
2. リージョンの選択
- パフォーマンスを向上させるため、ユーザーに最も近いリージョンを選択します
- デプロイ時には、リージョンごとのコンプライアンス要件を考慮します
- 中国本土へのデプロイでは、デフォルトとして
cn-north-4を使用します - Hermes のデプロイでサポートされているのは、cn-north-4、cn-east-3、cn-south-1、cn-southwest-2 のみです
3. インスタンスの管理
- Huawei Cloud Console でインスタンスの健全性を監視します
- 高可用性を実現するため、自動スケーリングポリシーを設定します
- データを永続化するため、バックアップポリシーを設定します
4. モデル設定
- 本番環境にデプロイする前に、ステージング環境でモデルをテストします
- フェイルオーバーに備えて、フォールバックモデルを設定します
- 初回デプロイ後のデフォルトのモデル設定は使用できません。Hermes を使用する前に、必ずモデルを設定してください。
5. チャネル設定
- 本番環境では専用のボットアカウントを使用します
- チャネルのメッセージスループットを監視します
- 不正利用を防ぐため、レート制限を設定します
- 現在サポートされているボットプラットフォームはFeishuとWeComのみです。各プラットフォームでサポートされるボットは1つだけです。
注意事項
一般的な注意事項
- インスタンスの作成時間:インスタンスが完全にプロビジョニングされるまでに5〜10分かかることがあります
- COC スクリプトの実行:モデルとチャネルの設定は、Huawei Cloud COC(Cloud Operations Center)を通じてリモートで実行されます
- セキュリティグループ:外部アクセスが必要な場合は、Huawei Cloud Console でセキュリティグループのルールを設定します
- 費用:Huawei Cloud のリソースを使用すると費用が発生します。アカウントに十分な残高があることを確認してください。
- 後続の手順:後続の手順(モデルやチャネルの設定)に進む際、インスタンスの作成完了を待つ必要はありません。インスタンスのステータスはシステムが自動的に処理します。
リージョンに関する注意事項
- 固定エンドポイント:Hermes L インスタンスの作成時、リクエストは固定エンドポイント
hcss.cn-north-4.myhuaweicloud.comに送信されます。リージョンパラメーターはインスタンスの仕様を選択するためだけに使用されます。 - Guiyang リージョン(
cn-southwest-2)では、仕様ahf.small.1.linuxが使用されます - その他のリージョン(Beijing/Shanghai/Guangzhou)では、仕様
hf.small.1.linuxが使用されます - ステータスコード:200、201、202 はいずれも成功を示します
COC のリージョンの概念
COC には、異なる2つのリージョンの概念があります。
1. COC サービスリージョン(--region-id):COC API サービスが配置されているリージョン(cn-north-4、ap-southeast-3、eu-west-101)
2. 対象インスタンスのリージョン:L インスタンスが配置されているリージョン(世界中の任意の Huawei Cloud リージョンを指定できます)
これらのリージョンは異なる場合があります。たとえば、cn-north-4 の COC サービスから ap-southeast-1(Hong Kong)のインスタンス上でスクリプトを実行できます。
トラブルシューティング
- 認証情報の問題:
--akと--skパラメーターを指定するか、対話モードを使用してください - サポートされていないリージョン:サポート対象のリージョン ID を使用するか、対話モードで中国語のリージョン名を使用してください
- インスタンスの作成失敗:アカウント残高、インスタンスタイプの有効性、ネットワーク接続を確認してください
参考ドキュメント
scripts/caller.py- CLI のメインエントリーポイントscripts/deploy.py- Hermes デプロイモジュールscripts/models.py- ModelArts モデル設定scripts/channels.py- ロボットチャンネル設定scripts/lib.py- コアビジネスロジック(インスタンスの作成、モデル/チャンネルのインストール)scripts/utils.py- ユーティリティ関数(認証情報の設定、入力プロンプト)