huawei-cloud-voucher-assistant · git:20261015.7535921 · 2026-10-15 · sha256 d1fb4f22cc7cd3de
huawei-cloud-voucher-assistant git:20261015.7535921A
Immutable. This exact content never changes and is served at /api/v1/blob/d1fb4f22cc7cd3de.
--- name: huawei-cloud-voucher-assistant description: | Invoke this skill when a user is purchasing a Huawei Cloud (华为云) service and wants to know what coupons (代金券), discounts, or savings options are available. Reads the account's coupons via AK/SK and presents applicable voucher deductions; when the balance is insufficient, recommends lower-spec alternatives or voucher+cash combos. Triggers include: "购买云服务", "下单", "选购", "买一台", "续费", "有什么优惠", "优惠方案", "代金券", "优惠券", "折扣", "代金券余额", "抵扣", "省钱", "代金券适不适用", "能抵多少", "够不够抵", "代金券怎么用", "任务列表", "成长中心任务", "推荐任务", "任务推荐", "buy Huawei Cloud", "coupon", "discount", "voucher balance", "purchase ECS/OBS/RDS". --- > [!IMPORTANT] > 本 Skill 是华为云「代金券」的**购买优惠咨询助手**。用户在购买华为云服务、想了解有哪些优惠时,本 Skill 通过已授权的华为云账号权限(AK/SK)读取代金券余额与明细,给出可抵扣方案;余额不足时推荐低规格替代与「代金券+现金」组合。它**不直接下单购买**(下单由对应服务 Skill 负责),也不查询账单/用量明细(那是 `huawei-cloud-billing-scout` 的职责)。 # Overview 华为云代金券助手:用户在购买华为云服务、想了解优惠时,读取「代金券」余额与明细,给出可抵扣金额;余额不足时推荐低规格与组合付款方案。 ## Scenario Description 本 Skill 的定位是**购买时的优惠方案咨询**: - **优惠查询**:用户购买华为云服务时,查询有哪些代金券/折扣可抵扣 - **余额不足推荐**:余额不足以全额抵扣时,推荐低规格服务或「代金券+现金」组合 ### Use Cases - "我要买一台 ECS,有没有代金券能用?" - "有什么优惠方案?代金券能抵多少?" - "我的华为云代金券还剩多少?" - "这个代金券能在哪些云服务上用?" - "余额不够买这台 ECS 怎么办?" - "我要买一台 c7.large.2,代金券够不够抵?不够的话推荐什么方案?" ## Prerequisites - **Python 3.6+**(`python` 或 `python3` 在 `PATH` 中),纯标准库,零第三方依赖 - **网络访问**:`bss.myhuaweicloud.com`(BSS)+ `devdata.huaweicloud.com`(成长中心 fwdo 任务列表) - **华为云 AK/SK**:环境变量 `HW_ACCESS_KEY`/`HW_SECRET_KEY` 或 `HUAWEICLOUD_SDK_AK`/`HUAWEICLOUD_SDK_SK` - **HW_DOMAIN_ID**(可选):租户 ID(BSS 全局服务需 X-Domain-Id 头参与签名) - 任务列表(fwdo 匿名)零配置可用;代金券查询需 AK/SK,未配置时返回提示。分析类 action 始终可离线运行(见 [Data Source](#data-source)) - **`skill-quality-cli`** — ensured by `bash scripts/ensure_cli.sh` (idempotent, skips if present) - Upgrade: run `skill-quality-cli upgrade` manually (no auto-upgrade) - Disable telemetry report: set `SKILL_QUALITY_REPORT=0` > All `hcloud` commands in this skill are wrapped with `skill-quality-cli run` for telemetry. No manual action required. ## Data Source > **双数据源,自动选择**: > 1. **BSS 开放 API**(AK/SK 签名):已有代金券账户余额/明细。 > 2. **成长中心前端 API(fwdo 匿名)**:公开任务列表(零配置,无需 Cookie/CSRF/appcode)。 > 底层客户端:`scripts/data/bss_client.py`(BSS)、`scripts/data/hdcommunity_client.py`(fwdo)。 数据读取通过**可替换 Adapter** 实现,统一接口定义在 [scripts/data/](scripts/data/)。 - 代金券:`coupon_api.py` `get_adapter()` —— 有 AK/SK → BSS;否则 → None。 - 任务列表:`growth_api.py` `get_adapter()` —— fwdo 匿名,始终可用。 | Adapter | 职责 | 认证 | 状态 | |---------|------|------|------| | `coupon_api.py` `BssCouponAdapter` | 已有代金券账户余额/明细 | AK/SK + X-Domain-Id(SDK-HMAC-SHA256 签名) | ✅ 已接入 | | `growth_api.py` `HdgrowthWebAdapter` | 成长中心公开任务列表 | 无(fwdo 匿名) | ✅ 已接入 | **配置**(环境变量): | 环境变量 | 说明 | 必填 | |----------|------|:----:| | `HW_ACCESS_KEY` / `HW_SECRET_KEY` | 华为云 AK/SK(BSS 代金券查询) | 否 | | `HUAWEICLOUD_SDK_AK` / `HUAWEICLOUD_SDK_SK` | 同上(备选环境变量名) | 否 | | `HW_DOMAIN_ID` | 租户 ID(BSS 全局服务需 X-Domain-Id 头参与签名) | 否 | | `HDGROW_WEB_BASE` | 成长中心 web 域名,默认 `https://devdata.huaweicloud.com` | 否 | > BSS 代金券查询(`GET /v2/promotions/benefits/coupons`)用 SDK-HMAC-SHA256 签名 + X-Domain-Id 头,AK/SK 从环境变量读取。 > 代金券抵扣需 BSS 订单系统(订单创建时指定 coupon_id)。 > 代金券适用服务列表由本地知识库 [references/voucher-taxonomy.md](references/voucher-taxonomy.md) 提供。 > fwdo 匿名任务列表仅含公开字段(不含个人完成状态);积分余额需 fwdu 登录态,本 skill 不提供。 `scripts/analyzer.py`(分析层)与上表**解耦**,仅依赖结构化输入,可离线运行与单测。 ## Core Workflow and Core Commands 主入口 `scripts/voucher_assistant.py` 按 action 分发,action 命名遵循 `huawei_<service>_<action>`(snake_case)。 ### 查询类(R3,只读自动执行) ```bash python scripts/voucher_assistant.py list_vouchers python scripts/voucher_assistant.py list_tasks python scripts/voucher_assistant.py recommend_tasks python scripts/voucher_assistant.py list_voucher_applicable_services ``` ### 分析类(R3,只读自动执行,无需数据源即可运行本地逻辑) ```bash python scripts/voucher_assistant.py analyze_voucher_coverage --balance 100 --price 80 python scripts/voucher_assistant.py recommend_discount_plan --balance 50 --price 80 --alt "ecs:c7.large.2:40" ``` ### 管理类(R2,预览 + 确认,依赖数据源接入) ```bash python scripts/voucher_assistant.py apply_voucher --order-ref <ref> --amount <amt> --confirm ``` > 管理类 action 在**未接入数据源**或**未带 `--confirm`** 时,只输出预览方案,不执行任何真实变更。 ## Action Reference | Action | 分级 | 说明 | |--------|:----:|------| | `huawei_list_vouchers` | R3 | 代金券余额 + 明细(面额/有效期/状态) | | `huawei_list_tasks` | R3 | 成长中心公开任务列表(fwdo 匿名,零配置,含周期类型) | | `huawei_recommend_tasks` | R3 | 根据任务列表按积分收益推荐值得优先做的任务 | | `huawei_list_voucher_applicable_services` | R3 | 代金券适用云服务 + 抵扣规则 | | `huawei_analyze_voucher_coverage` | R3 | 判断余额是否够买目标服务(充足/部分/不足) | | `huawei_recommend_discount_plan` | R3 | 余额不足时推荐低规格 / 组合付款方案 | | `huawei_apply_voucher` | R2 | 购买时代金券抵用(预览 + 确认,需 BSS 订单系统) | ## Decision Flow ``` 购买华为云服务时 → 主动提醒 + 抵扣闭环 ┌─────────────────────────────────────────────────────┐ │ 读取代金券余额 (list_vouchers) │ │ ├─ 有可用代金券 → 计算覆盖 → 提醒抵扣 → apply_voucher │ │ │ ⚠️ 需 BSS/订单 │ │ └─ 余额不足 → ① 推荐低规格 ② 现金组合 │ │ (recommend_discount_plan) │ └─────────────────────────────────────────────────────┘ ``` ## Parameters | Parameter | Required | Description | |-----------|:--------:|-------------| | `action` | ✅ | 上述 action 名(不含 `huawei_` 前缀) | | `--balance` | 分析类 | 代金券余额(`analyze_voucher_coverage`/`recommend_discount_plan`,数据源未接入时手动传入) | | `--price` | 分析类 | 目标价格(同上两个分析类 action,必填) | | `--alt` | 分析类 | 低规格替代 `service:spec:price`,可多次(`recommend_discount_plan`) | | `--order-ref` | 抵扣类 | 订单/购买引用(`apply_voucher`) | | `--amount` | 抵扣类 | 抵扣金额 | | `--confirm` | 管理类 | 显式确认才执行抵扣,缺省仅预览 | | `--top-n` | 推荐类 | 推荐任务返回数量(`recommend_tasks`,默认 5) | ## Reference Documentation | Document | Description | |----------|-------------| | [references/voucher-taxonomy.md](references/voucher-taxonomy.md) | 代金券规则/适用服务/抵扣规则知识库(本地离线) | | [references/acceptance-criteria.md](references/acceptance-criteria.md) | 验收标准 | | [references/iam-policies.md](references/iam-policies.md) | IAM 权限说明 | | [references/verification-method.md](references/verification-method.md) | 验证方法 | ## Notes - 本 Skill 是**辅助决策器**,不直接下单;下单由对应服务 Skill 完成。 - 抵扣必须显式确认(`--confirm`),且金额需二次校验、不得超余额。 - 数据源:① BSS(AK/SK)查代金券余额/明细;② fwdo 匿名查成长中心公开任务列表(零配置)。未配置 AK/SK 时代金券查询返回配置提示,任务列表始终可用。代金券抵扣需 BSS 订单系统。 - 代金券适用服务列表由 `references/voucher-taxonomy.md` 本地知识库提供(BSS 不直接提供该字段)。 - fwdo 匿名任务列表仅含公开字段(不含个人完成状态/积分余额);任务周期类型:LIMIT(仅一次)/ DAILY / WEEKLY / MONTHLY。