dsh-cpamc-pill:侧边栏 CPA 反代健康与今日 Token 用量胶囊

前言

在 DeepSeek Harness(DSH)Web UI 里开发或日常使用智能体时,很多人会同时挂 CPA 反代与 CPA-Manager-Plus 做账号池和用量统计。Token 用量往往在管理面板里看,连接状态又要另开页面,和侧边栏已有的 dsh-token-pill 是割裂的。dsh-cpamc-pill 在侧边栏底部补一块只读「小胶囊」:一颗状态点和一行今日 token 数字,数据从 CPA-Manager-Plus 拉取,管理端密钥留在 Host 侧,浏览器只访问插件注册的同源路由。

这是什么

dsh-cpamc-pill(npm 包名 @local/dsh-cpamc-pill,当前版本 0.1.0)由 ChrisZqaq 维护,归类为客户端插件。它挂在 sidebar.footer.action,order: 21,紧挨 dsh-token-pill(order: 20)右侧,刻意做得很小,例如:

● CPA · 18.72M

悬停可看今日汇总、调用健康与滚动 30 分钟速率;点 Details 可看模型拆分与上游账号池。

核心功能

读什么数据

插件只读 CPA-Manager-Plus 两个管理端接口(admin key 在 Host 解析,不进入浏览器):

接口 用途
GET /v0/management/dashboard/summary?today_start_ms=<ms> 今日 token、调用、成功率、延迟、滚动 rpm/tpm、top models
GET /v0/management/auth-files 每个上游账号:提供商、状态、禁用与冷却

浏览器侧仅调用插件注册的同源路由:

GET /dsh-cpamc-pill/status

Token 统计方式

插件采用 CPA-Manager-Plus 返回的 total_tokens(input_tokens + output_tokens),并约定 input_tokens 已包含 cache_read_tokens。若在展示时再叠加重算 cache,实测会把单日用量从约 9.09M 误扩到约 17.61M;因此单独推导 fresh = input - cached,便于保留 cache 命中率可读性。

不展示费用

胶囊内故意不出现金额。反代后账号多为订阅、无按次账单,且 CPA-Manager-Plus 在价格同步前可能报告 total_cost: 0;显示 ¥0.00 反而误导,不如不显示。

健康状态

状态 圆点 含义
ok 绿 至少一个可用账号,今日无失败
degraded 琥珀 全部账号冷却或禁用,或今日有失败调用
offline 红 127.0.0.1:18317 上 CPA-Manager-Plus 无响应
unconfigured 红 无法解析 admin key

无法连上服务时仍渲染胶囊(红点),不会空一块侧边栏。

依赖的 DSH 客户端注入

与 dsh-token-pill 类似,在 dsh.client.inject 中声明:

  • @deepseek-ai/dsh-api-remotes
  • @deepseek-ai/dsh-client-locale
  • @deepseek-ai/dsh-client-ui-sidebar

安装与启用

官方 README 给出的方式是把本地包链入 profile,而不是 dsh plugin add github:... 一类命令。先把插件源码放到本机绝对路径,再执行:

# 1. Link the package into your profile
cd ~/.dsh/profiles/<name>
npm pkg set "dependencies.@local/dsh-cpamc-pill=link:/absolute/path/to/dsh-cpamc-pill"

# 2. Add it to the bundle list
npm pkg set 'dsh.profile.bundles[]=@local/dsh-cpamc-pill'

# 3. Link the module the way the existing @local packages are linked
ln -sfn /absolute/path/to/dsh-cpamc-pill \
  node_modules/@local/dsh-cpamc-pill

说明:桌面 profile 会用自带安装器处理 link: 依赖;若手写改 package.json,第 3 步才必要,因为普通 npm install 对 link: 会报 EUNSUPPORTEDPROTOCOL。

完成后重启 Harness,或在 Plugin Manager 里触发 profile 重编排,通常可挂载插件而无需重启。

配置 admin key

解析顺序为「先命中先用」:

  1. 环境变量 CPAMP_ADMIN_KEY
  2. 文件 ~/.dsh/cpamc-pill.json:{ "adminKey": "cpamp_..." }
  3. ~/Applications/cpa-stack/credentials.env 内的 CPAMP_ADMIN_KEY=

第 3 条针对从 Dock 启动、进程不带 shell 环境变量的场景;仅从 process.env 读取会漏掉。缺 key 时进入 unconfigured,不发起网络请求。响应里会有 keySource(env / file / stack),不包含密钥本身。

典型用法与自检

  1. 确保 CPA-Manager-Plus 在 Host 可访问(README 健康检查默认 127.0.0.1:18317)。
  2. 按上一节配置 CPAMP_ADMIN_KEY 或等价文件。
  3. 打开 DSH Web UI,在侧边栏底部 dsh-token-pill 右侧查看胶囊;悬停、点 Details 核对用量与账号池。

离线验证(无需浏览器、Host 或外网):

node scripts/verify.mjs

或在包目录执行 npm run verify。套件会 mock ModuleLoader、React 与 Cordis,覆盖 slot 契约、翻译键、token 折叠、密钥优先级、四种健康状态等约 80 项断言。

适用场景与注意

适合:已在本地或同机部署 CPA-Manager-Plus,希望在 DSH 侧边栏一眼看到反代健康与今日 token,又不想把 admin key 暴露给前端的用户。

注意:

  • 插件以当前 DSH 进程权限运行;安装前建议阅读 仓库源码 与 MIT 许可证。
  • 社区目录 SkillHub 插件页 为独立收录,与 DeepSeek / 幻方无官方从属关系;DSH 生态遵循「一切皆插件」,本包是其中一类客户端扩展。

结尾

dsh-cpamc-pill 把 CPA-Manager-Plus 的只读汇总收成侧边栏一颗小胶囊:同源 GET /dsh-cpamc-pill/status、明确的 token 计账规则、四种健康状态,并与 dsh-token-pill 并排展示。进一步了解可访问目录页 skillhub.cn/plugins/ChrisZqaq/dsh-cpamc-pill 与 GitHub ChrisZqaq/dsh-cpamc-pill。

羽毛球分组比赛记分
小程序二维码

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

小夜