DeepSeek Harness 上手指南

认识它 → 跑起来 → 用好它

PS B:\node\ds_harness>
PS dsh web
# 打开 http://127.0.0.1:3080 开始使用

1 认识 DeepSeek Harness

DeepSeek Harness(命令名 dsh)是一个运行 AI 助手(Agent)的工具。它最常被用来帮你写代码、改文件、跑命令,但能干的不只是编程 —— 装好对应的插件,数据分析、查资料、写文档也都能做。

它最大的特点是 「一切皆插件」(Everything is a Plugin):模型适配器、文件工具、Shell、沙箱、会话、网页界面…… 全部是插件,可以随时装上、卸下、替换,也因此模型无关。

可以把 DeepSeek Harness 想成一个能改装的整车平台:读文件、写代码、执行命令、搜索、拆分任务这些能力是一个个可以自由拼装的零部件(插件)。模型是引擎,平台不生产引擎,它只负责把任意引擎装进一辆能干活的车 —— 所以官方说「模型 + Harness = Agent」。

DeepSeek Harness 平台已经帮你组装好两款现车:dsh web(网页界面,新手首选)和 dsh --profile headless(命令行一次性任务);想有自己的车,也可以用 dsh plugin 按零部件清单自己拼一辆。
在这里插入图片描述

1.1DeepSeek Harness・平台 + 零部件体系

  • 一切皆插件:模型适配器・文件工具・Shell・沙箱・会话・网页界面 …… 自由装卸、可替换,模型无关
  • 按 profile 的 bundles 组装:
    • dsh web:出厂现车 A:网页界面(base + web-app)
    • dsh --profile headless:命令行一次性任务(base + headless)
    • 自定义 profile:自己改装,用 dsh plugin 拼装你的车

1.2相关链接

1.3核心名词表

名词解释
dsh启动命令,所有操作都从它开始。
Profile一套预先配好的助手。自带 web(网页版)和 headless(命令行一次性任务)两种。
插件包(bundle)一组能力的集合,例如「文件工具」「子代理」。Profile 就是若干插件包按顺序叠加的结果。
工作区(workspace)助手默认读写文件的目录,也就是你启动 dsh 时所在的文件夹。
会话(session)你和助手的一次对话,会自动保存,之后能接着聊。
预设(preset)决定助手「用哪些工具、是什么性格」。有标准、PTC、极简、创造四种。

1.4快速建立直觉

打开终端 → 进入项目目录 → 输入 dsh web → 在浏览器里指挥助手干活。整篇文档就是围绕这件事展开。

2 它能做什么

2.1 三种使用方式

使用方式特点命令
网页界面最直观,有界面有按钮,适合大多数人,新手首选dsh web
命令行一次性任务跑一次、输出结果、退出,适合脚本化和批量场景dsh --profile headless "任务"
自定义 Profile自己组装能力,适合进阶用户dsh --profile 名称

2.2 四种预设

预设就是给助手选的「装备包」,决定它有哪些工具、能干什么活。共四种:

  • 标准模式(默认・推荐):「瑞士军刀」全能助手,工具最全,绝大多数人、尤其新手的默认选择。
  • PTC 模式:会「写脚本」的程序员管家,把「读→改→测」等多步操作写成一个程序一次跑完。
  • 极简模式:只带两件工具的轻装助手:持久 Shell + 文本替换编辑器,最省资源。
  • 创造模式:自己造专属助手的工作台,标准能力 + 运行时检查、插件实验、创作指导。

新手直接留在标准模式即可,其余三种等有具体需求时再切。

2.3 内置工具

  • 文件读写与编辑:读取、创建、覆盖、精确修改文本文件。
  • 文件检索:按文件名 glob、按内容 grep 搜整个项目。
  • 执行命令:Windows 用 PowerShell(pwsh),macOS/Linux 用 bash;支持后台跑长任务。
  • 网页搜索:联网查最新信息。
  • 技能(Skills):按需加载特定领域的说明手册。
  • 待办(Todo):自动拆解并跟踪多步骤任务。
  • 向你提问:拿不准时先问你,而不是瞎猜。

