昊梵体育网

DeepSeek Harness :用三个脚本构建你的 DSH 便携包

DeepSeek Harness 目前还是开发者预览版,官方只发布源码——想体验?你得先装 Git、Node.js、pnpm,然后 clone、install、build 一条龙。折腾一圈下来,C 盘里悄悄多了三四个缓存目录;换台电脑?从头再来一遍。 这篇文章送你三个 .bat 脚本,把 DSH 的完整运行环境——Node、Git、依赖缓存、临时文件——全部装进一个文件夹:拷到哪台电脑都能跑,升级只要双击一下,全程不往 C 盘写一个字节。
一、前期准备:下载两个"绿色版"工具便携包的地基是两个免安装的工具,注意一定要下载便携版,不要下安装包:
1️⃣ Node.js(ZIP 版)官网 nodejs.org → 下载页 → Windows 版本中选 .zip 结尾的 64-bit 包(不是 .msi 安装包!)
建议选 LTS 长期支持版。
解压后,把 node-vXX.X-win-x64 文件夹改名为 nodejs。
2️⃣ Git(Portable 版)官网 git-scm.com → Download for Windows → 页面往下翻,找 Portable ("thumbdrive edition")。
下载到的是一个自解压程序,双击运行,解压路径填 G:\DSHtools\Git(目录会自动创建)。
3️⃣ 建立目录一切用英文路径,比如 G:\DSHtools\。刚开始你只需要手动准备这些:
G:\DSHtools\ ├─ nodejs\ ← 刚才解压并改名的 Node ├─ Git\ ← 刚才解压的便携版 Git ├─ _env.bat ← 环境中枢(下文提供) ├─ 升级DSH.bat ← 升级脚本(下文提供) └─ 启动DSH.bat ← 启动脚本(下文提供)
剩下的目录都不用手建,首次运行脚本时会自动生成,最终长这样:
G:\DSHtools\ ├─ nodejs\ ← 自带 Node(已便携) ├─ Git\ ← 自带 Git ├─ deepseek_harness\ ← 源码 + 构建产物 + data/.env(自动 clone) ├─ pnpm-store\ ← 依赖缓存(换机免重下) ├─ npm-cache\ ← 元数据缓存 ├─ corepack\ ← pnpm 本体缓存 ├─ tmp\ ← 构建临时文件 ├─ _env.bat ← 环境中枢 ├─ 启动DSH.bat └─ 升级DSH.bat
⚠️ 两个硬性要求:① 整条路径不能有中文和空格;② 磁盘必须是 NTFS 格式——pnpm 依赖硬链接,U 盘常见的 exFAT/FAT32 跑不了。

二、三个脚本脚本一:_env.bat(环境中枢,整个方案的灵魂)代码块
PlainText
自动换行
复制代码
@echo off
:: ============================================================
:: DeepSeek Harness 便携包 - 公共环境配置
:: 作用:所有缓存/配置/临时文件全部留在包内,不写 C 盘
:: 本文件由 启动/升级 脚本自动调用,无需手动运行
:: 注意:此处故意不写 setlocal,变量需要传回调用者
:: ============================================================

set "PORTABLE=%~dp0"

:: 优先使用包内自带的 Node 和 Git(换机器不依赖系统安装)
set "PATH=%PORTABLE%nodejs;%PORTABLE%Git\cmd;%PATH%"

:: pnpm 依赖缓存(换机/重装系统后,依赖秒装不用重新下载)
set "npm_config_store_dir=%PORTABLE%pnpm-store"

:: pnpm 元数据缓存
set "npm_config_cache_dir=%PORTABLE%npm-cache"
set "npm_config_cache=%PORTABLE%npm-cache"

:: pnpm / corepack 本体也留在包内
set "PNPM_HOME=%PORTABLE%pnpm-home"
set "COREPACK_HOME=%PORTABLE%corepack"
set "COREPACK_ENABLE_DOWNLOAD_PROMPT=0"

:: 临时文件目录(构建的 temp 也不落 C 盘)
set "TEMP=%PORTABLE%tmp"
set "TMP=%PORTABLE%tmp"
if not exist "%PORTABLE%tmp" mkdir "%PORTABLE%tmp"

