DeepSeek Harness 安装与配置指南
本文档说明在Windows上安装、配置 DeepSeek Harness(dsh),并设置开机自启的完整流程。
1. 简介
DeepSeek Harness(dsh)是 DeepSeek 提供的 Agent 工作台,提供 Web UI 用于对话、任务编排和工具调用。
| 项 | 值 |
|---|---|
| 包名 | @deepseek-ai/dsh |
| 命令 | dsh |
| 默认 Web 地址 | http://127.0.0.1:3080 |
| 配置目录 | %USERPROFILE%\.dsh\ |
2. 环境要求
- 操作系统:Windows 10 / 11
- Node.js:v20 及以上(推荐 LTS 或当前稳定版)
- npm:随 Node.js 安装
检查版本:
node-v npm-v若未安装 Node.js,请从 https://nodejs.org 下载安装。
3. 安装 dsh
3.1 全局安装(推荐)
npm install-g @deepseek-ai/dsh验证安装:
dsh--version where.exe dsh3.2 临时运行(不安装)
npx @deepseek-ai/dsh web4. 启动 Web UI
dsh web--no-open--port 3080参数说明:
| 参数 | 说明 |
|---|---|
--no-open | 不自动打开浏览器 |
--port 3080 | 指定监听端口(默认 3080) |
启动成功后访问:http://127.0.0.1:3080
检查服务是否在线:
curl.exe-sS http://127.0.0.1:3080/-o NUL-w"HTTP %{http_code}`n"返回HTTP 200表示正常。
5. 模型配置
首次使用需在 Web UI 中完成基础设置:
- 打开 http://127.0.0.1:3080
- 进入Settings → Models
- 填入 API Key
- 选择一个Workspace目录
5.1 使用 OpenRouter + Ox Alpha
本机已配置通过 OpenRouter 调用Ox Alpha(stealth/ox-alpha)。
配置文件路径:%USERPROFILE%\.dsh\settings.yaml
llm-pi-ai:providers:openrouter:apiKeyEnv:OPENROUTER_API_KEYapi:openai-completionsbaseURL:https://openrouter.ai/api/v1supportsDeveloperRole:falsemaxTokensField:max_tokensmodels:-id:stealth/ox-alphaname:Ox Alphaagent-default-model:provider:openroutermodel:stealth/ox-alpha5.2 配置 API Key
任选一种方式:
方式 A:Web UI
在 Settings → Models 中直接填入 OpenRouter API Key。
方式 B:环境变量文件
创建%USERPROFILE%\.dsh\.env:
OPENROUTER_API_KEY=sk-or-v1-你的密钥请勿将
.env提交到 Git 仓库。
6. Windows 开机自启
以下脚本已部署到%USERPROFILE%\.dsh\:
| 文件 | 用途 |
|---|---|
start-dsh-web.ps1 | 检测并启动服务 |
start-dsh-web.cmd | 实际拉起 node 进程 |
stop-dsh-web.ps1 | 停止服务 |
logs\dsh-web.log | 运行日志 |
6.1 计划任务
已注册计划任务DeepSeekHarness-Web:
- 触发条件:用户登录后 30 秒
- 失败重试:最多 3 次,间隔 1 分钟
- 端口:3080
查看任务状态:
Get-ScheduledTask-TaskName'DeepSeekHarness-Web'6.2 手动注册计划任务
若需在新机器上重新配置自启,以管理员或当前用户执行:
$taskName='DeepSeekHarness-Web'$scriptPath="$env:USERPROFILE\.dsh\start-dsh-web.ps1"Unregister-ScheduledTask-TaskName$taskName-Confirm:$false-ErrorAction SilentlyContinue$action=New-ScheduledTaskAction`-Execute'powershell.exe'`-Argument"-NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -File `"$scriptPath`""$trigger=New-ScheduledTaskTrigger-AtLogOn-User$env:USERNAME$trigger.Delay ='PT30S'$settings=New-ScheduledTaskSettingsSet`-AllowStartIfOnBatteries `-DontStopIfGoingOnBatteries `-StartWhenAvailable `-RestartCount 3 `-RestartInterval(New-TimeSpan-Minutes 1)Register-ScheduledTask`-TaskName$taskName`-Action$action`-Trigger$trigger`-Settings$settings`-Description'Auto-start DeepSeek Harness web UI on port 3080'6.3 部署自启脚本
将以下文件复制到%USERPROFILE%\.dsh\(可从本仓库参考实现)。
start-dsh-web.cmd
@echo off setlocal set "NODE=C:\Program Files\nodejs\node.exe" set "DSH=%APPDATA%\npm\node_modules\@deepseek-ai\dsh\lib\bin.js" set "LOG=%USERPROFILE%\.dsh\logs\dsh-web.log" if not exist "%USERPROFILE%\.dsh\logs" mkdir "%USERPROFILE%\.dsh\logs" echo %date% %time% starting dsh web on port 3080>>"%LOG%" "%NODE%" "%DSH%" web --no-open --port 3080 >>"%LOG%" 2>&1start-dsh-web.ps1负责:
- 检测 3080 端口是否已有服务
- 校验
node.exe和dsh是否存在 - 调用
start-dsh-web.cmd后台启动
stop-dsh-web.ps1负责结束所有dsh web相关 node 进程。
7. 日常运维
启动
powershell-NoProfile-ExecutionPolicy Bypass-File"$env:USERPROFILE\.dsh\start-dsh-web.ps1"停止
powershell-NoProfile-ExecutionPolicy Bypass-File"$env:USERPROFILE\.dsh\stop-dsh-web.ps1"查看日志
Get-Content"$env:USERPROFILE\.dsh\logs\dsh-web.log"-Tail 30升级 dsh
npm update-g @deepseek-ai/dsh dsh--version升级后建议重启服务。
卸载
# 1. 停止服务powershell-NoProfile-ExecutionPolicy Bypass-File"$env:USERPROFILE\.dsh\stop-dsh-web.ps1"# 2. 删除计划任务Unregister-ScheduledTask-TaskName'DeepSeekHarness-Web'-Confirm:$false# 3. 卸载全局包npm uninstall-g @deepseek-ai/dsh# 4. (可选)删除配置Remove-Item-Recurse-Force"$env:USERPROFILE\.dsh"8. 故障排查
端口 3080 无法访问
- 确认进程是否存在:
Get-CimInstanceWin32_Process|Where-Object{$_.CommandLine-match'@deepseek-ai\\dsh\\lib\\bin\.js.*web'}|Select-ObjectProcessId,CommandLine- 查看日志:
%USERPROFILE%\.dsh\logs\dsh-web.log - 手动前台启动以观察报错:
dsh web--no-open--port 3080端口被占用(EADDRINUSE)
说明 3080 已有实例在运行。先停止再启动:
powershell-NoProfile-ExecutionPolicy Bypass-File"$env:USERPROFILE\.dsh\stop-dsh-web.ps1"开机后未自动启动
- 检查计划任务是否启用:
Get-ScheduledTask-TaskName'DeepSeekHarness-Web'|Select-ObjectTaskName,State- 手动触发一次启动脚本验证
- 确认 Node.js 安装在
C:\Program Files\nodejs\(脚本默认路径)
模型无法调用
- 确认
OPENROUTER_API_KEY已配置 - 检查
settings.yaml中 provider / model 名称是否正确 - 在 Web UI → Settings → Models 中重新选择模型
9. 当前环境快照
| 项 | 值 |
|---|---|
| dsh 版本 | 0.1.1-rc.2 |
| Node.js 版本 | v25.2.1 |
| 默认模型 | OpenRouter / Ox Alpha (stealth/ox-alpha) |
| 自启任务 | DeepSeekHarness-Web |
| Web 地址 | http://127.0.0.1:3080 |
10. 参考链接
- npm 包:https://www.npmjs.com/package/@deepseek-ai/dsh
- OpenRouter:https://openrouter.ai