mcpField
H
huawei-cloud-flexus-l-server-hermes-deployment

huawei-cloud-flexus-l-server-hermes-deployment

github.com/huaweicloudクラウド・DevOps59194 回インストール2 日前に更新
リポジトリ

huawei-cloud-flexus-l-server-hermes-deployment について

Huawei Cloud Flexus L インスタンスに Hermes AI Agent プラットフォームをデプロイするスキルです。ModelArts のモデルやボットチャネルも設定でき、対話形式とスクリプト形式で操作できます。

主な機能

  1. 01Flexus L インスタンスの作成
  2. 02COC 経由の ModelArts モデル設定
  3. 03Feishu と WeCom のチャネル設定
  4. 04ゲートウェイ管理と状態照会
  5. 05対話形式と非対話形式の操作

活用シーン

  1. 01Huawei Cloud インスタンスへの Hermes デプロイ
  2. 02モデルとボットチャネルの設定
  3. 03デプロイ済みゲートウェイの再起動
  4. 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.md
cli-installation-guide.md
iam-policies.md
verification-method.md
scripts/
caller.py
channels.py
deploy.py
gateway.py
lib.py
models.py
pyproject.toml
smoke_test.py
uniagent.py
utils.py

詳細

⚠️ セキュリティ実行ルール(最優先):

  1. すべてのスクリプトは、必ず skill action=exec を介して実行してください。シェルから直接実行してはいけません
  2. AK/SK/Token を含むスクリプトの内容やコマンドを、会話内に絶対に出力しないでください
  3. 一時スクリプトファイルは絶対に作成せず、インライン実行(python -c)を優先してください
  4. 実行に失敗した場合は、エラー情報のみを返してください。スクリプトを書き換えたり、コマンド全体を出力したりしてはいけません
  5. AK/SK/Token は環境変数経由で渡し、会話内に絶対に表示しないでください
  6. いかなる形であっても、AK/SK/Token の値を絶対に公開、記録、出力しないでください。これは重要なセキュリティ要件です
  7. 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 の長期認証情報と一時認証情報の両方に対応しています。

  1. 長期 AK/SK:security_token は不要です
  2. 一時 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 のステータス)を自動的に確認します。前提条件が満たされていれば、すぐに次の手順に進めます!

パラメーターリファレンス

グローバルパラメーター
パラメーター説明必須デフォルト値
--akHuawei Cloud アクセスキー AK(長期および一時キーの両方に対応)いいえ入力を促されます
--skHuawei Cloud アクセスキー SK(長期および一時キーの両方に対応)いいえ入力を促されます
--security-token一時認証情報用のセキュリティトークン(任意。一時的な AK/SK の場合のみ必要)いいえ入力を促されます
--non-interactive非対話モードで実行しますいいえfalse
デプロイコマンドのパラメーター
パラメーター説明必須デフォルト値
--nameインスタンス名いいえ自動生成
--region対象リージョン(--cli-region も指定できます)いいえcn-north-4
MaaS コマンドのパラメーター
パラメーター説明必須デフォルト値
--resource-idL インスタンスのリソース IDはい-
--region-idCOC サービスのリージョン(--cli-region も指定できます)いいえcn-north-4
--api-keyModelArts API キーはい-
--model-nameモデル名はい-
--api-base-urlAPI ベース URLいいえhttps://api.modelarts-maas.com/v2
--timeout実行タイムアウト(秒)いいえ600
--execute-user実行ユーザーいいえroot
チャネルコマンドのパラメーター
パラメーター説明必須デフォルト値
--resource-idL インスタンスのリソース IDはい-
--region-idCOC サービスのリージョン(--cli-region も指定できます)いいえcn-north-4
--bot-platformボットプラットフォーム:feishu または wecomはい-
--feishu-app-idFeishu アプリ ID条件付き-
--feishu-app-secretFeishu アプリシークレット条件付き-
--wecom-bot-idWeCom ボット ID条件付き-
--wecom-secretWeCom シークレット条件付き-
--timeout実行タイムアウト(秒)いいえ600
--execute-user実行ユーザーいいえroot
ゲートウェイコマンドのパラメーター
パラメーター説明必須デフォルト値
--resource-idL インスタンスのリソース IDはい-
--region-idCOC サービスのリージョン(--cli-region も指定できます)いいえcn-north-4
--timeout実行タイムアウト(秒)いいえ120
--execute-user実行ユーザーいいえroot
UniAgent コマンドのパラメーター
パラメーター説明必須デフォルト値
--resource-idL インスタンスのリソース IDはい-

ワークフロー

このスキルでは、次の手順でワークフローを実行します。

  1. Hermes をデプロイ:Hermes AI Agent プラットフォームを備えた Flexus L インスタンスを作成して設定します
  2. モデルを設定:COC(Cloud Operations Center)を介して ModelArts の大規模言語モデルを設定します
  3. チャネルを設定:COC を介してロボットチャネル(Feishu、WeCom)を設定します
  4. ゲートウェイを管理:必要に応じてゲートウェイサービスを再起動します
対話モード(メニュー)

メインのエントリーポイントを実行して、対話型メニューを開きます。

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つだけです。

注意事項

一般的な注意事項
  1. インスタンスの作成時間:インスタンスが完全にプロビジョニングされるまでに5〜10分かかることがあります
  2. COC スクリプトの実行:モデルとチャネルの設定は、Huawei Cloud COC(Cloud Operations Center)を通じてリモートで実行されます
  3. セキュリティグループ:外部アクセスが必要な場合は、Huawei Cloud Console でセキュリティグループのルールを設定します
  4. 費用:Huawei Cloud のリソースを使用すると費用が発生します。アカウントに十分な残高があることを確認してください。
  5. 後続の手順:後続の手順(モデルやチャネルの設定)に進む際、インスタンスの作成完了を待つ必要はありません。インスタンスのステータスはシステムが自動的に処理します。
リージョンに関する注意事項
  • 固定エンドポイント: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 - ユーティリティ関数(認証情報の設定、入力プロンプト)

コメント