2.4 协作与自动化

  • 计划模式:先调研、出方案给你确认,批准后才动手改。
  • 目标(Goal):为长时间目标自动多轮推进,直到完成。
  • 子代理(Subagent):把独立任务分给多个小助手并行处理。
  • 工作流(Workflow):用一个脚本把大量子任务编排、批量分发。
  • Ralph 循环:让全新的助手一轮轮迭代,用共享目录做长期记忆。

2.5 上下文与安全

  • 自动压缩上下文:对话太长时自动瘦身,避免越聊越卡、越贵。
  • Token 计量:实时看到上下文用量。
  • 会话持久化:对话保存在 ~/.dsh/sessions,可恢复。
  • 文件沙箱与审批:读写被限制在允许范围内,危险操作先征求你同意。

3 安装

3.1 环境要求

  • 系统:Windows /macOS/ Linux 均可
  • Node.js:建议 20 及以上版本(推荐最新 LTS),自带 npm 和 npx

验证环境:

node -v
npm -v

能打印出版本号,就说明环境装好了。

在这里插入图片描述

3.2 方式一:临时运行

不装任何东西,用 npx 直接跑:

npx @deepseek-ai/dsh web

3.3 方式二:全局安装(推荐)

npm install -g @deepseek-ai/dsh

装完验证:

dsh --version
dsh --help

在这里插入图片描述

为什么推荐全局安装 方式一的 dsh 命令只在那一次 npx 调用里临时存在,关掉终端就没了。全局安装后,任何终端都能直接敲 dsh。

3.4 升级与卸载

# 升级
npm update -g @deepseek-ai/dsh

# 卸载
npm uninstall -g @deepseek-ai/dsh

4 第一次使用

4.1 dsh-web 方式启动

网页方式:用浏览器打开图形界面,在对话框里和助手对话。

  1. 打开终端(Windows 用 PowerShell 或 Windows Terminal)。

  2. 进入你的项目目录 —— 这个目录会成为助手的工作区:

cd D:\dev\code\my-project

注意:目录就是工作区 助手能方便读写的只有你启动 dsh 时所在的目录。先 cd 到正确项目再启动,否则它会「看不到」你的项目。

  1. 启动网页界面:
dsh web

启动后终端会打印访问地址,默认是 http://127.0.0.1:3080。

  1. 用浏览器打开那个地址。第一次会引导你登录 DeepSeek 账号或配置模型(还没有账号?先去 platform.deepseek.com 注册并获取 API Key)。

在这里插入图片描述

注意:凭证别外传 登录信息保存在 ~/.dsh/.credentials.yaml。不要把这个文件发给别人,也别提交到 git 仓库。

首次启动会自动初始化 web 和 headless 两个 profile 第一次用会自动生成配置,无需手动创建;其他自定义 profile 要用 dsh plugin 创建。用户数据(会话、配置、凭证)都放在 ~/.dsh。

Windows 用户注意 Windows 上助手默认用 PowerShell(pwsh)执行命令,不是 bash;受限沙箱下部分命令以只读模式运行,需要更宽权限时会先向你请求批准。

4.2 dsh-web 方式工作区介绍

浏览器打开 http://127.0.0.1:3080 后,即可进入助手工作界面,界面包含:

  • 新会话入口、工作区切换
  • 对话输入区,支持预设模式切换、权限切换、模型切换
  • 侧边栏设置、会话管理等功能入口
    在这里插入图片描述

4.3 预设 4 种模式

预设就是给助手选的「装备包」,决定它有哪些工具、能干什么活。

模式一句话理解核心工具适合人群新手建议
标准模式(默认・推荐)「瑞士军刀」全能助手文件读写、Shell、检索、网页搜索、Skills、计划、目标、子代理、工作流……绝大多数人,尤其新手默认就用它,不用纠结
PTC 模式会「写脚本」的程序员管家标准模式全部工具,还能用 TypeScript 把「读→改→测」等多步写成一个程序一次跑完步骤多、逻辑固定的连环任务熟练后遇到连环任务再试
极简模式只带两件工具的轻装助手只有两个:持久 Shell + 文本替换编辑器只做简单编辑、想要最省资源想要极简时可切换
创造模式自己造专属助手的工作台标准能力 + 运行时检查、插件实验、创作指导想定制新预设的进阶用户先不用碰,等熟悉了再说

