前言¶
在 DSH Web 裏跑長會話時,有兩個數字平時很難直接看到:上下文窗口被佔用了多少,這個會話到現在花了多少錢。token 用量數據本身並不缺——token-meter 已經提供了 tokenUsage、contextPressure、contextBreakdown 這些會話投影——缺的是一塊把它們擺到界面上的面板;花費則還要自己查單價、自己按高峯閒時換算。
下面介紹 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–18,timeZone: 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 配置,優先級從上到下遞增:
- 插件默認值:
dsh-context-show/cordis.patch.yml(隨插件分發); - profile 用戶層:
$DSH_HOME/profiles/web/cordis.patch.yml; $DSH_HOME/cordis.patch.yml與命令行--patch。
後一層會整段覆蓋前一層中同一行 config。
版本對齊與依賴¶
- 插件當前對齊 DeepSeek Harness
0.1.1-rc.2:contextUsage投影按新版 API 註冊爲stateSchema+wire。0.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-meter(tokenUsage/contextPressure/contextBreakdown投影)、@deepseek-ai/dsh-settings(dsh-basebundle 已內置)以及 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 裏已經存在的會話投影聚合到一塊可拖動的面板上,再把單價配置做成可編輯的表單。對需要盯着上下文窗口和花費的人來說,省掉了翻日誌和手算的環節。
- 插件目錄頁:https://www.skillhub.cn/plugins/pureskywalk/dsh-context-show
- GitHub 倉庫:https://github.com/pureskywalk/dsh-context-show
skillhub.cn 是社區維護的插件目錄,與 DeepSeek、幻方無官方從屬關係。DSH 的設計理念是「一切皆插件」,這類面板正是這個生態裏由社區自行擴展出來的形態。