dsh-context-show:DSH Web 的即時上下文佔用與花費面板

前言

在 DSH Web 裏跑長會話時,有兩個數字平時很難直接看到:上下文窗口被佔用了多少,這個會話到現在花了多少錢。token 用量數據本身並不缺——token-meter 已經提供了 tokenUsagecontextPressurecontextBreakdown 這些會話投影——缺的是一塊把它們擺到界面上的面板;花費則還要自己查單價、自己按高峯閒時換算。

下面介紹 pureskywalk 維護的 dsh-context-show 插件。它在 DSH Web 會話頭部加一個佔用指示按鈕,點開是一塊可拖動的面板,把佔用、構成、工具用量、花費和各供應商用量放在一處即時顯示。

這是什麼

dsh-context-show 自述爲「DSH Web 客戶端插件 + 主機投影插件」:瀏覽器半負責面板與設置界面,主機半負責註冊 contextUsage 會話投影,在主機側對 durable 日誌摺疊成可累計的用量。當前版本 0.9.0,許可證 MIT,安裝到 web profile 使用。

它回答四個問題:

1、上下文還剩多少——projectedTokens / contextWindow 的佔用百分比;
2、佔用從哪來——系統提示詞、工具定義、對話消息各佔多少,哪些工具調得最多;
3、花了多少——按每百萬 token 單價估算的累計花費,按每次請求發生時間自動區分高峯/非高峯;
4、用量歸到誰頭上——按 provider/model 路由歸因的累計用量。

核心功能

佔用指示與面板

  • 會話頭部右側出現佔用指示按鈕(圓環 + 百分比),點擊展開/收起可拖動面板;
  • 圓環按佔用程度變色:<70% 中性、70–89% 琥珀、≥90% 紅;
  • 面板持久顯示,只有再次點按鈕或按 Escape 關閉;按住抓手(⠿)可拖動;
  • 面板分省略版/詳細版,省略版只顯示佔用與總花費;
  • 所有數值通過會話投影 useProjection 即時推送,對話快照變化時工具列表同步刷新。

來源構成與工具佔用

詳細版裏可以看到兩塊明細:

  • 來源構成:系統提示詞 / 工具定義 / 對話消息的啓發式 token 構成,數據來自 token-meter 的 contextBreakdown 投影,顯示爲分段進度條 + 明細行;
  • 工具佔用:按工具名聚合的佔用列表,顯示調用次數與約 token 數,不展示原始內容。

花費估算與峯谷計價

花費按配置單價(每百萬 token,默認人民幣 CNY)估算,並按每次請求的發生時間自動套用高峯/非高峯價。默認已啓用峯谷計價:peakHours: 9–12 / 14–18timeZone: Asia/Shanghai,週末自動按閒時,閒時價爲高峯價的一半。插件預置了依據 DeepSeek 官方定價頁(api-docs.deepseek.com/zh-cn/quick_start/pricing/)的價格表,單位爲人民幣 / 每百萬 token:

模型 時段 緩存命中 緩存未命中 輸出
deepseek-v4-flash 閒時 ¥0.05 ¥1.5 ¥4.5
deepseek-v4-flash 高峯 ¥0.10 ¥3.0 ¥9.0
deepseek-v4-pro 閒時 ¥0.15 ¥4.5 ¥13.5
deepseek-v4-pro 高峯 ¥0.30 ¥9.0 ¥27.0
deepseek-v4-flash-vision-exp 同 flash ¥0.05/0.10 ¥1.5/3.0 ¥4.5/9.0

詳細版按花費降序列出各模型的金額,含供應商、官方價格鏈接與輸入/輸出 token 明細。

各供應商用量

按 provider/model 路由歸因的累計用量,由插件自帶的 contextUsage 會話投影在主機側對 durable 日誌摺疊得到,能看出用量分別落在了哪條路由上。

安裝與啓用

先執行安裝命令,把插件加進 web profile:

dsh plugin --profile web add dsh-context-show

也支持從本地路徑以 link 方式安裝,以及 github:<owner>/<repo> 形式的 Git 安裝(README 中該寫法爲佔位模板,使用時替換爲實際倉庫地址):