:: Git 全局配置跟包走(避免在 C 盘用户目录生成 .gitconfig)
set "GIT_CONFIG_GLOBAL=%PORTABLE%gitconfig"
if not exist "%PORTABLE%gitconfig" (
echo [user]> "%PORTABLE%gitconfig"
echo name = portable>> "%PORTABLE%gitconfig"
echo email = portable@local>> "%PORTABLE%gitconfig"
)

:: 可选:国内镜像加速依赖下载(不需要就保持注释状态)
:: set "npm_config_registry=https://registry.npmmirror.com"
复制成功
这个文件干的事只有一件:把所有默认写到 C 盘的东西,全部重定向到包内。

两个设计要点:
· 故意不写 setlocal——这个文件的变量要传回调用它的启动/升级脚本,setlocal 一包就全失效了;
· 全部基于 %~dp0(脚本所在目录)——所以整个文件夹挪到任何盘符、任何机器,都不用改一个字。
两个设计要点:
故意不写 setlocal——这个文件的变量要传回调用它的启动/升级脚本,setlocal 一包就全失效了;全部基于 %~dp0(脚本所在目录)——所以整个文件夹挪到任何盘符、任何机器,都不用改一个字。脚本二:升级DSH.bat(更新 + 构建)代码块
PlainText
自动换行
复制代码
@echo off
chcp 65001 >nul
title DeepSeek Harness 便携式更新

echo ========================================
echo DeepSeek Harness 便携式智能更新脚本
echo ========================================

:: 载入便携环境(Node/Git/缓存位置全部指向包内)
call "%~dp0_env.bat"

if exist "%~dp0deepseek_harness\.git" (
echo [1/3] 检测到已有仓库,同步到最新版本 ...
cd /d "%~dp0deepseek_harness"
git fetch origin
if errorlevel 1 (
echo [错误] Git fetch 失败,请检查网络。
pause
exit /b 1
)
rem 强制对齐远程代码(本地源码修改会被丢弃;data/.env 等数据文件不受影响)
git reset --hard origin/master
) else (
echo [1/3] 未找到源码,进行全新克隆 ...
cd /d "%~dp0"
if exist deepseek_harness rmdir /s /q deepseek_harness
git clone --depth 1 https://gh-proxy.com/https://github.com/deepseek-ai/deepseek-harness.git deepseek_harness
if errorlevel 1 (
echo [错误] Git clone 失败,请检查网络。
pause
exit /b 1
)
cd /d "%~dp0deepseek_harness"
)

:: 确保 pnpm 可用(corepack 激活,重复执行无副作用)
corepack enable pnpm >nul 2>&1

echo [2/3] 更新依赖 ...
call pnpm install
if errorlevel 1 (
echo [错误] pnpm install 失败。
pause
exit /b 1
)

echo [3/3] 执行构建 ...
call pnpm run build
if errorlevel 1 (
echo [错误] 构建失败,请检查上方错误信息。
pause
exit /b 1
)

echo ========================================
echo 更新成功!当前版本:
git log --oneline -1
echo 数据文件(data/.env)已保留,双击"启动DSH.bat"即可使用
echo ========================================
pause
复制成功
三个值得说道的设计:
没有目录?直接新建。 首次运行它会自动 clone 源码,所以它同时兼任"安装脚本"和"升级脚本";用 fetch + reset --hard 而不是 pull --rebase。 便携包构建机不需要保留任何本地修改,强制对齐远程最干净——永远不会遇到 rebase 冲突、分支没关联这类莫名其妙的报错。而你的 data/、.env 是未跟踪文件,reset --hard 根本不碰它们,数据安全;凡是调用 pnpm 的地方都加了 call。 这是 Windows 批处理的一个经典大坑:.bat 里调用 pnpm(本质是 pnpm.CMD)不加 call,控制权会"链式"转移走,后面的命令一行都不会执行——你会以为升级成功了,其实构建压根没跑。脚本三:启动DSH.bat(日常使用)代码块
PlainText
自动换行
复制代码
@echo off
chcp 65001 >nul
color 0B
title DeepSeek Harness 便携版

:: 载入便携环境(Node/Git/缓存位置全部指向包内)
call "%~dp0_env.bat"

:: 进入源码目录
cd /d "%~dp0deepseek_harness"
if errorlevel 1 (
echo [错误] 找不到 deepseek_harness 目录!
echo 请先运行"升级DSH.bat"来克隆或更新源码。
pause
exit /b 1
)

