dsh-workspace-fee:按工作区监控 DSH Token 消耗与费用估算

前言

在 DeepSeek Harness(DSH)里长时间跑会话、多工作区并行时,token 用量会分散在本地会话日志里,很难一眼看出「今天花了多少」「哪个目录最费」。官方账单与本地调试用量也不是同一套视图。下面介绍的 dsh-workspace-fee(仓库 FlyFish1997/dsh-project-fee)是面向 DSH Web 宿主的 cordis 插件:只读本地会话日志,在浏览器侧给出状态栏与面板,并按北京日汇总估算费用;不联网、不上传数据。费用数字是按 DeepSeek 官方刊例价自算的估算值,不是实付账单。

这是什么

  • 维护者:FlyFish1997
  • 分类(目录):联网工具(插件本体统计过程不访问外网)
  • 定位:按工作区维度监控 DSH token 消耗与人民币(可配 USD)费用的 Web 插件。
  • 运行边界:cordis 插件 + DSH Web 客户端 bundle,只能在 DSH 官方宿主(桌面 Electron 或 dsh web)中加载;headless / sdk 等没有 webServer 的 profile 不会加载。

宿主侧引擎仅使用 node: 内置模块,无第三方运行时依赖;浏览器侧依赖宿主注入的 React。

核心功能

界面与会话内查询

  • 顶部状态栏药丸:工作区名、今日花费、预警色点;点开可看近 N 天总花费、按工作区横条,以及默认折叠的「按日账单 / Token 明细 / 预警线 / 价格设置」。
  • 模型工具 workspace_fee 与斜杠命令 /fee:在会话内直接查询,不产生模型消息。

预警与账单

  • 每个工作区支持日预警线与总预警线,状态分 ok / warn / over 三档。
  • 按北京日汇总账单(工作区 × 日期),并落盘为按日 JSONL。
  • 统计窗口四档:近 7 / 30 / 90 天,以及全量(days=all)。

数据与口径

  • 数据源:<DSH_HOME>/sessions/ 下各工作区会话的 session[.v<N>].jsonl.zstd(取同目录版本号最大文件,避免双计)。
  • 计费契约 v1.1:cost = cacheRead/1e6*hit + input/1e6*miss + output/1e6*out;inputTokens 与 cacheRead 互斥桶;reasoningTokens 默认已含在 outputTokens 内。
  • 时段与分桶一律北京时间 UTC+8;高峰为工作日 09:00–12:00、14:00–18:00(左闭右开),高峰价为空闲价 × 2。
  • 内置费率来源日期为 2026-09-10,可通过配置覆盖;请以官方页面为准。

环境要求

项 要求
DeepSeek Harness >=0.1.2-rc.1(engines.dsh);README 开发与实测基于 0.2.0-rc.2
宿主 DSH Web:桌面应用或 dsh web
Node.js ^22.19.0 \|\| >=24.0.0(需 node:zlib 的 zstd 支持)

安装与启用

插件以 link: 形式装进 DSH profile。安装后必须重启宿主并刷新页面,否则浏览器侧 bundle 不会出现。

Windows 一键安装(README 推荐)

先干跑确认脚本行为,再正式安装(默认 web + desktop 两个 profile):

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -WhatIf

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1

桌面版安装目录不在默认位置时,可指定含 DeepSeek Harness.exe 的目录;只装某一 profile 或卸载:

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -DesktopAppDir "D:\path\to\deepseek-harness-desktop"

powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -Profile web
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-profile.ps1 -Uninstall

说明:桌面应用用 desktop profile(需桌面运行时自带 CLI);dsh web 用 web profile。dsh 常不在 PATH 上,脚本会优先使用桌面自带的 resources\runtime\cli\bin\dsh.cmd。

手动安装(任意有 DSH CLI 的平台)

dsh plugin --profile web add link:/absolute/path/to/this/repo

desktop profile 须通过桌面应用暴露的内部 CLI 入口执行同类 plugin --profile desktop add link:<仓库绝对路径> 命令(路径因安装方式而异,见仓库 README §2.2)。macOS / Linux 可用相同 link: 方式,但 README 写明目前仅在 Windows 上实测过。

重启后自检

  • 桌面版:退出并重新打开 DeepSeek Harness,刷新页面。
  • dsh web:停服务再启动,打开地址并刷新。

不经过 HTTP、直接核对宿主侧引擎账目:

node scripts/report.mjs --json

典型用法

面板与 HTTP

  • GET /summary?days=N:滚动窗口为最近 N 个北京日(含今天);days=all 为全量口径。
  • GET/POST /api/dsh-workspace-fee/config:运行时改预警线、价格表等(形状见仓库 docs/SPEC.md)。
  • 每次 GET /summary 与 POST /refresh 会把按日账单写入 usageDir 下的 *.jsonl。

会话内

在 DSH Web 会话中使用斜杠命令 /fee,或调用工具 workspace_fee,快速查看当前工作区相关汇总(不产生模型消息)。

离线报告脚本

node scripts/report.mjs --json
node scripts/report.mjs --raw --days=all
node scripts/probe.mjs --days=365 --out=reports/probe-report.md

配置要点

优先级(高 → 低):settings 命名空间 dsh-workspace-fee 的用户段 → <dataDir>/config.json → 插件行 config → 内置默认。

插件行 cordis.patch.yml 中常见字段包括:home、sessionsRoot、dataDir、pricing、alerts、persistCache、flushSeconds。环境变量如 DSH_HOME、DSH_WORKSPACE_FEE_SESSIONS、DSH_WORKSPACE_FEE_DATA、DSH_WORKSPACE_FEE_USAGE 可覆盖路径。币种默认 CNY,可通过 pricing.currency 设为 USD。

适用场景与注意

适合:长期在 DSH Web 上开发、需要按工作区看 token 与费用趋势、希望本地预警而不把用量发到第三方的开发者。

注意:

  1. 插件以当前 DSH 进程权限读本地会话与写账本目录;安装前请阅读源码与 MIT 许可证,确认路径与数据落盘位置可接受。
  2. 数字为估算,不抓取官方价格页;与实付可能不一致。
  3. 仅 DSH Web 宿主;非 DSH 平台无法加载。
  4. 独立验证脚本 run-all.mjs 在 README 中如实标注部分项依赖上游源码路径(DSH_CORE_DIR),未配置时可能失败,不影响插件在宿主内的主路径。

结尾

dsh-workspace-fee 把分散在会话日志里的用量收成「工作区 × 北京日」视图,并在 Web 界面提供药丸状态栏、图形面板、预警线与 JSONL 账单,适合在 DSH 日常开发里做本地用量自检。社区目录页:skillhub.cn/plugins/FlyFish1997/dsh-project-fee;源码与完整安装说明:github.com/FlyFish1997/dsh-project-fee。

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

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

小夜