新手直接留在标准模式即可,其余三种等有具体需求时再切。

4.4 3 种权限模式

Harness 用一个文件沙箱约束助手能碰哪些文件,共有三种权限模式:

权限模式标识能做什么越界 / 审批规则适用场景
只读read-only只能读文件、跑只读命令,改不了任何文件(包括工作区内的)一旦要写会被拒绝,需批准才升级只想让它读代码、调研,还不放心它动文件时
工作区可写(默认)workspace-write可读写工作区目录里的文件,以及平台允许的临时目录想写工作区以外,会先弹审批问你日常使用
完全访问danger-full-access文件系统不受限,哪里都能改不再弹审批完全信任、或确需全局改动时(谨慎)
  • 切换方式:当前会话在输入框敲 /permission 选一个;修改以后新会话的默认值,走「设置 → 通用 → 权限」,只对之后新建的会话生效。
  • 三种模式是一条升级阶梯:read-only → workspace-write → danger-full-access。助手在较严模式下被拦下时,会请求升级到更宽模式,并弹审批让你拍板。选「完全访问」时系统会先要你确认风险。

安全建议 日常保持 workspace-write,除非确有必要,不要长期开 danger-full-access。重要项目先备份或提交 git 再让助手动手。

4.5 7 个斜杠命令

在 dsh web 的输入框里敲 / 会弹出命令菜单(输入框左侧的 + 按钮也可以打开)。斜杠命令由界面直接执行,不会进入模型的历史、不消耗 token。默认一共 7 个:

命令作用
/plan [ 消息 ]进入计划模式:先调研出方案、你确认后再动手;/plan off 退出
/permission [ 预设 ]查看 / 切换当前会话的权限模式(read-only /workspace-write/danger-full-access),不带参数会弹出选择框
/model切换模型(按提供方分组选择),并应用所选模型的默认推理档位
/compact手动压缩上下文:把较早的对话摘要化,省 token
/goal [ 目标 ]目标管理:创建 / 查看 / 编辑 / 暂停 / 恢复 / 清除长期目标(如 /goal pause、/goal clear)
/feedback [ 文本 ]提交使用反馈(会带上匿名用户 ID 一起记录)
/export导出当前会话日志(下载 ZIP,含子会话)
  • 命令支持模糊匹配(比如敲 /pe 也能找到 /permission)。敲一个不认识的命令会被直接拒绝,而不会当成普通消息发给模型。

4.6 命令行一次性任务

不想开网页、问一题就走,用 headless 模式:

dsh --profile headless "帮我生成100个1~1000之间的随机数,写到data.txt文件中,每行一个数字"

4.7 常用命令速查

命令作用
dsh web启动网页界面(等于 dsh --profile web)
dsh web --port 8080改用 8080 端口
dsh web --help查看网页应用自己的参数
dsh --profile headless " 任务 "跑一次任务并输出结果后退出
dsh --help查看启动器帮助

注意:参数顺序 启动器的参数放最前,web 应用自己的参数放后面:dsh web --port 8080(–port 属于 web 应用)。想看 web 应用自己的帮助,用 dsh web --help。

4.8 关闭后怎么再次打开

如果你第一次是用 npx @deepseek-ai/dsh web 启动的,那个 dsh 只是 npx 临时加到当前终端的命令。终端一关,新终端里再敲 dsh 就会报错:dsh: The term 'dsh' is not recognized ...。这不是装坏了,而是压根没全局安装。

重新打开分三步:

  1. 打开一个新终端,进入你的项目目录:
cd D:\dev\code\my-project
  1. 启动(二选一):
# 没全局安装,用这个
npx @deepseek-ai/dsh web
      
