前言¶
DeepSeek Harness (DSH) 的設計理念是“一切皆插件”。在使用過程中,開發者通常面臨三個具體痛點:無法直觀看到每輪對話的金額消耗、需要手動編寫腳本才能處理文檔或管理複雜的編譯運行環境。dsh-light-tool (DLT) 是一個 DSH 永久插件,由 LLYlab 維護。它通過六個核心模塊解決上述問題:提供人民幣成本追蹤與賬戶餘額顯示、提供 PDF/Word/Excel 直接讀寫與預覽工具、管理編譯運行環境表與直接執行程序。
核心功能¶
DLT 包含以下六個主要模塊,每個模塊均可獨立開關:
- 人民幣成本:在對話結束後的用量膠囊旁邊顯示本輪花費,支持點擊查看 token 明細與會話累計。
- 賬戶餘額:右下角常駐顯示 DeepSeek 賬戶餘額,支持拖動與點擊強制刷新。
- 文檔工具:讓模型直接讀寫 PDF / Word / Excel / CSV,無需額外腳本;支持 PDF 往返鏈(轉 Word 改後轉回)。
- 右欄預覽:點擊工作區文檔可直接在右欄預覽,PDF 由 DSH 產品自帶渲染器負責。
- 環境表:管理工具鏈路徑(VS 安裝根 / Python / Office / Edge),支持自動探測與系統提示注入,避免模型自行探測。
- 直接執行:提供
dlt_run與dlt_build工具,支持在指定環境直接運行程序或編譯工程。
安裝與啓用¶
DLT 在 package.json 中聲明瞭 dsh.bundle.patch,安裝後會自動合併到當前 profile 的 bundle 層,無需手動修改配置文件。
推薦使用 npm 安裝:
dsh plugin --profile web add dsh-light-tool
安裝完成後,重啓 DSH,插件將出現在「設置 → 插件清單」中。
運行期開關¶
DLT 提供了一個運行期開關管理器,位於設置頁面。
- 即時生效:在設置頁修改總開關或分模塊開關,無需重啓,插件會立即卸載/加載對應的模型工具(如
dlt_run等)與界面組件。 - 持久化:開關狀態會寫入
<DSH_HOME>/dlt/switch.json(默認路徑),重啓後保持。若文件損壞,將回退到配置文件的默認值。 - 配置優先級:
cordis.patch.yml中的config僅提供首次運行的默認值;一旦在設置頁修改過開關,後續以switch.json爲準。
典型用法¶
DLT 提供了以下模型工具函數:
-
dlt_run(env, program, args, cwd, timeoutMs, stdin)
在指定環境執行程序,返回 stdout/stderr 和退出碼。例如env=msvc-x64會自動注入 vcvarsall,使cl和link命令可用。 -
dlt_build(target?, configuration?, platform?, rebuild?)
調用 MSBuild 編譯工程,支持指定目標、配置、平臺及重建選項。 -
dlt_doc_read(path, mode?, pages?, sheets?, range?, formulas?, maxRows?)
讀取文檔內容。支持 PDF(逐頁文本)、Word(段落+表格)、Excel(行列數據)及 CSV。 -
dlt_doc_write(path, action?, ops?, spec?, out?, chain?, replacements?)
寫入或修改文檔。寫操作會自動在同目錄備份爲.bak-YYYYmmdd-HHMMSS.<ext>。支持 PDF 往返鏈(chain=word)及各種文檔格式轉換。 -
dlt_doc_convert(path, to, ...)
格式轉換。例如to=docx|html(從 PDF),to=pdf(從 Word/Excel),to=png(PDF 某頁出圖)。
依賴與系統要求¶
DLT 依賴本機已安裝的軟件與 Python 環境:
- Python:必須安裝 Python 3.12。
- Python 庫:需安裝
pymupdf、pypdf、python-docx、openpyxl、pdf2docx、pywin32。 - Office 與 Edge:文檔導出與 HTML→PDF 轉換依賴本機已安裝的 Office COM 組件與 Microsoft Edge。
配置項¶
DLT 的配置通過 cordis.patch.yml 中的 config 字段進行整塊替換(非深合併)。主要配置項包括:
- 開關:
enabled(總開關)、cost、balance、documents、preview、environment、run(各模塊默認值)。 - 環境:
pythonEnv(解釋器路徑)、environments(環境表路徑覆蓋)。 - 緩存:
cacheDir(定價與餘額快照目錄)、balanceCacheMs(餘額緩存時長)。 - 執行:
docTimeoutMs、runTimeoutMs、maxOutputBytes(輸出上限)、defaultSolution、defaultConfiguration、defaultPlatform。
結尾¶
DLT 是一個功能完備的 DSH 永久插件,覆蓋了成本監控、文檔處理與開發環境管理的核心需求。通過運行期開關與配置覆蓋機制,它能夠靈活適配不同的工作流。更多實現細節與測試用例可參考其 GitHub 倉庫。