DeepSeek Harness (DSH) 採用插件化架構。在對話場景中實現文件傳輸是常見需求。dsh-file-bridge 插件提供了這一能力,支持通過附件按鈕上傳、工具下發以及路徑跳轉三種方式實現雙向文件交換。
核心功能¶
- 用戶上傳:通過輸入框附件按鈕上傳文件,圖片自動壓縮至 1600px 並支持原生預覽,非圖片文件生成訪問鏈接。
- Agent 下發:Agent 調用
send_files工具,圖片渲染爲可點擊預覽,其他文件提供下載鏈接。 - Explorer 跳轉:在回覆正文中使用反引號包裹源文件的絕對路徑(如
/root/proj/a.md),點擊可喚起側邊欄文件管理器。 - 靜態服務:提供
/dsh-files/*只讀靜態服務,具備防路徑穿越能力和中文文件名 RFC 5987 編碼支持。
安裝與配置¶
使用官方命令安裝插件:
dsh plugin --profile web add 'github:fengs2021/dsh-file-bridge'
安裝後需重啓 Web 服務:
systemctl restart dsh-web
插件通過 cordis.patch.yml 配置文件進行初始化,需設置以下參數:
- insert:
- id: file-bridge
name: dsh-file-bridge
config:
publicBase: "http://你的公網地址:端口" # 生成文件 URL 的基礎地址,必須配置
filesDir: "/root/.dsh/files" # 共享文件目錄(默認 ~/.dsh/files)
使用方法¶
- 用戶上傳:用戶點擊輸入框附件按鈕選擇文件,系統自動處理圖片壓縮或生成鏈接。
- Agent 下發與跳轉:Agent 調用
send_files工具後,在回覆中使用反引號包裹工具調用的源文件絕對路徑。該路徑必須與回覆在同輪對話中,且必須是工具調用的源路徑。
注意事項¶
- Android WebView:App 端需實現
WebChromeClient.onShowFileChooser方法以支持文件選擇。 - Nginx 配置:部署環境需配置 Nginx 的
client_max_body_size,建議設置爲 25m(默認 1m 會導致 413 錯誤)。 - 依賴鏈接:插件目錄需鏈接
node_modules/@deepseek-ai/dsh-tools,否則會報錯。 - 路徑生效規則:反引號路徑必須是工具調用的源路徑且與回覆同輪生效。
結語¶
該插件通過附件按鈕、工具調用和路徑跳轉三種方式,爲 DSH 對話場景提供了基礎的文件交互能力。開發者可根據需求在 cordis.patch.yml 中配置文件存儲路徑和公網地址。更多細節見項目主頁:GitHub