DeepSeek Harness (DSH) 的客戶端插件體系允許擴展默認功能。默認的官方附件管線專門針對圖片優化,文檔(如 PDF、Word)無法通過該路徑上傳。直接內聯文本會佔用大量上下文。dsh-md-picker 插件通過將文檔轉換爲 Markdown 並存儲來解決這個問題,使智能體能夠通過文件工具按需讀取。
核心功能¶
- 圖片合成與注入:圖片通過合成 drop 注入官方附件管線,支持縮略圖預覽與數量/大小校驗。
- 文本類原樣暫存:
.txt、.md、.markdown文件讀出原始字節,服務端自動探測編碼(BOM/UTF-8/GBK 等)並統一按 UTF-8 暫存。 - 文檔轉 Markdown:支持
.doc/.docx、.ppt/.pptx、.xls/.xlsx、.pdf、.rtf、.odt/.ods/.odp、.csv、.epub等多種格式,通過服務端anydoc轉換爲 Markdown。 - 重複上傳去重:基於 SHA-256 內容指紋,相同內容僅返回既有路徑,不重複落盤。
- 安全與目錄保護:默認開放訪問,可選令牌鑑權(LAN 加固)。附件目錄創建時自動寫入
.gitignore,避免被納入版本控制。 - 交互與反饋:支持上傳進度顯示、任意位置拖放文件。正文只插入極短的回執(路徑、字符數、預覽),不佔用會話上下文。
安裝與配置¶
插件通過安裝命令部署,依賴宿主機環境。
dsh plugin add github:shangfr/dsh-md-picker
前置條件:
* 宿主機安裝 Node 20+(DSH Desktop 自帶 npx)。
* 倉庫需聲明 dsh.bundle(本包已聲明)。
首次轉換文檔時,npx 會自動下載 anydoc。
工作原理¶
插件在會話輸入框左側添加按鈕,交互邏輯如下:
- 圖片:合成 drop 注入官方 ComposerAttachments 接收。
- 文本:POST 到本地
/dsh-md-picker/store,探測編碼並按 UTF-8 暫存到工作目錄。 - 文檔:POST 到本地
/dsh-md-picker/convert,由anydoc轉換爲 Markdown,SHA-256 去重後落盤。 - 其他:列出“未處理”清單。
附件目錄解析順序:環境變量 DSH_MD_PICKER_DIR > 會話所屬 workspace > 當前工作目錄 > ~/.dsh/md-picker-attachments/。
限制與注意事項¶
- 單文件上限:25 MB,超出返回 413。
- 其他類型:非圖片、文本及支持轉換的文檔類型,回執會列出“未處理”清單。
- PDF 掃描:若 PDF 需 OCR,anydoc 退出碼 3,返回 422 提示需 OCR。
- 依賴環境:要求宿主機有 Node 20+ 與 npx。
適用場景¶
適合需要在 DSH 中處理文檔、且希望避免上下文溢出的開發者。插件以當前 dsh 進程權限運行,安裝前建議檢查源碼與許可證。
結語¶
該插件通過標準化文檔格式與本地暫存,解決了 DSH 官方附件管線對文檔支持不足的問題。