DeepSeek Harness 下载进度插件:实时进度条与断点续传

前言

在 DeepSeek Harness(DSH)环境中,智能体经常需要下载几 GB 的安装包或文件,此时用户只能盯着一个静止的终端窗口,无法获知进度和剩余时间。这会打断对话节奏,也容易让用户误以为程序卡死。该插件通过在聊天窗口右上角渲染实时进度卡片,让下载状态对用户可见。

核心功能

安装后,DSH 会在聊天窗口右上角显示下载进度卡片,内容包括:

  • 进度百分比和进度条
  • 已下载/总大小
  • 当前瞬时速度
  • 预计剩余时间(ETA)
  • 当前阶段(探测 → 连接 → 下载 → 重连 → 完成)

卡片可以点击「×」取消下载,完成后会自动折叠。下载前会先执行预检(probe),通过 HEAD 请求获取文件总大小,并从历史速度记录估算耗时。

插件支持断点续传:当下载中断或失败时,可使用 dl resume 从 .part 文件继续下载。如果下载任务在后台停止,卡片会在 6 秒内变灰标记为「已中断」,并在 20 秒后将状态修正为「失败」,避免卡片永远停留在屏幕上。

安装与启用

方式一:DSH 插件市场(推荐)

在 DSH 插件市场中搜索 dsh-download-progress,点击安装并重启 DSH。

方式二:手动安装

git clone https://github.com/Beership/dsh-download-progress.git
cd dsh-download-progress && npm pack

生成 dsh-download-progress-0.3.2.tgz 后,在 ~/.dsh/profiles/desktop/package.json 的 dependencies 中添加该包,并在 dsh.profile.bundles 中引用。将 tarball 解压到对应 profile 的 node_modules/dsh-download-progress 目录,然后重启 DSH。

典型用法

安装并重启后,在任意 DSH 会话中直接请求下载即可:

Download https://example.com/electron-v33.2.0-win32-x64.zip to D:\Downloads and show live progress

智能体会调用内置的 skill,后台启动下载 worker,该 worker 会将进度写入 ~/.agent-downloads/jobs/<id>/status.json。DSH 的插件会通过 HTTP API 获取这些状态并渲染卡片。

如果需要从命令行控制下载任务:

node dl.mjs start <URL> --dir D:\Downloads   # 后台启动,返回 job id
node dl.mjs status [--json]                  # 查看所有任务进度
node dl.mjs wait <id>                        # 阻塞直到完成
node dl.mjs cancel <id>                      # 取消下载,保留 .part 文件
node dl.mjs resume <id>                      # 从 .part 继续下载
node dl.mjs clean [--force]                  # 清理任务记录(文件保留)

工作原理与注意事项

插件包含两部分:服务端(运行在 DSH 进程内)和客户端(注入到网页端)。服务端通过 cordis 插件实现,提供 HTTP API 供客户端轮询;客户端通过自适应轮询(卡片可见时 450ms,不可见时 1.5s,后台标签页暂停)获取状态并渲染卡片。

在 Windows 上,下载 worker 通过 WMI 的 Win32_Process.Create 启动,避免 DSH 的命令执行器在命令返回后立刻回收进程树。在 POSIX 系统上使用 setsid 实现分离。插件不依赖外部服务,所有数据存储在本地 ~/.agent-downloads 目录。

插件以 DSH 进程的权限运行,因此下载路径需要当前用户有写入权限。使用前建议检查源码与许可证(MIT),确保符合使用场景。

总结

该插件为 DSH 提供了统一的下载进度展示与断点续传能力,减少了对下载过程的依赖和猜测。更多细节与源码可在插件目录查看:
- 插件目录:https://www.skillhub.cn/plugins/Beership/dsh-download-progress
- GitHub:https://github.com/Beership/dsh-download-progress

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

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

Xiaoye