DSH Technique for Accelerating Large File Downloads in GitHub Releases

前言

在 DeepSeek Harness(DSH)里跑智能体时,常会碰到要从 GitHub Release 拉安装包或便携包:几十到几百 MB 的资产,命令行或脚本里一条 URL 就卡住。直连 release-assets.githubusercontent.com 往往先快后慢;公共镜像时好时坏;本机装了 Clash 但内核没起、系统代理没开,curl 也走不上。手工试路线、再装 aria2 调参数,对 Windows 开发环境成本偏高。下面介绍维护者 chenjrastro-tech 发布的 DSH 插件 github-release-download-acceleration:把「探环境、测路线、分段下载、digest 校验」收成一条自然语言指令或一条 runner 命令,Windows 上依赖 PowerShell 5.1 与系统自带 curl.exe,零第三方依赖。

这是什么

github-release-download-acceleration 是 DSH 技能(同时是可 dsh plugin add 安装的插件包):用户只需说「这个包下太慢了」,技能自行完成环境自检、四类下载路线并行实测、在必要时做限时并发阶梯、再用 release 自带的 digest 做 SHA256 闭环校验。仓库与技能目录名均为 github-release-download-acceleration;npm 发布名为 github-release-accelerator(registry 不允许包名含 download),与插件装的是同一份代码。分类为联网工具;GitHub 上约 5 stars。许可证 MIT(package.json 当前版本 0.3.5)。

核心功能

技能明确不做的事包括:不装 aria2/7z/winget,不改系统注册表代理,不打开 Clash GUI,不把 allow-lan 打开,不结束用户其它下载进程。

已核实的主要能力如下。

环境自检与路线实测

  • 检查 curl.exe、环境变量代理、系统代理、常见代理端口是否在监听;ProxyServer 有值但端口未 Listen 不算可用代理。
  • 四类路线各用 1MB range GET 实测:A 现有代理;B 无头拉起本机 Clash Verge 内核(127.0.0.1:7897);C 六个公共镜像;D 直连。排序规则:先确认是否真拿到 ≥512KB,再比 KB/s。

资产名校验

测速前通过 release API 校验资产名;对不上则报 ASSET_NOT_FOUND,列出全部候选(名字 + MB)及最接近项,停下等用户确认,不静默换名继续下。

并发阶梯(可跳过)

仅当资产 ≥100 MB 且单连接探针低于 3 MB/s 时才测 1/16 两档并发(限同一时间窗 4 秒、三遍取中位数等规则);小包或单连接已够快时跳过整个阶梯以省流量与时间。-ForceLadder 可强制测。

下载与自愈

  • 单流或按胜出段数多 range 并发;每段独立日志,带 --retry。
  • 下载中约 45 秒看一次增长;长时间 0 字节则只杀本技能起的 curl、清空分片、降并发或切第二路线。
  • 拼装前核对分片总字节;有 digest 则比对 size 与 SHA256;无 digest 的老 release 只报告字节数一致,不冒充校验通过。
  • 收尾只停自己起的进程、删自己建的目录,并确认 7897 不再监听、ProxyEnable 与开始时一致。

幂等与续传

目标文件已存在且字节数(有 digest 时含 SHA256)正确 → ALREADY_DONE。分段方案写在 <asset>.parts/manifest.json,换镜像或代理后重跑可 RESUME_PLAN。校验失败保留分片(PARTS_KEPT);确认不要了再用 -ForceClean。

macOS / Linux 可用 scripts/ghdl.sh,核心语义与 Windows runner 一致;B 路线无头内核、单流多候选回退等为 Windows 侧增强。

安装与启用

DSH 生态里技能既可手动放进技能发现根,也推荐用插件市场同款命令安装。装好后需用宿主的 skill 工具真正加载一次验证,仅目录存在不算完成注册。

推荐(与插件市场一致):

dsh plugin add github:chenjrastro-tech/github-release-download-acceleration

包装层为 package.json + cordis.patch.yml + index.js:index.js 将包内 SKILL.md 注册为技能(source: bundled、rank 600)。

手动放置(二选一):

  1. 项目级:<项目根>/.dsh/skills/github-release-download-acceleration/(<项目根> 为最近含 .git 的祖先目录)。
  2. 用户级:%USERPROFILE%\.dsh\skills\github-release-download-acceleration\。

技能不在 git 项目内时,可用目录联接挂到用户级技能根(README 中有 mklink /J 示例)。

环境要求: Windows 10/11 + Windows PowerShell 5.1 + 系统自带 curl.exe(Win10 1803+)。也可 npm i github-release-accelerator,在 DSH 里仍建议用 dsh plugin add 上述 GitHub 坐标。

安装前请自行查看仓库源码与 MIT 许可证;插件与 runner 以当前 DSH 进程权限执行本机命令(含 curl、可能无头起 Clash 内核),使用前确认符合你的安全策略。

典型用法

自然语言(技能正文在 SKILL.md)

给了 release 直链:

帮我把 https://github.com/obsproject/obs-studio/releases/download/33.0.0/OBS-Studio-33.0.0-Windows-x64.zip 下下来,太慢了

只给 tag 页(技能会选最大资产并说明理由):

github.com/neovim/neovim/releases/tag/v0.11.0 这个包下不动,你看着办

可选指定目标目录,例如 下到 D:\Downloads\_dl;未指定时由宿主任选落地目录,报告中给出绝对路径。

内部顺序固定为:解析 URL → 环境自检 → 定位内核与配置 → API 校验资产名 → 并行探测路线 →(必要时)无头起内核 → 按需阶梯 → 下载 → 监控/降档 → 拼装 → digest 校验 → 收尾。

一次性 runner(宿主只能执行一条命令时)

powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>'
powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>' -OutDir 'D:\Downloads'
powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>' -ForceLadder
powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>' -Parts 16
powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>' -ForceClean
powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>' -KeepParts
powershell -NoProfile -File scripts\ghdl.ps1 -Url '<release 直链>' -Sha256 '<sha256>'

退出码:0 仅在校验通过时;DOWNLOAD_VERIFY_FAILED、SEGMENT_SIZE_MISMATCH、NO_ROUTE 等为 1。

适用场景与注意

适合: 在 Windows + DSH(或兼容 SKILL.md 的宿主)下,需要从 GitHub Release 拉较大资产,且希望 agent 自动试代理/镜像/直连并分段下载,而不是让你手工改代理或装下载器。

注意:

  • 主要设计面向 Windows PowerShell 5.1;Linux/macOS 用 ghdl.sh,部分 Windows 专属能力在 sh 侧无对等项(如 -NoKernelPool 仅 ps1)。
  • 公共镜像与 GitHub API 可用性因网络而异;资产名错误时技能会停等确认,需你回复正确文件名。
  • 社区插件目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;「一切皆插件」是 DSH 生态理念,本文仅介绍该插件行为与安装方式。

结尾

github-release-download-acceleration 把 GitHub Release 大文件下载从「猜路线 + 手工工具链」收成 DSH 里一句诉求或一条 ghdl.ps1 命令:实测选路、按需分段、digest 校验、失败可续传。需要细节决策表与错误路径时,以仓库内 SKILL.md 与 references/runner-steps.md 为准。

  • 目录页:https://www.skillhub.cn/plugins/chenjrastro-tech/github-release-download-acceleration
  • GitHub:https://github.com/chenjrastro-tech/github-release-download-acceleration
羽毛球分组比赛记分
小程序二维码

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

Xiaoye