前言¶
在 DeepSeek Harness(DSH)裏,智能體讀取文件時通常需要拿到一個可訪問的路徑。DSH 自帶圖片拖拽處理,但 PDF、Word、Excel、ZIP、文本等非圖片文件如果只能手工複製路徑,體驗會偏重。dsh-file-drop 提供一個持久插件入口:把非圖片文件通過拖拽或點擊上傳到當前會話上下文,把文件路徑直接寫入輸入框草稿,agent 即可讀取。
這是什麼¶
dsh-file-drop 是 DeepSeek Harness 持久插件,倉庫爲 dannyvan/dsh-file-drop,許可證爲 MIT,Node 引擎要求 >=22。
它解決的問題比較直接:把非圖片文件變成 DSH 輸入框裏可編輯、可繼續輸入的路徑文本。文件類型包括 PDF、Word、Excel、ZIP、文本等。插件不會把文件“變成圖片”,而是儘量拿到可讀取的文件路徑或工作區路徑。
核心功能¶
下面介紹已覈實的主要能力。
三種入口¶
1、支持拖拽到窗口任意位置上傳非圖片文件。
2、支持點擊回形針按鈕打開系統文件選擇器並多選。
3、支持 hover 氣泡提示選擇文件或將文件拖到窗口任意位置。
路徑獲取策略¶
插件按可用性優先處理文件:
1、桌面殼直取 Finder 原始路徑,實現零上傳。
2、拖拽自帶 text/uri-list 路徑,例如 Obsidian 拖筆記。
3、瀏覽器或無殼時通過 POST /api/dsh-file-drop 上傳到 <會話工作區>/.dsh-drops/,並返回工作區路徑。
寫入與攔截¶
插件在 window 捕獲階段攔截拖拽事件,先於 DSH 自帶 document 級圖片拖拽處理。
文本類按文本直寫,二進制經 base64 解碼寫真實字節。
安裝與啓用¶
先確認 Node 環境滿足 >=22。下面命令使用本地 link 路徑安裝:
dsh plugin --profile web add "link:/Users/fanxiaokang/dsh-file-drop"
執行後重啓 dsh web 生效。
典型用法¶
經過上面的步驟後,可以使用以下入口。
拖拽上傳¶
把文件拖到窗口任意位置,出現全屏高亮浮層後鬆手即可獲取文件。
回形針按鈕¶
點擊輸入框工具行左側 28px 圓形原生風格回形針按鈕,會彈出系統文件選擇器,支持多選。
hover 氣泡¶
hover 時氣泡顯示「點擊選擇文件 · 也可把文件拖到窗口任意位置」,1.5s 自動消失,每次 hover 循環。
使用桌面殼直取路徑¶
使用桌面殼時,通過 window.dshDesktop 的 webUtils.getPathForFile 直取原始路徑。
拖拽 Obsidian 筆記等自帶 text/uri-list 路徑時,也可以直接取路徑。
瀏覽器或無殼上傳¶
瀏覽器或無殼時,文件通過下面接口保存到會話工作區:
POST /api/dsh-file-drop
保存位置爲:
<會話工作區>/.dsh-drops/
返回工作區路徑。
可選桌面殼¶
配套桌面殼是可選、推薦組件。啓動命令如下:
cd ~/dsh-desktop/
npm start
它會複用或拉起 dsh web,地址爲:
127.0.0.1:3080
適用場景與注意¶
適合在 DSH 網頁界面裏處理非圖片文件,尤其是希望把 PDF、Word、Excel、ZIP、文本等文件路徑快速寫入輸入框的場景。
使用前需要注意:
1、單文件限制爲 ≤ 25MB,這是上傳兜底路徑的限制;殼直取路徑不受限。
2、殼直取路徑如果指向工作區外文件,agent 讀取需要沙箱放行;workspace-write 模式下需要權限配置。
3、插件會以當前 dsh 進程權限運行。安裝前建議檢查源碼與許可證。
4、安裝命令使用本地 link 路徑,且需要重啓 dsh web 生效。
5、配套桌面殼爲可選組件;不使用桌面殼時,瀏覽器路徑會走上傳兜底。
結尾¶
dsh-file-drop 的價值在於把非圖片文件進入 DSH 會話的步驟簡化爲拖拽或點擊,並儘量讓 agent 直接拿到可用路徑。目錄頁與倉庫地址如下:
https://www.skillhub.cn/plugins/dannyvan/dsh-file-drop
https://github.com/dannyvan/dsh-file-drop