前言¶
在 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 引擎暴露/statsWeb API。
步驟(任意機器首次安裝)¶
-
將插件目錄拷到本機任意路徑(不要拷貝
node_modules;每臺機器各自裝依賴)。至少需要index.js、client.js、package.json、cordis.patch.yml、icon.svg、locale/(assets/僅爲 README 截圖,可選)。 -
在插件目錄安裝依賴(本地目錄安裝不會自動裝依賴,否則會
Cannot find package 'node-ssh'):
cd <plugin dir>
npm install --omit=dev
- 把 bundle 裝進 DSH:對 Harness 智能體說明使用 plugin_manager 安裝
<絕對路徑的 plugin dir>作爲 bundle,或執行:
dsh plugin install <absolute plugin dir>
-
重啓 DSH 應用(Host 端在應用啓動時加載)。
-
打開側邊欄面板,填寫 SSH 信息並保存。
要在多臺機器間同步,複製步驟 1 所列文件,重複步驟 2–3 即可。
典型用法¶
-
保存 SSH 與 compose 目錄(默認 compose 目錄示例爲
~/radiance-compose,默認服務文件flashnext-tp2.yaml,默認鏡像stilldeadcode/radiance,默認功耗 210 W,Use sudo默認開啓)。 -
在下拉框選擇 yaml,點啓動/停止;需要新版本時點「更新鏡像」。運行中可在卡片上看到引擎版本,並一鍵用默認瀏覽器打開
http://<host>:<PORT>。 -
需要壓機房噪聲或控功耗時,在 AMD GPU 卡片設置瓦數並啓用限制;恢復默認用 reset。
-
日常看負載看側邊欄底部 widget;詳細 GPU 信息用「服務器診斷」。
-
維護窗口再使用危險區的關機/重啓(兩次確認)。
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