dsh-rayburst:把 DSH 的下载交给 Rayburst 引擎

前言

DSH 的智能体要拿到一个文件,常见做法是模型自己在进程里流式读字节:边读边想,大一点的文件就把上下文和推理配额吃掉了,慢,也容易超时中断。下面介绍 cat-Logan 维护的插件 dsh-rayburst。它不改变 DSH 的运行方式,只是把「把 URL 变成本地文件」这一步整个卸载出去,交给 Rayburst(aria2-next 内核)这个下载引擎,靠断点续传和多线程把字节搬完,再把结果(状态、字节数、路径、sha256)交回给智能体。

这是什么

dsh-rayburst 是 DeepSeek Harness 插件,维护者 cat-Logan,在社区目录里归在「联网工具」分类。它解决的问题很单一:让 DSH 侧的下载走外部下载引擎,而不是让模型啃字节。插件源码在 GitHub(cat-Logan/dsh-rayburst),协议 MIT。

核心功能

装好之后多出三个工具:

工具 作用
rayburst_download 把 URL 交给 Rayburst 引擎,可按 dir / out / moveTo 落盘,等到完成(或到 waitSeconds 上限)后返回状态、字节数、路径和 sha256
rayburst_wait 对已有 gid 继续等,可反复调用
rayburst_status 列出进行中/最近结束的任务,或按 gid 查单个

三个工具的分工是:发起、续等、查询。断点续传和多线程来自 Rayburst 引擎本身,插件负责把请求翻译成引擎能理解的调用,再把结果收回来。

它怎么连上 Rayburst

按 README,默认不需要任何配置:

  1. RPC 地址默认 http://127.0.0.1:29000/jsonrpc;
  2. 密钥在调用时从 Rayburst 自己的 aria2.conf 里读(rpc-secret,同时读 rpc-listen-port),所以在 Rayburst 设置里换了密钥或端口都不用重启 DSH;
  3. 要覆盖时设环境变量:DSH_RAYBURST_RPC、DSH_RAYBURST_SECRET、DSH_RAYBURST_CONF。

配置文件的搜索顺序(README 原文):

%LOCALAPPDATA%\dev.aninsomniacy.rayburst\engine\aria2.conf
%APPDATA%\dev.aninsomniacy.rayburst\engine\aria2.conf
~/.config/rayburst/aria2.conf

Rayburst 没开时工具会明确说「连不上 Rayburst(…)」而不是静默失败。这一点对调试重要:连不上就直接报错,不用去猜下载为什么没动静。

安装与启用

安装命令来自 README 原文,本地目录方式:

dsh plugin --profile web add <本目录>

也可以在插件管理里以本地目录安装,装完重启 DSH。

卸载:

dsh plugin --profile web remove dsh-rayburst

按 README,本插件只注册工具,不写会话、不改 DSH 本体。

典型用法

插件带来的核心流程是:发起下载 → 在等待预算内返回 → 没下完就续等。下面是依赖的工具调用,参数来自 README 中列出的落盘与等待字段。

先发起一个下载,指定落盘目录和文件名:

  1. 调用 rayburst_download,传入目标 URL,dir 指定目录,out 指定文件名,waitSeconds 给等待预算。
  2. 下载在预算内完成时,返回值里带状态、字节数、路径和 sha256。
  3. 预算内没下完时返回 status: active,记录返回的 gid。

再续等和查询:

  1. 拿 gid 调 rayburst_wait 继续等,这一步可以反复调。
  2. 需要看整体情况就调 rayburst_status:不带参数是列出进行中/最近结束的任务,带 gid 是查单个。

大文件的场景正是这条路径:先按预算等一次,没完就续等,不会丢任务。

自测

插件自带一个自测脚本,在插件目录里执行:

node verify/verify-host.mjs

按 README,它做 10 项断言:宿主工具契约(纯对象定义、JSON Schema 参数、output.render)、参数守卫、引擎不可达时的报错,以及(Rayburst 在跑时)一次真实下载 + sha256 校验。改过插件后跑一遍能覆盖大部分契约问题。

适用场景与注意

适合:在 DSH 里批量拉模型权重、数据集、BT 种子这类大文件,需要断点续传和多线程,又不想让模型自己读字节的人。

几点边界按 README 写清楚:

  1. 只负责「下载」,不接管 web_fetch 的网页正文抓取,那是 HTTP 语义,不是文件搬运;
  2. 内网或需要登录态的下载:Rayburst 引擎自己不带 cookie,必要时用 web_fetch 或手工导出链接;
  3. 大文件在等待预算内没下完时返回 status: active,再调 rayburst_wait,不会丢任务。

另外注意,插件以当前 DSH 进程的权限运行,能力范围内能读到的目录它都能写。装之前建议先看一下源码和 MIT 协议,确认自己接受这份信任边界。

结尾

dsh-rayburst 的价值在于把下载这件事彻底从 DSH 的执行路径里拿了出去,靠 Rayburst 的断点续传和多线程,换来可预期的等待和可校验的结果。目录页在 https://www.skillhub.cn/plugins/cat-Logan/dsh-rayburst ,源码在 https://github.com/cat-Logan/dsh-rayburst 。

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

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

小夜