DeepSeek Harness:从零装跑,让 AI 真的动手干活

8 分钟
AITOOLFRONTENDAUTOMATIONREVIEW
DeepSeek Harness:从零装跑,让 AI 真的动手干活

最近 DeepSeek Harness(DSH)——DeepSeek 开源的编码智能体框架——发布了。它不只是陪你聊天,而是能直接读写你电脑里的文件、执行命令、联网查资料、拆解任务并行跑。开源十几小时 Star 就冲到 6 万多,核心卖点是 「一切皆插件」:每个能力都能像积木一样拔插组合。

这篇教程从零带你装到跑通,所有命令都可直接复制。

目录

一、它到底是什么

DSH 由两部分组成:一个叫 dsh 的命令行工具负责启动和管理智能体,一个浏览器 Web 界面让你像聊天一样派活。

它的设计核心是 Profile(配置档)。一个 Profile 由多个「插件组合包」按顺序叠加,再叠上你的个性化配置。标准模式、极简模式、创造模式,本质上就是同一套引擎挂了不同的插件组合。

二、准备 Node.js 环境

DSH 基于 Node.js 运行,需要 Node 22 LTS 或更高版本

  1. 打开 https://nodejs.org 下载最新版,一路下一步安装。
  2. 打开终端验证:
node --version
npm --version

能打印出版本号(例如 v24.x11.x)就说明环境就绪。习惯用 pnpm 的也可以,后面命令把 npm 换成 pnpm 即可。

三、安装 DSH

一条命令全局安装:

npm install -g @deepseek-ai/dsh

装完验证:

dsh --version
dsh --help

--version 打印版本号,--help 列出 webheadlessplugin 等入口。

四、第一次启动 Web 界面

Web 界面是最常用入口。在你想当作「工作目录」的文件夹里打开终端,执行:

dsh web

终端会打印一个本地地址,默认 http://127.0.0.1:3080,浏览器打开就行。

五、配置模型和 API Key

DSH 默认用 DeepSeek 官方模型(默认 deepseek-v4-flash),需要 API Key 才能对话。最方便的是在界面里配——你第一次进入 DSH 时系统会强制填写:

  1. 点右上角 Settings(设置)
  2. Models(模型) 页。

  1. 填你的 DeepSeek API Key,选默认模型,保存。

Key 需要去 DeepSeek 开放平台 https://platform.deepseek.com 充值后新建。

偏好命令行的话,用环境变量:

export DEEPSEEK_API_KEY="sk-xxxxxxxxxxxxxxxx"

凭证解析优先级是:环境变量 → 托管凭证文件 → 项目/用户 .env。所有数据都统一放在 ~/.dsh 目录,也可以用 DSH_HOME 环境变量换位置。

六、熟悉 Web 界面

先花一分钟认一下布局,后面效率高很多。

输入框里打 / 会弹出斜杠命令菜单:/compact 压缩上下文、/plan 计划模式、/goal 建目标、/model 切模型、/export 导出会话。

七、第一次对话:让它真改文件

工作目录里放一个 hello.js,然后输入:

帮我读一下 hello.js,在结尾加一行 console.log('done'),然后运行它。

提交后你会看到完整过程:先 read 读文件,再 edit 改文件,然后 pwsh/bash 运行脚本,最后汇报结果。每一步工具调用都透明地展示在对话流里,可以点开看详情。

新手建议先从只读任务开始,比如「帮我看看这个项目是干什么的」,熟悉交互后再放手让它改代码。

八、核心功能怎么选

四种 Agent 预设

在设置 → 通用,或新建会话时切换,决定 Agent 带了哪些能力:

预设 适用场景
标准模式 日常编码、读写文件、跑命令的默认选择
极简模式 只做纯对话,不碰文件和命令,适合问答
创造模式 放开更多工具与网络,适合探索性/跨模块任务
自定义 自己拼装插件组合,按需叠加

工具集

AI 会按任务自动挑工具:文件类有 read / write / edit / glob / grep;命令行走 bashpwsh,可前台可后台;联网用 web_search;任务管理有 todo_writeask_user_question;后台任务用 job_* 系列。

Plan 模式和 Goal

  • Plan 模式/plan):先只做只读探查,不碰任何文件,产出一份实施计划等你审批,批准了才动手。改别人代码、动生产目录前先开它。
  • Goal 目标/goal):适合「重构整个项目」这种需要跨多轮自动推进的长任务,DSH 会自己续跑到目标达成或遇阻塞。

子代理与工作流

复杂任务可以分身并行——主 Agent 把活扇出给多个子代理,再汇总结果。

还有一个 Ralph loop 模式:每轮用一个无记忆的新子代理推进同一目标,靠工作目录当持久记忆,适合需要反复重新审视、避免钻牛角尖的长期任务。

斜杠命令速查

命令 作用
/compact 压缩当前上下文,省 token
/plan 进入计划模式,先出方案再执行
/goal 设定长期目标自动续跑
/model 切换模型
/export 导出当前会话
/clear 清空当前会话

九、权限与安全:这步别跳过

AI 真能动你的文件,所以 DSH 内置了沙箱和审批机制,共三档:

模式 权限范围
read-only 只读,不写文件、不执行命令
workspace-write 可写工作目录,越界需审批(默认)
full-access 全盘访问,风险最高

默认是 workspace-write + 审批。AI 尝试越界时会弹审批框,你决定放行还是拒绝。也可以用环境变量强制指定:

export DSH_PERMISSION_MODE="workspace-write"

新手保持默认即可,务必在专用目录里运行 DSH,别一上来就在家目录或系统盘开 full-access。子代理同样受这套沙箱约束。

十、命令行模式:headless 和 plugin

除了 Web,还有两个实用入口。

headless 适合脚本化和 CI——一句话任务,跑完即退:

dsh headless "把 src 下所有 .js 文件里的 var 改成 const"

plugin 用来给某个 Profile 增删插件,参数转发给 pnpm:

dsh plugin add @dsh/plugin-git
dsh plugin remove @dsh/plugin-git

webheadless 是内置 Profile,首次使用自动从模板初始化;自定义 Profile 要通过 dsh plugin 创建。其他常用启动器参数:

dsh web --port 4000          # 换端口
dsh web --profile minimal   # 指定 Profile
dsh --dump-config           # 查看当前合并后的配置

十一、配置文件在哪

所有用户数据都在 ~/.dsh(或 $DSH_HOME)下:

~/.dsh/
├── profiles/          # 各 Profile 配置
│   └── standard/
│       └── cordis.patch.yml
├── credentials/       # 托管的 API Key
└── sessions/          # 会话历史

配置树按优先级叠加:组合包 patch → profile 的 cordis.patch.yml → 家目录级 cordis.patch.yml--patch 覆盖层,后写覆盖前写。

cordis.patch.yml 是深度定制的关键。先用 dsh --dump-config 看当前组合结果,再用 patch 层按行 id 覆盖任意插件配置。这部分建议熟悉基础后再摸。

写在最后

DSH 把「聊天」升级成「真正动手干活」,又用沙箱权限和透明的工具调用过程把风险关在笼子里。给新手的建议很明确:从标准模式 + workspace-write 开始,在专用目录里先做只读分析,再逐步放手让它改代码、跑任务。等你玩熟了插件叠加和工作流,它就不只是个编码助手,而是一个可以自己组装的自动化团队。