如果你用过 Claude Code、Codex 这类 AI 编程工具,应该会发现一件很有意思的事:
同一个大模型,放进不同的工具里,表现能差非常多。
有时候模型明明很聪明,但一到真正干活就开始犯迷糊:
不会自己找文件,不知道该先看哪段代码,改完不会测试,报错以后不会继续修,任务稍微长一点就忘记前面做到哪了。
这时候问题可能并不完全出在模型身上。
因为模型本身,其实更像一个"脑子"。
真正让它能够在电脑里干活的,是脑子外面那一整套东西:
读文件
找代码
改代码
跑命令
调用工具
管理上下文
记录任务进度
调用子 Agent
处理权限
失败后重试
这一整套负责"让模型真正做事"的工程,就可以理解成 Harness。
所以 DeepSeek Harness 是什么?
你可以把它理解成:
DeepSeek 开源的一套"大模型工作台 + 工具箱 + 执行系统"。
如果说:
大模型 = 一个很聪明的程序员
那么:
ini
DeepSeek Harness = 电脑 + IDE + 终端 + 文件系统 + 工具箱 + 工作流程 + 项目管理方式
模型负责想,Harness 负责让它动手。
举个最简单的例子。
普通聊天模型你让它:
帮我修一下这个项目的登录 Bug。
它可能会回复:
当然可以,根据你的描述,我建议修改以下代码......
然后给你贴一大段代码。
至于:
代码到底在哪?
项目现在是怎么实现登录的?
改完有没有把别的地方搞坏?
测试过没有?
它通常管不了这么多。
但放进 Harness 以后,完整流程可以变成:
markdown
收到"修复登录 Bug"
↓
搜索登录相关代码
↓
读取认证逻辑
↓
检查 Token / Session / 缓存
↓
找到问题
↓
修改文件
↓
运行测试
↓
测试失败
↓
继续分析
↓
再次修改
↓
测试通过
↓
告诉你到底改了什么
这时候你会发现:
模型没变,但它突然开始像一个真的程序员了。
这就是 Harness 最核心的价值。
而 DeepSeek Harness 更有意思的一点是,它并不是把所有东西都写死。
它的设计思路非常开放:
模型可以换
工具可以换
插件可以装
Skills 可以加
Agent 可以自己配
工作流程可以改
甚至可以自己造新的 Agent
所以你完全可以:
markdown
DeepSeek Harness
+
Qwen
也可以:
markdown
DeepSeek Harness
+
DeepSeek
甚至:
markdown
DeepSeek Harness
+
你自己部署的本地模型
然后让这些不同模型在同一套 Agent 环境里干同一个任务。
这也是它真正好玩的地方。
它不只是一个"DeepSeek 版 Claude Code"。
更像一个:
可以自己拆、自己装、自己改的大模型 Agent 乐高。
模型是大脑。
工具是手脚。
插件是装备。
Agent Preset 是职业。
Harness 则负责把这一整套东西组起来。
理解这一点以后,后面的自定义模型、插件、Standard / Code / Minimal / Cordis 这些 Agent 预设,就一下子好理解了。那么DeepSeek Harness该怎么用呢?
一、DeepSeek Harness 的部署方式
DeepSeek Harness 开源之后,我觉得它最好玩的地方其实不是"又多了一个 AI 编程工具",而是你终于可以比较方便地折腾一套完整的 Agent。
1.1 CLI 终端版
官方目前主要还是 Web UI,在自己电脑的终端运行下面的命令:
bash
npx @deepseek-ai/dsh web
然后浏览器访问:
arduino
http://127.0.0.1:3080
就进入了DeepSeek Harness的webUI页面。
1.2 DeepSeek Harness 桌面端
对于没有编程经验的用户,我更加推荐这一种方式,下面是当前比较火的三个DeepSeek Harness 桌面端项目:
| 项目 | 技术路线 | 特点 | 我的建议 |
|---|---|---|---|
| hairyf/deepseek-harness-desktop | Tauri | 轻量、自动准备 Node 和 Harness、跟进官方版本快 | 最适合第一次玩 |
| dataelement/dsh-desktop | Electron | 桌面产品化程度更高,Preset 导入导出、插件市场整合得比较完整 | 适合长期桌面使用 |
| colorfuller/dsh-app | Tauri | 自带 Node 和 DSH、复用原来的 ~/.dsh 数据、强调自动更新 | 适合已经有 DSH 数据的人 |
hairyf/deepseek-harness-desktop 的思路非常简单:它没有重新实现一个 Agent,而是启动真正的 DeepSeek Harness,然后用 Tauri 窗口把 Harness Web UI 包起来。
它会在第一次启动时自动准备 Node Runtime 和 Harness Core,默认仍然运行在:
makefile
127.0.0.1:3080
Windows、macOS、Linux 都支持,目前 Windows 要求 10+ 64 位。它还会在启动时检查 Harness Core 的更新。
dataelement/dsh-desktop 则更像是在往一个完整桌面产品上走。它同样没有重写 Harness,而是自动管理 Harness 子进程,并把 Profiles、Plugins、Sessions 放在应用安装目录之外。另外还加入了 .dshpreset 导入导出,可以把一整套自定义 Agent 配置打包带走。
根据博主的测评,hairyf/deepseek-harness-desktop 这个项目使用起来是最方便的,所以这篇文章后面就不来回切了,全部以 hairyf/deepseek-harness-desktop 为例。
二、Windows 安装:基本就是下载、双击、完事
先去hairyf/deepseek-harness-desktop GitHub 仓库的 Releases页面。
ruby
https://github.com/hairyf/deepseek-harness-desktop/releases
下载对应系统版本的安装包,这里以 Windows 安装包为例。

