DeepSeek Harness (DSH) 的核心理念是“一切皆插件”。在實際開發中,頻繁引用大文件或網頁內容容易導致上下文窗口溢出,消耗大量 token。dsh-context-mode 正是爲了解決這一具體問題而生。它不做花哨的事,只專注於減少進入上下文的原始數據量,通過本地知識庫、路由攔截和沙箱執行三方面實現這一目標。
功能說明¶
本地知識庫索引¶
插件提供了一個基於 SQLite 的本地知識庫索引系統,支持 FTS5(全文搜索)。
- ctx_index:將文件或整個目錄切分成小塊存入知識庫。知識庫默認位於 ~/.context-mode/content。
- ctx_search:檢索知識庫片段,默認每次最多返回 12000 字節,而非整本書。
- ctx_fetch_and_index:抓取網頁並索引,原網頁字節不會進入上下文。
路由攔截¶
插件在工具執行前進行路由攔截,防止大文件撐爆上下文。
- 硬攔:直接拒絕 curl、wget、inline-fetch 等確定會拉大文件的命令。
- 軟引導:對於超過約 50KB 的文件,除非使用精確分段讀取(如帶 offset/limit),否則會被引導使用 ctx_index 或 ctx_search。
- 白名單:pwd、echo、ls、whoami 等無害命令直接放行。
沙箱執行¶
插件提供沙箱執行能力,原始數據留在沙箱,只返回結論。
- ctx_execute:在隔離沙箱中運行代碼,只將 console.log 的結果帶回。
- ctx_execute_file:將文件內容(通過 FILE_SRC 傳入)作爲輸入數據進行分析,只返回結論。
- ctx_batch_execute:支持並行運行多段分析,結果可自動入庫並檢索。
注意:沙箱沒有模塊系統,代碼中不能寫 require('node:fs') 或 import。沙箱是資源隔離,不承諾程序絕對讀不到宿主文件。
安裝與啓用¶
- 進入插件目錄並克隆倉庫(如果尚未克隆):
cd "$HOME/.dsh/plugins/dsh-context-mode"
git clone https://github.com/pharaohnie/dsh-context-mode.git .
- 添加插件並鏈接:
dsh plugin --profile web add "$HOME/.dsh/plugins/dsh-context-mode"
./relink-dsh-context-mode.sh
-
安裝完成後重啓 DSH(UI 重啓或重啓服務進程)。
-
驗證狀態:
運行ctx_doctor。關鍵項(tools、systemPrompt、FTS5、知識庫、門禁)應顯示爲 ✓。會話記憶捕獲(memoryCapture)和安全基線(securityEnabled)默認關閉,顯示 ✗ 是正常的。
運行要求與配置¶
- 環境要求:Node.js 版本不低於 24,DSH 版本爲 v0.1.1-rc.2。
- 知識庫位置:默認位於
~/.context-mode/content。 - 配置說明:插件不會壓縮已經在上下文裏的內容,只在入口進行引導。沙箱執行時,
FILE_SRC已經是文件完整內容,直接處理即可,無需再次讀取文件路徑。
總結¶
dsh-context-mode 通過將文件索引化、攔截洪水工具和沙箱化執行,有效緩解了 DSH 的上下文窗口壓力,讓上下文窗口得到更高效的利用。