:: 换机/换盘符后首次运行时自动修复依赖(平时直接跳过,不影响启动速度)
if not exist "node_modules" (
echo [提示] 首次运行或依赖缺失,正在自动安装(使用本地缓存)...
call pnpm install
if errorlevel 1 (
echo [错误] 依赖安装失败,请运行"升级DSH.bat"完整更新一次。
pause
exit /b 1
)
)

echo 正在启动 DeepSeek Harness ...
call pnpm dsh web

pause
复制成功
三、首次运行双击 升级DSH.bat。因为源码目录还不存在,它会自动 clone、安装依赖、构建。首次耗时几分钟到十几分钟(取决于网速),耐心等它跑完;双击 启动DSH.bat,看到服务启动信息后,按提示用浏览器访问即可;按 DSH 项目文档把你的 API Key 配到 deepseek_harness\.env 里——放心,以后每次升级它都不会被覆盖。 一般双击运行即可;如果公司电脑权限管控较严导致失败,可以试试右键"以管理员身份运行"。
四、日常就两个动作想做什么 做什么 使用 DSH 双击 启动DSH.bat 升级到新版本 双击 升级DSH.bat(增量更新,很快) 换电脑用 把整个 DSHtools 文件夹拷过去,先跑升级、再跑启动
最后一条尤其爽:依赖缓存在包里,换机后 pnpm install 基本秒完成,不用重新下载几百 MB 的依赖。
五、避坑指南Q:提示 pnpm 不是内部或外部命令?
你的 Node 版本可能没带 corepack。换官网 LTS 版本即可,脚本里的 corepack enable pnpm 会自动搞定激活。
Q:clone 失败?
脚本默认走了 gh-proxy.com 镜像加速,如果镜像挂了,把升级脚本里的 clone 地址换成官方原址 网页链接 试试。
Q:脚本里的中文变成乱码?
保存文件时编码选 UTF-8(无 BOM)。记事本"另存为"时把编码从 ANSI 改成 UTF-8 即可。
Q:依赖下载慢?
把 _env.bat 最后一行的注释去掉,启用 npmmirror 国内镜像。
Q:缓存目录越来越大?
正常现象,pnpm-store 是依赖缓存,升级越多积累越多。定期在项目目录执行 pnpm store prune 可清理无用部分。
· · ·
写在最后这个方案的哲学就一句话:一个文件夹 = 一个完整的世界。
Node 在里面、Git 在里面、依赖缓存在里面、配置在里面、数据也在里面。C 盘保持干净,系统重装不用慌,换机器拷贝即用——三个脚本,一次配置,终身便携。
✅ 这个方案比之前版本强在哪
实施建议你现在可以直接按照这个方案重建你的便携包。只需:
创建 _env.bat(环境中枢)——内容照抄文档替换 升级DSH.bat——用文档里的新版替换 启动DSH.bat——用文档里的新版确保目录结构正确:G:\DSHtools\ (或你的移动设备根目录) ├─ nodejs\ (Node.js ZIP 版) ├─ Git\ (Git Portable 版) ├─ _env.bat ├─ 升级DSH.bat └─ 启动DSH.bat
双击 升级DSH.bat 完成首次克隆和构建双击 启动DSH.bat 开始使用⚠️ 几个要注意的细节1. 文件编码:三个 .bat 和 .txt 都保存为 UTF-8(无 BOM),否则中文会乱码。记事本另存为时选择 UTF-8。
2. 磁盘格式:必须是 NTFS,因为 pnpm 依赖硬链接,exFAT/FAT32 跑不了。
3. 路径不能有中文和空格:你的 G:\Program Files 有空格,虽然目前可能没事,但建议改为 G:\DSHtools 或 G:\DeepSeek 更稳妥。
4. _env.bat 不要手动运行:它只被另外两个脚本 call 调用。
5. 首次运行需要网络:克隆源码和下载依赖需要联网,之后换机用缓存就快了。
关于 _env.bat 中的镜像配置文档最后提到,如果依赖下载慢,可以把 _env.bat 最后一行的注释去掉:
set "npm_config_registry=https://registry.npmmirror.com"
这个建议非常实用,尤其是第一次构建时。