# 已全局安装,用这个
dsh web
  1. 浏览器打开 http://127.0.0.1:3080。

执行一次 npm install -g @deepseek-ai/dsh,以后每次重启就只剩「进目录 + dsh web」两步。

注意:终端要一直开着 dsh web 在前台运行,关掉这个终端,网页服务就停了。想继续用就再跑一次上面的命令。要让它长期在后台跑,需要额外的手段(后台任务、tmux、系统服务等),属于进阶内容。

4.9 使用 dsh web 实践一下

SDD(Specification-Driven Development,规范驱动开发):先让助手产出规范文档,再按依赖关系拆解任务、一步步执行。

先 cd 到一个空项目目录再启动 dsh web,然后把下面这段提示词粘贴到对话框里即可:

我想实现一个网页版本的扫雷游戏,我希望使用SDD的方式来开发。
先帮我梳理规范文档,
然后按照规范文档,按照依赖关系,拆解任务,一步步的执行。
有什么不确定的地方,使用question工具向我提问确认。

5 设置与默认插件

5.1 入口与保存位置

点网页界面侧边栏的「设置(Settings)」。改动保存在 ~/.dsh/settings.yaml(Windows 是 C:\Users\你的用户名.dsh\settings.yaml),保存后即时生效,多数设置不用重启。也可以在设置里点「打开配置文件」直接用编辑器改。

5.2 三大分区

  • 通用:外观主题(浅色 / 深色 / 跟随系统)、语言、权限默认值、默认预设、打开配置文件。
  • 模型:配置 DeepSeek 官方 API Key(或 Bedrock / Vertex / 自定义 OpenAI 兼容端点)、改 baseURL、选默认模型和推理档位。API Key 只写保存,不会明文写进 settings.yaml。
  • 插件:两个标签页:「插件配置」(可配置插件做成可展开卡片)和「插件列表」(只读,看当前加载了哪些插件)。

5.3 默认插件速览

一个 profile 由两层插件包叠加:base(每个 profile 都有的核心)加 web-app(网页界面)。

分类插件(技术名)负责什么
模型与对话dsh-llm · dsh-llm-deepseek · dsh-agent模型路由、DeepSeek 适配器、代理循环。
会话dsh-session · dsh-session-persistence-jsonl对话状态与持久化,历史存 ~/.dsh/sessions。
文件与命令dsh-tool-fs · dsh-tool-fs-search · dsh-pwsh-sandbox / dsh-bash-sandbox文件读写 / 检索,以及被沙箱包起来的 Shell。
安全dsh-sandbox · dsh-user-approval · dsh-permission-presets文件沙箱、审批弹窗、权限预设。
协作自动化dsh-goal · dsh-plan-mode · dsh-subagent · dsh-tool-workflow · dsh-tool-ralph目标、计划模式、子代理、工作流、Ralph。
检索与技能dsh-tool-web · dsh-web-search-deepseek · dsh-skill · dsh-tool-todo网页搜索、技能系统、待办清单。
上下文管理dsh-token-meter · dsh-compaction-basic · dsh-compaction-tool-result-prunerToken 计量、自动压缩、裁剪过长的工具结果。
网页界面dsh-host-webserver + 一系列 ui-*Web 服务器(默认 127.0.0.1:3080)、侧边栏、会话、设置、作业、目标、计划等界面。

这些都是开箱即用的默认插件,不用手动装。只有想加额外能力时才需要 dsh plugin。

5.4 参考文档在哪

  • 每个插件自带中英双语说明:node_modules/@deepseek-ai/<插件名>/README.md(英文)和 README.zh.md(中文)。想知道某个插件干什么,直接翻它的 README.zh.md。
  • CLI 总说明:node_modules/@deepseek-ai/dsh/README.zh.md。
  • 看实际加载了哪些插件:dsh --profile web --dump-config(含你的覆盖)或 --dump-default-config(只看默认)。
  • 完整源码与文档:github.com/deepseek-ai/deepseek-harness,含每个包的 README、组合图、CLI 行为参考。
  • 命令行帮助:dsh --help、dsh web --help。

