前言¶
在 DeepSeek Harness(DSH)裏做智能體或長對話調試時,官方「用量」面板給出的是會話級的 token 與緩存信息,回答不了更細的問題:這一輪吐字快不快、時間花在模型推理還是工具執行、首字延遲大致多少。若只能靠體感或外部抓包,迭代 prompt 或排查慢請求會很費事。
dsh-session-speed-pill(會話速度膠囊)是社區維護者 wzsx150 發佈的 DSH 插件,分類爲「模型推理」。它在每輪助手回覆下方、與「複製 · 點贊 · 分享 · 用量 · 時間」同一行的操作區裏,在用量右側、時間左側插入一枚讀數,例如 ⚡ 264 tok/s · 12.3秒;點開彈層可查看本輪更完整的時間構成與 token 彙總。數據全部從會話日誌裏已提交的事件推導,重放或刷新後數字一致,不依賴客戶端自行計時。
這是什麼¶
插件倉庫:wzsx150/dsh-session-speed-pill(當前 package 版本 0.13.3,MIT 許可證)。目錄頁:SkillHub · dsh-session-speed-pill(獨立社區目錄,與 DeepSeek / 幻方無官方從屬關係)。
一句話定位:給每一輪一問一答補上單輪速度與耗時讀數,並在彈層末尾彙總本輪輸入/輸出用量;它不推斷緩存命中率、上下文佔用或費用,避免與官方用量數字衝突。
膠囊上顯示什麼¶
膠囊左側是本輪解碼速度:有效輸出 token 之和除以解碼耗時之和(按 token 加權)。右側是總耗時:從 turn/start 到 turn/end 的牆鍾時間,含首字延遲與工具執行。
時長格式:不足 1 分鐘顯示「12.3秒」,不足 1 小時顯示「7分49秒」,超過 1 小時只顯示「1小時05分」且不再帶秒。速度低於 100 tok/s 保留一位小數,否則取整;分母不成立時顯示 —,不會出現 0 tok/s、NaN 或 Infinity。
點開彈層:本輪指標¶
彈層樣式對齊官方統計彈層(同一套 --dsw-* 主題 token 與佈局)。標題行左側爲「本輪對話」,右側可顯示「共 N 步」。主要行包括:
- 回答耗時:模型、工具、總耗時(工具爲總耗時減模型耗時的殘差,含調度、審批、重試等)
- 首字延遲:各步最大、最小、算術平均
- 解碼輸出:平均 tok/s(與膠囊左側同一口徑)、合計解碼窗口時間
- 預填充輸入(估算)、本輪解碼速度(估算)、本輪預填充速度(估算):帶「估算」的項受網絡延遲影響大,僅供參考
- 總用量:本輪未緩存輸入 token 與輸出 token(約以
≈8.4K/≈1.1M量級展示)
實現上校驗兩條恆等關係:平均解碼速度 × 解碼合計時間應對齊輸出 token;模型耗時 + 工具耗時應對齊總耗時。更完整的推導與算例見倉庫內 docs/metrics.md。
設置:始終顯示消息操作行¶
官方默認只有最新一輪的消息操作行常駐,更早輪次在新消息出現後需懸停纔可見。插件在 設置 → 通用 增加開關:
始終顯示消息操作行(Always show message actions)
開啓後常駐顯示每條消息的操作行;默認關閉。
開關狀態保存在瀏覽器 localStorage(鍵名 dsh-session-speed-pill:always-show-actions),按瀏覽器獨立,換設備或清理站點數據會恢復默認關閉。
語言與界面位置¶
文案跟隨 DSH 設置 → 語言:插件讀取 <html lang>,zh / zh-CN / zh-Hant 等用中文單位(秒 / 分 / 小時),en 等用 English,其他語言回落 English。
膠囊通過會話 UI 的 conversation.chat.assistant-actions 槽位注入,並用 CSS order 把官方 endInfo 中的用量、膠囊、時間排成「用量 → 膠囊 → 時間」,視覺上與官方控件同一套度量。
數據從哪來¶
Host 側註冊會話投影 sessionSpeed:在每次會話事件上純函數摺疊狀態,從 turn/start、turn/end、step/start、assistant/message 的 usage 與 stream(含 time0、逐塊 dt)推導指標;客戶端通過 useProjection('sessionSpeed') 按輪次 messageId 查表渲染。插件不訂閱 session/event 做二次掃描,也不在客戶端 fold 事件。
安裝與啓用¶
插件以當前 DSH 進程的權限運行;安裝前請自行閱讀倉庫源碼與 MIT 許可證。開發與驗證環境爲 DeepSeek Harness 0.2.1-rc.5;0.2.x 預期可用,0.3.x 及以後契約不變則應可用但未驗證,0.1.x 未驗證不保證。Host 側要求 Node >=22。
下面是從 GitHub 安裝 bundle 的方式(README 原文):
plugin_manager({ action: 'install_bundle', target: 'github:wzsx150/dsh-session-speed-pill' })
卸載:
plugin_manager({ action: 'remove_bundle', target: 'dsh-session-speed-pill' })
改動生效範圍:index.js / lib/* 屬 Host 半身,需重啓 Harness;client.js 屬瀏覽器半身,刷新頁面即可。若本機訪問 GitHub 較慢,插件管理器的連通性探測可能超時,README 建議在 profile 目錄使用 pnpm update dsh-session-speed-pill 更新。
SkillHub 目錄頁也提供「發送給 DeepSeek Harness 安裝」的提示語,可在 Harness 內讓助手按 wzsx150/dsh-session-speed-pill 協助安裝;具體步驟以你使用的 DSH 版本與助手能力爲準。
典型用法¶
1、安裝並重啓/刷新後,正常與助手對話。每輪迴復結束後,在操作行用量與時間之間會出現速度膠囊。
2、需要看分解指標時,點擊膠囊,在彈層中查看回答耗時、首字延遲、解碼與預填充估算、總用量等。
3、若要對比歷史各輪的操作行(複製、用量、時間、膠囊),打開 設置 → 通用 → 始終顯示消息操作行。
4、調試樣式或位置時,可在 DevTools 中查找 data-plugin="dsh-session-speed-pill" 的注入樣式表。
適用場景與注意¶
適合:需要單輪 tok/s 與耗時構成、排查慢回覆或工具佔用、在不動官方用量面板的前提下做推理側觀測的 DSH 用戶與智能體開發者。
注意:
- 只統計日誌裏已有的事件;若 provider 未回寫
dt時間線,仍有耗時但速度類指標可能爲—。 - 數值在本輪提交後才落定,膠囊不會隨流式 token 實時跳動,與官方投影行爲一致。
- 預填充相關指標爲估算下界,不宜與官方會話級用量直接對比做計費推斷。
- 位置與「始終顯示」依賴官方 DOM 屬性(如
data-actions-reveal、data-clock);宿主升級後若屬性變更,效果可能靜默退回默認,不報錯。 - 投影
apply若拋錯可能中斷對話;本插件對 fold 與apply做了防拋設計,任一 UI 條目也有錯誤邊界隔離。
與其他插件:不註冊 Host 服務、工具或 Web 路由;槽位與投影鍵均爲追加式 id;主要衝突面是另有插件註冊同名投影鍵 sessionSpeed 或改寫同一操作行 DOM 時可能互相影響,需自行驗證共存。
結尾¶
dsh-session-speed-pill 把「這一輪快不快、時間花在哪」從會話級用量裏拆出來,放在每輪迴復旁,並用與官方一致的 UI token 呈現;需要更細口徑時可讀彈層與倉庫 docs/metrics.md。
- 目錄頁:https://www.skillhub.cn/plugins/wzsx150/dsh-session-speed-pill
- GitHub:https://github.com/wzsx150/dsh-session-speed-pill