DeepSeek Harness(dsh)安装使用指南:一切皆插件的开源 Agent 框架
2026 年 8 月 13 日,DeepSeek 正式开源其 Agent 框架 DeepSeek Harness(命令行名 dsh),MIT 协议。它不是一个新模型,而是让模型能操作文件、运行命令、调用工具的"执行层"——Agent = Model + Harness。
一、DeepSeek Harness 是什么?
1.1 核心理念
Agent = Model + Harness
- Model(模型) 是 Agent 的"灵魂",负责思考和推理
- Harness(线束) 是 Agent 的"身体",让它理解环境、使用工具、在真实世界中持续工作
网页版对话 AI 交付的是一段话,Harness 交付的是一件做完的事。
1.2 “一切皆插件”
DeepSeek Harness 构建在 Cordis 微内核之上(源自 Koishi 生态,设计思想来自论文 A Programming Paradigm for Spatiotemporal Composability)。整个系统的每一个环节——模型接入、工具调用、会话存储、审批策略、UI 组件——都是可替换、可组合的插件。
这意味着:
- 想换模型服务?改配置,不动源码
- 想加个工具?装个插件
- 想改审批策略?换个审批插件
与 Claude Code、Codex 等把核心逻辑写死的工具不同,DSH 从模型到工具注册表,从会话日志到审批策略,全部插件化。
1.3 核心能力
| 能力 |
说明 |
| 自主读写本地文件 |
在划定的工作区内操作文件 |
| 执行终端命令 |
Shell / PowerShell,带审批机制 |
| 多步骤任务规划 |
拆解任务逐步执行,非一问一答 |
| 多模型兼容 |
BYO Model,支持 DeepSeek、OpenAI、Anthropic 及自定义端点 |
| 插件自由扩展 |
NPM / Git / 本地路径三种安装方式 |
| 全链路可追溯 |
每次运行的系统提示、推理、工具调用、结果全部记录 |
| 多端使用 |
Web UI / 桌面端 / 终端 TUI / 无头模式 / Python SDK |
1.4 当前状态
- 发布时间:2026 年 8 月 13 日
- 协议:MIT
- 阶段:开发者预览版(Developer Preview),会快速迭代,可能出现破坏性变更
- 官方仓库:
- 官方页面:
二、环境要求
| 项目 |
要求 |
| 操作系统 |
Windows / macOS / Linux |
| Node.js |
≥ 22.19(推荐 Node 24 LTS,兼容性最优) |
| 包管理器 |
npm(Node 自带);源码构建需 pnpm ≥ 10 |
| 内存 |
≥ 4 GB |
| 磁盘 |
预留 2 GB 以上 |
| 网络 |
可访问 npm 与 DeepSeek 开放平台 |
| 浏览器 |
Chrome / Edge 最新版 |
检查环境:
|
1
2
|
node --version # 应输出 v22.19 或更高
npm -v
|
如果 node -v 低于 v22.19 或提示 command not found,到 下载最新 LTS 版安装,务必保留安装器默认勾选的"添加到 PATH",装完重启终端。
macOS 用户可用 Homebrew:
|
1
2
|
brew install node@24
brew link --overwrite --force node@24
|
三、安装与启动(四种方式)
方式 A:一行命令快速启动(推荐首次体验)
|
1
|
npx @deepseek-ai/dsh web
|
npx 会自动拉取并运行,无需预先安装。首次启动会下载全部依赖,根据网速耗时 1-3 分钟属正常。
启动成功后终端打印:
|
1
|
dsh web: http://127.0.0.1:3080
|
浏览器打开 http://127.0.0.1:3080 即进入 Web 界面。
方式 B:全局安装(日常使用推荐)
|
1
2
3
4
5
|
npm install -g @deepseek-ai/dsh
# 验证安装
dsh --version
# 启动 Web UI
dsh web
|
方式 C:源码构建(开发者 / 二次定制)
|
1
2
3
4
5
6
|
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(程序化接入)
|
1
2
3
4
5
6
7
|
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。
启动后的三个关键认知
- 终端窗口不能关:dsh web 进程是真正干活的 Host,浏览器只是操作界面。终端一关,网页立刻失联——这是设计,不是故障。
- 默认只监听本机(127.0.0.1),局域网其他设备访问不到,这是安全设计。
- 端口可换:3080 被占用时用 dsh web --port 8080。
四、首次配置三步走
第 1 步:申请 DeepSeek API Key
- 打开 ,注册登录并充值少量余额(如 10 元,日常试用消耗极低)
- 左侧进入 API Keys,点击创建 API key,输入名称
- 密钥只在创建那一刻显示一次,立即复制保存,关掉页面就再也看不到了
安全规范:禁止截图泄露密钥、禁止明文写入代码文件、禁止上传到 Git 仓库。
第 2 步:配置 API Key
在 Web 界面的设置弹窗中粘贴密钥并保存,无需重启服务即时生效。
密钥字段是只写的——保存后页面只能看到脱敏描述符,不会回显明文。密钥存储在 $DSH_HOME/.credentials.yaml。
第 3 步:选择工作区
官方自带严格安全隔离:未选中工作区时,所有对话输入框是锁定禁用的,这是新手最常见的卡点。
- 界面左侧点击选择工作区 → + 新增本地文件夹
- 安全禁忌:禁止选择系统盘根目录、系统文件夹、桌面全目录、隐私文件目录
- 推荐:新建一个空白专属文件夹,仅用于 Harness 任务处理
- 选中后输入框自动解锁
验证部署
跑一个只读任务验证一切就绪:
|
1
|
请读取当前工作区的全部文件与目录结构,仅做汇总展示,不修改、不新增、不删除任何文件。
|
AI 正常输出目录清单、无报错、无超时,即部署完成。
五、Web 界面速览
| 区域 |
功能 |
| 左侧 |
工作区文件树、会话列表(自动永久保存,支持搜索/重命名/删除/回溯) |
| 中间 |
对话区。输入框支持 @ 引用本地文件、粘贴图片附件 |
| 右侧 |
产物预览(HTML、文档、图表等) |
| 底部状态栏 |
当前模型、上下文 Token 占用、推理速度 TPS、缓存命中率、工作区权限等级 |
轨迹面板(Trajectory)
DSH 的核心特色。完整记录:
- 系统提示词
- 模型推理过程
- 工具调用记录(参数 + 返回结果)
- 文件修改日志
- 终端命令执行详情
逐条可回溯、可排查报错。支持按来源筛选、搜索、导出。
“Every run is traceable”——模型看到的一切都记录在只追加的会话日志中。
六、权限与安全
6.1 三档权限模型
| 权限档 |
内部名 |
允许操作 |
典型场景 |
| 只读 |
Read Only |
只读,不能修改任何文件 |
调查、总结、出方案 |
| 工作区写 |
Workspace Write |
只能在工作区内写文件 |
日常默认 |
| 全访问 |
danger-full-access |
全盘读写,无边界 |
高风险操作,切换前二次确认 |
danger-full-access 的内部名已经说明了风险等级——它是"危险模式",不是"高级模式"。
6.2 一个必须建立的认知
权限限制的是"写",不是"看"。 Workspace Write 只限制写入范围;读取文件、联网、查看系统进程不受同等限制。它的"手"被绑住了,但"眼睛"是自由的。
涉及敏感操作(联网上传、系统级改动)会触发审批弹窗,由你确认后才会执行,不会静默放行。
6.3 底层沙箱
三档权限有真实的操作系统级沙箱支撑:
| 平台 |
沙箱机制 |
| Linux |
bwrap(bubblewrap)/ Landlock |
| macOS |
Seatbelt |
| Windows |
ACL 受限令牌 |
另有两个常驻纠偏插件:
- 重复无效动作检测:防止 Agent 对着同一个失败方案反复重试
- 超时强制中断:防止任务无限期运行
七、四种预设模式
Preset(预设)是能力组合包——同一种模型,挂上不同的工具集和规则,就能承担不同的"岗位"。
| 模式 |
工具集 |
适合场景 |
| 标准模式(Standard) |
全功能:文件编辑、Shell、检索、Skills、计划、子代理、工作流 |
功能最完整,拿不准就选它 |
| 代码模式(Code Mode) |
模型编写 TypeScript,把多步工具操作组合成一段程序一次执行 |
批量任务,效率提升 3-8 倍 |
| 极简模式(Minimal) |
仅保留核心文件编辑、Shell 工具,禁用冗余插件 |
性能评测、轻量化精准调试 |
| 创造模式(Creator) |
插件热加载、自定义 Agent 模板、内核调试 |
插件开发、私有化工作流定制 |
注意:模式决定工具集,中途切换会破坏会话可复现性,所以新建会话后无法切换模式,需提前选择。
八、模型接入:不止 DeepSeek
DSH 是 BYO Model(自带模型) 模式——框架本身不带模型,需要自己配置可用的模型端点。
8.1 DeepSeek 官方 API
设置 → 模型 → 在 DeepSeek 卡片中粘贴 API Key → 保存。
可选模型:
- DeepSeek V4 Pro:Agent 能力增强版
- DeepSeek V4 Flash:轻量快速版
8.2 其他官方目录提供方
设置 → 模型 → 添加提供方 → 选择 Anthropic / OpenAI 等 → 输入 API 密钥 → 保存。
使用原生认证的提供方(Bedrock、Vertex、Azure、Codex)需要各自的专属凭据(AWS 凭据与区域、ADC 项目、api-version、OAuth 等),只填 API Key 无法完成配置。
8.3 自定义提供方(公司网关 / 自建服务器)
设置 → 模型 → 添加自定义提供方,填写:
| 字段 |
说明 |
| Provider ID |
小写标识,永久性——重命名 = 新建再删旧的 |
| 显示名称 |
可随时修改 |
| 基础 URL |
你的 API 地址 |
| API 协议 |
如 openai-completions |
| 凭据 |
API Key 或环境变量引用(如 apiKeyEnv: GATEWAY_API_KEY) |
| 模型 |
至少一个模型 ID;支持 GET /models 的端点可自动发现 |
8.4 视觉模型
自定义模型在声明能力之前一律按纯文本对待。要让它接收图片,需在 $DSH_HOME/settings.yaml 中添加:
|
1
2
3
4
5
6
7
8
9
10
|
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]
|
8.5 常见报错
| 报错 |
含义与解决 |
| MISSING_CREDENTIAL |
密钥未配置:通过模型页存储密钥,或提供环境变量 |
| UNKNOWN_MODEL |
模型未配置:选择已配置模型,或添加缺失的模型 ID |
| 获取模型返回 401 |
密钥无效;该服务不支持 GET /models 时请手动输入模型 ID |
| 图片发送前被拒 |
模型未声明图片能力:给自定义模型加 input: [text, image] |
九、会话与上下文管理
9.1 会话操作
| 操作 |
说明 |
| 新建 |
点"新会话",选择模式、权限、模型 |
| 重命名 / 搜索 |
会话多了之后靠它们找历史 |
| 恢复 |
随时接着历史会话继续聊 |
| 归档 |
从列表隐藏,数据不删,可从"已归档"恢复 |
| Fork |
从某一轮分出一条新会话,原会话不受影响——适合"同一起点试不同做法" |
9.2 上下文管理
- DSH 通常会自动整理较早的对话(自动压缩)
- 需要立即压缩时手动执行 /compact,把早期对话整理成摘要
- 压缩不会删除原始历史——完整日志仍保留在轨迹面板
9.3 快捷键
| 按键 |
作用 |
| Shift + Enter |
换行,不发送 |
| 终端 Ctrl + C |
停止整个 DSH Host |
十、插件系统
10.1 安装方式
官方原生支持 NPM 包 / Git 地址 / 本地路径三种插件安装方式:
|
1
2
3
4
|
# Web 全局插件安装
dsh plugin --profile web add 插件包名
# 示例:安装官方图像识别插件
dsh plugin --profile web add @liustack/modlens
|
安装完成后刷新 Web 界面自动加载,可在 设置 → 插件 面板统一管理启用/禁用。
10.2 插件分类
发布时即内置 159 个插件,涵盖:
- 模型插件:各 LLM 提供方接入
- 工具插件:文件操作、终端、网页搜索、代码执行等
- 技能插件(Skills):可复用的任务模板
- 会话插件:存储、压缩、标题生成
- 沙箱插件:各平台隔离机制
- UI 插件:界面组件扩展
10.3 配置即组合
开发者可以在配置文件中选择、替换或扩展任何能力,无需修改 DSH 源码。这是"一切皆插件"的实际体现。
十一、进阶玩法
11.1 终端 TUI
dsh-tui 是官方收录的社区终端插件,界面对标 Claude Code,适配 VS Code 终端、Linux 远程 SSH 运维、全键盘操作:
|
1
2
3
4
|
npm install -g @deepseek-ai/dsh @deepseek-harness-tui/dsh-tui
# macOS/Linux 配置密钥并启动
export DEEPSEEK_API_KEY='你的完整API Key'
dsh-tui
|
启动后输入 /doctor 自检:检测 Node 版本、系统架构、模型连接、密钥有效性、工作目录权限、插件加载状态。
常用斜杠命令:
| 分类 |
命令 |
| 会话 |
/new 新建、/resume 恢复、/rename 重命名、/compact 压缩、/export 导出 |
| 模型 |
/model 切换、/cost 查看计费、/status 查看状态 |
| 工具 |
/permissions 查看权限、/mcp 查看插件、/provider 添加模型 |
| 开发 |
/audit 代码审计、/review 代码评审、/update 一键更新 |
| 个性化 |
/theme 切换主题、/lang 中英切换、/help 全部指令 |
11.2 无头(Headless)模式
无需交互界面,后台静默执行任务,适配脚本自动化、CI 流水线、定时任务、服务器批量运维场景。
11.3 Python SDK
|
1
2
|
import deepseek_harness_sdk as dsh
# 以编程方式启动任务、接收结果
|
11.4 VS Code 扩展
市场搜索 DeepSeek Harness for Visual Studio Code,安装后可在编辑器侧边栏直接使用 Workbench,支持设置 API Key、查看日志、重载运行时。
十二、常见问题排查
| 现象 |
原因 |
解决 |
| 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 的那个终端窗口——绝大多数问题的答案都在它的报错输出里。
十三、安全注意事项
- API Key 即密码:只在创建时可见一次,不截图、不发公开渠道、不写进代码/仓库
- 工作区即边界:只给 Agent 授权它该碰的文件夹;敏感目录(桌面、文档、系统盘)不要设成工作区
- danger-full-access 慎用:切换前会二次确认,理解风险再开
- 开发者预览版:可能快速迭代、出现破坏性变更,重要环境记得锁版本、看更新日志
- 写操作需审批:Agent 执行删除、批量修改、高危 Shell 命令时会弹窗确认,留意弹窗内容,不盲目点允许
参考资源
- 官方仓库:
- 官方页面:
- 官方文档:
- DeepSeek 开放平台(API Key):
- VS Code 扩展:
- Cordis 论文:见官方页面链接
DeepSeek Harness 目前处于开发者预览阶段,迭代极快。文中命令与配置如与官方最新版有出入,以官方仓库 README 与文档为准。