dsh-cost-kline:在 DSH 里用 K 线看会话花费

前言

在 DeepSeek Harness(DSH)里跑长会话、多轮 agent 时,token 消耗往往要到平台账单里才能对账,本地进程又缺少「此刻烧多少钱」的直观反馈。常见做法是事后查官方控制台或手算 usage,无法边开发边感知花费节奏。

下面介绍社区插件 dsh-cost-kline(维护者 FECss,GitHub:FECss/dsh-cost-kline)。它在 Harness 内监听会话事件,按可配置的单价把 token 折成人民币,记在本地账本,并用类似股票的 K 线图展示花费走势;可选对接 DSH 账号服务显示余额。数据只写本机,不上传。

这是什么

dsh-cost-kline 是 DSH 的 Web 端插件(当前版本 0.3.1,MIT 许可)。Host 侧统计每次 assistant/message 的 usage,浏览器侧在侧边栏与浮窗里轮询展示。官方说明强调:图中金额为估算,正式扣费以 DeepSeek 平台为准。

核心功能

Host:记账与 HTTP 接口

index.js 监听 session/event,从每条 assistant 消息的 usage 中取:

  • inputTokens(未命中缓存)
  • cacheReadTokens(缓存命中)
  • cacheWriteTokens(写入缓存)
  • outputTokens(输出)

按 cordis.patch.yml 中的单价表折合人民币,写入账本并落盘;在 ctx.webServer 上注册路由供前端读取。

账本路径:$DSH_PROFILE_DIR/dsh-cost-kline/ledger.json;无 profile 时使用 $DSH_HOME。

浏览器:侧边栏卡片与浮窗

client.js 注册两个插槽:

  1. sidebar.footer.action:侧边栏底部(设置之上)常驻卡片,显示今日金额、余额、峰谷标注和迷你 K 线;侧边栏收成窄轨道时仅显示图标。
  2. shell.overlay:详情浮窗(默认收起)。点卡片右上角 ⤢ 打开,可拖拽,可切换 1/3/5/15/60 分钟周期;浮窗内 — 收起,× 关闭回到卡片。

卡片与浮窗共用 2.5 秒轮询,避免重复请求。

如何读 K 线

  • 纵轴:该时段每分钟花费(¥/分)。open/close 为时段首尾一分钟,high/low 为时段内极值。
  • 颜色:红表示时段末尾比开头烧得快,绿表示变慢,灰为持平。
  • 下方细柱:该时段 token 用量(类似成交量)。
  • 黄线:close 的 5 周期均线。
  • 顶部:累计金额、今日花费、近 1 小时花费、缓存命中率。
  • 余额:来自 ctx.get('deepseekAccount');点击可强制刷新(平时 60 秒缓存)。账号服务不可用时显示「不可用」,不影响 K 线。峰时/谷时按 DeepSeek 官方时段标注(北京时间 00:30–08:30 为谷时)。

HTTP 接口

方法 路径 作用
GET /dsh-cost-kline/state 全量状态(合计、按模型、按会话、原始样本、余额)
GET /dsh-cost-kline/balance 仅余额(含各币种充值/赠送拆分)
POST /dsh-cost-kline/balance/refresh 强制刷新余额
POST /dsh-cost-kline/reset 清空账本

安装与启用

插件发布到 npm 市场后,在终端执行:

dsh plugin add dsh-cost-kline

本地开发可从目录安装:

dsh plugin add /path/to/dsh-cost-kline

装完后重启 Harness,或重载对应 bundle。侧边栏底部应出现花费卡片。运行环境要求 Node.js >= 20。

单价与配置

默认单价在 cordis.patch.yml 的 config.prices 中,单位为每 100 万 token 的人民币:

字段 含义 默认
cacheHit 命中缓存的输入 0.2
cacheMiss 未命中缓存的输入 2
cacheWrite 写缓存 2
output 输出(含推理) 3

prices 为「模型名子串 → 单价」映射,default 兜底。可在自己的 profile 中覆盖,例如:

- insert:
    - id: dsh-cost-kline
      name: dsh-cost-kline
      config:
        currency: CNY
        prices:
          default: { cacheHit: 0.2, cacheMiss: 2, cacheWrite: 2, output: 3 }
          "deepseek-reasoner": { cacheHit: 1, cacheMiss: 4, cacheWrite: 4, output: 16 }

典型用法

  1. 安装插件并重启 DSH,在侧边栏底部查看今日花费与迷你 K 线。
  2. 需要看更长周期或悬停 tooltip 时,点卡片 ⤢ 打开浮窗,切换 1/3/5/15/60 分钟。
  3. 需要与官方余额对照时,在界面点击余额触发 POST /dsh-cost-kline/balance/refresh(或由 UI 等价的强制刷新)。
  4. 换机器或想从零统计时,可调用 POST /dsh-cost-kline/reset 清空账本(或通过后续 UI 若提供)。

适用场景与注意

适合:长期在 DSH 里调试 agent、关心缓存命中率与花费节奏、希望本地可视化估算成本的开发者。

依赖与限制:

  • 需要 ctx.webServer(README 称各 profile 均具备)。
  • 余额展示依赖可选的 deepseekAccount 服务;缺失时仅余额不可用。
  • 前端无外部依赖,不联网、不上传数据;账本仅存本地文件。
  • 插件以当前 dsh 进程权限运行,安装前建议阅读 GitHub 源码 与 MIT 许可证,确认符合你的安全策略。

DSH 生态主张「一切皆插件」;社区目录站点 skillhub.cn 为独立收录,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-cost-kline 把会话 token usage 转成本地账本与 K 线视图,便于在开发过程中对照峰谷时段和缓存效果。目录页:https://www.skillhub.cn/plugins/FECss/dsh-cost-kline;源码与完整说明:https://github.com/FECss/dsh-cost-kline。

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

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

Xiaoye