前言¶
在 DSH 裏讓智能體「下文件」,常見做法是 curl、wget 或自己寫腳本:大文件、磁力鏈和 BT 任務往往要佔用會話進程,進度還要靠輪詢或人工盯盤。若本機已經在用 Gopeed 做下載管理,更穩妥的路徑是把任務交給 Gopeed 的 HTTP 接口,由 Gopeed 負責出站流量和落盤,智能體只創建任務、讀進度、收完成通知。dsh-gopeed-downloader(維護者 Keridium,社區分類:聯網工具)就是按這個思路做的 Cordis 插件:註冊 7 個工具,並在下載結束時通過 DSH 後臺任務喚醒空閒智能體。
這是什麼¶
插件全名 dsh-gopeed-downloader,npm 包名同爲 dsh-gopeed-downloader(當前資料中 package.json 版本爲 0.3.3,MIT 許可證)。它運行在 DeepSeek Harness (DSH) 宿主進程內,不依賴本機單獨安裝 Node.js/npm/pnpm 來「跑插件」——安裝 bundle 由 DSH 自帶的插件管理完成。
智能體通過 loopback 訪問本機 Gopeed;鏈接經 Gopeed 發出,文件寫在磁盤上,不經過模型或 shell 轉發。Gopeed 桌面版默認每次啓動隨機端口,插件在未固定端口時會從運行中的進程讀取實際端口(配置裏可 pin)。依賴 Gopeed 1.9.3+(README 寫明在 1.9.3 上驗證過)。
若你維護的是「會調用工具的 Agent」,官方要求先讀合約文檔 docs/AGENTS.md(工具字段、gopeed_add 禁止輪詢等規則),而不是隻讀人類向 README。
核心功能¶
README 用表格歸納了 7 個工具的目標對應關係,下面按同一事實展開。
| 目標 | 工具 |
|---|---|
| 發起下載並在結束時收到通知 | gopeed_add:支持 HTTP/HTTPS 直鏈、磁力鏈、遠程 .torrent URL;返回後臺 job,完成通知由 DSH 投遞(忙着的智能體下一步讀結果,空閒的可被喚醒) |
| 查看進度 | gopeed_list、gopeed_status:扁平任務結構(如 percent、sizeKnown、速度、真實保存目錄) |
| 控制任務 | gopeed_control:通過 action 暫停 / 恢復 / 刪除;remove 默認會刪文件,除非 force: false |
| 診斷環境 | gopeed_process:六種 verdict 之一,並帶 pid、內存、版本、可執行路徑、webhook 狀態等 |
| 啓動未運行的 Gopeed | gopeed_launch:相當於在資源管理器裏雙擊圖標,無參數 |
| 接收 Gopeed 推送事件 | gopeed_events:讀取 DOWNLOAD_DONE / DOWNLOAD_ERROR;action: "apply" 可在 auto 模式下把 webhook 地址寫入 Gopeed 配置 |
支持的 URL 類型與 Gopeed 本身一致:不支持上傳本地 .torrent 文件,應改用該文件來源的 URL。BT 細節(peer、DHT、做種等)仍在 Gopeed 內,插件只創建任務並讀進度。
明確不做的事¶
- 沒有任何工具能重啓或結束 Gopeed 進程;重啓需在插件設置頁點用戶側的「Restart Gopeed」,以免打斷進行中的任務。
gopeed_launch僅啓動缺失的進程。 - 進程相關能力僅 Windows:
gopeed_process、gopeed_launch、設置頁重啓按鈕、可執行文件自動發現等調用 Windows 工具(PowerShell 5.1、tasklist、netstat等)。下載類 REST 工具在 Gopeed 能跑的平臺均可使用。 - Webhook 監聽只綁定
127.0.0.1;Docker 或其它機器上的 Gopeed 無法直接推送到該 listener,需改用gopeed_list/gopeed_status輪詢。 - 插件不會向對話裏僞造用戶消息;指引寫在工具返回結果裏。
安裝與啓用¶
前提:DSH 已運行,且當前 profile 能安裝 bundle(plugin_manager 或 Web Plugins 頁)。
在會話裏讓智能體安裝 npm 包(等價於 plugin_manager 的 action: "install_bundle",target: "dsh-gopeed-downloader"):
Install the dsh-gopeed-downloader bundle from npm.
命令行等價寫法(資料原文):
dsh plugin --profile web add dsh-gopeed-downloader
需要開發版或固定 commit 時,target 可爲 github:Keridium/dsh-gopeed-downloader,並支持版本 pin,例如 dsh-gopeed-downloader@0.3.2 或 github:Keridium/dsh-gopeed-downloader#v0.3.2。卸載使用 action: "remove_bundle"、target: "dsh-gopeed-downloader",或 Web Plugins → Installed。
安裝後若 DSH 提示重啓則重啓。首次使用前打開 Plugins → Installed → Gopeed Downloader → row gopeed → Configure,若 Gopeed 使用 token 或固定端口,在表單中填寫。表單保存後立即生效,無需 remount 或重啓 DSH;各字段提示爲「Default: X; empty = Y」。
配置項(資料已截斷部分仍明確出現的字段):
downloadTarget:workspace(默認)/gopeed/custom。workspace落在會話當前工作目錄(隨cd變化);gopeed_add顯式傳入的path始終優先。customDownloadPath:在 target 爲custom時使用;留空則回退爲 Gopeed 自帶下載目錄。
Git URL 安裝時插件管理器會先 git ls-remote,因此 用 Git spec 安裝時本機需有 git;否則可用 release tarball URL。
典型用法¶
README 給出的首次調用示例:
gopeed_add { "url": "https://example.com/file.iso" }
# -> taskId, path, jobId; stop here -- the completion notice arrives on its own
含義是:提交 URL 後拿到 taskId、path、jobId 即可停步,不要對 gopeed_add 做完成輪詢(合約在 AGENTS.md);完成時由 DSH 後臺 job / 事件鏈路通知。跟進進度用 gopeed_list 或 gopeed_status;暫停、恢復、刪除用 gopeed_control;環境不對時用 gopeed_process 看 verdict,必要時 gopeed_launch 或用戶在設置頁重啓 Gopeed。
適用場景與注意¶
適合:已在本地用 Gopeed 管理 HTTP/磁力/BT 任務,希望 DSH 智能體「代點添加、看進度、收完成回調」,且接受 Gopeed 負責磁盤與網絡棧。
注意:
- 插件以 當前 DSH 進程權限 運行;安裝前請自行查看 GitHub 源碼 與 MIT 許可證,確認符合你的安全策略。
- 社區目錄 skillhub.cn 插件頁 與 DeepSeek / 幻方無官方從屬關係,DSH 生態是「一切皆插件」的獨立擴展方式,本文事實以倉庫 README 與 npm 包元數據爲準。
結尾¶
dsh-gopeed-downloader 把 Gopeed 1.9.3+ 的下載能力封裝成 7 個 DSH 工具,跨平臺 REST 與 Windows 進程輔助並存,並用後臺 job 在下載結束時喚醒空閒智能體。查閱與安裝可從這裏開始:
- 目錄頁:https://www.skillhub.cn/plugins/Keridium/dsh-gopeed-downloader
- GitHub:https://github.com/Keridium/dsh-gopeed-downloader
- Agent 合約:https://github.com/Keridium/dsh-gopeed-downloader/blob/main/docs/AGENTS.md