DeepSeek Harness 插件:在侧边栏查看阿里云代金券余额

前言

在使用 DeepSeek Harness(DSH)进行智能体开发或日常调用时,除了查看算力消耗,有时也需要了解阿里云账号下的代金券余额。手动去阿里云控制台查询不够直观,也不利于在开发时快速核对预算。

本插件在 DSH 侧边栏底部与 cost-meter 的余额行并排显示「阿里云代金券剩余额度」,支持点击行打开配置面板,查看余额、面值、张数与到期日。

是什么

  • 名称:dsh-alicoupon
  • 维护者:yangguozhongmax-max
  • 定位:DSH 侧边栏插件,用于只读查询阿里云 BSS DescribeCoupon 接口,获取代金券剩余额度。
  • 核心价值:在 DSH 界面内直接查看阿里云代金券信息,无需切换标签页或登录阿里云控制台。

核心功能

  1. 只读接口查询:使用阿里云 BSS 的 DescribeCoupon 接口(business.aliyuncs.com,2023-09-30,ACS3-HMAC-SHA256 签名),只读查询当前账号下的可用代金券。
  2. 凭据安全:AccessKey 只保存在 DSH 凭据库(~/.dsh/.credentials.yaml),绝不回传给浏览器;接口响应仅包含余额、面值、张数、到期日。
  3. 双重刷新机制:
    - 宿主(Node 侧):每 refreshMinutes(默认 1 分钟)重查一次阿里云。
    - 浏览器(UI 侧):每 60 秒读取宿主快照,页面重新可见或窗口聚焦时各读一次。
  4. 配置面板:点击侧边栏那一行打开配置面板,可修改标签、刷新间隔、立即刷新、直接填入/清除阿里云 AccessKey,并查看凭据各项状态。
  5. 体检工具:提供 doctor.mjs 脚本,检查插件是否挂载、凭据配置、路由可用性等。

安装与启用

插件需要 DSH 0.2.x(桌面 App 或 dsh web)以及 Node.js ≥ 20.10。AccessKey 需要一个能看到对应代金券的阿里云账号,且权限只需 bss:DescribeCoupon。

五步装好(约 5 分钟)

  1. 获取代码(二选一):
   git clone https://github.com/yangguozhongmax-max/dsh-alicoupon.git
   # 或
   npm install github:yangguozhongmax-max/dsh-alicoupon
  1. 挂进 DSH profile(幂等):
   cd dsh-alicoupon && node scripts/link-into-profile.mjs desktop
  1. 创建只读 AccessKey:
    - 阿里云控制台 → 访问控制 RAM → 用户 → 创建用户。
    - 访问方式只勾「使用永久 AccessKey 访问」。
    - 授权任选其一:
    • AliyunBSSReadOnlyAccess(系统策略);
    • 或最小化策略:
       {
         "Version": "1",
         "Statement": [{ "Effect": "Allow", "Action": ["bss:DescribeCoupon"], "Resource": "*" }]
       }
  • 记下 AccessKey ID / Secret(只显示一次)。
  1. 填入凭据(三选一):
    - 在侧边栏点那一行,在面板里填。
    - 手工改 ~/.dsh/.credentials.yaml 的 refs:。
    - 设环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 与 ALIBABA_CLOUD_ACCESS_KEY_SECRET。

  2. 重启 App:
    宿主模块只在启动时 import,重启后侧边栏会出现那一行。

使用脚本挂载(推荐)

node scripts/link-into-profile.mjs                    # 默认 desktop
node scripts/link-into-profile.mjs web                 # 指定 profile
node scripts/link-into-profile.mjs desktop --copy      # 无权限时用复制
node scripts/link-into-profile.mjs desktop --dry       # 预览会做什么
node scripts/link-into-profile.mjs desktop --unlink    # 撤销

Web profile(dsh web)用 CLI 安装

dsh plugin --profile web add github:yangguozhongmax-max/dsh-alicoupon
dsh plugin --profile web add /path/to/dsh-alicoupon

