前言¶
Agent 在下載素材、模型、視頻、GitHub 安裝包時,單連接流式下載有三個老問題:慢,單連接喫不滿帶寬,幾百兆的文件要等很久,還容易在超時邊緣反覆中斷;攔,抖音、B站、小紅書這類資源帶防盜鏈,不補 Referer 直接 403;掛,Node.js 走系統證書庫,Windows 上系統證書鏈損壞時,HTTPS 下載會報證書錯誤。
這個插件把這三件事一次性包進一個工具裏,Agent 只需要給 URL 和目標路徑。
它是什麼¶
dsh-mt-download 是一個 DeepSeek Harness 插件,維護者是 643048695。它是一個多通道文件下載器,優先用 aria2c 開 16 個連接分塊併發,拿不到就自動退回 Node.js 原生單流。
核心功能¶
主通道:aria2c 16 連接併發¶
插件會調用本機 aria2c 的 JSON-RPC(默認端口 127.0.0.1:16801),用 16 個連接分塊併發下載。服務沒起來時按需拉起,平時零佔用。分塊併發要服務端支持 Range,不支持時 aria2c 會自然退化成單連接,不會下壞文件。
備用通道:Node.js 原生單流¶
aria2c 不可用、或下載中途報錯時,插件會自動改用 Node.js 原生 fetch 流式單連接落盤,保證文件最終能下完。
防盜鏈自適應¶
插件按域名自動注入 Referer(抖音 / B站 / 小紅書 / 微博 / GitHub),並統一帶現代瀏覽器 User-Agent。調用方也可以傳自己的 headers 覆蓋。
路徑解析¶
目標路徑可以是具體文件名,也可以是目錄或帶結尾斜槓的路徑;給目錄時從 URL 末段推斷文件名。
結果回報¶
返回絕對路徑、字節數、耗時、平均速度和實際走通的通道。
安裝與啓用¶
Web UI 的插件頁填 github:643048695/dsh-mt-download,或命令行:
dsh plugin --profile <profile> add github:643048695/dsh-mt-download
配置¶
寫在 profile 的 cordis.patch.yml 裏本插件那一行的 config 下:
| 字段 | 默認值 | 說明 |
|---|---|---|
defaultConnections |
16 |
默認併發連接數(工具入參可逐個覆蓋,範圍 1–16,受底層引擎限制) |
timeoutSeconds |
600 |
默認超時秒數 |
aria2Port |
16801 |
aria2c JSON-RPC 端口 |
aria2Path |
"" |
aria2c 可執行文件絕對路徑;留空則自動探測 |
checkCertificate |
true |
是否校驗 TLS 證書;系統證書鏈損壞或內網測試可設爲 false |
關於 aria2c 從哪來¶
插件不打包 aria2c 二進制,只負責找到並驅動本機已有的那份。查找順序:
- 配置項
aria2Path - 環境變量
MT_ARIA2C_PATH/ARIA2C_PATH/DOUYIN_ARIA2C_PATH - 系統
PATH上的aria2c - 常見安裝位置(Windows 的
Program Files\aria2、Motrix 內置目錄;macOS/Linux 的/usr/bin、/usr/local/bin、/opt/homebrew/bin等)
一個都找不到時不會失敗——直接走備用通道。
工具簽名¶
download_file¶
| 參數 | 類型 | 必填 | 說明 |
|---|---|---|---|
url |
string | 是 | 下載地址 |
output_path |
string | 是 | 保存路徑(文件名或目錄) |
connections |
integer | 否 | 併發連接數,默認 16,範圍 1–16 |
timeout_seconds |
integer | 否 | 超時秒數,默認 600 |
headers |
object | 否 | 自定義請求頭,覆蓋自動注入的同名項 |
返回:
{
"success": true,
"file_path": "C:\\path\\to\\file.bin",
"file_size_bytes": 25098,
"file_size_human": "24.51 KB",
"duration_seconds": 1,
"speed_human": "24.51 KB/s",
"method": "aria2c (16 併發通道)"
}
失敗時返回 { "success": false, "error": "..." },並帶上兩個通道各自的失敗原因。
說明與限制¶
- aria2c 拉起來後是 detached 後臺進程,插件退出不會主動關掉它;下次下載直接複用。
- 分塊併發要服務端支持
Range。不支持時 aria2c 會自然退化成單連接,不會下壞文件。 - 自動注入的
Referer只覆蓋幾個已知站點,其他站點請自己傳headers。 - 只做 HTTP/HTTPS 直鏈下載,不處理網頁解析、m3u8 切片或登錄態。
兼容性¶
Node.js >= 20。宿主側只用到 tools 服務的 register,沒有硬依賴,任何帶工具註冊表的 DSH profile 都能掛上。
適用場景¶
適合需要從多個網站下載大文件或需要處理防盜鏈的智能體開發場景。插件以當前 dsh 進程權限運行,安裝前應檢查源碼與許可證。
結尾¶
這個插件通過主通道(aria2c 16 連接)和備用通道(Node.js 單流)的組合,解決了 Agent 下載慢、被攔、易掛的問題。
- 插件目錄頁:https://www.skillhub.cn/plugins/643048695/dsh-mt-download
- GitHub 倉庫:https://github.com/643048695/dsh-mt-download