前言¶
DeepSeek Harness (DSH) 的 Web 聊天界面默認只支持拖拽圖片。對於需要處理 PDF、配置文件或數據集的開發者來說,這帶來了額外的操作成本。dsh-drop-any-file 插件解決了這個問題,它攔截了瀏覽器的拖拽事件,讓非圖片文件也能被保存到當前會話的工作區。
插件簡介¶
這是一個由 Zenjibad 維護的插件,基於 MIT 協議。它的核心功能是讓 DSH 支持任意文件類型的拖拽上傳,並將非圖片文件持久化存儲,方便智能體 Agent 讀取和處理。
核心功能¶
- 支持任意文件類型:不再限制爲圖片,PDF、zip、txt、csv、bin 等文件均可接受。
- 保存到工作區:非圖片文件會被保存到當前活躍會話的 workspace 目錄,Agent 可以通過標準工具讀取。
- 圖片處理不變:僅包含圖片的拖拽操作保持原有行爲,不干擾內置功能。
- 繞過限制:攔截了 Composer 的圖片-only 拒絕邏輯,防止錯誤提示彈出。
- 交互反饋:拖拽時顯示主題化的覆蓋層,保存成功或失敗會彈出 Toast 通知。
- 安全限制:對文件名進行清洗,並對文件大小進行限制(最大 80MB body / 60MB file)。
- 主題適配:覆蓋層和通知樣式跟隨 DSH 的淺色/深色模式。
安裝與啓用¶
通過命令行安裝,插件會作爲 Profile bundle 持久化:
dsh plugin --profile web add github:Zenjibad/dsh-drop-any-file
安裝完成後,必須硬刷新瀏覽器標籤頁(Ctrl+F5)才能生效。
使用示例¶
- 在 DSH Web 界面打開一個會話。
- 將非圖片文件(例如 PDF 或 .txt)拖拽到聊天窗口上。
- 觀察覆蓋層提示,文件會被保存到當前會話的工作區目錄。
注意事項¶
- 依賴環境:需要 DSH 版本 ≥ 0.1 且啓用 Web Profile。
- 會話要求:如果當前沒有打開會話,插件處於閒置狀態,不會生效。
- 文件大小:超過 60MB 的文件會被拒絕。
- 刷新要求:安裝或更新客戶端插件後,必須執行硬刷新(Ctrl+F5),熱更新不會加載新插件。
- 無配置文件:插件行爲由源碼中的常量控制,沒有獨立的配置文件。
鏈接¶
- GitHub 倉庫:https://github.com/Zenjibad/dsh-drop-any-file
- 插件目錄:https://www.skillhub.cn/plugins/Zenjibad/dsh-drop-any-file