dsh plugin --profile web add "C:\path\to\dsh-context-show"

安裝後需要重啓目標 profile,host 插件與 client bundle 都要求重啓。之後打開 DSH Web,會話頭部右側即可看到佔用按鈕。

兩點提示:

  • 若 pnpm 報 ERR_PNPM_UNEXPECTED_STORE(本機 store 路徑與 profile 不一致),給 add 追加 --store-dir=<你的 pnpm store>,store 路徑可用 pnpm store path 查詢;
  • 設置頁保存的價格走 settings seam 即時生效,無需重啓。

單價在哪裏配置

經過上面的安裝步驟後,打開 DSH Web「設置」→ 插件 → 插件配置,找到最後一張卡片「上下文佔用 · 單價配置」(默認收起,點擊標題展開),可以編輯:

  • 幣種:CNY / USD / CNH / EUR / GBP / JPY;
  • 峯谷計價開關,啓用後可改高峯時段與時區;
  • 默認價(未配置供應商時的兜底價);
  • 供應商單價與模型級覆蓋(provider/model)。

保存即時生效,「恢復默認」則清空用戶層、回退到 bundle 默認值。

不走設置頁的話,也可以直接編輯 patch 配置,優先級從上到下遞增:

  1. 插件默認值:dsh-context-show/cordis.patch.yml(隨插件分發);
  2. profile 用戶層:$DSH_HOME/profiles/web/cordis.patch.yml
  3. $DSH_HOME/cordis.patch.yml 與命令行 --patch

後一層會整段覆蓋前一層中同一行 config。

版本對齊與依賴

  • 插件當前對齊 DeepSeek Harness 0.1.1-rc.2contextUsage 投影按新版 API 註冊爲 stateSchema + wire0.1.0-rc.7 及更早宿主缺少該 wire 視圖,金額不顯示時需一併升級宿主。
  • 0.1.0-rc.6 宿主的 host-apiproxy 僅放行官方設置命名空間,插件因此在主機側註冊了一對僅迴環、僅 POST 的橋路由 /api/dsh-context-show/settings/describe|mutate 作爲設置讀寫回退;宿主放行第三方命名空間後,官方 scope 自動保持主路徑。
  • 運行依賴 @deepseek-ai/dsh-token-metertokenUsage / contextPressure / contextBreakdown 投影)、@deepseek-ai/dsh-settingsdsh-base bundle 已內置)以及 host 側 webServer 服務。缺少本插件主機半時,面板降級爲僅展示 token-meter 已有投影;缺少 token-meter 時顯示空態。

開發與驗證

從源碼開發時,流程如下:

pnpm install
pnpm typecheck
pnpm test
pnpm build
pnpm verify

其中 pnpm verify 依次執行 typecheck、test、build。構建產物 lib/ 可直接被 profile 以 path/link 方式加載,無需 install 腳本。

適用場景與注意事項

適合這些情況:用 DSH Web 做日常開發、會話偏長,想盯着上下文壓力;關心會話成本,尤其是高峯/閒時價差;接了多個 provider/model,想看路由歸因後的用量分佈。

幾點注意:

  • 佔用與來源構成爲啓發式估算,花費按配置單價估算,均不等於供應商賬單;
  • 插件以當前 dsh 進程的權限運行,安裝前建議先查看源碼、確認許可證(本項目爲 MIT);
  • 面板完整功能依賴 token-meter 與主機半插件,缺失時按上一節所述降級或顯示空態。

小結

dsh-context-show 做的事情不復雜:把 DSH Web 裏已經存在的會話投影聚合到一塊可拖動的面板上,再把單價配置做成可編輯的表單。對需要盯着上下文窗口和花費的人來說,省掉了翻日誌和手算的環節。

skillhub.cn 是社區維護的插件目錄,與 DeepSeek、幻方無官方從屬關係。DSH 的設計理念是「一切皆插件」,這類面板正是這個生態裏由社區自行擴展出來的形態。

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

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

小夜