dshkit

DeepSeek Harness (dsh) 安装完整教程

全局装 dsh 或用 npx 直接跑、启动 web profile 开在 3080 端口、配模型服务商、用 --dump-config 验证安装。含源码安装路径。

更新于 2026-08-132 min
一句话结论

npm install -g @deepseek-ai/dsh,然后 dsh web。web profile 首次启动会按内置模板自建,网页端开在 http://127.0.0.1:3080,进去在 Settings 里加模型服务商即可。

DeepSeek Harness 以 npm 包 @deepseek-ai/dsh 分发。没有安装器、不用容器、软件本身也不卡账号——MIT 协议,整个安装就一行命令。真正要多花五分钟的是装完之后:把它指向一个模型,以及搞清楚它把文件放哪了。

前置条件

需要 Node.js。dsh 走 npm 分发、由 Node 执行,「装完没反应」绝大多数是 Node 没装或者太老。

node -v

报错就先从 nodejs.org 装,或者用版本管理器(nvmfnmvolta)。macOS 上 brew install node 也行。

方式一:全局安装(推荐)

npm install -g @deepseek-ai/dsh

-gdsh 装到 PATH 上,任意项目目录都能敲。验证一下:

dsh --help

打印的是 launcher 自己的帮助——也就是在它把控制权交给具体 app 之前,launcher 认识的那些 flag。 这个区分后面会用上。

方式二:完全不装

npx @deepseek-ai/dsh web

一条命令下载并运行。想评估一下又不想留全局包就用这个。代价是每次调用都要重新解析包,启动更慢,而且 锁不住版本。

方式三:源码安装

要改 harness 本身、或者想跟 master 而不是发布版,走这条。

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

注意这里用的是 pnpm 不是 npm。仓库是 pnpm workspace,用 npm 装出来的 node_modules 结构是坏的。

启动网页端

dsh web

dsh webdsh --profile web 完全等价,都启动 $DSH_HOME/profiles/web 下的 profile——首次使用时 按内置模板自动创建,不需要你手工搭。

服务地址:

http://127.0.0.1:3080

3080 被占了就换一个。因为 --portapp 的 flag 而不是 launcher 的,参数顺序有讲究:

dsh --profile web --port 3100

launcher 先吃自己的 flag,遇到第一个它不认识的 token,后面全部算 app 的参数。

配模型服务商

harness 是运行时,不是模型。不给凭证它没有对象可聊。

网页端打开 Settings → Add provider,从目录里选一个——DeepSeek、Anthropic、OpenAI 等——粘贴 API key。key 写进 $DSH_HOME/.credentials.yaml,和 $DSH_HOME/settings.yaml 分开存,所以后者可以放心 提交或共享,不会带出密钥。

要接 OpenAI 兼容网关或自建端点,就注册自定义服务商。自定义服务商的凭证从你自己命名的环境变量里读:

llm-pi-ai:
  providers:
    my-gateway:
      apiKeyEnv: GATEWAY_API_KEY
      api: openai-completions
      baseURL: https://gateway.example/v1
      models:
        - id: vision-preview
          input: [text, image]

两个坑。apiKeyEnv 填的是变量,不是 key 本身——你得在启动 dsh 的那个 shell 里 export 出 GATEWAY_API_KEY。另外 provider ID(上面的 my-gateway)是永久的:想改名只能新建一个再删掉旧的。

验证安装

装完最有用的命令不是 --version,是这个:

dsh --profile web --dump-config

它打印 profile 真正启动起来的插件树——每一行都是 patch 可以命中的配置行。以后行为不对劲,第一个该看 的就是这份输出,因为它显示的是所有 patch 层叠加后的结果,而不是你以为自己配了什么。

它的兄弟 --dump-default-config不初始化 profile,直接显示组装出来的树。想看一个干净 profile 长什么样、不受本地改动污染,用这个。两份输出 diff 一下,就是你到底改了些什么。

现在你手上有什么

  • PATH 上的 dsh launcher
  • $DSH_HOME/profiles/web 下的 web profile
  • $DSH_HOME/.credentials.yaml 里的一份凭证
  • 127.0.0.1:3080 上的浏览器 agent

下一件值得搞清楚的事:harness 自带四种 agent 模式,而默认给你的那个未必是你想要的。

常见安装问题

全局装完还是 dsh: command not found npm 的全局 bin 目录不在 PATH 上。npm bin -g 看路径, 加进 shell 配置文件。

npm install -gEACCES 你的 npm prefix 指向 root 拥有的目录。要么把 prefix 改到自己拥有 的目录,要么用 Node 版本管理器,从结构上绕开。别用 sudo npm install -g 糊——它会在 npm 缓存里留下 root 拥有的文件,之后引发更难查的故障。

网页端能打开但每个请求都失败。 profile 有了,可用的凭证没有。回 Settings 检查;自定义服务商还要 确认 apiKeyEnv 指的那个变量真的在启动 dsh 的那个 shell 里 export 了——光写进 .zshrc 不算, 已经在跑的进程不会重读它。

常见问题

一定要全局安装吗?

不用。npx @deepseek-ai/dsh web 不装也能跑,是最快的试用方式。想在任意目录都能敲 dsh 才需要全局装。

dsh 的文件放在哪?

harness home 目录 $DSH_HOME 下。profile 在 $DSH_HOME/profiles/<名字>,设置在 $DSH_HOME/settings.yaml,凭证在 $DSH_HOME/.credentials.yaml。

没有 DeepSeek 账号能用吗?

能。服务商目录里有 Anthropic、OpenAI 等,也可以注册完全自定义的 OpenAI 兼容端点,自己填 base URL。

怎么升级?

重跑一遍全局安装命令即可。但它是 v0.1 开发者预览版,版本之间会有破坏性变更——升级你依赖的 profile 之前先读 changelog。

接着看