@rosmeowtis/dsh-aria2-rpc:在 DSH 中對接已有 aria2 RPC

前言

在智能體或自動化流程裏,讓模型代爲提交下載、查進度、暫停或取消任務,常見做法是手寫腳本調用 aria2c,或在對話外單獨維護一套下載面板。DeepSeek Harness(DSH)通過插件把能力掛進運行時;若你本地或內網已經跑着持久化的 aria2,並開放了 JSON-RPC,本插件只做 HTTP 橋接,不向 DSH 內置下載器、也不接管 aria2 進程生命週期。下面介紹插件定位、工具面、安裝配置與使用約束。

這是什麼

@rosmeowtis/dsh-aria2-rpc 由 Rosmeowtis 維護,歸類爲聯網工具。它連接已有的 aria2 JSON-RPC 服務(HTTP,/jsonrpc),爲模型暴露四個工具;不攜帶、不啓動、不管理 aria2。社區目錄頁見 SkillHub 條目,源碼與說明見 GitHub 倉庫。

當前 npm 包版本爲 0.1.1,許可證 MIT;運行要求 Node >=22.18,DSH ^0.2.1-rc.5。工具定義的上下文佔用約 400 token。

核心功能

插件向模型提供下表四個工具(名稱與行爲以 README 爲準):

工具 作用
aria2_download 提交單文件直鏈下載,立即返回 GID;可選保存目錄、文件名、來源提供的校驗和(sha-256 / sha-1 / md5,實際計算由 aria2 執行)、任務級 HTTP 代理。
aria2_status 讀取任務狀態、進度、速度、文件路徑與脫敏錯誤。
aria2_list 列出 active / waiting / stopped 或全部任務;只讀,支持 limit/offset。
aria2_control pause / resume / cancel。取消保留部分文件,不關閉 aria2。

下載完成或失敗時,插件通過 aria2 的 WebSocket 通知向發起會話推送一條消息。只跟蹤本進程內由 aria2_download 創建的任務;插件重載後,重載前創建的任務不再推送。

創建與控制僅在退出計劃模式後的完全訪問模式執行;狀態讀取不受此限。結果未知的修改請求會返回可查詢的 GID,不會自動重複提交。

安裝與啓用

以 web 預設舉例。裝完必須重啓該 profile(dsh web):bundle 層在啓動時組裝。

npm 渠道(版本受控):

dsh plugin --profile web add @rosmeowtis/dsh-aria2-rpc
dsh web

GitHub 渠道(跟倉庫 HEAD,用於先於發佈驗證):

dsh plugin --profile web add github:Rosmeowtis/dsh-aria2-rpc

通過 git 依賴安裝時,prepare 會在安裝階段構建;pnpm 默認可能攔截構建腳本。若首次安裝失敗並打印 allowBuilds key,需把該 key 寫入對應 profile 的 pnpm-workspace.yaml 後重跑同一條安裝命令。key 中帶 commit,倉庫有新提交後需按新打印的 key 重新放行。

本地開發可在本倉庫執行 npm run build 後:

dsh plugin --profile web add .

配置與連接測試

在 DSH 設置 → 插件 → Aria2 RPC 中可配置:

  • rpcHost、rpcPort
  • 密鑰與請求超時

密鑰固定使用憑據 ARIA2_RPC_SECRET;無密鑰時不發送。RPC 走 HTTP,不加密;遠程連接請僅在可信網絡或加密隧道中使用。

設置頁的「測試連接」使用當前輸入的主機、端口與超時調用 aria2.getVersion,無需先保存。密鑰框有內容時使用該臨時值,否則從當前憑據引用讀取;測試不保存配置、不創建任務。成功時顯示 aria2 版本,失敗時提示連通性、超時或鑑權問題。

典型前置條件:你已部署並長期運行 aria2,且 RPC 監聽地址與插件配置一致(含 rpc-secret 與 DSH 憑據一致,若啓用)。

典型用法(對話側)

模型在具備工具權限的會話中可這樣使用(概念流程,非固定話術):

  1. 用 aria2_download 傳入直鏈 URL,按需指定目錄、文件名、校驗和或代理;拿到 GID。
  2. 用 aria2_status 或 aria2_list 查看進度與隊列。
  3. 用 aria2_control 對指定 GID 執行 pause、resume 或 cancel。
  4. 對本會話內由 aria2_download 創建的任務,可在完成或失敗時收到 WebSocket 推送,無需輪詢到底。

如需在改動 aria2 任務狀態前確認環境,可先「測試連接」再發起下載。

適用場景與注意

適合: 已有 aria2 後臺(家庭 NAS、內網節點、長期開的下載機),希望 DSH 對話裏用自然語言或工作流創建、查詢、管控下載,而不把 aria2 裝進 DSH 或交給插件啓停。

不適合: 期望插件自帶 aria2、安裝即下載、或代管 aria2 進程與系統服務;這些不在設計範圍內。

插件以當前 DSH 進程權限運行,RPC 調用範圍等價於該進程能訪問的網絡與配置。安裝前建議閱讀倉庫源碼與 MIT 許可證,確認 RPC 密鑰與保存路徑符合你的安全策略。DSH 生態強調「一切皆插件」;SkillHub 爲社區目錄,與 DeepSeek / 幻方無官方從屬關係。

結尾

@rosmeowtis/dsh-aria2-rpc 的價值在於:在假定 aria2 已獨立部署的前提下,用四個精簡工具把 JSON-RPC 能力納入 DSH,並支持會話內任務完成通知。安裝後配置 RPC 與 ARIA2_RPC_SECRET,重啓 web profile 即可使用。

  • 目錄頁:https://www.skillhub.cn/plugins/Rosmeowtis/dsh-aria2-rpc
  • GitHub:https://github.com/Rosmeowtis/dsh-aria2-rpc
羽毛球分组比赛记分
小程序二维码

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

小夜