dsh-qbittorrent:让 qBittorrent WebAPI v2 成为模型可调用的工具

前言

在用 DeepSeek Harness(DSH)构建智能体时,常需要让模型直接操作本地服务。如果服务没有提供 MCP 接口,就需要通过子进程或浏览器窗口来调用。这种方式增加了复杂度和维护成本。

下面介绍一个 DSH 插件,它直接通过 DSH 的原生工具注册机制,把 qBittorrent 的 WebAPI v2 暴露给模型使用。

插件说明

wuzhican/dsh-qbittorrent 是一个 DSH 插件,维护者为 wuzhican,分类为「联网工具」。它不依赖浏览器窗口或 MCP 子进程,而是通过 @deepseek-ai/dsh-tools 原生注册工具。插件本身无运行时依赖,@deepseek-ai/cordis 和 @deepseek-ai/dsh-tools 由 harness 提供。

插件的主要用途是让模型能够查询种子列表、查看详情、排查卡死的下载任务,并对种子执行受控的写入操作。

核心功能

插件注册了 9 个工具,用于查询和操作种子:

工具 用途
qb_status 查询 qBittorrent 版本、WebAPI 版本、各状态下的种子数量、传输统计
qb_list_torrents 列出种子,支持 filter / category / tag / hashes / sort,最多返回 200 条
qb_torrent_detail 查看单个种子的属性和文件列表
qb_list_categories 列出所有分类及其保存路径
qb_find_orphans 查找元数据未解析、名称仍为 infohash、或出现错误/丢失文件的种子
qb_resume_torrent 恢复暂停的种子(需 confirm: true)
qb_pause_torrent 暂停种子(需 confirm: true)
qb_set_category 将种子移动到指定分类(需 confirm: true)
qb_delete_torrent 删除种子(需 confirm: true,最多每次 20 个;deleteFiles: true 也会删除磁盘数据)

写入类工具(恢复、暂停、设置分类、删除)必须显式提供 confirm: true,防止误操作。API 调用失败会以工具结果返回,而不是抛出异常,因此一次调用失败不会中断整个回合。

安装与启用

插件安装需要先启动 DSH 的 web profile。安装命令如下:

dsh plugin --profile web add @wuzhican/dsh-qbittorrent

如果 profile 没有自动应用补丁,需要重启 dsh web。

配置

插件无需任何配置即可工作。每个配置项都是可选的,可在 patch 行的 config 中设置:

- insert:
    - id: qbittorrent
      name: '@wuzhican/dsh-qbittorrent'
      config:
        url: http://192.168.1.10:8080
        tokenRef: QBT_API_KEY

配置项说明:

Key 默认值 说明
url http://127.0.0.1:8080 qBittorrent WebUI 地址,也可通过环境变量 QBT_URL 设置
tokenRef QBT_API_KEY 存储访问令牌的凭据名称,也可通过环境变量 QBT_TOKEN_REF 设置
timeoutMs 30000 单次请求的超时时间(毫秒)

令牌不会保存在 patch 文件中,而是通过 DSH 凭据服务按名称解析,回退到 process.env。qBittorrent v5.2.x 只接受 Authorization: Bearer <token>,其他形式(X-API-Key、api-key、查询参数)会返回 403。

要求

  • DSH 版本 >=0.2.0-rc.1
  • Node.js >=18(需要全局 fetch 和 AbortSignal.timeout)
  • qBittorrent WebAPI v2,并配置 API 令牌

插件本身没有运行时依赖,@deepseek-ai/cordis 和 @deepseek-ai/dsh-tools 作为 peer dependencies 由 harness 提供。

适用场景与注意

适合在需要让模型直接管理本地 qBittorrent 下载任务的 DSH 应用中使用。安装前建议查看源码和许可证(MIT)。

插件以当前 dsh 进程的权限运行,因此需要确保 DSH 进程有权限访问 qBittorrent WebAPI 的端口和凭据。

总结

这个插件将 qBittorrent 的 WebAPI v2 注册为模型可直接调用的工具,支持查询、分类管理、故障排查和受控的写入操作。无需 MCP 子进程或浏览器窗口,通过 DSH 原生工具机制实现,适合需要让智能体直接管理本地下载任务的使用场景。

插件目录:https://www.skillhub.cn/plugins/wuzhican/dsh-qbittorrent
GitHub:https://github.com/wuzhican/dsh-qbittorrent

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

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

小夜