前言¶
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