前言¶
DeepSeek Harness(DSH)是一個智能體開發平臺,開發者常需要在 DSH 中通過遊戲場景進行測試或演示。手動尋找遊戲本體路徑或啓動器安裝包會打斷工作流。dsh-plugin-genshin-launch 插件通過零配置探測機制,解決“打開 DSH 時檢測本地《原神》安裝狀態”的問題。
核心功能¶
插件主要提供兩種自動化方案:
-
方案二:打開 DSH 就啓動原神
- 零配置探測:檢測順序爲
config→registry→paths→scan。最快一檔約 400ms,整條快檔約 0.5 秒。 - 觸發時機:瀏覽器界面渲染出來時(基於
patchReload: live),而非宿主進程啓動時。 - 啓動策略:探測結果分爲
ready(有本體)、incomplete(正在裝/更新)、沒找到三種狀態。ready時直接啓動本體;incomplete時啓動米哈遊啓動器;沒找到時走方案一。 - 進程控制:每個 DSH 進程只啓動一次,刷新頁面或熱重載不會重複啓動。
- 零配置探測:檢測順序爲
-
方案一:沒裝就把安裝包下到桌面
- 自動下載:沒檢測到遊戲時,下載米哈遊啓動器安裝包到桌面。
- 體積安全閘:安裝包約 224 MiB。下載時會校驗體積,偏差超過 15 MiB(默認值)則拒絕下載,防止誤下錯誤文件。
- 斷點續傳:支持斷點續傳。
探測機制¶
探測過程全程本地只讀,不聯網。檢測採用五檔階梯策略,命中即停:
- config:讀取配置文件中的
gameExe或gamePath(最高優先級)。 - registry:讀取 HoYoPlay 的
HYP樹(如HYP\1_1\hk4e_cn),校準編碼後查找路徑。 - paths:遍歷常用頂層目錄(如盤符根目錄)。
- scan:僅在前面全空時執行。全量掃描卸載記錄(3 個根 × 4 個鍵名),並進行有界目錄掃描(默認深度 ≤ 4)。
狀態判定:
* ready:存在 YuanShen.exe 或 GenshinImpact.exe。
* incomplete:存在 YuanShen_Data、pkg_version、mhypbase.dll 等結構指紋。
* 沒找到:上述均不滿足。
安裝與配置¶
安裝插件需要 pnpm 環境,且網絡需能訪問 GitHub。
安裝命令:
dsh plugin --profile web add github:Link258QAQ/dsh-plugin-genshin-launch
配置示例:
在 $DSH_HOME/profiles/web/cordis.patch.yml 中添加配置:
- id: genshin-launch
name: dsh-plugin-genshin-launch
config:
launchGame: true
launchTrigger: gui
launchMethod: spawn
retryShellOnElevation: true
launchWatchMs: 3000
fallbackToLauncher: true
launchOncePerSession: true
detectSources: ['config', 'registry', 'paths', 'scan']
download: true
downloadDir: 'C:\Users\你\Desktop'
expectedInstallerBytes: 234881024
sizeToleranceBytes: 52428800
注意事項:
* 僅限 Windows:探測依賴註冊表、DPAPI 加密和 UAC 提權機制。
* 權限提示:插件不會靜默提權。如果遊戲或啓動器清單要求管理員權限,spawn 模式會因 EACCES 失敗,此時插件會自動回退到 shell 模式(雙擊語義),由系統彈出 UAC 請求。
* 隱私保護:遊戲啓動時會剔除包含 *KEY*、*PASSWORD* 等關鍵字的環境變量;路徑在日誌和配置中均經過掩碼或 DPAPI 加密存儲。
自檢與調試¶
插件附帶一個不依賴 DSH 的自檢工具,用於驗證探測和啓動鏈路:
# 僅探測模式
node tools/selfcheck.mjs
# 驗證啓動鏈路(指定程序,自動清理)
node tools/selfcheck.mjs --exe "D:\path\to\YuanShen.exe" --launch --kill