dsh-local-radiance-server-controller:用一條 SSH 管局域網 AMD 推理機

前言

在 DeepSeek Harness(DSH)裏跑智能體時,推理往往落在局域網裏的一臺 AMD GPU 服務器上:Radiance 用 docker compose 拉起,日常還要改功耗、換鏡像、看 decode/prefill 吞吐。這些操作習慣上靠 SSH 進終端,命令分散,側邊欄也看不到實時負載。

下面介紹社區插件 dsh-local-radiance-server-controller(維護者 Vossk123)。它在 DSH 側邊欄增加「推理服務器 / Inference Server」面板,並在側邊欄底部常駐一行 live metrics;遠程操作全程複用一條長連接 SSH,而不是每次動作新開會話。

這是什麼

dsh-local-radiance-server-controller 是 DSH 的 Host + Client 插件:通過 SSH 控制局域網內的 AMD 推理服務器——GPU 功耗上限、Radiance docker compose 啓停與鏡像更新、amd-smi 診斷、關機/重啓,以及 decode/prefill t/s、CPU/GPU 利用率展示。

分類爲 admin-security(目錄頁:SkillHub 插件頁)。源碼與說明見 GitHub 倉庫,許可證 MIT;package.json 中版本爲 1.0.1。

核心功能

打開面板後會立刻探測服務器(運行中的 compose 服務、功耗限制狀態),之後每 20 秒刷新;任意按鈕操作也會立即再刷一次。

SSH 與本地配置

在面板裏填寫 Host、端口、用戶名、密碼、compose 目錄、默認 compose 文件、Radiance 鏡像名、功耗上限(W)、是否使用 sudo。配置保存在本機:

~/.dsh/dsh-local-radiance-server-controller.json

官方說明:SSH 密碼以明文保存在該 JSON 中,且同時用於 sudo(經 base64 -d | sudo -S 傳入,明文不會出現在遠端進程參數裏)。不要在共享或託管機器上使用,並儘量縮小遠端賬號權限。

功能卡片與遠端行爲

區域 作用 遠端命令(摘要)
AMD GPU 功耗 啓用指定瓦數上限 / 恢復默認;狀態一致時按鈕帶 ✓ 並禁用 sudo amd-smi set -o <W> / sudo amd-smi reset -o
Radiance 服務 compose 目錄下 yaml 下拉(隱藏 common.yaml);啓停、更新鏡像(先 down 再 pull);顯示引擎版本;瀏覽器打開引擎頁 cd <dir> && sudo docker compose -f <file> up -d / down;sudo docker pull <image>;URL 爲 http://<host>:<PORT>,PORT 來自 <compose dir>/.env
服務器診斷 完整 amd-smi 輸出 amd-smi
危險操作 關機 / 重啓,各需兩次點擊確認,4 秒後自動取消 sudo shutdown -h now / sudo reboot

側邊欄 live metrics

插件在側邊欄底部保留一行:狀態點 + GPU %、CPU %、decode/prefill t/s;側邊欄摺疊時縮成狀態點。

整條插件只維護一條長連接 SSH(15 秒 keepalive,斷線退避重連)。流量經 ssh2 exec 多路複用:

數據 週期 遠端方式
decode / prefill 0.5 s curl localhost:<PORT>/stats(PORT 與 API key 從 compose 目錄 .env 讀取,key 不離開服務器;version 字段也用於服務卡片上的引擎版本)
CPU / GPU 5 s /proc/stat 雙採樣差分;amd-smi metric -u 的 GFX_ACTIVITY
服務 / 功耗狀態 20 s docker compose ls --format json;amd-smi static -l(SOCKET 與 MAX 對比是否有限制)

因此遠端 journalctl 裏通常一天只有一兩次 SSH 登錄記錄,而不是每次刷新新建連接。

安裝與啓用

插件以當前 DSH 進程權限在本機運行 Host 端邏輯;安裝前建議通讀倉庫源碼與 LICENSE,確認可接受明文存密碼等設計。

