前言¶
在 DeepSeek Harness(DSH)裏跑 Agent 時,工作區文件和會話附件往往要在宿主側處理;若通過配對的遠程 Web 界面操作,原先缺少清晰的上傳、下載入口,手機或另一臺電腦上的文件很難按會話送進 Agent,也不便把 workspace 裏的產物拉回本機。dsh-rfiles 是裝在 DSH 宿主 上的 bundle 插件,爲 Web GUI 增加 文件(Files) 面板,提供分塊可續傳上傳、發送給 Agent、僅保存到工作區、工作區文件瀏覽下載,以及會話日誌 ZIP 導出;與 @linxin666/dsh-remote-web-ui 配套使用,不修改 DSH 核心。本地桌面使用 Web GUI 時不必安裝遠程 UI 插件。
這是什麼¶
- 名稱:
dsh-rfiles(npm 包名,倉庫 Aperops/dsh-rfiles) - 維護者:Aperops
- 分類:聯網工具(社區目錄 SkillHub 條目)
- 版本(資料記載):0.1.0;許可證 GPL-3.0-only
- 定位:宿主側插件,註冊
rfiles路由與小部件;傳輸與鑑權沿用 DSH 連接,路徑限制在會話工作區內。
核心功能¶
| 能力 | 行爲概要 |
|---|---|
| 發送給 Agent | 多選文件、分塊進度;上傳完成後將真實附件與可選文字排隊到選定會話 |
| 只存入工作區 | 默認寫入 <workspace>/.uploads/,不發送提示;同名文件自動改爲 name (n).ext |
| 拍照 / 相冊 | 依設備能力;PNG/JPEG/WebP/GIF 且 ≤ 20 MiB 可走圖片附件,其餘爲文件收據 |
| 下載工作區文件 | 目錄與麪包屑,每層最多 500 項;優先瀏覽器原生下載,另有 fetch/Blob 兜底 |
| 會話日誌 ZIP | 調用 DSH 會話導出接口(含選定會話、子會話與附件對象),非整工作區打包 |
| 中斷上傳續傳 | 瀏覽器續傳記錄與宿主暫存仍在時,從已確認字節偏移繼續 |
面板會列出活躍會話,首次默認選最新會話。上傳、發送、下載前請覈對面板上的會話選擇器,不要假設它與當前對話視圖始終一致。
默認限制(可在 profile 的 cordis.patch.yml 覆蓋):8 MiB/塊、2 GiB/單文件、10 GiB 暫存預算;暫存目錄默認 $DSH_HOME/rfile-transfers/<uploadId>/。
環境與要求¶
dsh-rfiles 0.1.0 的 package.json 聲明:
- DSH
>=0.2.1-rc.3 - Node.js
>=22.19.0
安裝位置是實際運行 Web GUI 的 DSH 宿主 profile。配對遠程使用時,需另行安裝並配置 @linxin666/dsh-remote-web-ui 並完成設備配對。
插件在 DSH 進程權限下運行;安裝前建議閱讀倉庫源碼與 GPL-3.0-only 許可條款。
安裝與啓用¶
在 設置 → 插件(Settings → Plugins) 中從 npm 安裝 dsh-rfiles 並確認 bundle 已啓用。也可使用 CLI(若 profile 不是 web,請替換):
dsh plugin --profile web add dsh-rfiles
其他來源(無需構建):
# 已發佈的 Release 包
dsh plugin --profile web add \
https://github.com/Aperops/dsh-rfiles/releases/download/v0.1.0/dsh-rfiles-0.1.0.tgz
# 源碼倉庫或本地包
dsh plugin --profile web add git+https://github.com/Aperops/dsh-rfiles.git
dsh plugin --profile web add /path/to/dsh-rfiles-0.1.0.tgz
bundle 內 cordis.patch.yml 會註冊 rfiles 插件行,一般無需手改 patch。安裝後重啓 DSH,刷新本地或配對遠程頁面,打開會話,點擊右下角 文件(Files)。0.1.0 面板按鈕爲中文。
可選配置示例(用戶 cordis.patch.yml 層):
- id: rfiles
config:
chunkBytes: 8388608
maxFileBytes: 2147483648
stagingBytes: 10737418240
uploadDir: .uploads
transferRoot: '' # 默認 $DSH_HOME/rfile-transfers
典型用法¶
上傳併發送給 Agent¶
- 打開 文件 → 上傳,覈對會話,保持 發送給 Agent。
- 選擇文件或 拍照 / 相冊;選完後自動開始上傳。
- 上傳完成時文件仍在宿主暫存區,尚未進入 Agent 隊列。
- 填寫可選說明,點擊 發送給 Agent;圖片是否被模型接受取決於模型能力。
只保存到工作區¶
- 選文件前切換到 只存入工作區。
- 上傳完成後查看條目上的保存路徑(默認
.uploads/)。 - 此模式不發送附件或提示;若要附件流程,切回 發送給 Agent 並重新選文件。
中斷後續傳¶
在同一瀏覽器/站點、同一會話、同一模式下重新選擇同一文件,或點 重試。匹配依據文件名、大小與最後修改時間,記錄自最後更新起 24 小時內有效;宿主暫存也必須仍在。取消上傳會清隊列並嘗試刪除當前暫存,不能當暫停用。
下載與日誌 ZIP¶
- 切到 下載,確認會話。
- 瀏覽工作區點擊文件觸發原生下載;遠程鏈接帶
/remote前綴。 - 若導航被攔截或僅有請求頭配對憑據,用文件行 ⤓ 或 ZIP 旁的 通過請求保存。
- 下載會話日誌 ZIP 導出會話;不能在工作區面板裏刪除、重命名或任意目錄打包。
適用場景與注意¶
適合:依賴配對遠程 Web UI、需要大文件分塊上傳與續傳、要把文件以附件形式送進 Agent,或要從會話工作區/導出 ZIP 拉回設備的 DSH 用戶。
注意:
- 上游
dsh-remote-web-ui與 DSH 版本演進後,部分能力可能由原生界面覆蓋;升級後應在實際設備上驗證上傳、下載與 ZIP,再決定是否停用插件。 - 遠程端到端 HTTP Range 是否可用取決於代理與隧道;資料不承諾遠程下載斷點續傳。
- 卸載插件不等於清理
.uploads/工作區文件;暫存目錄需單獨確認後再刪。
常見排查:無 文件 按鈕時檢查 profile 是否啓用 bundle 並重啓;401/403 時檢查配對與 /remote/api/rfiles.*;上傳 409 offset-mismatch、413 分別對應偏移同步與配額。
結尾¶
dsh-rfiles 在不動 DSH 核心的前提下,爲遠程 Web 場景補齊文件傳輸與會話導出入口;安裝與行爲以倉庫 README 爲準。目錄頁:https://www.skillhub.cn/plugins/Aperops/dsh-rfiles;源碼與詳細說明:https://github.com/Aperops/dsh-rfiles。