dsh-plugin-token-cost:在輸入框旁實時顯示當前會話 token 花費

前言

在 DSH Web 裏跑長會話時,界面通常會有一條內置統計,例如 38.4M tok · 緩存命中 99.6%,告訴你用了多少 token、緩存命中率如何。這條線回答的是「量」,不直接回答「按官方價目表,當前會話大概花了多少錢」。

若要對賬或控制成本,往往還要自己拿 token 分桶去乘單價,並區分高峯與空閒時段。dsh-plugin-token-cost 是社區客戶端插件,把服務端上報的精確分桶與 profile 裏的價格表結合起來,在 composer 旁邊顯示參考金額,並可展開覈對每一檔的 token、單價與計費規則。

下面介紹插件定位、能力與安裝配置方式,以及使用時需要接受的計費口徑邊界。

這是什麼

插件在 DSH Web 輸入框旁實時顯示當前會話已產生的 token 花費(默認以人民幣展示)。token 數來自服務端 tokenUsage 投影,不是本地按字符估算;金額由分桶 token 數乘以你在 profile 中配置(或使用內置默認)的價格表計算得出。

核心功能

精確分桶,而非本地估算

服務端上報四個分桶:cache-hit input(命中緩存的輸入)、cache-miss input(未命中緩存的輸入)、cache write(緩存寫入)、output(輸出)。插件按這四個桶累加當前會話用量,與 README 中「Token counts are exact」的說明一致。

金額與明細

各分桶 token 數乘以價格表中對應單價得到分項金額。界面上以膠囊形式展示合計;點擊可展開:每檔 token 數、單價、該項金額,並同時列出高峯與空閒兩套單價(當前生效的一套會標出),便於與賬單對照。

界面位置與時段

展示位置與內置 token 統計條相鄰,字號與高度一致。高峯 / 空閒默認可按 UTC 自動判斷(週一至週五 01:00–04:00、06:00–10:00 爲高峯);也可在配置裏固定爲 peak 或 off-peak,不必跟隨時鐘。

內置默認價目(高峯價)

內置表單位爲元 / 百萬 token,表內數值爲高峯價;空閒價在顯示時按「空閒 = 高峯的一半」折算(與 README 對官方規則的描述一致)。

模型 命中 / 未命中 / 輸出(¥/1M tok,高峯)
deepseek-flash 0.04 / 2 / 8
deepseek-v4-pro 0.30 / 9 / 27

未在價格表中配置的模型會顯示提示,不會靜默顯示 ¥0。

安裝與啓用

插件面向 web profile。安裝命令以倉庫 README 爲準:

dsh plugin --profile web add github:jessicacui99/dsh-plugin-token-cost

若本地已有插件目錄 checkout,也可使用絕對路徑安裝(README 英文小節):

dsh plugin --profile web add /absolute/path/to/dsh-plugin-token-cost

說明:

  • 宿主側在 profile 開啓 patchReload: live 時會自動掛載;瀏覽器側需要刷新一次頁面後纔會看到客戶端 UI。
  • 無單獨構建步驟:lib/client.js 爲手寫 bundle,僅依賴 React 與 react/jsx-runtime;宿主側不 import 第三方包。

安裝前建議瀏覽倉庫源碼與 MIT 許可證;插件在當前 DSH 進程權限下運行,與目錄裏其他客戶端插件一樣,信任邊界取決於你安裝的代碼。

自定義價格與時段

與賬單不一致時,可在 ~/.dsh/profiles/<profile>/cordis.patch.yml 中覆蓋 token-cost 插件的 config。注意:一個 patch 會替換整段 config,因此需要把仍要保留的字段全部寫全,不能只寫改動項。

- id: token-cost
  config:
    currency: CNY          # 僅影響展示符號(¥ / $ / €)
    period: auto           # peak | off-peak | auto
    models:
      - model: deepseek-flash
        provider: deepseek-official
        inputCacheHit: 0.04     # 元 / 1M tokens,高峯單價
        inputCacheMiss: 2
        output: 8
      - model: deepseek-v4-pro
        provider: deepseek-official
        inputCacheHit: 0.3
        inputCacheMiss: 9
        output: 27

負數字段、缺少 model、拼錯的 period 等錯誤配置會在加載時失敗,而不是以錯誤價格靜默運行。

典型用法

  1. 在 web profile 執行上述 dsh plugin --profile web add ... 完成安裝。
  2. 刷新 DSH Web 頁面,在 composer 旁查看與內置 token 統計並列的花費膠囊。
  3. 點擊膠囊查看分桶明細及高峯 / 空閒單價對照。
  4. 若需固定按高峯或空閒計價,將 period 設爲 peak 或 off-peak;否則保持 auto 跟隨 UTC 規則。
  5. 官方調價或價目與內置表不一致時,按上一節補全 cordis.patch.yml 並重載 profile。

適用場景與注意

適合:在 Web 端長時間調試 agent、需要隨會話推進觀察「參考花費」、並希望用分桶明細與賬單核對的開發者。

邊界(README 明確說明,使用時請一併接受):

  • 顯示金額爲參考值,不是正式賬單:例如緩存寫入按「未命中」價計;高峯 / 空閒按 UTC 規則或你的 period 設置;官方改價或改規則後需更新價格表。
  • 長會話中每個請求會重發整段上下文,prompt token 會隨輪次增長(緩存命中佔主體),這是計費模型本身,不是插件重複計數;同一 turn/step 的重複記錄會被替換而非累加。
  • Subagent 消耗不計入父會話數字,各自獨立會話。
  • 會話中途切換模型後,累計 token 整體按 modelSelection.lastUsed(當前模型)計價;tokenUsage 爲整段日誌合計,不按模型拆分。
  • 僅當前會話:切換會話後數字歸零重算。

DeepSeek Harness 生態強調「一切皆插件」;社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。

結尾

dsh-plugin-token-cost 把服務端四檔 token 用量與可配置價目表接到 Web composer 旁,在保留內置 token 統計的同時補上「花了多少錢」這一維,並支持展開覈對高峯 / 空閒單價。安裝以 README 中的 dsh plugin --profile web add github:jessicacui99/dsh-plugin-token-cost 爲準;價目與時段可在 cordis.patch.yml 中完整覆蓋。

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

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

小夜