dsh-file-drop:把非圖片文件路徑寫入 DSH 輸入框

前言

在 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.dshDesktopwebUtils.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
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