DeepSeek Harness CLI 速查表 + 新手故障排查

你需要的每一条 dsh 命令,已在 0.1.0-rc.6 上验证:profile、无头单次运行、网页 UI、插件、端口、配置位置——外加 10 个常见问题及修复。

快速回答

dsh 是 DeepSeek Harness 的命令行。一个心智模型能覆盖大部分用法:`dsh` 启动一个 profile,而 profile 是一组命名的插件堆栈。dsh web 启动浏览器 UI。dsh --profile headless "task" 启动一个智能体,回答一个任务然后退出。其他一切都是围绕这两者的参数。

本速查表已对照当前版本(0.1.0-rc.6,2026-08-15 实测)验证——下面的帮助输出是真实的,不是凭记忆转述的。

命令速查表

你想做什么

命令

备注

启动浏览器 UI

dsh web

等价于 dsh --profile web。默认 127.0.0.1:3080

运行一次性任务

dsh --profile headless "your task here"

打印答案后退出。自动化的积木

换个端口启动 UI

dsh web --port 8080

0 让系统挑一个空闲端口

绑定指定主机

dsh web --host 0.0.0.0

用于网络访问;其他主机需要过浏览器信任围栏,用 --trusted-host

放行另一台主机通过 UI 围栏

dsh web --trusted-host myhost:3080

可重复

列出 profile 里的插件

dsh plugin --profile web ls

转发到 profile 目录内的 pnpm

添加插件

dsh plugin --profile web add <package>

社区插件在 dsh-plugin 主题下

查看 profile 的组合配置

dsh --dump-config

打印完整配置树——含供应商详情,请保密

查看不含你覆盖项的同一配置

dsh --dump-default-config

适合对比改了哪些东西

在 profile 上叠加补丁

dsh --profile web --patch ./extra.yml

可重复;在 profile 之后叠加

恢复会话

dsh --profile headless --resume <session>

profile 名之后的参数会传给应用

查看版本

dsh --version

写作时为 0.1.0-rc.6;自动化请锁定此版本

获取帮助

dsh --help / dsh web --help

真实输出;应用自身的参数跟在 profile 之后

Profile 详解

Profile 是 ~/.dsh/profiles/ 下一个文件夹,装着它的插件堆栈。工具自带两个:

  • `web`127.0.0.1:3080 上的浏览器 UI。设置、会话、工作区、Trajectory 日志。
  • `headless` — 一个任务、一个答案、退出。完全无 UI。

官方帮助里把 dsh --profile tui --resume <session> 作为示例,这正是自定义 profile 的模式:放进 ~/.dsh/profiles/ 的任何文件夹都成为一个可启动的 profile,你可以在上面叠加 --patch 覆盖层而不修改基础。如果你有一个每周跑的工作流,把它做成独立 profile(或补丁文件)比每次都粘贴同一串参数强。

配置放在哪里

~/.dsh/(或设置了 $DSH_HOME 就用它)是全部状态目录:

路径

里面是什么

profiles/

每个 profile 一个文件夹,各自带插件堆栈

sessions/

已保存的会话数据

settings.yaml

用户级设置

storages/

工作区注册表和其他存储状态

两个实际后果。第一,这个目录是纯文本且可移植——复制它就是在另一台机器上复刻你的配置。第二,供应商凭据也在这里,所以要像对待 SSH 文件夹一样对待 ~/.dsh/:备份它、不共享它、绝不贴进提示词。

DeepSeek Harness 配置目录结构示意图:~/.dsh 下分四支——profiles、sessions、settings.yaml、storages,各带中文说明

10 个最常见的问题

现象

原因

修复

npx: command not found

未安装 Node.js

从 nodejs.org 安装 Node.js 18+,重启终端重试

端口 3080 已被占用

另一个实例或应用占了端口

dsh web --port 8080(或 --port 0 让系统挑选)

headless 提示会话挂载失败

工作区路径解析与写入不一致(macOS /tmp/private/tmp)

工作区配置里用真实路径(/private/tmp/...)

UI 里输入框一直锁定

未选择工作区

先在侧边栏添加工作区

发送时报 "API key" 错误

Key 缺失或错误

设置 → 模型 → 编辑 → 粘贴 → 应用

首次运行任务卡住

冷启动(插件加载、模型预热)

正常;之后运行会快很多

--dump-config 输出让你不安

它是完整组合配置树

它只用于调试;绝不贴进聊天或工单

上周还能用的提示词失败了

开发者预览更新改变了行为

dsh --version;锁定你依赖的版本;保留上次的好输出

启用的插件不工作了

插件堆栈版本漂移

dsh plugin --profile web ls 检查,然后更新或锁定

两台机器配置不一致

$DSH_HOME 不同或拷贝过期

显式复制 ~/.dsh/,并确认 dsh --version 一致

费用预期

工具本身免费(MIT)。你只按供应商费率付模型 token:

  • 单次 headless 任务通常成本不到一分钱。
  • 本系列自动化文章里的每周监控方案,一年成本低于一杯咖啡。
  • DeepSeek Harness 本身没有按座位费、没有订阅、没有使用费。

烧钱的习惯都是人的:同一个模糊提示词跑五遍,或者本来一次 headless 单发就能搞定却用网页 UI 聊天。提示词里的格式纪律(见本系列提示词库文章)是最便宜的优化。

安全提示

  • 凭据留在本地。 供应商 Key 在 ~/.dsh/ 里,UI 中只写不读。绝不贴进提示词、工单或共享日志。dsh --dump-config 会打印完整组合树,包括供应商设置——保持该输出私密。
  • 审批与权限。 智能体在破坏性操作前会征求同意;这是审批策略在起作用。想测试危险命令,在一次性工作区文件夹里测,别在你的真实内容目录里。
  • 预览版警告。 表里的一切都在 0.1.0-rc.6 上验证过。插件和 API 变更在路上;README 说了,首次运行对话框也重复了。任何自动化都锁定版本。

FAQ

`dsh web` 和 `dsh --profile web` 有什么区别?没有。web--profile web 的便捷别名。长形式存在,是因为 --profile 是任何 profile 的通用机制。

能同时跑网页 UI 和 headless 吗?能。它们是独立 profile,互不干扰。自动化文章让 headless 定时运行,而 UI 闲置不用。

`dsh` 是模型还是工具?工具。模型是你配置在 设置 → 模型 里的任何供应商。DeepSeek 自己的公式:Model + Harness = Agent。

怎么更新 DeepSeek Harness?本系列安装文章覆盖了:npx @deepseek-ai/dsh@latest web 拿最新版,或锁定具体版本保自动化稳定。

除了这份速查表,还能去哪求助?仓库里的官方文档(docs/ 文件夹)、dsh --help(启动器)、dsh web --help(UI 自身的参数)。Bug 请去仓库 issue 追踪器。

本系列其他文章

作者:Julian Mercer,Auspia CLI 工作流研究员,实测过 60+ 开发者工具。Julian 撰写命令行工具、自动化模式,以及大多数人直接划过的软件细节。

探索此主题

继续阅读同一增长脉络