前言¶
在 DSH(DeepSeek Harness)Web 界面裏寫 prompt 時,如果 agent 需要讀取本機文件,常見做法是先手動輸入路徑,或者把文件內容複製進消息。這個流程有兩個常見麻煩:路徑容易寫錯,內容複製也會丟失原始文件位置;圖片拖入時還可能被內置圖片上傳流程接走。
dsh-drop-in 針對 DSH Web 輸入框做文件接入:從系統文件管理器拖入或粘貼文件後,文件會以原生引用氣泡和文件卡片隨消息發送,並把絕對路徑交給 agent。下面介紹它的功能、安裝方式和典型用法。
這是什麼¶
dsh-drop-in 是面向 DSH Web composer 場景的插件,核心是把拖入或粘貼的文件變成可發送的引用,而不是隻把圖片走原生上傳鏈路。倉庫路徑爲 lbl61/dsh-drop-in,許可證爲 MIT。
它的主要作用是:
- 讓文件在輸入框中顯示爲引用氣泡或上方 chip bar。
- 發送後在用戶氣泡中渲染文件卡片。
- 把文件的絕對路徑作爲引用交給 agent。
- 在 DSH Desktop 和普通瀏覽器下分別提供不同的路徑或 fallback 行爲。
核心功能¶
- 支持從系統文件管理器拖入任意文件/文件夾;圖片按文件處理,官方圖片拖入覆蓋不再搶佔事件。
- 輸入框聚焦時,拖入或粘貼的文件會在光標處插入爲原生引用氣泡,也支持在已有文本中間插入。
- 輸入框未聚焦時,文件顯示在輸入框上方的
chip bar,包含圖標、名稱、大小、路徑狀態,可移除,並按路徑去重。 - 發送時,引用會擴展爲包含絕對路徑的引用;用戶氣泡渲染爲帶類型徽章的文件卡片。
- 支持粘貼圖片/文件;粘貼的二進制內容以 base64 持久化到
.dsh-drops/<sessionId>/。 Enter、Ctrl+Enter和發送按鈕都可以發送;agent 運行中發送也支持,並渲染相同文件卡片。- 提供
dropped_files工具,讓 agent 列出仍未發送的拖入文件。 - DSH Desktop 下絕對路徑來自 preload bridge;普通瀏覽器 fallback 會把文本文件複製到 workspace 的
.dsh-drops/。
安裝與啓用¶
使用 v1.3.0 安裝命令:
dsh plugin --profile web add https://github.com/lbl61/dsh-drop-in/archive/refs/tags/v1.3.0.tar.gz
插件提供 enabled 主開關。關閉後,拖放/粘貼會回退到內置行爲。
典型用法¶
1、從 Explorer 拖文件到聊天頁,或在 composer 中粘貼圖片/文件。
2、如果 composer 聚焦,文件作爲原生引用氣泡插入光標處;否則顯示在輸入框上方 chip bar。
3、輸入消息後,通過 Enter、Ctrl+Enter 或發送按鈕發送;agent 運行中也可發送。
4、發送後,氣泡顯示文件卡片;agent 收到絕對路徑引用(@[name](path) 或“拖入文件”塊)並可讀取文件。
適用場景與注意¶
適合在 DSH Web 中頻繁引用本機文件、文件夾、圖片或文本的 agent 開發場景。它適合希望把文件路徑作爲消息一部分發送,而不是手動輸入路徑或粘貼內容的流程。
注意:
- 插件會以當前
dsh進程權限運行,安裝前應檢查源碼、許可證以及本機權限邊界。 - DSH Desktop 依賴 Electron preload bridge 提供絕對路徑;Electron ≥ 32 已移除
File.path。 - 普通瀏覽器無 preload bridge 時,文本文件會複製到 workspace 的
.dsh-drops/;粘貼二進制經file-copy路由持久化,並有基於 session cwd 的 workspace-write sandbox policy。 - 如不需要插件行爲,可使用
enabled關閉,使拖放/粘貼回退到內置行爲。 - 卸載需要從
dsh.profile.bundles數組移除、刪除對應node_modules目錄,並重啓dsh web。
鏈接¶
- GitHub:
https://github.com/lbl61/dsh-drop-in - 插件線索中給出的目錄頁:
https://www.skillhub.cn/plugins/lbl61/dsh-drop-in