前言¶
在 DSH Web 裏跑長會話時,界面通常會有一條內置統計,例如 38.4M tok · 緩存命中 99.6%,告訴你用了多少 token、緩存命中率如何。這條線回答的是「量」,不直接回答「按官方價目表,當前會話大概花了多少錢」。
若要對賬或控制成本,往往還要自己拿 token 分桶去乘單價,並區分高峯與空閒時段。dsh-plugin-token-cost 是社區客戶端插件,把服務端上報的精確分桶與 profile 裏的價格表結合起來,在 composer 旁邊顯示參考金額,並可展開覈對每一檔的 token、單價與計費規則。
下面介紹插件定位、能力與安裝配置方式,以及使用時需要接受的計費口徑邊界。
這是什麼¶
- 倉庫: jessicacui99/dsh-plugin-token-cost
- 維護者: jessicacui99
- 分類: 客戶端(Web)
- 版本(package.json): 0.1.0
- 許可證: MIT
插件在 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 等錯誤配置會在加載時失敗,而不是以錯誤價格靜默運行。
典型用法¶
- 在 web profile 執行上述
dsh plugin --profile web add ...完成安裝。 - 刷新 DSH Web 頁面,在 composer 旁查看與內置 token 統計並列的花費膠囊。
- 點擊膠囊查看分桶明細及高峯 / 空閒單價對照。
- 若需固定按高峯或空閒計價,將
period設爲peak或off-peak;否則保持auto跟隨 UTC 規則。 - 官方調價或價目與內置表不一致時,按上一節補全
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 中完整覆蓋。