5.5 插件市场

默认插件不够用时,去下面两个地方找第三方插件:

  • 官方插件市场:github.com/topics/dsh-plugin —— GitHub 上带 dsh-plugin 话题标签的插件仓库集合。
  • 插件分类汇总:awesome-dsh-plugin —— 按分类整理好的插件清单(含中文说明)。

找到想用的插件后,用 dsh plugin --profile web install <包名> 装到 web profile,就能在会话里使用,或在设置里配置。

6 用得更顺的几个习惯

同一个助手,给任务的写法不同,结果差很多。下面几条都是能直接照做的习惯。

6.1 把需求说清楚

给任务时带上「目标 + 背景 + 想要的产出」。越具体,结果越靠谱。

不够清楚更清楚
“帮我看看这个代码”“找出 app.js 登录功能的 bug,说明原因并修掉,然后跑测试确认”
“优化一下”“把首页加载速度优化到 2 秒以内,列出改了哪些地方”
“写个爬虫”“用 Python 写一个爬某网站标题的脚本,存成 CSV,并告诉我怎么运行”

6.2 大改动先走计划模式

要动多处代码、或方案拿不准时,先让它调研并给出计划,你确认后再执行。直接说「先用计划模式」,或在界面里切换。

6.3 在正确的目录里启动

助手方便看到的只有启动时所在的目录。开工前先 cd 到项目根目录,让助手能读到整个项目,而不是你一句一句贴代码给它。

6.4 让它自己查,而不是凭记忆猜

它有检索文件、跑命令、上网搜索的能力。遇到「这个函数在哪定义」「这个报错怎么回事」,可以补一句「先到项目里搜一下再回答」。查证后的答案比凭空猜可靠。

6.5 复杂任务拆小步

别一口气塞十个需求。一次给一个明确的小目标,先跑通最小版本再往上加。大目标可以用「目标(Goal)」让它自动多轮推进,或让它自己用「待办(Todo)」跟踪进度。

6.6 做错了就纠正

助手会犯错。错了直接说「不对,我要的是……」,它会按你的反馈调整;它拿不准时也会主动问你。

6.7 一个话题一个会话

不同的事分开建会话,避免上下文互相干扰;同一个长任务中断了,下次继续之前的会话,而不是从头讲一遍。

6.8 用子代理和工作流并行提速

几件互不相干的事(比如给五个文件分别写注释),可以让它派几个子助手并行处理,比排队快。更复杂的批量任务用「工作流」一次编排。

6.9 守住安全和成本

  • 先在副本或测试目录里试,确认没问题再上真项目。
  • 让它改重要文件前,先备份或提交 git。
  • 长时间大批量任务会消耗额度,留意界面里的 Token 用量。

一句话总结 把它当成一个会干活、也会犯错的助手,而不是许愿机:说清楚目标、给足上下文、让它查证、分步验收。你越会带人,它越能替你干活。

7 常见问题

Q1:报错「dsh 不是内部或外部命令」 没全局安装。改用 npx @deepseek-ai/dsh web,或先 npm install -g @deepseek-ai/dsh。

Q2:端口 3080 被占用 / 打不开 换端口:dsh web --port 8080,然后访问 http://127.0.0.1:8080。同时确认终端没报错、服务还在前台跑。

Q3:浏览器打不开页面 查三点:终端里的 dsh web 是否还在运行且没报错;访问的是不是终端打印的地址;是否被防火墙拦(本机地址一般不会)。

Q4:怎么换模型 登录后在网页界面的设置里选模型;偏好保存在 ~/.dsh/settings.yaml 的 agent-default-model。

Q5:之前的对话还能找回吗 能。会话持久化保存,重启后在网页界面里继续之前的会话即可。

Q6:怎么让助手先出方案、确认后再动手 告诉它「先用计划模式」,或在界面里切换计划模式。它会先调研并给出方案,你批准后才执行。

本次介绍到这里就结束了,感兴趣的朋友可以点个关注~后续还会继续分享别的Agent使用教程,咱们下一章再会!!!

Logo

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

更多推荐