dsh-fetch-file: DSH 插件下載任意 URL 爲工作區文件

前言

在 DeepSeek Harness (DSH) 的開發場景中,智能體經常需要處理遠程資源,例如下載圖片、壓縮包或安裝包。雖然 DSH 內置的 web_fetch 工具擅長抓取網頁正文,但它會丟棄二進制數據,不適合文件下載場景。dsh-fetch-file 插件專門填補這一空白,它允許智能體將任意 URL 的響應流式寫入工作區文件,同時內置了安全圍欄和大小限制。

簡介

這是一個由 ZhijiangTang 維護的 DSH 插件。它的核心價值是將任意 URL 的響應流式寫入工作區文件,支持二進制內容,並內置路徑安全圍欄與大小限制。

核心功能

  1. 下載任意 URL 爲工作區文件:支持 http/https 協議,自動跟隨重定向。
  2. 二進制友好,流式落盤:響應通過流式寫入磁盤,不會把整個文件讀進內存,適合大文件。
  3. 路徑圍欄:確保寫入路徑位於工作區根目錄內,防止越界。
  4. 200MB 單次下載上限:默認 MAX_SIZE_BYTES = 200 * 1024 * 1024,超限即中止並返回規範錯誤。
  5. 零依賴、純 ESM:無構建步驟,安裝簡單。

安裝與啓用

安裝前請確認你的 DSH 版本爲 0.1.0-rc.6 或更高,並已配置好 profile。執行以下命令安裝插件:

dsh plugin --profile <你的 profile> add file:./plugins/dsh-fetch-file

典型用法

調用 download 工具時,需傳入 url 和 dest 參數。

參數說明

  • url (string, 必填): 要下載的 URL。插件會自動跟隨重定向。
  • dest (string, 可選): 保存路徑(相對工作區根)。默認爲 URL 的 basename;若 URL 無 basename 則退化爲 download-<時間戳>。
  • overwrite (boolean, 可選): 是否覆蓋已存在文件。默認爲 false。

返回值規範

插件不拋異常,所有結果通過規範值返回。

  • 成功:
    { "ok": true, "path": "...", "absPath": "...", "sizeBytes": 1024, "status": 200, "contentType": "..." }
  • 失敗:
    { "ok": false, "error": "..." }
`error` 可爲字符串(如 "dest 越出工作區"),也可爲對象(包含 `stage` 字段,如 `http`, `network`, `timeout`, `size`, `fs` 等)。

與 web_fetch 的區別

特性 download (本插件) web_fetch (內置)
用途 下載爲文件,落盤到工作區 閱讀網頁,返回正文文本
內容 原始字節,二進制友好 抓取後提取正文,丟棄二進制
結果 文件路徑 + 字節數 + 狀態碼 摘要文本
上限 200MB (可配置) 受模型上下文/抓取策略限制

注意事項

  • 權限要求:插件運行需要 filesystem:write 和 network:outbound 權限。
  • 生態背景:DSH 插件生態由社區維護,與 DeepSeek / 幻方無官方從屬關係。
  • 安裝前檢查:安裝前建議查看源碼與許可證(MIT),確認符合項目安全規範。

後續

該插件通過規範值返回結果,不拋異常,適合在 DSH 工作流中集成。完整文檔與源碼見下方鏈接。

羽毛球分组比赛记分
小程序二维码

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

小夜