前言¶
在 DeepSeek Harness(DSH)裏跑長對話時,模型響應前的 prefill 階段佔了不少體感時間,但內置界面未必把「每秒處理多少未命中緩存的 prompt token」擺在顯眼位置。若你關心前綴緩存命中後的真實計算量、或想對比不同提示策略下的輸入吞吐,通常只能翻日誌或自己算。
下面介紹的 dsh-prefill-speed-stats 是社區維護的客戶端插件(維護者 stefanohe),在狀態欄內置「會話統計」條左側增加一格,顯示會話平均 prefill 速度(tok/s),點擊可展開會話平均與最近 N 步兩個讀數。插件面向 deepseek-harness-v0.2.0-rc.2,npm 包版本 0.2.0-rc.2,許可證 MIT。
這是什麼¶
dsh-prefill-speed-stats 的定位很單一:把 prefill 速度直接顯示在狀態欄(Show prefill speed directly in the status bar)。
它運行在 DSH 瀏覽器端,通過公開的 sessionSpeed Host 投影和 conversation.composer.dock 插槽接入,屬於非官方插件;目錄站點 SkillHub 插件頁 與 GitHub 倉庫 stefanohe/dsh-prefill-speed-stats 爲獨立社區資源,與 DeepSeek / 幻方無官方從屬關係。
核心功能¶
插件在內置會話統計條左側增加一個 dock 格子,默認展示會話平均 prefill 速度,單位 tok/s。點擊後彈出兩行說明:
| 顯示項 | 含義 |
|---|---|
| 狀態欄格子 | 會話平均輸入速度(tok/s) |
| Prefill speed (session average) / 輸入速度(會話平均) | 整個會話:Σ 未命中緩存 token ÷ Σ 預填充窗口 |
| Prefill speed (last N steps) / 輸入速度(最近 N 步) | 同一算法,僅統計最近最多 10 個已測量步;標題會標明實際平均了幾步 |
術語與 Harness 日誌對齊:
- 未命中緩存 token 對應
usage.inputTokens:提供方需要重新計算的那部分提示;前綴緩存命中部分不計入。 - 預填充窗口 從
step/start到首個可見 token。某步若始終沒有可見 token,則沒有窗口,兩個讀數都不計入該步;相關 token 記在session.unmeasuredInputTokens。
讀數隨會話增長更新,無需配置項。若同時安裝 sibling 插件 dsh-show-balance,其格子會出現在本插件更左側。
理解讀數時需注意 README 中的說明:數值偏低往往表示這一步幾乎沒什麼新內容要算(例如緩存很熱),並不等價於「模型變慢」。固定請求開銷(排隊、往返、讀 KV 緩存)仍在,而 uncached token 很少時,單步比率會被壓向零;會話平均會攤薄這部分,最近 N 步窗口則不會。窗口內一切耗時都進入分母,因此該指標是真實 prefill 吞吐的下界。
宿主側通過 index.js 註冊投影,lib/projection.js 負責摺疊與 schema,lib/stream.js 處理首個可見 token 計時;瀏覽器側 client.js 負責格子與對話框。未知事件或畸形日誌記錄會被忽略而非中斷會話,未來 Harness 事件格式變化可能隻影響精度。
安裝與啓用¶
DSH 採用 profile 管理插件 bundle;本插件面向 desktop profile,目錄爲 <DSH 主目錄>/profiles/desktop(默認位置下 Linux/macOS 爲 ~/.dsh/profiles/desktop,Windows 爲 %USERPROFILE%\.dsh\profiles\desktop)。
建議使用 pnpm 11.7.0。 若尚未安裝:
npm install -g pnpm@11.7.0
方式 A:從 npm 安裝¶
在對應 profile 目錄執行(或在「設置 → 插件」、agent 的 plugin_manager 工具中安裝,效果等價):
pnpm add dsh-prefill-speed-stats
DeepSeek Harness 使用默認主目錄時,可直接:
cd "$env:USERPROFILE\.dsh\profiles\desktop" ; pnpm add dsh-prefill-speed-stats # Windows
cd ~/.dsh/profiles/desktop ; pnpm add dsh-prefill-speed-stats # macOS / Linux
安裝後確認該 profile 的 package.json 裏 dsh.profile.bundles 已包含包名 dsh-prefill-speed-stats(經插件管理器安裝時會自動寫入)。
方式 B:從倉庫腳本安裝¶
適用於源碼、離線或 npm 未提供的版本。在倉庫根目錄執行(腳本會完成依賴寫入並備份 manifest,並提示後續步驟):
pwsh -File .\install.ps1 # Windows
sh ./install.sh # macOS / Linux
pwsh -File .\install.ps1 -From npm # 改爲安裝 npm 已發佈包
啓用(兩種方式共通)¶
- 完全重啓 DSH 應用。瀏覽器 bundle 在啓動組合時快照,僅刷新頁面不夠。
- 打開左側插件面板,將 dsh-prefill-speed-stats 開關打開。
典型用法¶
安裝並啓用後,正常在 DSH 裏對話即可;狀態欄左側會出現 prefill 速度格。
- 觀察 dock 上的會話平均
tok/s,作爲整段會話輸入側吞吐的粗指標。 - 點擊該格,查看「會話平均」與「最近 N 步」兩行,對比熱緩存步與長 prompt 步的差異。
- 若某步讀數極低,結合是否大量命中前綴緩存、以及
session.unmeasuredInputTokens中未計入的步,再判斷是「幾乎無新算力需求」還是窗口未形成。
插件不提供額外 CLI 或配置文件;投影測試可在開發倉庫中運行 node --test test/projection.test.cjs(面向維護者,非終端用戶必需步驟)。
適用場景與注意¶
適合:在 DSH desktop 上日常調試 agent、對比提示長度與緩存策略、需要狀態欄常駐 prefill 指標而不想手算日誌的開發者。
注意:
- 插件以當前 DSH 進程權限運行,安裝前應閱讀 源碼 與 MIT 許可證,自行評估信任邊界。
- 僅適用於 README 標明的 Harness 版本線(v0.2.0-rc.2);升級 Harness 後需確認插件仍兼容。
- 讀數是工程下界,不宜單獨作爲 SLA 或模型性能的唯一依據。
結尾¶
dsh-prefill-speed-stats 把 prefill 速度從日誌裏搬到狀態欄:一格會話平均,一點擊看會話與最近幾步的分解。安裝路徑是 desktop profile 下的 pnpm add dsh-prefill-speed-stats,記得完全重啓並在插件面板打開開關。