下载完第一次打开的时候,它会自动处理两样东西:
diff
Node Runtime
+
DeepSeek Harness Core
第一次需要联网,而且会额外下载几百 MB 左右的数据。完成以后,桌面窗口会直接进入 Harness。
后面再开,基本就是:
markdown
双击 DeepSeek Harness Desktop
↓
Harness 自动启动
↓
直接开始用
不用每次先开 PowerShell,再敲:
bash
npx @deepseek-ai/dsh web
对于日常使用,这点还是挺舒服的。
另外它安装后还会把 dsh CLI 准备好,所以之后真想折腾命令行,也没有被桌面版锁死。
三、先把模型配好:DeepSeek、OpenAI、中转 API、本地模型都能接
装好 Harness 后,我建议第一件事情不是急着开项目。
先去:
设置
→ 模型
这里就是 Harness 的模型管理。

如果直接用 DeepSeek 官方 API,填 API Key 就行。

但是现在deepseek的模型价格也全面上涨了,而能力相较于gpt系列模型却仍然有较大的差距:
由于DeepSeek Harness天然支持添加 Custom Provider。官方明确把公司内部网关、自托管服务、第三方 Provider 都作为自定义 Provider 的使用场景。
所以在 OpenAI-compatible API这里我们可以添加自己的中转站,以便使用能力更强,更多模态的模型:
- 首先点击下方的"添加自定义模型提供方"按钮;

- 依次填写好弹框中的内容

添加模型则需要点击"添加模型",随后在两边都填上想要用的模型;


vbnet
Provider ID
你所用的服务的名字
显示名称
同上
Base URL:
https://访问网址/v1
API 协议
根据需求选,我们这里选responses(因为用的是GPT的新模型)
API Key:(一般都是从平台-令牌管理复制)
sk-xxxxxxxx
Model:(填写你想用的模型名称,两边都填上)
gpt-5.6-terra
最后点击"创建提供方"即可。
如果你的服务支持:
bash
GET /models
还可以点:
获取可用模型
Harness 会自动尝试把模型列表拉下来。
如果这里报:
401
一般先看 API Key,使用gpt-5.6-terra的话,令牌(api key)应当选择codex专属和default分组。

如果接口压根没有实现 /models,也不用纠结,直接手动填写 Model ID 就行。
所以完全可以搭出这种组合:
markdown
DeepSeek
Qwen
GLM
Claude
OpenAI
本地 vLLM
第三方中转 API
│
↓
DeepSeek Harness
│
↓
同一套 Agent
我觉得这个玩法特别适合测试模型。
保持 Harness、工具和任务完全不变,只换模型,然后看谁真的更会干活。
还有一个容易踩的点:一个 Session 在真正开始请求之后,会保留自己记录的模型。所以你切换了默认模型,发现旧 Session 还是原来的模型,不一定是配置没生效。
最简单:
新建一个 Session。
四、插件怎么玩?建议第一件事先把插件市场装上
DeepSeek Harness 的一个核心设计就是:
Everything is a Plugin。
所以插件不是一个边缘功能,反而是这套东西非常重要的一部分。官方整个 Harness 本身就是插件化架构。
hairyf/deepseek-harness-desktop 第一次启动时,会推荐安装:
dsh-market
也就是目前社区在做的 Harness 插件市场。hairyf 自己的 README 也把它列成了首次运行推荐安装项。
如果第一次没装,也可以打开终端并运行:
csharp
dsh plugin --profile web add dshmarket
然后重启 Harness。
再进去:
设置
→ 插件市场

安装了dsh-market(插件市场)之后并重启应用,就可以直接搜插件了。