桌面 App 安装(三种方式)

  1. App 内安装:设置 → 插件里安装本包。
  2. 用脚本挂载:node scripts/link-into-profile.mjs desktop。
  3. 纯手工:放包 + 改 dsh.profile.bundles。

安装后需重启 App。

典型用法

  1. 安装完成后重启 DSH,侧边栏底部会出现一行「阿里云代金券」。
  2. 点击该行打开配置面板:
    - 修改标签(默认「阿里云代金券」)。
    - 调整 refreshMinutes(默认 1 分钟)。
    - 点击「立即刷新」。
    - 直接填入/清除 AccessKey。
    - 查看凭据状态(来源、是否可写等)。
  3. 侧边栏会显示当前代金券的剩余额度、面值、张数与到期日。
  4. 如遇问题,运行体检:
   node scripts/doctor.mjs
   node scripts/doctor.mjs --profile web
   node scripts/doctor.mjs --port 50989

配置项

配置可通过三种方式修改,优先级从高到低:

  1. 配置面板(立即生效,无需重启)。
  2. 本 profile 的 cordis.patch.yml(覆盖同一 id 的行配置)。
  3. 插件默认值。

示例 cordis.patch.yml:

- id: alicoupon
  label: 千问学生券
  refreshMinutes: 1
  timeoutMs: 15000
  credentialRefs:
    accessKeyId: ALIBABA_CLOUD_ACCESS_KEY_ID
    accessKeySecret: ALIBABA_CLOUD_ACCESS_KEY_SECRET
    securityToken: ALIBABA_CLOUD_SECURITY_TOKEN

配置面板写入的文件:~/.dsh/storages/dsh-alicoupon/config.json,仅包含 label 与 refreshMinutes。

排错

运行体检

node scripts/doctor.mjs
node scripts/doctor.mjs --profile web
node scripts/doctor.mjs --port 50989

体检会检查插件挂载、文件完整性、凭据 ref 配置、路由可用性等。

探针测试

node scripts/probe.mjs <AccessKeyId> <AccessKeySecret> [SecurityToken] [--raw] [--label 千问学生券]
# 或读取环境变量:node scripts/probe.mjs

正常输出示例:

{
  "label": "阿里云代金券 · 2027-10-20 到期",
  "unit": "CNY",
  "remaining": 286.18,
  "maxBudget": 300,
  "count": 1,
  "expiresAt": "2027-10-20"
}

常见现象与原因

现象 含义 处理方式
行显示「· 待配置」 凭据未读到 AK 检查 refs: 键名、环境变量、AK 是否被删除
行显示「· 查询失败」 AK 错、被删或未授权 悬停查看阿里云返回的具体错误(如 InvalidAccessKeyId、Forbidden)
数字不更新 未到达刷新间隔或宿主定时器未运行 点行查看「更新于」;调小 refreshMinutes
路由 404 宿主半边未加载 检查包名是否在 dsh.profile.bundles、查看日志
侧边栏一行都不出现,App 无报错 插件未挂载或客户端注册失败 查看 ~/.dsh/storages/dsh-alicoupon/client.log

适用场景与注意

  • 适合:需要频繁查看阿里云代金券余额的开发者、智能体开发者、使用 DSH 进行批量调用的用户。
  • 注意:
  • 插件以当前 DSH 进程权限运行,安装前建议检查源码与许可证。
  • 依赖 Node.js ≥ 20.10。
  • 凭据只保存在本地,插件不连接除 business.aliyuncs.com 以外的服务器。
  • 宿主模块只在启动时 import,安装后需重启 App。

结尾

本插件在 DSH 侧边栏提供只读的阿里云代金券余额查询能力,方便在开发与调用过程中快速核对预算。文档与代码仓库如下:

  • GitHub:https://github.com/yangguozhongmax-max/dsh-alicoupon
  • SkillHub 目录:https://www.skillhub.cn/plugins/yangguozhongmax-max/dsh-alicoupon
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye