DeepSeek Harness 插件:dsh-session-cost

DeepSeek Harness(DSH)采用插件化架构。在开发或调试智能体时,开发者往往难以直观掌握单次对话或长会话的实际成本。dsh-session-cost 插件旨在解决这一问题,通过实时计算并展示当前会话的已花费金额,帮助开发者更好地控制成本。

这是一个由 dog-lin 维护的 Web 客户端插件,主要功能是实时显示当前会话已花费金额,支持自动同步官方价格并按会话统计。

核心功能

该插件提供以下核心能力:

  • 实时显示:在输入框下方的状态条区域实时渲染当前会话的累计费用。
  • 自动同步:自动从 DeepSeek 官网抓取最新价格表,支持峰谷定价配置。
  • 本地覆盖与冻结:支持通过本地配置覆盖自动获取的价格,或通过 pin: true 冻结价格。
  • 来源透明:显示价格来源(官方自动、官方失败降级、本地配置)与更新时间。
  • 按模型路由计算:根据模型路由(Model Router)计算每一步调用的费用。

安装与启用

使用以下命令从 GitHub 安装插件:

dsh plugin --profile web add git+https://github.com/dog-lin/dsh-session-cost.git

安装完成后,刷新浏览器页面(F5)。dsh plugin add 会将插件写入 profile 的 dsh.profile.bundles,插件自带的 cordis.patch.yml(bundle 层)会在启动时自动注册。

注意:宿主代码变更(如本插件功能升级)需要重启一次 dsh web,因为宿主模块走 Node 模块缓存。

配置与热加载

插件配置位于 $DSH_HOME/profiles/web/cordis.patch.yml。配置项包括:

  • currency:显示与计价货币(ISO 4217)。
  • autoUpdate:是否自动同步官网价格(默认 true)。
  • updateIntervalHours:抓取间隔(默认 24)。
  • pricing:按模型 ID 计价。官网抓取到新价后会更新此处,加 pin: true 则永不改动。
  • fallback:未在 pricing 中的模型计价规则(默认全 0,即未计价)。

若需修改配置但不想重启,可使用 Profile 补丁热加载,通过 id: session-cost 覆盖整行配置:

# $DSH_HOME/profiles/web/cordis.patch.yml
- id: session-cost
  name: 'dsh-session-cost'
  config:
    currency: CNY
    autoUpdate: true
    updateIntervalHours: 24
    pricing:
      deepseek-v4-flash: { input: 1, output: 2, cacheRead: 0.02, cacheWrite: 0 }
      deepseek-v4-pro:   { input: 3, output: 6, cacheRead: 0.025, cacheWrite: 0 }
    fallback: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }

注意:热加载时 config 是整体替换,需写全。若在 profile 层重复 insert 同一行,会导致启动报错 duplicate loader entry id: session-cost。

价格同步机制

插件通过三层机制确保价格正确:

  1. 官网价格自动同步:启动时及每 updateIntervalHours(默认 24h)抓取 DeepSeek 官方价格页。解析器会自动识别价格表中的所有模型。模型无关地发现新模型(如未来 v5),只要官网列出即自动取价。价格变动按生效时间追加到时间轴,历史请求按其自身时间戳取价。抓取失败时沿用上次价格并提示。
  2. 本地配置覆盖 / 冻结:pricing 中的条目是种子,会被官网更新。设置 pin: true 可完全由用户掌控。fallback 用于未收录模型的兜底。
  3. 来源可见:投影值携带 pricingSource、pricingUpdatedAt 和 pricingWarn,客户端悬浮提示可查看。

价格历史持久化在 $DSH_HOME/storages/dsh-session-cost-pricing.json,重启不丢失。

峰谷定价

DeepSeek 自 2026-08-17 起(北京时间)实行峰谷定价。插件支持两种配置方式:

方式一:peak / offPeak 对象

pricing:
  deepseek-v4-flash:
    peak:    { input: 3.0, output: 9.0,  cacheRead: 0.10 }
    offPeak: { input: 1.5, output: 4.5,  cacheRead: 0.05 }

方式二:schedule 时间轴

pricing:
  deepseek-v4-flash:
    schedule:
      - from: 0
        input: 1
        output: 2
        cacheRead: 0.02
      - from: 2026-08-17T00:00:00+08:00
        peak:    { input: 3.0, output: 9.0,  cacheRead: 0.10 }
        offPeak: { input: 1.5, output: 4.5,  cacheRead: 0.05 }

默认高峰时段为北京时间 09:00–12:00 和 14:00–18:00。

投影值与已知限制

sessionCost 投影值包含 totalCost、requests、unpricedRequests、inputTokens 等字段,以及价格来源信息。

已知限制如下:

  • 会话范围:费用仅统计当前会话,子代理(subagent)的模型调用不计入父会话。
  • 推理 Token:推理 token 属于输出桶的子集,按输出价计费,不额外加价。
  • 新模型识别:新模型需等待下一次抓取(默认 24h)才能识别。在此之前,请求计入 unpricedRequests 并标注未计价。
  • 抓取失败:若官网改版导致连续抓取失败,插件会沿用上次价格并提示,不会静默给出错误数据。

总结

dsh-session-cost 提供了从日志重放、价格同步到本地配置覆盖的完整成本追踪方案。对于需要精细化控制 DeepSeek 调用成本的 DSH 用户,这是一个实用的工具。

  • 插件目录:https://www.skillhub.cn/plugins/dog-lin/dsh-session-cost
  • GitHub 仓库:https://github.com/dog-lin/dsh-session-cost
羽毛球分组比赛记分
小程序二维码

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

小夜