deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
给 DeepSeek Harness(DSH)网页版装一个余额小卡片:左侧边栏底部常驻显示你的 DeepSeek 账户余额,以及当前会话花了多少钱。不用翻网页、不用开账单,一眼看住钱包。
| 实际页面截图 1 | 实际页面截图 2 |
|---|---|
![]() |
![]() |
卡片能做什么:
余额:¥xx.xx元 · 会话:¥x.xxx · 刷新按钮 · 展开箭头;在 DSH 网页版里打开插件市场(dsh-market),搜索 dsh-deepseek-billing,点安装。装完重启 dsh web 即可。
dsh plugin --profile web add https://github.com/Jolly-J/dsh-deepseek-billing.git
装完重启 dsh web(lib/ 产物已随仓库提交,无需本地构建)。
把本仓库地址发给你的 DSH 智能体,对它说一句:
帮我把这个插件装到我的 DSH 里:<仓库地址>
智能体只需执行上面的官方 dsh plugin add 命令并提示你重启 dsh web,不需要修改 DSH 源码。
dsh plugin --profile web update dsh-deepseek-billing
更新后重启 dsh web。
卡片上的「会话费用」是逐条请求计价、滚动求和,而不是"把所有 token 加成一个总数,再乘以一个当前费率"。它也不保存按模型或时段的明细分桶,只给你一个会话总额——但总额的每一分钱,都来自对每条回复的独立计价。
每一条成功的助手回复,按它自己的三个属性计一次价:
deepseek-flash 与仍在路由的旧名 deepseek-v4-flash、deepseek-v4-flash-vision-exp)就用 Flash 价表;其它模型(含无法识别的)按 Pro 价表计。官方自 2026-09-14 12:00(北京时间)起把 deepseek-v4-pro 的请求全部路由到 V4.1-Flash,插件从同一时刻起也改按 Flash 价表计它;单条回复的计价公式:
费用 = (未命中输入 × 未命中费率 + 缓存命中 × 命中费率 + 输出 × 输出费率) ÷ 1,000,000
内置价表(元 / 百万 token,生效时间均为北京时间):
| 模型 | 生效时间 | 时段 | 缓存命中 | 未命中输入 | 输出 |
|---|---|---|---|---|---|
| DeepSeek-V4.1-Flash | 2026-09-10 12:00 起 | 空闲(含周末) | 0.02 | 1.0 | 4.0 |
| DeepSeek-V4.1-Flash | 2026-09-10 12:00 起 | 高峰(工作日) | 0.04 | 2.0 | 8.0 |
| DeepSeek-V4-Flash | 2026-08-17 00:00 起 | 空闲 | 0.05 | 1.5 | 4.5 |
| DeepSeek-V4-Flash | 2026-08-17 00:00 起 | 高峰(每天) | 0.10 | 3.0 | 9.0 |
| DeepSeek-V4-Flash | 2026-08-17 之前 | 不分峰谷 | 0.02 | 1.0 | 2.0 |
| DeepSeek-V4-Pro | 2026-08-17 之前 | 不分峰谷 | 0.025 | 3.0 | 6.0 |
| DeepSeek-V4-Pro | 2026-08-17 00:00 起 | 空闲 | 0.15 | 4.5 | 13.5 |
| DeepSeek-V4-Pro | 2026-08-17 00:00 起 | 高峰(工作日) | 0.30 | 9.0 | 27.0 |
2026-09-14 12:00(北京时间)起,
deepseek-v4-pro的请求由官方路由到 V4.1-Flash,按上表 Flash 价计费。
举个例子:一个会话里有三条回复,分别是 Flash·闲时、Pro·高峰、Pro·闲时——卡片显示的金额就是这三条各自按自己的价表算出后相加的结果。它不会把三次的 token 合并后套用某一个费率,也不会用"当前选中的模型"去重算历史回复;每条回复的账,只跟它自己有关。
界面汇总口径:
以下内容不计入会话费用,详见下一节:失败重试、后台模型调用(会话标题生成、联网搜索查询等)、reasoning token(目前只统计、不计价)、子代理会话的用量。
插件不存、不偷、不外传你的 API Key:
DEEPSEEK_API_KEY),临时拿来调一次官方余额接口,用完即弃;Authorization);不进命令行参数、不进任何子进程的环境变量、不落盘、不进日志、不出现在网页接口返回里;DEEPSEEK_API_KEY。已知的两个通用风险(不是本插件独有):同机器的同权限进程理论上能读到宿主进程的内存;局域网里能访问你 DSH 网页端口的人可以看到你的余额数字(看不到密钥)。介意的话请在部署层给 /billing/status 加访问限制。
卡片上的"会话费用"是估算值,不是账单:官方刊例价 × 会话内成功请求的用量。以下三样是会话日志看不见、但余额会扣的:
作者实测对账案例(7 分钟窗口):余额 -¥1.36,会话估算 +¥1.035,差 ¥0.325——正是上述不可见计费。余额是唯一真值,卡片费用仅作归因参考。
src/pricing.ts 的价表里追加一段并重新发版即可,历史会话仍按当时的费率逐条计费;用户安装直接使用仓库内提交的 lib/ 产物。src/ 是唯一源码真源,根目录不保留源码或 bundle 副本。官方 DSH 的客户端 bundle 运行在 Vite 模块图之外,因此发布产物同时包含 lib/client.js 和 lib/client.js.map。
构建配置复用 DSH 官方的客户端插件预设,所以开发 checkout 必须位于 DSH monorepo 的扩展目录:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
git checkout ddefc45fbc7f8e46dd73185e68295696d1297887 # tag dsh-v0.1.6-alpha.2,CI 钉住的同一个 ref
git clone https://github.com/Jolly-J/dsh-deepseek-billing.git \
packages/extensions/dsh-deepseek-billing
pnpm install --no-frozen-lockfile
pnpm run build:lib:host
pnpm --filter dsh-deepseek-billing verify
harness 必须按 commit 钉住,别跟默认分支:插件的 devDependencies 用 workspace:^ 指向官方包,上游一旦改名(例如 2026-09-10 把 @deepseek-ai/dsh-client-runtime 拆成 renderer/session/store),pnpm install 就会直接报 ERR_PNPM_WORKSPACE_PKG_NOT_FOUND。升级这个 ref 时,要同步改 src/client/ 里的类型导入:客户端上下文现在从 @deepseek-ai/cordis 取 Context,ctx.slots 由 @deepseek-ai/dsh-client-ui-renderer 声明,useSessions 由 @deepseek-ai/dsh-client-ui-session 声明,package.json 的 dsh.client.inject 也要跟着对齐。
当前对齐的 Session API(0.1.6-alpha.2):Session 列表快照 SessionListState 里已经没有 current 字段,卡片按主视图持有的那一行取当前会话(retainedBy.mainView > 0),规则集中在 src/client/session.ts(同时对 0.1.6 之前仍带 current 的快照保留兜底),改动它请同步 tests/session.test.ts。
build:lib:host 先生成 DSH Typert remote contracts;新 checkout 缺少这些产物时,客户端类型聚合无法解析 /remote 入口。随后 verify 会依次执行插件类型构建、官方 client bundle、价格与用量单元测试,以及发布目录和页脚布局约定检查。GitHub Actions 使用相同顺序。
注意:上游
tsconfig.host.json的测试 glob(packages/*/*/tests/**/*.ts)会把第三方插件的tests/拉进 host 聚合编译,导致 TS6307。手动 checkout 构建时,请把packages/extensions/dsh-deepseek-billing/tests加入该文件exclude数组;本仓库 CI 已自动注入这一步。
目录职责:
src/:源码和可直接测试的计费模块;lib/:由 npm run build 生成并提交的安装产物;tests/:价格、用量和发布产物回归测试;docs/images/:README 与插件市场截图;cordis.patch.yml:让 dsh plugin add 自动挂载本插件的组合包声明。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。