目前 dsh-market 已经提供完整的浏览、搜索、安装、更新、卸载、启用/禁用和主题管理。它当前接入的社区目录已经超过 1200 个插件,而且还在持续增长。
正常使用就是:
markdown
Plugin Market
↓
搜索插件
↓
查看来源和说明
↓
Install
↓
安装完成
很多插件刷新一下页面就可以直接生效,不需要把整个 Harness 重启;确实需要 Restart 的插件,市场也会提示。
比如你使用的是纯文本模型,但是又希望 Agent 可以理解图片,就可以找视觉类插件。
dsh-market 目前就收录了 modlens 这类视觉插件,用来给原本纯文本的模型增加图片理解能力。
以后也可以继续加:
Memory
搜索
浏览器能力
数据库工具
开发工具
UI
主题
各种第三方服务
这也是 Harness 和一个普通"AI 聊天客户端"最明显的区别之一。
不过这里提醒一句:
插件本质上是代码。
第三方插件能获得什么能力,取决于它安装进去以后注册了什么东西,所以不要看到"Install"就开始集邮。
尤其是 Shell、文件系统、网络、Credential 相关插件,先看来源。
dsh-market 自己也明确写着:
Listing ≠ endorsement
上架不等于官方给插件背书。
五、Standard、Code、Minimal、Cordis 到底有什么区别?
这一块第一次用特别容易迷糊。
新建 Session 的时候,会看到不同的 Agent Preset。
目前官方随 Harness 一起提供四个:
css
standard 标准模式
code PTC模式
minimal 极简模式
cordis 创造模式

