DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在智能体开发中,同时管理多个 API 提供商是常见需求。当 DeepSeek 和 OpenRouter 的余额不足时,开发者需要在会话间频繁切换查看。dsh-account-balance 插件在会话头部提供常驻的余额芯片,解决了这一痛点。
该插件由 305037991x-pixel 维护,旨在为 DSH Web 客户端提供一种在对话头部同时监控 DeepSeek 与 OpenRouter 账户余额的方案。
核心功能¶
- 双源显示:一枚芯片同时显示两家账户余额,格式为
¥xx.xx · $xx.xx。 - 悬停明细:鼠标悬停可查看两家账户的详细构成:
- DeepSeek:显示总余额、充值、赠送。
- OpenRouter:显示可用余额(充值 − 已用)、充值、已用。
- 容错机制:任一来源出错,仅在该来源显示错误标记,另一家不受影响。
- 自动刷新:每 3 分钟自动刷新余额数据,并提供手动刷新按钮。
- 会话缓存:余额数据与定时器为模块级共享缓存,切换会话时不重复拉取。
- 安全隔离:密钥仅存在于宿主进程(
.credentials.yaml),浏览器端永不接触。
安装与启用¶
1、使用官方命令安装插件:
dsh plugin --profile web add github:305037991x-pixel/dsh-account-balance
2、重启 dsh web 并在浏览器中硬刷新页面(Ctrl+Shift+R)。
3、本机开发时,可使用包内自带的 install-into-dsh.ps1 以 link: 方式注册本地源码目录,修改代码后重启即生效。
配置¶
在 $DSH_HOME/.credentials.yaml 中配置 API 密钥(或通过环境变量同名配置):
DEEPSEEK_API_KEY: sk-xxx
OPENROUTER1_API_KEY: sk-or-v1-xxx
工作原理¶
插件分为宿主侧和客户端侧,各司其职:
- Host (
lib/index.js): - 注册两个 GET 接口:
/dsh-account-balance(DeepSeek)与/dsh-account-balance/openrouter。 -
从凭证服务解析密钥,调用上游 API 获取余额,原样透传响应。
-
Client (
lib/client.js): - 在
conversation.session.header.utilities槽位注册芯片组件。 - 管理两家账户的模块级共享数据缓存和 3 分钟定时器。
余额数据来源分别为:
- DeepSeek API:Get User Balance
- OpenRouter API:Get Credits(total_credits − total_usage = 可用)
兼容性与注意¶
- 核心解耦:插件声明所有
@deepseek-ai/dsh-*核心包为可选peerDependencies,不打包核心包副本,运行时使用宿主正在运行的那份核心。升级 DSH 核心无需重装本插件。 - 版本要求:插件依赖的核版本范围需满足
>=0.1.0-rc.6 <0.2.0。 - 安全提示:插件以 DSH 进程权限运行,密钥不会泄露给浏览器。请勿将核心包写入
dependencies并钉死版本,以免遮蔽宿主的核心包导致加载失败。
总结¶
dsh-account-balance 是一个轻量级插件,适合需要在 DeepSeek Harness 中同时监控 DeepSeek 和 OpenRouter 余额的开发者。它通过常驻芯片和自动刷新机制,减少了上下文切换带来的操作成本。