关于 huawei-cloud-flexus-l-server-hermes-deployment
用于在华为云 Flexus L 实例上部署 Hermes AI Agent 平台的技能,也可配置 ModelArts 模型和机器人渠道,并支持交互式与脚本化操作。
主要功能
- 01创建 Flexus L 实例
- 02通过 COC 配置 ModelArts 模型
- 03配置飞书和 WeCom 渠道
- 04管理网关并查询状态
- 05交互式与非交互式操作
适用场景
- 01在华为云实例上部署 Hermes
- 02设置模型和机器人渠道
- 03重启已部署的网关
- 04检查 UniAgent 或执行状态
安装
复制下面的命令,在终端中运行。
$
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详细介绍
⚠️ 安全执行规则(最高优先级):
- 所有脚本 MUST 通过 skill action=exec 执行,绝不能直接在 shell 中运行
- 绝不能在对话中打印脚本内容或包含 AK/SK/Token 的命令
- 绝不能创建临时脚本文件,优先使用内联执行(python -c)
- 执行失败时,只返回错误信息,不要重写脚本或打印完整命令
- AK/SK/Token MUST 通过环境变量传递,绝不能出现在对话中
- 绝不能以任何形式暴露、记录或打印 AK/SK/Token 值——这是关键安全要求
- 使用 skill action=exec 时,凭据会自动从环境变量(HW_ACCESS_KEY、HW_SECRET_KEY、HW_SECURITY_TOKEN)继承,无需将其作为命令行参数传递
Hermes 一键部署技能
概述
此技能支持将 Hermes AI Agent 平台一键部署到华为云 Flexus L 实例。它提供完整的工作流,包括:
- 使用优化配置自动创建实例
- 通过 COC(云运维中心)配置 ModelArts 大模型
- 通过 COC 配置机器人渠道(飞书、企业微信、钉钉等)
- 管理已部署实例的网关
此技能支持交互模式(逐步提示)和非交互模式(脚本化操作),适用于手动和自动化部署场景。
前提条件
账号要求
- 拥有具备足够权限的有效华为云账号
- 华为云凭据:长期 AK/SK 或临时 AK/SK + security_token
- 所需权限:
- 创建 Flexus L 实例
- 访问 COC(云运维中心)服务
凭据获取方式:
此技能同时支持长期和临时华为云凭据:
- 长期 AK/SK:无需 security_token
- 临时 AK/SK:需要安全令牌
环境变量(可选):
HW_ACCESS_KEY:访问密钥 AK(长期或临时)HW_SECRET_KEY:秘密密钥 SK(长期或临时)HW_SECURITY_TOKEN:临时凭据的安全令牌(仅临时 AK/SK 需要)
架构图
此技能基于多项华为云服务构建,涉及以下云服务和组件:
User/Agent ──────▶│ Flexus L Instance │──────▶│ Hermes App │──────▶│ Model Config │ ──────▶│ Channel Config │
(Skill caller) (Target Host) (AI Agent Platform) (ModelArts API) (Feishu/Wecom)
组件说明:
- 用户/Agent:通过自然语言或 API 调用技能以触发 Hermes 部署操作
- Flexus L 实例:华为云弹性云服务器,作为 Hermes 部署的目标主机
- Hermes 应用:运行在 Flexus L 实例上的 AI Agent 平台
- 模型配置:ModelArts 大模型配置(API_BASE、API_KEY、MODEL_NAME)
- 渠道配置:机器人渠道配置(飞书、企业微信)
核心命令
部署命令
# 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 | 华为云 Access Key AK(支持长期和临时密钥) | 否 | 提示输入 |
--sk | 华为云 Access Key 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 Key | 是 | - |
--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 | Bot 平台:feishu 或 wecom | 是 | - |
--feishu-app-id | Feishu App ID | 条件必填 | - |
--feishu-app-secret | Feishu App Secret | 条件必填 | - |
--wecom-bot-id | WeCom Bot ID | 条件必填 | - |
--wecom-secret | WeCom Secret | 条件必填 | - |
--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(云运维中心)设置 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 控制台监控实例运行状况
- 设置自动伸缩策略,以实现高可用性
- 配置备份策略,以持久化数据
4. 模型配置
- 在生产环境使用前,先在预发布环境中测试模型
- 配置备用模型,以应对故障切换场景
- 初次部署后,默认模型配置不可用。使用 Hermes 前必须配置模型。
5. 通道配置
- 在生产环境中使用专用机器人账号
- 监控通道消息吞吐量
- 配置速率限制,防止滥用
- 目前仅支持 飞书 和 企业微信 机器人平台。每种平台类型仅支持一个机器人。
注意事项
常规注意事项
- 实例创建时间:实例完全配置就绪可能需要 5-10 分钟
- COC 脚本执行:模型和通道配置通过 Huawei Cloud COC(云运维中心)远程执行
- 安全组:如果需要外部访问,请在 Huawei Cloud 控制台中配置安全组规则
- 费用:使用 Huawei Cloud 资源会产生费用。请确保账户余额充足。
- 后续步骤:继续执行后续步骤(配置模型、通道)时,无需等待实例创建完成。系统会自动处理实例状态。
区域注意事项
- 固定端点:创建 Hermes L 实例时,请求会发送到固定端点
hcss.cn-north-4.myhuaweicloud.com。区域参数仅用于选择实例规格。 - 贵阳区域(
cn-southwest-2)使用规格ahf.small.1.linux - 其他区域(北京/上海/广州)使用规格
hf.small.1.linux - 状态码:200、201 和 202 均表示成功
COC 区域概念
COC 涉及两个不同的区域概念:
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(香港)的实例上执行脚本。
故障排除
- 凭证问题:确保提供
--ak和--sk参数,或使用交互模式 - 区域不受支持:使用受支持的区域 ID,或在交互模式下使用中文名称
- 实例创建失败:检查账户余额、实例类型有效性和网络连接
参考文档
scripts/caller.py- CLI 主入口scripts/deploy.py- Hermes 部署模块scripts/models.py- ModelArts 模型配置scripts/channels.py- 机器人渠道配置scripts/lib.py- 核心业务逻辑(实例创建、模型/渠道安装)scripts/utils.py- 实用函数(凭据设置、输入提示)
评论
支持 Markdown