DeepSeek Harness(DSH)
DeepSeek 官方开源的 Agent Harness:除模型本身以外的所有工作(读文件、改代码、执行命令、组织上下文、调用工具、保存会话、权限审批、子 Agent)都属于 Harness 的范畴。
核心公式:Model + Harness = Agent
核心设计:一切皆插件(Everything is a Plugin),由 Cordis 驱动。
基本信息
安装与启动
方式一:npx 直接启动(官方推荐,最简单)
- 第一次运行自动下载包到 npx 缓存(
~/.npm/_npx),之后每次运行从缓存秒起,不会重复下载
- 每次启动都跑这条命令即可,配置不会丢(配置存在
~/.dsh,与 npx 缓存无关)
- 建议先
cd 到项目目录再启动:运行目录 = 默认 workspace 根目录
方式二:全局安装(装一次,之后直接 dsh web)
npm install -g @deepseek-ai/dsh dsh web
|
方式三:本地安装
npm i @deepseek-ai/dsh npx dsh web
|
方式四:源码运行(开发/改插件用)
git clone https://github.com/deepseek-ai/deepseek-harness cd deepseek-harness pnpm install pnpm run build pnpm dsh web
|
版本与更新(2026-08-20 调研)
- 最新版本:
v0.1.0-rc.8(GitHub 最新 release,Pre-release)
- npm 上已发布 0.1.0-rc.8(jsdelivr 可直接拉取
@0.1.0-rc.8/package.json)
- 但 npm 的
latest dist-tag 仍指向 0.1.0-rc.7(jsdelivr / unpkg 的 @latest 均解析为 rc.7)
- 含义:普通
npx @deepseek-ai/dsh / npm install -g @deepseek-ai/dsh 装到的仍是 rc.7,想用 rc.8 必须显式指定版本
- 查看当前版本
- 全局安装:
dsh --version 或 npm ls -g @deepseek-ai/dsh
- npx 方式:
npx @deepseek-ai/dsh --version(注意 npx 会读缓存)
- 更新到 rc.8
- npx:
npx --yes @deepseek-ai/dsh@0.1.0-rc.8 web
- 全局:
npm install -g @deepseek-ai/dsh@0.1.0-rc.8
- 源码:
git pull + pnpm install + pnpm run build
- 想跟
latest 标签则 npm install -g @deepseek-ai/dsh(当前仍为 rc.7)
- ⚠️ 升级前注意:rc.8 改善了 SQLite 后端读写/分叉性能并降低存储体积,但存储格式不兼容,建议先备份
~/.dsh
- rc.8 主要变化:多模态增强(DeepSeek 适配器支持原生图片请求,
/goal /plan 可图文输入,@ 菜单可引用文件/会话);Claude Code 与 Codex 子代理可作 Profile Bundle 按需安装;Windows PTY 支持持久 PowerShell 会话;web_search 支持并发查询;本地 dsh web 自动打开浏览器;缩小下载依赖体积;提升大历史会话分叉性能
- 无内置自更新命令:官方 README 只提供 npm / npx / 源码三种方式,更新 = 重新安装对应版本
首次使用三步
- 浏览器打开
http://127.0.0.1:3080,在 Settings 模型设置里填入 DeepSeek API Key 并保存(模型路由立即生效,不用重启服务器)
- 选择工作区(指向启动 dsh 时的项目目录)
- 开启对话,例如”汇总这个仓库并指出主要包”
常用命令速查
| 命令 |
作用 |
npx @deepseek-ai/dsh web |
启动 Web UI(dsh web 是 --profile web 的硬编码别名) |
npx @deepseek-ai/dsh web --port 8080 |
换端口启动(--port 属于 web 应用参数,跟在 dsh web 后面) |
dsh --profile headless "任务描述" |
一次性运行一个任务,打印最终答案后退出(适合脚本/CI,无服务器无端口) |
dsh plugin --profile web add <包名> |
给指定 profile 安装插件(转发给 pnpm 执行) |
dsh plugin --profile web remove <包名> |
移除插件 |
dsh --profile web --dump-config |
查看实际启动的完整配置树(不启动服务器) |
dsh --profile web --dump-default-config |
查看默认配置树(不含用户 patch) |
配置与数据目录
| 位置 |
内容 |
$DSH_HOME(默认 ~/.dsh) |
所有配置与数据根目录 |
~/.dsh/profiles/ |
profile 目录(web / headless 首次使用时从内置模板自动初始化) |
~/.dsh/profiles/web/cordis.patch.yml |
用户自己的配置 patch 层(改配置主要动这里) |
~/.dsh/.credentials.yaml |
凭据(也可用环境变量 DEEPSEEK_API_KEY) |
~/.dsh/cordis.patch.yml |
home 级配置(所有 profile 共享,优先级高于 profile 级) |
凭据解析顺序:环境变量 → $DSH_HOME/.credentials.yaml → 调用目录的 .env → $DSH_HOME/.env。
概念速记
- Profile:一次启动的完整配方,回答”这次启动要叠哪些插件包、按什么顺序叠”。
web = 带浏览器界面的完整应用;headless = 无服务器、接收一次任务返回结果。
- Bundle(组合包):一个声明了
dsh.bundle.patch 的普通 npm 包,带一份 cordis.patch.yml,是 dsh 的一层配置。安装后出现在 profile 的 bundle 列表中。
- Cordis:dsh 的底层驱动,一棵启动时组合出来的插件树。模型适配器、工具注册表、会话日志、Agent Loop、UI 全都是可替换的插件。
- 默认权限:新会话默认
workspace-write 预设;bash/文件系统改动限制在会话工作区和平台临时目录内;高风险操作会在界面征求确认。
踩坑记录
学习资源
插件收藏(2026-08-16 整理)
🛒 市场与商店
📋 精选列表
⭐ 重点插件(关注/待装)
dsh_workflow 能力速记(2026-08-16 调研)
把 Claude Code 的 UltraCode 模式带给 DSH——把一次性多 Agent 调度,升级为可生成、可保存、可治理、可观察、可恢复的 Workflow 层(KodaX workflow 对标,@dsh-external/workflow 官方 bundle 形态、零核心 patch)。
- 发现与复用:workflow 保存为
.dsh/workflows(项目级)/ $DSH_HOME/workflows(个人级),按名字运行;同名项目条目覆盖个人条目;.workflow.json 优先于 .ts/.mjs/.js
- 生命周期与持久化:每个 run 有
running → paused/completed/failed/denied/stopped 状态;.dsh/workflow-runs/<run-id>/ 落盘:run.json(状态/摘要/成本)、events.jsonl(append-only 事件图)、workflow.workflow.json(不可变快照)、results/(effect cache)、artifacts/(证据)
- 续跑/重跑:
resume-run 用 effect cache 续跑未完成部分,或按 run snapshot 重跑,中断不从头再来
- 治理与硬限制:manifest + preflight + 运行时硬限制(
modelHint: fast|balanced|deep;availableTools/availableMcp/availableSkills 部署能力清单,requirement 不在清单即失败,不偷偷降级)
- 斜杠命令:
/workflow list、/workflow create <request>、/workflow review、/workflow runs、/workflow show、/workflow pause|resume|stop、/workflow rerun|resume-run、/workflow save|revise|prune 等
- 模型工具:
workflow_list / run_workflow / workflow_manage
- 安全:readOnly/toolFilter/cacheIdentity/审批分级;approvalMode: always;要求 Node ≥ 22.19、DSH 快照与 compatibility.json 一致
- 与原生 workflow 工具关系:不替换原生
workflow 工具(它适合”这一次并行跑完”),本插件负责更高层的流程产品能力
待学习 / 待记录