先强调一件非常重要的事:
Agent Preset 不是模型。
比如:
DeepSeek V4
Qwen
Claude
这是模型。
而:
css
Standard
Code
Minimal
Cordis
决定的是:
这个模型进入 Session 以后,有什么工具、什么 Prompt、什么上下文机制、什么 Agent 能力。
官方设计里,模型路由本身甚至明确独立于 Agent Preset。
可以简单理解成:
ini
模型 = 找哪个人来上班
Agent Preset = 给这个人什么职位、工具和工作流程
Standard(标准模式):日常默认选它
Standard 是官方定义的完整 Coding Agent。
里面已经装了很多日常真正会用到的东西:
Shell
文件读写
文件搜索
后台任务
Skills
Goal
Plan
Context Compaction
Subagent
Workflow
Web
Todo
......
官方源码直接把它称为:
sql
the full coding agent
所以你不知道选什么的时候:
选 Standard。
绝大部分读项目、改代码、修 Bug、做需求,都用它就行。
Code(PTC模式):工具调用特别多的任务,可以试试它
Code Preset 基本上可以理解成:
css
Standard
+
Code Mode
Standard 有的东西它基本都保留。
真正增加的是一种新的工具呈现方式。
普通 Agent 可能这样工作:
调用搜索工具
↓
模型继续思考
↓
调用读取工具
↓
模型继续思考
↓
调用 Shell
↓
模型继续思考
↓
再修改文件
每一步都是一次模型和工具之间的往返。
Code Mode 的思路是:
让模型写一小段 TypeScript,调用 Harness 生成的 SDK,把几个工具操作一次编排起来执行。
官方源码自己的描述就很直白:原本可能需要五次 round trip 的操作,可以压成一次。
所以像这种任务:
搜索几十个文件
→ 分析调用关系
→ 批量修改
→ 执行测试
→ 根据结果继续处理
我会比较愿意试 Code。
但不代表 Code 永远比 Standard 强。
如果只是:
帮我看一下这个函数为什么报错
Standard 完全够用。
Minimal(极简模式):极简实验模式
Minimal 就真的非常 Minimal。
官方现在给它的完整系统 Prompt 基本就是:
css
You are a helpful software engineer assistant.
然后主要只给:
bash
str_replace_editor
两类核心能力。
而且 Runtime Context、Context Compaction 等完整 Agent 能力都没有。
所以它很适合干一件事情:
测模型裸能力。
比如你想比较:
DeepSeek
Qwen
GLM
在一个尽量简单的 Harness 环境下面,谁的 Coding Agent 能力更好,就可以使用 Minimal。
如果只是日常开发,我不建议一上来选它。
这有点像:
ini
Standard = 给程序员 IDE + Git + 搜索 + 工具箱
Minimal = 给他一个终端和文本编辑器
很纯粹。
也很残酷(笑)。
Cordis(创造模式):这是给"改 Harness 本身"的
Cordis 是四个里面最特别的一个。
官方对它的定义基本就是:
diff
Standard
+
可以读取和修改自己正在运行的 Harness
它存在的目的就是:
让 Agent 帮你造另一个 Agent。
比如你可以告诉它:
我想创建一个专门做代码 Review 的 Agent。
只允许读取项目和运行测试,
不要主动修改代码。
拥有 Git、搜索和测试能力,
系统提示词偏严格。
帮我创建一个新的 Agent Preset。
Cordis 可以去修改 Harness 的 composition,然后生成新的 Agent Preset。
所以有些界面和文档里会把这一类流程理解成 Creator。
但严格来说,目前官方随部署提供的 Preset ID 是:
cordis
不是一个单独叫 creator 的第五个 Preset。官方 Web UI 也明确说明,可以复制已有 Preset 自己修改,或者通过 Cordis 的 Creator 流程让 Agent 帮你生成。
这个模式很有意思。
但权限也明显更高。
官方源码甚至直接提醒:
把 Cordis Session 当成 Shell Access 看待。
所以刚开始玩 Harness 的时候:
css
90% 时间:Standard
工具密集型任务:Code
测试模型能力:Minimal
自己造 Agent:Cordis
基本就够用了。
六、几个比较实用的使用示例
最后给几个我觉得最适合刚开始玩 Harness 的任务。
示例 1:第一次接手一个陌生项目
Preset:
Standard
先别让它急着改。
直接:
markdown
阅读整个项目,但暂时不要修改任何文件。
先完成以下工作:
1. 分析技术栈和目录结构
2. 找出程序启动入口
3. 梳理前端、后端、数据库之间的关系
4. 找出核心业务模块
5. 找出明显的技术债、TODO 和潜在风险
6. 告诉我如果继续开发这个项目,最应该先看哪些文件
所有结论尽量基于实际代码,不要只根据文件名猜测。
我很建议第一次使用一个新模型的时候,都先跑这个。
因为这一轮基本就能看出来:
这个模型是真看懂了,还是在一本正经地胡说。
示例 2:直接实现一个完整需求
Preset:
Standard
例如:
给当前项目增加"忘记密码"功能。
要求:
先分析现有用户认证流程和数据库结构,再决定实现方式。
尽量复用现有代码和 UI 风格,不要额外引入没有必要的框架。
完成前端、后端和必要的数据修改。
实现完成后:
运行相关测试;
检查类型错误;
检查现有登录和注册功能有没有被破坏。
如果发现问题,继续修复。
最后只给我总结:
修改了哪些文件、
实现了什么、
还有什么风险。
这种任务最能体现 Harness 和普通 Chatbot 的差别。
不是:
"下面给你一段示例代码。"
而是让 Agent 真正在项目里面完成一轮工作。
示例 3:一个比较难找的 Bug
Preset:
css
Code
比如:
项目现在有一个 Bug:
用户第一次登录正常,
退出账号后重新登录,
偶尔会出现用户信息还是上一个账号的问题。
不要直接猜原因。
从登录、Token、缓存、状态管理和退出流程开始追踪。
先找到完整的数据流和可能出现旧状态残留的位置。
找到根因后修改代码,并写一个能够覆盖这个问题的回归测试。
运行相关测试。
如果第一次修复没有通过测试,继续定位和修改,直到确认问题解决。
这种:
diff
大量搜索
+
读很多文件
+
调用测试
+
反复验证
的任务,就比较适合拿 Code 和 Standard 对比一下。
有时候差别会挺明显。
示例 4:让 Harness 帮你造一个自己的 Agent
Preset:
Cordis
例如:
css
帮我创建一个专门用于 Code Review 的 Agent Preset。
名字:
strict-reviewer
它的工作原则:
只负责分析和 Review,不主动修改代码。
重点检查:
逻辑错误
安全问题
并发问题
异常处理
重复代码
接口兼容性
测试覆盖
它允许:
读取文件
搜索代码
运行测试
查看 Git diff
除非我明确授权,否则不要修改文件。
请基于现有 Standard Preset 创建,
尽量只修改真正需要变化的部分。
完成后检查新的 Preset 是否能够正常加载。
这一步就开始有点意思了。
因为最后你的 Harness 可能慢慢变成:
css
Standard
Code
Minimal
Cordis
strict-reviewer
frontend-agent
bug-hunter
test-agent
research-agent
......
每一个 Agent 都可以拥有自己的:
Prompt
Tools
Skills
Compaction
Workflow
Subagent
这时候再配合插件市场和自定义模型,DeepSeek Harness 才算真正开始"玩起来"。
而如果只是第一次体验,我建议顺序非常简单:
bash
装 hairyf/deepseek-harness-desktop
↓
配置自己的模型
↓
安装 dsh-market
↓
先用 Standard 跑一个真实项目
↓
再试 Code
↓
最后折腾自己的 Agent Preset
别一上来就 Cordis + 十几个插件 + 三层 Subagent。
Harness 还没玩明白,先把自己 Harness 进去了(笑)。
