DeepSeek Harness
用 VibeCLI 把 VibeAPI 配置进 DeepSeek Harness(dsh)的网页版和桌面端:写了什么、怎么验证、为什么这样设计、怎么移除
DeepSeek Harness(命令 dsh)是 DeepSeek 的开源 Agent 框架,目前是开发者预览版,新版本可能改变配置方式。接入 VibeAPI 后,网页版和桌面端的模型菜单里都能用这个令牌能用的模型,不止 DeepSeek。
前提:已通过 npx @deepseek-ai/dsh web 运行过网页版,或安装了桌面端(macOS、Windows)。VibeCLI 不代为安装。
配置
下面的命令里,把 sk-xxx 换成你的令牌。检测到 DeepSeek Harness 时,setup 会问你是否配置,回车即配置;带 --yes 时直接配置:
vibecli setup --key sk-xxx只让 DeepSeek Harness 使用这个令牌:
vibecli setup --dshkey sk-xxx配置完成后,打开 DeepSeek Harness,在输入框下方的模型菜单里选择模型,默认是 DeepSeek V4 Pro。已打开的不用重启。桌面端还没启动过也可以先配置,第一次打开就能用。
写了什么
~/.dsh 目录下(设置了 DSH_HOME 时用它):
| 文件 | 写入 |
|---|---|
profiles/web/cordis.patch.yml、profiles/desktop/cordis.patch.yml | VibeAPI 的三组提供商,分别走 Chat Completions、Responses、Messages;默认模型 deepseek-v4-pro |
.credentials.yaml(权限 0600) | VIBEAPI_API_KEY:你的令牌 |
你自己配置的其它提供商和令牌都保留。原来的默认模型会被替换,输出里会列出它,运行 vibecli config dsh restore 可以恢复。
验证
打开 DeepSeek Harness,在模型菜单里选一个模型,发一句话能正常回复即配置完成。
为什么这样设计
分成三组提供商一个提供商只有一种协议DeepSeek Harness 的一个提供商只能用一种协议,而 GPT、Claude 和其余模型各有最合适的接口,所以分开写。GPT 用 Responses,Claude 用 Messages,其余用 Chat Completions。
DeepSeek 走 Chat Completions不走 Messages实测 Messages 接口会把缓存命中的部分重复计入输入,Chat Completions 的用量统计是对的。
写在 profile 里不写 ~/.dsh/cordis.patch.yml~/.dsh/cordis.patch.yml的优先级高于 profile,写在那里会让设置页的修改被拒绝。
排障
| 现象 | 原因 | 处理 |
|---|---|---|
setup --key 没有配置 DeepSeek Harness | 没有检测到它,或没有终端可以提问 | 运行 vibecli setup --dshkey <你的令牌> |
| 启动时提示令牌文件权限不对 | .credentials.yaml 被组或其他用户可读 | 运行 chmod 600 ~/.dsh/.credentials.yaml |
dsh headless 读不到令牌 | headless 模式只读环境变量,不读 .credentials.yaml | 用网页版或桌面端,或自己设置环境变量 |
vibecli 报配置文件解析失败 | cordis.patch.yml 不是合法的 YAML,VibeCLI 不会改动它 | 修好文件,或运行 vibecli config dsh restore |
移除
运行下面的命令,或在 vibecli config dsh 的菜单里选「移除」:
vibecli config dsh remove这会删掉两个 cordis.patch.yml 里的 VibeAPI 提供商和默认模型,以及 .credentials.yaml 里的 VIBEAPI_API_KEY,你自己的提供商和令牌保留。移除后完全退出 DeepSeek Harness 再打开。想回到 VibeCLI 上一次修改前的状态,运行 vibecli config dsh restore。
最后更新于