前言¶
在 DeepSeek Harness WebUI 中,Agent 對圖片的處理流程較爲成熟,但開發者常需要將代碼片段、配置文件或文檔傳遞給 Agent 進行分析。現有方案中,動態插件依賴於會話狀態,進程重啓後即失效;而內置圖片上傳功能無法覆蓋普通文件。dsh-chatfile 插件解決了這一痛點,它允許將任意文件持久化保存到會話工作區的 uploads/ 目錄,並在輸入框自動插入路徑引用,供 Agent 直接讀取。
插件簡介¶
dsh-chatfile 是一個 DeepSeek Harness WebUI 插件。由 sooya7 維護,採用 MIT 許可證。核心功能是在聊天界面提供文件上傳能力,支持拖拽與按鈕選擇,上傳後的文件通過隨機 token 路由提供安全的下載訪問。
核心功能¶
該插件包含以下具體能力:
- 拖拽與選擇上傳:支持將任意文件拖拽至頁面任意位置鬆開,或在輸入框工具行點擊「📎」按鈕進行多選。
- 上傳狀態反饋:輸入框上方會顯示每個文件的上傳進度(上傳中/成功/失敗)。成功後可進行下載或移除操作。
- 自動路徑引用:上傳完成後,輸入框內會自動追加類似
[上傳文件] uploads/xxx.pdf(名稱,大小)的文本。Agent 接收到該指令後,可使用文件工具讀取該路徑下的內容。 - 圖片兼容性:純圖片的拖拽操作仍走 DSH 內置的圖片處理流程,互不干擾。
- 安全下載機制:文件下載地址由不可猜測的隨機 token 生成,且文件名、大小、類型均在 Host 端進行校驗,防止路徑穿越等風險。
安裝與啓用¶
安裝完成後需重啓 Web 服務以使組合生效。
本地安裝:
dsh plugin --profile web add file:/絕對路徑/dsh-chatfile
從 GitHub 安裝:
dsh plugin --profile web add "git+https://github.com/sooya7/dsh-chatfile.git"
重啓服務:
安裝命令執行後,需重啓 dsh web 服務。
dsh web restart
# 或
sudo systemctl restart dsh-web.service
重啓後插件持久可用,刷新頁面或重啓進程均不丟失。
典型用法¶
安裝並重啓服務後,即可在聊天界面使用該插件:
- 拖拽上傳:將本地任意文件拖拽至聊天框區域鬆開,文件即會保存到當前會話工作區的
uploads/目錄。 - 按鈕上傳:點擊輸入框工具行新增的「📎」按鈕,在文件選擇器中選擇多個文件上傳。
注意事項¶
- 單文件限制:Host 端校驗單文件大小上限爲 50MB。
- 源碼審查:插件以當前 dsh 進程權限運行,安裝前建議查看源碼與許可證(MIT)。
- 持久化:該插件爲持久化插件,與僅存在於會話中的動態插件不同。
結語¶
dsh-chatfile 通過簡單的拖拽操作,爲 DSH WebUI 增加了通用文件上傳能力,使 Agent 能夠直接讀取本地文件。更多實現細節與源碼可參考項目地址。