前言¶
DeepSeek Harness(dsh)是 DeepSeek 開源的智能體運行時,設計原則是「一切皆插件」:模型、工具、會話、沙箱和界面都可以在配置層替換,不必改框架源碼。官方倉庫目前仍標爲開發者預覽,接口會變。社區另有一份獨立的插件目錄 deepseek-harness-plugin.com,用來檢索第三方插件;該站點在關於頁寫明,與 DeepSeek 或幻方(High-Flyer)沒有從屬、背書或贊助關係,也不是官方應用商店。
在 Web 界面裏用 DeepSeek 這類純文本模型寫代碼時,截圖和文檔並不好送進去。圖片會走模型原生附件通道,發送前被宿主預檢攔住,輸入框彈出系統提示:「當前模型不支持圖片,請切換支持圖片的模型」。底層對應 dsh-host-apiproxy 的 attachment-error,倉庫文檔裏的示例是 Model "deepseek-v4-flash" does not support image input.。PDF、Office、壓縮包、視頻則根本不能當附件發出去。
視覺工具箱(例如 dsh-vision-toolkit)能讓純文本模型讀取工作區裏的文件,但工具接口認的是路徑。於是常見流程變成:先把文件存進工作區,再把路徑手打進消息。loudMore 維護的 dsh-drop-to-path 把後半步收進發送瞬間:附件欄仍是原生體驗,點發送時再把圖片和文件寫成工作區路徑。
這是什麼¶
dsh-drop-to-path 是一款 DeepSeek Harness 的工具與能力插件,npm 包名爲 @dsh-external/dsh-drop-to-path,當前倉庫版本爲 0.1.0,許可證 MIT,主要語言 JavaScript。維護者是 loudMore,源碼在 loudMore/dsh-drop-to-path。社區目錄把它歸在「工具與能力」;package.json 裏 dsh.client.platform 聲明爲 web,面向 Web 界面,不是無界面的 headless 運行方式。
它解決的問題可以收成一句:把拖入或粘貼的圖片、文檔、壓縮包、音視頻,在發送時變成工作區文件路徑,讓純文本模型用視覺或文檔工具去讀,而不是走模型原生的圖片附件通道。
截至 2026 年 8 月 18 日查閱,GitHub 顯示 11 星;社區目錄頁同期顯示 7 星。星標會變,安裝前仍以倉庫源碼爲準。
核心功能¶
發送時才轉路徑¶
添加文件時,輸入框裏不會立刻出現路徑字符串。圖片繼續走原生附件卡片(可預覽、可移除);PDF、Office、zip、視頻、音頻等顯示爲附件欄裏的方塊標籤(帶格式圖標,懸停看全名,可叉掉)。點發送後,插件把文件上傳到會話工作區的 .drops/ 目錄,再把路徑和你輸入的文字拼成一條純文本消息。模型側看不到 image 附件塊,因此圖片准入預檢不會被觸發。
圖片、文件以及二者混合的一批,會按順序上傳,最後以一段路徑文本一次送達。上傳失敗不會靜默吞掉消息:界面會給出可見提示,再回退到原生髮送路徑。
支持的類型與體積上限¶
倉庫 README 與宿主側源碼 lib/index.js 對擴展名白名單和體積上限的約定一致:
| 類型 | 擴展名 | 上限 | 界面 |
|---|---|---|---|
| 圖片 | png jpg jpeg webp gif |
30MB | 原生附件卡片,發送時轉路徑 |
| 文檔 | pdf doc docx xls xlsx ppt pptx txt md csv json |
100MB | 附件欄方塊標籤,發送時附加路徑 |
| 壓縮包 | zip |
100MB | 同上 |
| 視頻 | mp4 mov webm mkv avi |
100MB | 同上 |
| 音頻 | mp3 wav flac m4a |
100MB | 同上 |
不在白名單裏的擴展名會被拒絕。文件名會做清洗(去掉路徑分隔符和控制字符,替換 Windows 非法字符),再寫入 .drops/,避免路徑穿越。
和工作區、宿主路由的關係¶
宿主側註冊 POST /_dsh/drop-to-path/import,接收 { name, dataBase64 },校驗後寫入工作區。工作區默認從 $DSH_HOME/storages/workspace.json(未設置 DSH_HOME 時回退到 ~/.dsh)裏取 updatedAt 最新的一條;客戶端也可以隨請求帶上當前會話的絕對路徑,非絕對路徑不會被信任。瀏覽器側包裝 conversation.sendSession,在真正提交前完成上傳和路徑拼接。
和相近插件的分工¶
README 把它和 dsh-drag-and-drop 寫成互補關係,後者倉庫也確實存在:
dsh-drag-and-drop:拖放後在輸入框插入原始路徑,不復制文件,適合引用工作區裏已有的文件;不支持粘貼,圖片仍可能按附件發送,純文本模型下仍會被拒。dsh-drop-to-path:複製到工作區、發送時轉路徑,支持粘貼和拖入,並給非圖片文件做附件欄方塊。
看圖、OCR、像素對比這類能力不在本插件裏。作者建議搭配 dsh-vision-toolkit:本插件負責「文件變成路徑」,視覺工具箱負責「路徑變成可讀結果」。二者都是社區插件,需要各自安裝。
安裝與啓用¶
社區目錄頁給出的安裝命令如下,在 DeepSeek Harness 終端中運行:
dsh plugin add github:loudMore/dsh-drop-to-path
需要可復現安裝時,按目錄頁說明固定 commit 哈希:
dsh plugin add github:loudMore/dsh-drop-to-path#commit
把 #commit 換成倉庫裏實際的提交哈希。目錄頁同時提醒:插件以當前 dsh 進程的權限運行,安裝時可能執行代碼;安裝前應檢查源碼倉庫和許可證。
倉庫 README 補充了兩點,和 package.json 的 Web 聲明一致。一是建議顯式指定 Web profile,本地檢出時類似:
dsh plugin --profile web add /path/to/dsh-drop-to-path
二是安裝後需要重啓 Web profile(重新打開啓動器,或重啓 dsh web)纔會生效。插件本身沒有配置項。
前置條件按 README:已安裝 DeepSeek Harness(Web profile)、Node.js 和 dsh CLI。官方啓動 Web UI 的方式見 deepseek-ai/deepseek-harness,例如 npx @deepseek-ai/dsh web。
典型用法¶
倉庫給出的操作順序如下。
- 像平時一樣粘貼或拖入圖片,附件卡片照常顯示,可以預覽或叉掉。
- 拖入或粘貼 PDF、Office、zip、視頻、音頻等,附件欄出現帶格式圖標的方塊,和圖片縮略圖並排。
- 需要的話先寫一句說明(例如「對比這兩張圖」或「提取這份 xlsx 的表頭」),再發送。此時不會提交圖片附件;文件被上傳,工作區路徑自動接到消息末尾。
- 若已安裝
dsh-vision-toolkit,Agent 可以用vision_glance、vision_pixel_diff等工具讀圖,用 PDF / 表格類工具處理文檔。
README 裏的場景對照也限於作者描述,不是第三方評測:看圖問答從「截圖 → 存工作區 → 手寫路徑」變成「截圖 → Ctrl+V → 回車」;分析 PDF / xlsx / 視頻則可以直接拖入再發送。
文件會留在工作區 .drops/ 下,需要時自行清理。
適用場景與注意事項¶
比較適合:在 DSH Web 界面裏用純文本模型,又經常要把截圖、PDF、表格或壓縮包交給 Agent 處理的人。它不替代視覺模型,也不解析文件內容;沒有配套的文檔/視覺工具時,模型拿到的只是路徑字符串。
使用前需要接受幾條邊界,這些都寫在倉庫文檔裏,不是推斷。
- 平臺:只聲明瞭 Web。headless 或其它 profile 不要按同一套界面操作去預期。
- 兼容性:作者在倉庫環境中驗證過 DSH
0.1.0-rc.6。插件依賴若干未公開內部接口(服務名、方法簽名、存儲格式、DOM 結構),DSH 升級後可能失效。官方 Harness 也寫明開發者預覽會有破壞性變更。升級前應閱讀倉庫中的ADAPTING.md,裏面有失效症狀和排查步驟。 - 權限與安全:插件以當前 dsh 進程權限運行,會把拖入的文件寫進工作區。安裝前檢查源碼和 MIT 許可證;不要對不信任的來源執行
dsh plugin add。目錄頁建議固定 commit,避免每次安裝都跟到未知新提交。 - 體積與類型:超出 30MB / 100MB 或擴展名不在白名單,上傳會被拒絕。
- 工作區定位:默認取註冊表裏最近更新的工作區。若 Agent 回報找不到文件,先覈對返回路徑是不是當前會話工作區,而不是進程當前目錄。
小結¶
dsh-drop-to-path 做的事情很窄:保住 DSH Web 輸入區的附件體驗,在發送時把圖片和文件落成工作區路徑,讓純文本模型繞開「不支持圖片」的預檢,並把 PDF 等原本無法當附件發送的文件交給後續工具。它由 loudMore 維護,MIT 許可,需要 Web profile,並建議與 dsh-vision-toolkit 一起用。
目錄頁與源碼:
- 社區目錄:https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-drop-to-path/
- GitHub:https://github.com/loudMore/dsh-drop-to-path