核心一句话:**Agent = Model + Harness**。模型负责"想",Harness 负责"做"——把模型的能力接进文件系统、终端、网页和工具链,让 AI 真正在本地替你干活。来自醉里博客www.202271.xyz
醉里起始页nav.202271.xyz醉里起始页
>醉里博客
> 本文基于 DeepSeek Harness 官方开源仓库(2026-08-13 发布,MIT 协议)整理,适合零基础到进阶的所有读者。来自醉里博客www.202271.xyz
醉里起始页nav.202271.xyz

## 目录

1. [这是什么:DeepSeek Harness 能干什么](#一这是什么deepseek-harness-能干什么)
2. [核心概念:一切皆插件](#二核心概念一切皆插件)
3. [环境要求](#三环境要求)
4. [安装与启动(4 种方式)](#四安装与启动4-种方式)
5. [首次配置三步走](#五首次配置三步走)
6. [Web 界面速览](#六web-界面速览)
7. [权限与安全:Agent 能碰你多少文件](#七权限与安全agent-能碰你多少文件)
8. [四种预设模式怎么选](#八四种预设模式怎么选)
9. [模型接入:不止 DeepSeek](#九模型接入不止-deepseek)
10. [会话与上下文管理](#十会话与上下文管理)
11. [插件系统:自由扩展](#十一插件系统自由扩展)
12. [进阶玩法:CLI / TUI / 无头模式 / Python SDK](#十二进阶玩法cli--tui--无头模式--python-sdk)
13. [常见问题排查](#十三常见问题排查)
14. [安全与注意事项](#十四安全与注意事项)

---

## 一、这是什么:DeepSeek Harness 能干什么

**DeepSeek Harness**(命令行名 `dsh`)是 DeepSeek AI **官方出品**的开源 Agent 框架,MIT 协议。它和我们平时用的网页版对话 AI 最大的区别是:

> 网页对话 AI 交付的是一段话,**Harness 交付的是一件做完的事**。

它原生具备以下能力:

- **自主读写本地文件**(在划定的工作区内)
- **执行终端命令**(Shell / PowerShell)
- **多步骤自主任务规划**(不是一问一答,而是拆解任务逐步执行)
- **多模型兼容**(BYO Model,自带模型端点)
- **插件自由扩展**(换搜索引擎、接自家模型服务,改配置即可,不用改框架源码)
- 多端使用:Web UI / 桌面端 / 终端 TUI / 无头模式 / Python SDK

适用场景:办公整理、代码开发、项目巡检、服务器运维等需要在真实环境里动手的复杂任务。

**项目地址**
来自醉里博客www.202271.xyz
醉里起始页nav.202271.xyz
- 官方仓库:https://github.com/deepseek-ai/deepseek-harness
- 官方页面:https://www.deepseek.com/harness/
- 官方文档:https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart

> ⚠️ 当前为**开发者预览版**(Developer Preview),官方明示会快速迭代、可能出现破坏性变更,生产环境使用请留意版本更新。

## 二、核心概念:一切皆插件

Harness 的核心理念只有一句话:**"Everything is a Plugin"(一切皆插件)**。

模型接入、工具调用、会话存储、审批策略、UI 组件……整个系统的每一个环节都是**可替换、可组合的插件**。它的架构由 **Cordis** 微内核驱动(Koishi 生态的插件内核,设计思想来自论文 *A Programming Paradigm for Spatiotemporal Composability*)。

这意味着:

- 想换模型服务?改配置,不动源码;
- 想加个工具?装个插件;
- 想改审批策略?换个审批插件。

同类的工具(Claude Code、Codex 等)通常把核心逻辑写死,只能在预留接口上有限定制;DSH 反其道而行——**从模型到工具注册表,从会话日志到审批策略,全部插件化**。

## 三、环境要求

| 项目 | 要求 |
| --- | --- |
| 操作系统 | Windows / macOS / Linux 均可 |
| Node.js | **≥ 22.19**(LTS 即可,官方推荐 Node 24 LTS,兼容性最优) |
| 包管理器 | npm(Node 自带);源码构建需要 pnpm ≥ 10 |
| 硬件 | 内存 ≥ 4G,本地磁盘预留 2G 以上 |
| 网络 | 可访问 npm 与 DeepSeek 开放平台 |
| 浏览器 | Chrome / Edge 最新版优先,不兼容老旧浏览器 |

**检查环境**:

```bash
node --version
npm -v
```

- 能打印 `v22.19` 及以上 → 继续;
- 提示 `command not found: node` → 到 https://nodejs.org 下载 LTS 版安装,**务必保留安装器默认勾选的"添加到 PATH"**,装完重启终端。

## 四、安装与启动(4 种方式)

### 方式 A:一行命令快速启动(推荐首次体验)

```bash
npx @deepseek-ai/dsh web
```

npx 会自动拉取并运行,不需要预先安装。首次启动会下载全部依赖,根据网速耗时 1~3 分钟属正常。启动成功后终端会打印:

```
dsh web: http://127.0.0.1:3080
```

浏览器打开 `http://127.0.0.1:3080` 即进入官方原生 Web 界面。

### 方式 B:全局安装(日常使用推荐)

```bash
npm install -g @deepseek-ai/dsh
dsh --version   # 验证安装,能打印版本号即成功
dsh web         # 启动
```

### 方式 C:源码构建(开发者 / 二次定制)

```bash
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
corepack enable        # 启用 pnpm
pnpm install
pnpm run build
pnpm dsh web
```

适合需要修改内核、自定义原生插件、跟进官方最新迭代、参与开源贡献的用户。

### 方式 D:Python SDK(程序化接入)

```bash
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
python -m venv .venv
# Windows 激活:.venv\Scripts\activate   |   macOS/Linux:source .venv/bin/activate
pip install deepseek-harness-sdk
export DEEPSEEK_API_KEY='你的密钥'
```

内置运行时,无需单独安装 Node.js。

**启动后的三个关键认知**

1. **终端窗口不能关**。`dsh web` 这个进程是真正干活的 Host,浏览器里的网页只是操作界面。终端一关,网页立刻失联——这不是故障,是设计。
2. **默认只监听本机**(`127.0.0.1`),局域网其他设备访问不到,这是安全设计。
3. **端口可以换**:3080 被占用时用 `dsh web --port 8080`。

## 五、首次配置三步走

### 第 1 步:申请 DeepSeek API Key

1. 打开 DeepSeek 开放平台:https://platform.deepseek.com/ ,注册登录并**充值少量余额**(如 10 元,日常试用消耗极低);
2. 左侧进入 **API Keys**,点击**创建 API key**,输入名称;
3. **密钥只在创建那一刻显示一次**,立即复制保存,关掉页面就再也看不到了,丢失需重新创建。

> 🔒 安全规范:禁止截图泄露密钥、禁止明文写入代码文件、禁止上传到 Git 仓库,避免账号被盗用、恶意扣费。

### 第 2 步:配置 API Key

在 Web 界面弹窗/设置中粘贴密钥并保存,**无需重启服务即时生效**。

密钥字段是**只写**的——保存后页面只能看到脱敏描述符,永远不会回显明文。密钥存储在 `$DSH_HOME/.credentials.yaml`,settings 里只保留凭据引用。

### 第 3 步:选择工作区(解决输入框灰色无法使用)

官方自带严格安全隔离机制:**未选中工作区时,所有对话输入框是锁定禁用的**,这是新手最常见的卡点。

1. 界面左侧点击**选择工作区** → **+** 新增本地文件夹;
2. 安全禁忌:**禁止选择系统盘根目录、系统文件夹、桌面全目录、隐私文件目录**;
3. 推荐:新建一个空白专属文件夹,仅用于 Harness 任务处理;
4. 选中后输入框自动解锁,即可正常发送指令。

### 第 4 步:选择预设模式

官方内置 4 套预设模式,**新建会话时选择,运行后无法中途切换**(见第八节)。

配置完成后直接跑一个任务验证——能正常返回结果就说明一切就绪:

```
请读取当前工作区的全部文件与目录结构,仅做汇总展示,不修改、不新增、不删除任何文件,清晰列出文件夹内所有资源。
```

成功判定:AI 正常输出目录清单、无报错、无超时,即部署完成。

## 六、Web 界面速览

- **左侧**:工作区文件树、会话列表(自动永久保存,支持搜索/重命名/删除/回溯恢复)
- **中间**:对话区。输入框支持 `@` 引用本地文件、粘贴图片附件
- **右侧**:产物预览(HTML、文档、图表等)

核心特色:**轨迹面板(Trajectory)**——完整记录模型思考过程、工具调用记录、文件修改日志、终端命令执行详情,逐条可回溯、可排查报错。

底部状态栏实时展示:当前模型、上下文 Token 占用量、推理速度 TPS、缓存命中率、工作区权限等级。

## 七、权限与安全:Agent 能碰你多少文件

### 三档权限模型

| 权限档 | 内部名 | 允许做什么 | 典型场景 |
| --- | --- | --- | --- |
| 只读 | Read Only | 只读,不能修改任何文件 | 调查、总结、出方案 |
| 工作区写 | Workspace Write | 只能在工作区内写文件 | 日常默认 |
| 全访问 | danger-full-access | 全盘读写,无边界 | 高风险操作,**切换前会二次确认** |

> ⚠️ `danger-full-access` 的内部名已经说明了风险等级——它是"危险模式",不是"高级模式"。

### 一个必须建立的认知

**权限限制的是"写",不是"看"**。Workspace Write 只限制写入范围;读取文件、联网、查看系统进程不受同等限制。它的"手"被绑住了,但"眼睛"是自由的。涉及敏感的操作(联网上传、系统级改动)会触发**审批弹窗**,由你确认后才会执行,不会静默放行。

### 底层沙箱

三档权限有真实的**操作系统级沙箱**支撑:

| 平台 | 沙箱机制 |
| --- | --- |
| Linux | bwrap(bubblewrap)/ Landlock |
| macOS | Seatbelt |
| Windows | ACL 受限令牌 |

另外还有两个常驻纠偏插件:**重复无效动作检测**(防止 Agent 对着同一个失败方案反复重试)和**超时强制中断**(防止任务无限期运行)。

## 八、四种预设模式怎么选

Preset(预设)是能力组合包——同一种模型,挂上不同的工具集和规则,就能承担不同的"岗位"。

| 模式 | 工具集 | 适合场景 |
| --- | --- | --- |
| **标准模式(Standard)** | 全功能:文件编辑、Shell、检索、Skills、计划、子代理、工作流 | 功能最完整,拿不准就选它 |
| **PTC 模式(Code Mode)** | 模型编写 TypeScript,把多步工具操作组合成一段程序一次执行 | 批量任务,效率提升 3~8 倍 |
| **极简模式(Minimal)** | 仅保留核心文件编辑、Shell 工具,禁用冗余插件 | 性能评测、轻量化精准调试 |
| **创造模式(Creator)** | 插件热加载、自定义 Agent 模板、内核调试 | 插件开发、私有化工作流定制 |

**注意**:模式决定工具集,中途切换会破坏会话可复现性,所以**新建会话后无法切换模式**,需提前选择。

## 九、模型接入:不止 DeepSeek

DSH 是 **BYO Model** 模式——框架本身不带模型,需要自己配置一个可用的模型端点。

### 9.1 DeepSeek 官方 API

设置 → 模型 → 在 DeepSeek 卡片中粘贴 API Key → 保存。模型选择器中可选择 `DeepSeek V4 Pro`(Agent 能力增强版)或 `DeepSeek V4 Flash`(轻量快速),配置即时生效。

### 9.2 其他官方目录提供方

想接 Anthropic / OpenAI 等:设置 → 模型 → **添加提供方** → 选择提供方 → 输入 API 密钥 → 保存。

> NOTE:使用原生认证的提供方(Bedrock、Vertex、Azure、Codex)需要各自的专属凭据——AWS 凭据与区域、ADC 项目、api-version、OAuth 等,只填 API Key 字段是无法完成配置的。

### 9.3 自定义提供方(公司网关 / 自建服务器)

设置 → 模型 → **添加自定义提供方**,填写:

| 字段 | 说明 |
| --- | --- |
| Provider ID | 小写标识,**永久性**——请求、已保存会话、模型默认值和凭据引用都会用到它;重命名 = 新建一个再删旧的 |
| 显示名称 | 可随时修改 |
| 基础 URL | 你的 API 地址 |
| API 协议 | 如 `openai-completions` |
| 凭据 | API Key 或环境变量引用(如 `apiKeyEnv: GATEWAY_API_KEY`) |
| 模型 | 至少一个模型 ID;支持 OpenAI 兼容 `GET /models` 的端点可自动发现 |

### 9.4 视觉模型

自定义模型在声明能力之前一律按纯文本对待。要让它能接收图片,需在 `$DSH_HOME/settings.yaml` 中给该模型加 `input: [text, image]`:

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

### 9.5 配置阶段常见报错

| 报错 | 含义与解决 |
| --- | --- |
| `MISSING_CREDENTIAL` | 密钥未配置:通过模型页存储密钥,或提供 settings 引用的环境变量 |
| `UNKNOWN_MODEL` | 模型未配置:选择已配置模型,或向自定义提供方添加缺失的模型 ID |
| 获取可用模型返回 401 | 密钥无效;该服务不支持 `GET /models` 时请手动输入模型 ID |
| 图片在发送前被拒 | 模型未声明图片能力:给自定义模型加 `input: [text, image]` |

## 十、会话与上下文管理

### 会话操作

- **新建**:点"新会话",选择模式、权限、模型
- **重命名 / 搜索**:会话多了之后靠它们找历史
- **恢复历史会话**:随时接着聊
- **归档**:从列表隐藏,数据不删,可随时从"已归档"恢复
- **Fork**:从某一轮对话分出一条新会话,原会话不受影响——适合"同一个起点,试不同做法"

### 上下文管理

- DSH 通常会自动整理较早的对话(自动压缩);
- 需要立即压缩时手动执行 `/compact`,把早期对话整理成摘要;
- 压缩不会删除原始历史——完整日志仍然保留(轨迹面板可回溯)。

### 快捷键

| 按键 | 作用 |
| --- | --- |
| `Shift + Enter` | 换行,不发送 |
| 终端 `Ctrl + C` | 停止整个 DSH Host |

## 十一、插件系统:自由扩展

官方原生支持 **NPM 包 / Git 地址 / 本地路径**三种插件安装方式:

```bash
# 官方 Web 全局插件安装命令
dsh plugin --profile web add 插件包名

# 示例:安装官方图像识别插件
dsh plugin --profile web add @liustack/modlens
```

安装完成后**刷新 Web 界面**即可自动加载,可在 设置 → 插件 面板统一管理启用/禁用。

社区插件生态发展迅速(发布一天即收录 300+ 插件),可到 GitHub Discussions / 官方企微群 / 微信公众号获取最新插件。

## 十二、进阶玩法:CLI / TUI / 无头模式 / Python SDK

### 12.1 终端 TUI(界面对标 Claude Code)

`dsh-tui` 是官方收录的优质社区终端插件,零核心源码修改、纯插件挂载,适配 VS Code 终端、Linux 远程 SSH 运维、全键盘操作:

```bash
npm install -g @deepseek-ai/dsh@0.1.0-rc.6 @deepseek-harness-tui/dsh-tui@0.7.3

# macOS/Linux 终端配置密钥并启动
export DEEPSEEK_API_KEY='你的完整API Key'
dsh-tui
```

> 环境变量修改后需完全退出程序重启方可生效;禁止将密钥写入 Shell 脚本、`.env` 等可托管文件。

启动后可输入 `/doctor` 自检:检测 Node 版本、系统架构、模型连接状态、密钥有效性、工作目录权限、插件加载状态等。

**常用斜杠命令**:

- 会话:`/new` 新建、`/resume` 恢复、`/rename` 重命名、`/compact` 压缩上下文、`/export` 导出
- 模型:`/model` 切换、`/cost` 查看 Token 计费、`/status` 查看状态
- 工具:`/permissions` 查看权限、`/mcp` 查看插件连接、`/provider` 添加自定义模型
- 开发运维:`/audit` 代码审计、`/review` 代码评审、`/update` 一键更新
- 个性化:`/theme` 切换主题、`/lang` 中英切换、`/help` 全部指令

### 12.2 无头(Headless)模式

无需交互、无需界面,后台静默执行任务,适配**脚本自动化、CI 流水线、定时任务、服务器批量运维**场景。详见官方文档命令用法。

### 12.3 Python SDK

```python
import deepseek_harness_sdk as dsh
# 以编程方式启动任务、接收结果
```

## 十三、常见问题排查

| 现象 | 原因 | 解决 |
| --- | --- | --- |
| `command not found: node` | Node 未安装或未加入 PATH | 重装 Node,保留"添加到 PATH"勾选;已安装则关掉终端重开 |
| `node -v` 低于 v22.19 | 版本过旧 | 官网下载最新 LTS 覆盖安装 |
| `command not found: dsh` | 全局安装未成功 | 重跑安装命令看报错;改用 `npx @deepseek-ai/dsh web` 兜底 |
| 端口被占用 | 3080 被其他程序占用 | `dsh web --port 8080` |
| 网页打不开 | 启动失败或端口冲突 | 看运行终端里的报错输出;`Ctrl + C` 停掉重启 |
| 模型调用 401 | API Key 含空格、过期、账号无余额 | 重新复制密钥并刷新配置 |
| 文件读写失败 | 工作区文件夹权限不足 | 更换新建空白文件夹作为工作区 |
| 页面空白加载失败 | 代理/VPN 干扰或缓存问题 | 关闭代理、清空浏览器缓存,更换 Chrome/Edge 重试 |

**排错第一原则**:先看跑 `dsh web` 的那个终端窗口——绝大多数问题的答案都在它的报错输出里。

## 十四、安全与注意事项

1. **API Key 即密码**:只在创建时可见一次,不截图、不发公开渠道、不写进代码/仓库;
2. **工作区即边界**:只给 Agent 授权它该碰的文件夹;敏感目录(桌面、文档、系统盘)不要设成工作区;
3. **danger-full-access 慎用**:切换前会二次确认,理解风险再开;
4. **开发者预览版**:可能快速迭代、出现破坏性变更,重要环境记得锁版本、看更新日志;
5. **写操作需审批**:Agent 执行删除、批量修改、高危 Shell 命令时会弹窗确认,留意弹窗内容,不盲目点允许。

## 结语

DeepSeek Harness 用"一切皆插件"的设计,把 Agent 的每个环节都开放给了开发者——这正是它上线即爆火的原因。本文从安装、配置到插件开发给出了一条完整路径,照着做就能跑起来,跑起来之后就能用出花。

**资源汇总**
来自醉里博客www.202271.xyz
醉里起始页nav.202271.xyz
- 官方仓库:https://github.com/deepseek-ai/deepseek-harness
- 官方文档:https://deepseek-harness.github.io/deepseek-harness/en/guide/quickstart
- DeepSeek 开放平台(API Key):https://platform.deepseek.com/

如果本文对你有帮助,欢迎**点赞、收藏、关注**,评论区聊聊你用 Harness 干了哪些活~

---

*注:DeepSeek Harness 迭代极快,文中命令与配置如与官方最新版有出入,以官方仓库 README 与文档为准。*
Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