前言¶
在 DeepSeek Harness(DSH)裏跑長會話時,工具輸出、歷史消息和系統注入會一起擠佔模型的上下文窗口。窗口接近上限時,壓縮策略會觸發,但「到底用了多少、還剩多少、哪一類內容佔大頭」往往只能靠猜。Claude Code 有 /context 這類命令做可視化;DSH 生態裏也需要同樣只讀、不發起模型調用的觀測手段。下面介紹社區插件 dsh-command-context(維護者 Lovenndme,分類爲客戶端),它在任意 agent 裏註冊全局斜槓命令 /context,用 Harness 自帶的 token 計量回放會話日誌,給出佔用比例、剩餘空間與按類別拆分。
這是什麼¶
dsh-command-context 爲 DSH 提供 /context 斜槓命令:在會話中輸入即可查看當前上下文窗口已用量、剩餘空間,以及 prompt 各組成部分的 token 佔比。數字來自 Harness 的 ctx.tokenMeter.measure 等能力,而不是插件自己平行記賬;README 寫明其思路受 Claude Code /context 啓發,但計量口徑與 DSH 一致。插件在 npm 包名爲 dsh-command-context,當前資料中版本爲 0.4.6,許可證 MIT,依賴 DSH 版本 >=0.2.1-rc.5 <0.3.0-0。
核心功能¶
總覽與進度條¶
執行 /context 後,報告默認以中文展示(/context en 切英文,/context zh 切回)。典型輸出包含:當前模型與路由、佔用條(用 # / - 而非塊字符,避免在 <pre> 裏行高錯位)、已用 / 總容量 token 與百分比,並標註 實測(measured,來自可複用的 provider usage)或 估算(estimated,回退到字符啓發式)。同時顯示剩餘空間,以及默認壓縮策略下的 壓縮觸發點(可達 compaction 後端時用其策略,否則標註 (default policy))。
按類別拆分¶
在 headline 佔用之下,表格按 surface node 歸類(不是對文本切片),每行共享同一分母(實測壓力),因此各類合計與標題一致;無法解釋的部分歸入 未計入差額(Unaccounted)。常見類別包括:系統提示、記憶文件、技能、注入上下文、用戶消息、助手回覆、工具結果、工具定義、MCP(mcp__* 工具結果及相關 schema 份額)等。README 用表格說明了各類對應的事件類型;例如帶 workspace instructions / skills are available 的 <system-reminder> 會從「用戶消息」中拆出,避免 AGENTS.md、技能目錄把用戶輸入行虛高。
最大節點:/context top [N]¶
要回答「具體是哪幾次 read / grep / 助手回覆在喫上下文」,可用 /context top [N](/context 3 等價於 top 3)。默認 N=5,上限 20。列表按 node token 排序;工具結果會從對應 tool/call 解析工具名,便於一眼看到 oversized 輸出。
客戶端展示¶
Host 側註冊命令並生成報告;Client 側(platform: web)僅對 context 命令佔用鍵位 conversation.chat.commandview,使結果 默認展開 顯示。其他命令仍用內置摺疊卡片。無 Chat UI 的組合裏 Host 仍可用,走通用卡片。
安裝與啓用¶
在目標 profile 下安裝(命令須與 README 一致):
dsh plugin --profile <profile> add dsh-command-context
也可在插件目錄的 bundle 裏插入 Host-only 條目(無 client 半部、無需額外 compose 服務):
- insert:
- id: dsh-command-context
name: dsh-command-context
安裝後命令 全局註冊,該 profile 下每個 agent 均可使用 /context。
典型用法¶
- 在會話輸入
/context,查看佔用條、剩餘空間與按類別表格。 - 需要定位大戶時輸入
/context top 10或/context 5。 - 英文界面需要時輸入
/context en;切回中文用/context zh。
README 中的示例輸出(數字爲說明用)如下結構,便於對照實際會話:
上下文佔用: deepseek-v4.1-flash (myapi)
[##########----------] 497.5k / 1.00M tokens (49.8%) 實測
剩餘空間: 502.5k tokens (50.2%)
按類別(合計 497.5k tokens)
系統提示 2.1k (0.4%)
...
斜槓面板裏該命令的描述爲中文:查看當前會話的上下文窗口占用,與中文 UI 下內置命令風格一致。
適用場景與注意¶
適合誰: 在 DSH 裏調試長對話、工具鏈或 MCP 的開發者;需要區分系統提示、技能注入、工具定義與歷史消息佔比時,此命令只讀、不追加 session 事件、不觸發模型調用。
計量與侷限(來自 README):
- 報告是 估算視角,不是賬單:標題在無可複用 usage 時爲啓發式;分項與標題可能不同尺度,未計入差額 反映的是差額而非獨立類別。標題本身爲啓發式時,表格可完全加總且無未計入行。
- 工具定義 行來自
contextBreakdown投影的toolsTokens,與上方 per-message 路由計價可能不一致;投影不可用時該行會省略。 - Host 依賴
ctx.commands.register、ctx.tokenMeter.measure、Session.requestContext等;缺少這些服務時插件 加載失敗,而不是打印錯誤數字。
安全與信任: 插件以當前 DSH 進程權限運行,會讀取會話計量與投影數據。安裝前請自行查看 GitHub 倉庫 源碼與 MIT 許可證;社區目錄 SkillHub 插件頁 爲獨立站點,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
經過上面的步驟,你可以在 DSH 會話裏用 /context 和 /context top 把上下文窗口占用拆清楚,並在有 Web 客戶端時直接展開閱讀報告。更多細節與 CHANGELOG 見倉庫 README(含 README.zh.md)。
- 目錄頁:https://www.skillhub.cn/plugins/Lovenndme/dsh-command-context
- GitHub:https://github.com/Lovenndme/dsh-command-context