前言¶
DSH 的插件化方向是「一切皆插件」。在智能體開發、長任務調試或多項目並行時,單機算力或本地環境可能不夠用。scriptsnet/dsh-fleet 是一個 DSH 插件,目標是把朋友間、局域網裏、雲上 ECS 的閒置算力接入同一個團隊,由一臺機器把任務派發給其他在線機器,worker 自動執行並回流結果。
這個插件由 scriptsnet 維護,許可證爲 MIT。
這是什麼¶
scriptsnet/dsh-fleet 解決的是多機協同調用問題:每臺機器生成自己的機器身份,加入一個或多個團隊;團隊成員可以互相查看在線狀態;master 側可以用 fleet_dispatch 把任務發給指定成員;worker 側執行任務,並把會話掛到工作區,便於回溯。
它支持 Windows、Linux、macOS,運行時只依賴 Node 內置模塊。插件啓動後會註冊 12 個模型工具,並在側邊欄提供「算力艦隊」面板。
核心能力¶
機器身份與機器名片¶
安裝後,每臺機器會生成 machineId 和永久 SK。
機器名片是一行可複製字符串,用於把這臺機器加入團隊,減少手工配置。
多團隊¶
每臺機器可以同時屬於多個團隊。不同團隊之間的成員名錄相互獨立。
信任握手¶
插件使用 challenge-response + HMAC-SHA256 做信任握手,用於證明持有 SK。SK 永不明文過網。
心跳監控¶
成員通過長連接上報心跳,並上報 RTT、內存等資源信息。斷線後會自動重連,在線狀態可以即時查看。
任務派發¶
fleet_dispatch 用於把任務發給在線成員。worker 自動執行任務,並回流結果。
任務執行時使用臨時 taskToken,通過 HMAC 驗籤防僞造。worker 擁有最終否決權。
會話保留¶
worker 執行任務後,任務會話會自動掛載到工作區,便於在本地查看和回溯。
安裝與啓用¶
如果本機已經安裝 harness,可以使用 DSH 插件命令安裝:
dsh plugin --profile web add https://github.com/scriptsnet/dsh-fleet
安裝完成後,重啓 harness 後生效。
插件啓動後會監聽默認端口:
47900
同時會註冊 /fleet/api/* 路由,供側邊欄面板使用。該路由僅迴環可訪問。
插件還會註冊 12 個模型工具,用於名片、團隊、成員、聯通測試和任務派發等操作。
如果目標機沒有 harness,項目提供 Windows / Linux 離線安裝器,用於離線安裝 harness 和插件。
環境變量¶
以下環境變量會影響插件運行目錄和任務後會話處理方式:
DSH_FLEET_HOME:默認 $DSH_HOME/fleet 或 ~/.dsh/fleet
DSH_FLEET_DISPOSE_AFTER_TASK:默認 0
DSH_FLEET_HOME 用於身份和名錄目錄。本地多機模擬時,可以爲每臺機器分別指定。
DSH_FLEET_DISPOSE_AFTER_TASK 默認保留任務會話,便於在 GUI 中查看。
典型用法¶
先完成安裝並重啓 harness。
1、查看本機機器名片:
查看我的機器名片 → fleet_card
2、把這臺機器加入指定團隊:
把這張名片加入 XX 團隊 → fleet_add
3、查看團隊和成員在線情況:
有哪些團隊?成員在線嗎? → fleet_teams
4、向指定團隊或成員派發任務:
用 fleet_dispatch 把任務發給「XX艦隊」的成員
派發時可以指定 provider/model 與 keyHint:
keyHint: inherit / self
任務完成後,worker 會把結果迴流到調用側,worker 側的任務會話也會掛載到工作區。
適用場景與注意¶
適合以下場景:
- 已經在使用
harness,希望把多臺Windows、Linux、macOS機器組成 DSH 算力團隊。 - 有朋友閒置 PC、局域網服務器、雲上 ECS,希望複用這些機器的算力。
- 需要跨機器派發任務、查看在線狀態、保留 worker 會話。
需要注意:
- 插件以當前
dsh進程權限運行。安裝前應檢查源碼、依賴面和MIT許可證是否符合你的使用要求。 SK是機器身份憑證,不要泄露給不信任的人或環境。/fleet/api/*僅迴環可訪問,不要把它暴露到公網。- 任務執行依賴臨時
taskToken和 worker 否決權,但這不改變本地權限邊界。 - 當前路線圖待實現項包括:任務日誌流式迴流 / 產物回傳、
UDP打洞、邀請碼入隊,以及發佈npm(dsh-plugintopic)後走標準dsh plugin add安裝。npm包是否已發佈,不能從當前已覈實資料中確認。
資源鏈接¶
GitHub 倉庫:
https://github.com/scriptsnet/dsh-fleet