dsh-motrix-download:把模型下載請求交給本機 Motrix

前言

在 DeepSeek Harness(DSH)裏,模型常會接到「把某個 URL 下的文件保存到本地」的請求。若只在對話裏給出鏈接,用戶還要自己複製到下載工具;若在插件裏自己寫 HTTP 下載,又很難複用本機已有的隊列、限速和 BT/磁力能力。下面介紹的 dsh-motrix-download(維護者 Siselea,GitHub:Siselea/dsh-motrix-download)走另一條路:優先把任務交給 Windows 上的 Motrix(內置 aria2),任務會出現在 Motrix 界面裏;Motrix 不可用且鏈接是 http/https 時,再回退爲插件內置的直連下載,避免請求直接失敗。

這是什麼

DeepSeek Harness 的 Host 插件(分類:模型推理)。簡介與倉庫一致:在模型發起下載時,將請求路由到本機 Motrix(aria2)應用,並內置 http/https 直連回退。當前版本 0.1.0,許可證 MIT,運行時僅依賴 Node 內置模塊(Node ≥ 20),無需 npm install。

核心功能

  • 優先 Motrix:download 默認把 http/https/ftp 等 URL、磁力鏈接、本地 .torrent 交給 Motrix;任務可在 Motrix 中暫停、繼續、刪除,並參與其隊列與限速。
  • 自動回退:Motrix 未運行或橋接不可用時,http/https 自動改用內置直連;非 http/https(如磁力)在 Motrix 不可用時返回明確錯誤,不會僞造回退。
  • 自動發現:從 %APPDATA%\Motrix 讀取默認下載目錄、橋接端口(16802–16806 中實際綁定端口)與 localToken;每次調用前重讀,token 輪換無需改配置。
  • 自動啓動:橋接不可達時可自動拉起 Motrix.exe(最多等待約 25 秒)再提交任務。
  • 目的地必填:save_dir 爲必填;用戶未說明保存位置時,模型應先詢問再下載(插件還註冊全局提示詞片段 motrix-download,order 5900,強化上述約定)。

三個工具:download(提交下載)、download_status(查詢或等待完成)、download_control(pause / resume / cancel / purge)。

環境要求

  • Windows(通過 %APPDATA%\Motrix 發現 Motrix;README 註明 macOS / Linux 未驗證)。
  • Motrix 2.x,且設置中「瀏覽器橋接」(app.browserBridgeEnabled)保持開啓(默認開啓);關閉時只能對 http/https 使用直連回退。
  • DeepSeek Harness,通過 plugin_manager 以 bundle 方式安裝。

安裝與啓用

插件尚未發佈到 npm。可從 Releases 下載 dsh-motrix-download-0.1.0.tgz 並解壓:

tar -xzf dsh-motrix-download-0.1.0.tgz

在 Harness 中安裝到當前 profile 的 bundle(將 <abs> 換爲解壓目錄的絕對路徑):

plugin_manager action=install_bundle target=<abs>/dsh-motrix-download

安裝後插件出現在 Plugin Manager(標題/描述來自 locale/en.json 與 locale/zh.json),三個工具立即生效。若以 link: 方式安裝本地包,修改源碼後需在 Plugin Manager 中關閉再開啓插件(或重啓 Harness)以重載模塊。

可選環境變量:自動發現 Motrix 失敗時,可設置 DSH_MOTRIX_EXE 指定 Motrix.exe 路徑。

典型用法

提交下載時務必帶上 save_dir:

// 下載網頁圖片到 D 盤(save_dir 必填)
download({ url: "https://www.example.com/logo.png", save_dir: "D:\\", filename: "logo.png", wait_seconds: 60 })

// 磁力鏈接(只能由 Motrix 下載)
download({ url: "magnet:?xt=urn:btih:...", save_dir: "D:\\Downloads" })

// 查詢進度;wait_seconds > 0 時等待完成並返回 finalPath
download_status({ task_id: "01a18d9a-...", wait_seconds: 120 })

// 暫停 / 繼續 / 取消(保留文件)/ 刪除(連文件刪)
download_control({ task_id: "01a18d9a-...", action: "pause" })

download 的 engine 可選 auto(默認)、motrix、direct。完成時返回中常見字段包括 backend(motrix 或 http)、taskId、status、finalPath 等。

工作原理(簡述)

插件從 Motrix 配置與 bridge\endpoint.json 讀取橋接信息,經 MDXP 橋(POST http://127.0.0.1:<port>/mdxp,Bearer token)調用 download/add、task/get 等接口,而不是直接打內嵌 aria2 RPC——Motrix 會接管 aria2 隊列,裸 RPC 提交的 gid 會很快失效,無法穩定持有任務句柄。直連回退使用 .part 臨時文件,跟隨重定向與 Content-Disposition 命名,不支持斷點續傳。

適用場景與注意

適合在 Windows 上已使用 Motrix、又希望 DSH 裏的模型能「代下文件並落到指定目錄」的場景;大文件、多任務、BT/磁力更適合走 Motrix 隊列。

安裝前請自行閱讀倉庫源碼與 MIT 許可證。插件以當前 DSH 進程權限運行,下載路徑與網絡訪問範圍與此一致;purge 會刪除已下載文件。社區目錄頁:skillhub.cn 插件頁(獨立站點,與 DeepSeek / 幻方無官方從屬關係)。

結尾

dsh-motrix-download 把「模型要下載」和「本機 Motrix 任務隊列」接在一起,並在 Motrix 不可用時對 http/https 提供直連兜底。細節與限制見 GitHub 倉庫 README。

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

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

小夜