dsh-web-file-upload:給 DSH Web 界面補上任意文件上傳

前言

用 DeepSeek Harness 的 Web 界面跟 agent 對話時,如果你想讓它讀一份 PDF、一段代碼或一個壓縮包,會遇到一個限制:官方 Web 界面目前只支持圖片粘貼/拖拽,非圖片文件會提示「只能粘貼圖片」。文件進不了會話工作區,agent 自然讀不到內容。

社區插件 dsh-web-file-upload 補的就是這塊。下面介紹它的功能、安裝方式和實現原理。

這是什麼

dsh-web-file-upload 是爲 DeepSeek Harness Web 界面提供的文件上傳插件:通過按鈕、粘貼、拖拽三種方式上傳任意文件(PDF、文檔、代碼、壓縮包等),文件保存到會話工作區的 uploads 目錄,並自動把文件引用帶入消息,讓 agent 直接讀取。

  • GitHub 倉庫:rrvvvnnn/dsh-web-file-upload
  • npm 包名:@iamroven/dsh-web-file-upload,版本 0.1.0
  • 許可證:MIT(README 與 package.json 均聲明)
  • peerDependencies:@deepseek-ai/cordis ^4.0.1

核心功能

  • 輸入框內的文件夾按鈕(位於模型選擇器左側),點擊選擇文件,支持多選
  • 粘貼文件:在聊天框 Ctrl+V(從資源管理器複製的文件)自動上傳
  • 拖拽文件進聊天框自動上傳
  • 上傳的文件以卡片形式顯示在輸入框內;應用可選補丁後可與圖片縮略圖同區並列
  • 圖片與文件互斥,不能同時添加,避免佈局衝突
  • 文件落地到會話工作區 uploads 目錄,agent 可直接讀取
  • 消息發出後,輸入框裏的文件卡片自動清空,不殘留到下次對話
  • 已發送文件在聊天記錄中以圓角卡片顯示,點擊可直接打開

安裝與啓用

一條命令完成下載和註冊:

dsh plugin --profile web add @iamroven/dsh-web-file-upload

插件聲明瞭 dsh.bundle.patch,所以 dsh plugin add 會自動把本包追加爲 profile 的 bundle 層,不需要手動往 cordis.patch.yml 里加行。

安裝後重啓 web 服務:關掉「DSH Web Server」窗口,再雙擊快捷方式,然後硬刷新瀏覽器即可。

關於補丁,分兩種情況:

1、不應用補丁也能正常使用,上傳、粘貼、拖拽、agent 讀取都正常,文件卡片顯示在輸入框底部。

2、可選補丁(倉庫內 CORE-PATCH.md)帶來更優體驗:文件卡片與圖片縮略圖同區並列、聊天記錄裏顯示可點擊的文件卡片。

使用流程

1、啓動 web 界面後,輸入框右側(模型選擇器左邊)出現文件夾按鈕。

2、點擊選文件,或直接把文件拖進聊天框 / Ctrl+V 粘貼。

3、文件以卡片出現在輸入框內,輸入框會附帶一行「附件: 文件名」。

4、補上你的問題,發送。agent 會去 uploads 目錄讀取文件內容。

5、發送後輸入框卡片自動清空;聊天記錄中你發出的消息裏會顯示文件卡片,點擊可直接打開文件。

實現原理

這是一個單包雙面(Dual-face)插件,服務端和瀏覽器端各佔一半。

宿主半邊是 lib/index.js,註冊兩個 webServer 路由:

POST /dsh-upload/put   接收 base64 文件載荷,寫入會話工作區的 uploads 目錄
GET  /dsh-upload/file  按文件名返回文件內容,供聊天記錄卡片點擊打開

客戶端半邊是 lib/client.js,一個 cordis 客戶端插件:在輸入框插槽註冊文件夾按鈕與文件卡片,監聽 document 級 paste / drag 事件,通過 fetch 調宿主路由完成上傳。

包內目錄結構如下:

package.json
LICENSE
README.md
CORE-PATCH.md
lib/index.js   宿主半邊(服務端路由)
lib/client.js  客戶端半邊(瀏覽器 bundle)

適用場景與注意

適合的場景很明確:你在用 DSH 的 Web 界面,希望讓 agent 直接讀本地文件——讓 agent 分析 PDF、審閱代碼、查看壓縮包內容——而不需要自己先把文件複製進工作區。

使用時有幾點要留意:

1、圖片與文件互斥,不能同時添加,這是刻意的佈局約束。

2、插件以當前 dsh 進程權限運行,具備寫會話工作區的能力。安裝前建議閱讀源碼並確認許可證;本包爲 MIT。

3、GitHub 倉庫歸屬爲 rrvvvnnn,而 npm 包名前綴與 package.json 的 author 字段爲 @iamroven / iamroven,兩者不一致。維護者身份請在安裝前自行覈實。

結尾

dsh-web-file-upload 用一條安裝命令,把 DSH Web 界面缺失的任意文件上傳能力補齊,文件直達會話工作區,agent 開箱即讀。對經常需要讓 agent 處理本地文檔和代碼的人來說,是一個小而實用的補充。

  • 社區目錄頁:https://www.skillhub.cn/plugins/rrvvvnnn/dsh-web-file-upload
  • GitHub 倉庫:https://github.com/rrvvvnnn/dsh-web-file-upload
羽毛球分组比赛记分
小程序二维码

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

小夜