前提

  • 本機:DeepSeek Harness 桌面版。
  • 服務器:sshd 支持密碼登錄、sudo 可用;Radiance 以 docker compose 部署;AMD GPU 且裝有 amd-smi;Radiance 引擎暴露 /stats Web API。

步驟(任意機器首次安裝)

  1. 將插件目錄拷到本機任意路徑(不要拷貝 node_modules;每臺機器各自裝依賴)。至少需要 index.js、client.js、package.json、cordis.patch.yml、icon.svg、locale/(assets/ 僅爲 README 截圖,可選)。

  2. 在插件目錄安裝依賴(本地目錄安裝不會自動裝依賴,否則會 Cannot find package 'node-ssh'):

cd <plugin dir>
npm install --omit=dev
  1. 把 bundle 裝進 DSH:對 Harness 智能體說明使用 plugin_manager 安裝 <絕對路徑的 plugin dir> 作爲 bundle,或執行:
dsh plugin install <absolute plugin dir>
  1. 重啓 DSH 應用(Host 端在應用啓動時加載)。

  2. 打開側邊欄面板,填寫 SSH 信息並保存。

要在多臺機器間同步,複製步驟 1 所列文件,重複步驟 2–3 即可。

典型用法

  1. 保存 SSH 與 compose 目錄(默認 compose 目錄示例爲 ~/radiance-compose,默認服務文件 flashnext-tp2.yaml,默認鏡像 stilldeadcode/radiance,默認功耗 210 W,Use sudo 默認開啓)。

  2. 在下拉框選擇 yaml,點啓動/停止;需要新版本時點「更新鏡像」。運行中可在卡片上看到引擎版本,並一鍵用默認瀏覽器打開 http://<host>:<PORT>。

  3. 需要壓機房噪聲或控功耗時,在 AMD GPU 卡片設置瓦數並啓用限制;恢復默認用 reset。

  4. 日常看負載看側邊欄底部 widget;詳細 GPU 信息用「服務器診斷」。

  5. 維護窗口再使用危險區的關機/重啓(兩次確認)。

Host 暴露的 HTTP 路由(前綴 /dsh-local-radiance-server-controller,受 DSH 登錄保護)包括:GET state、GET job?id、GET fast、POST settings、POST action {action,file?}。

適用場景與注意

適合:本機跑 DSH、推理在局域網單臺(或少數)AMD + Radiance compose 服務器上,希望少開終端、側邊欄一眼看到 t/s 與利用率的操作者。

不適合或需慎用:共享電腦、明文密碼不可接受的環境;遠端賬號權限過大;沒有 Radiance /stats 或沒有 amd-smi 的機器。

排錯(來自 README):

現象 處理
改代碼後行爲異常 重啓 DSH(Host 模塊緩存)
sudo: a password is required 在面板重新保存密碼(sudo 使用登錄密碼)
服務正常但 widget 爲 - 重啓/斷線後的重連冷卻期內正常,約 30 秒內恢復
下拉缺少某個 yaml 只列出不含 .. 的 .yaml/.yml;common.yaml 故意隱藏
空閒時 decode 接近 0 Radiance 爲引擎側窗口平均,空閒接近零屬預期

DSH 生態強調「一切皆插件」;SkillHub 等社區目錄獨立於 DeepSeek / 幻方,並非官方應用商店。

結尾

dsh-local-radiance-server-controller 把局域網 AMD 推理機的 compose、功耗、鏡像與基礎運維收進 DSH 側邊欄,並用單 SSH 長連接承載指標與操作。目錄與詳情:

  • 插件頁:https://www.skillhub.cn/plugins/Vossk123/dsh-local-radiance-server-controller
  • 源碼:https://github.com/Vossk123/dsh-local-radiance-server-controller
羽毛球分组比赛记分
小程序二维码

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

小夜