前言¶
在 DeepSeek Harness(DSH)里用桌宠插件 dsh-pet 时,若当前智能体走的是 OpenCode Go(dsh-opencode-go),余额气泡往往只会提示「当前服务商暂不支持余额查询」。这不是你在设置里漏开了开关,而是 dsh-pet 内置余额表与 OpenCode Go 插件在 provider id、凭据 ref 上各写死了一套旧口径,查表对不上就会落空。
dsh-pet-opencode-go-balance 是社区维护的 DSH 客户端类插件:不改 dsh-pet 源码,通过官方第三方余额注册口,用与 OpenCode Go 设置卡片一致的数据源,在气泡里展示 5h / 周 / 月三窗口用量。
这是什么¶
插件全名 dsh-pet-opencode-go-balance(npm 包名同),当前版本 0.1.0,MIT 许可。目录页由维护者 YumoFinn 收录;源码与安装说明见 GitHub 仓库(README 中给出的仓库地址为 QLY-3315/dsh-pet-opencode-go-balance)。
它做一件事:以 provider id dsh-opencode-go 注册到 dsh-pet 的第三方余额表,让桌宠「查看余额」与 OpenCode Go 侧显示同一套数字。
它解决什么问题¶
README 归纳了两处依赖方源码里的错位:
- provider id 对不上:dsh-pet 按
agentDefaultModel.currentSelection().provider查内置表,表里只有opencode-go;而 dsh-opencode-go 注册的 id 是dsh-opencode-go,查表必然失败。 - 凭据 ref 对不上:dsh-pet 内置的
opencode-go路由写死OPENCODE_GO_API_KEY;多账号形态的 key 在DSH_OPENCODE_GO_ACCOUNT_*下。
本插件通过 ctx.provide('petApi7340', { balance: { register } }) 注册 provider:id 与宿主报告一致;取数优先走 dsh-opencode-go 的 opencodeGoUsage 服务(账号、baseURL、代理、超时、缓存去重由该服务负责),切换账号后气泡自动跟随。仅在没有该服务时,才退化为直连 GET https://opencode.ai/zen/go/v1/usage(20s 超时,2 次线性退避重试)。
气泡里显示什么¶
- 5h / 周 / 月 三个窗口的用量百分比;满额度按 Go 套餐常量 12 / 30 / 60 USD 计算(与 dsh-pet 内置口径一致)。
- 每个窗口的重置倒计时。
- 超额时如实显示 >100%,不截断到 100。
- 任意异常一律抛错,由 dsh-pet 落成
fetch-error气泡;不伪造 0 余额。
依赖与兼容性¶
| 依赖 | 版本 | 用途 |
|---|---|---|
| dsh-pet | ≥ 0.3.8 | 提供 petApi7340.balance.register(必需) |
| dsh-opencode-go | ≥ 0.1.24 | 提供 opencodeGoUsage(强烈建议;缺失时走直连兜底) |
Node 引擎要求:≥ 22.12.0(来自 package.json)。
dsh.compatibility.dshReleases 中声明实测通过的 DSH 版本:
| DSH | 状态 |
|---|---|
| 0.2.1-rc.3 | compatible |
安装与启用¶
本插件目前只发布在 GitHub,尚未发布到 npm,请用 README 中的仓库地址安装。插件在 DSH 进程权限下运行,安装前建议自行查看仓库源码与 MIT 许可证。
在 DSH 设置 → 插件 → 安装 里粘贴:
https://github.com/QLY-3315/dsh-pet-opencode-go-balance
或用 CLI(示例为 desktop profile):
dsh plugin --profile desktop add "https://github.com/QLY-3315/dsh-pet-opencode-go-balance"
# 或者从本地目录
dsh plugin --profile desktop add "E:\path\to\dsh-pet-opencode-go-balance"
装完重启 DSH,在 dsh-pet 设置里确认该宠物的「余额功能」已开启。
卸载:
dsh plugin --profile desktop remove dsh-pet-opencode-go-balance
典型用法¶
- 确保已安装并启用 dsh-pet、dsh-opencode-go(建议 ≥ 0.1.24,以便走
opencodeGoUsage)。 - 安装本插件并重启 DSH。
- 在桌宠上右键 「查看余额」,或使用
/balance,即可看到与 OpenCode Go 设置卡片一致的三窗口用量。
通常不需要额外配置:默认跟随 dsh-opencode-go 当前选中的账号。
配置(直连兜底时)¶
只有在没有 opencodeGoUsage 服务、走直连兜底时,才可能用到下面环境变量:
| 环境变量 | 说明 |
|---|---|
DSH_PET_OPENCODE_ACCOUNT_REF |
账号凭据 ref;换账号时指定。缺省依次尝试 OPENCODE_GO_API_KEY |
适用场景与注意¶
- 适合:已在 DSH 使用 dsh-pet + OpenCode Go,希望在桌宠气泡里看 5h/周/月用量,而不是内置表里的「不支持」提示。
- 注意:气泡数据与 OpenCode Go 设置卡片同源的前提是 dsh-opencode-go 可用;直连兜底时凭据与环境需自行对齐。社区插件目录(如 SkillHub)与 DeepSeek / 幻方无官方从属关系,安装来源以你信任的仓库为准。
开发与链接¶
仓库内测试:
node --test test/
(README 说明为纯函数 + 宿主装配,共 12 项;package.json 中脚本为 node --test test/*.test.mjs。)
主要代码:lib/index.js(注册与取数)、lib/windows.js(用量转 dsh-pet windows 形态)。
- 社区目录页:https://www.skillhub.cn/plugins/YumoFinn/dsh-pet-opencode-go-balance
- GitHub(README / package.json):https://github.com/QLY-3315/dsh-pet-opencode-go-balance