限时优惠

DeepSeek Harness 是什么:dsh 怎么组合模型与工具

DeepSeek Harness · dsh · 插件
2026-09-14 约 12 分钟阅读

我们用 npx @deepseek-ai/dsh 拉到 0.1.5-rc.1,跑了帮助和 --dump-default-config。

DeepSeek Harness 是可替换的 Agent 底盘,不是模型价目表。默认 web 树 152 条插件,模型 deepseek-flash,端口 3080。

实测要点

  1. DeepSeek Harness 是开源 Agent 底盘,CLI 叫 dsh;它不是 DeepSeek 模型,也不是一张 API 价目表。
  2. 我们用 npx @deepseek-ai/dsh 拉到 0.1.5-rc.1(Node.js v24.14.1)。dsh --help 把产品说成「按序叠加的插件组合包」。
  3. dsh --profile web --dump-default-config 打出 152 条插件;默认模型 deepseek-official / deepseek-flash;Web 默认 127.0.0.1:3080;Agent preset 默认 standard。
  4. 模型走 ctx.llm 适配器,工具走 ctx.tools,循环走 ctx.agentLoop。换模型 ≠ 换工具,也 ≠ 换循环。
  5. 开发者预览会破坏兼容。官方入口:deepseek.com/harness、GitHub。
先分清「模型 / 工具 / 循环」三层,再决定要不要把 dsh 当日常编码 Agent。
开发者在编辑器前查看 DeepSeek Harness 插件组合
dsh 把模型、工具和循环拆成可替换插件;先看组合层,再谈好不好用。

DeepSeek Harness 是什么

DeepSeek Harness 是 DeepSeek 开源的 Agent 运行时。仓库 README 写得很直:它由 Cordis 撑起「一切皆插件」——模型适配器、工具注册表、会话日志、沙箱,以及 Agent 循环本身,都可以在配置层替换,而不必去改 Harness 源码。产品页同样把能力列成插件:模型、工具、技能、会话、沙箱、存储、循环、调度、UI。

命令行名字是 dsh。这和「DeepSeek V4-Flash 多少钱」不是同一类搜索。后者买的是模型推理;前者装的是把模型、工具和会话串起来的底盘。Token 账单仍看模型提供方,见 DeepSeek V4-Flash API 价格。

官方同步标明:这是开发者预览,会有破坏性变更。2026-08-13 仓库公开后,文档比营销页细,但默认把读者当成要写插件的人。本文只回答「是什么、怎么组合、我们实际跑出了什么」,不把 Cordis 事件域当入门课文。

我们测了什么:环境、命令、原始数字

标题若写「实测」,就必须有环境、任务、方法和原始输出。下面是我们本机跑过的部分,不是官网截图复述。

环境:macOS(darwin 25.4.0),Node.js v24.14.1。用 npx --yes @deepseek-ai/dsh,不 clone 源码。为避免写进默认 ~/.dsh,把 DSH_HOME 指到隔离目录后再 dump 配置。

任务:① 读 CLI 帮助与版本;② 读 web 子命令帮助;③ 导出 web profile 的默认组合树(不含用户层、不含 --patch)。我们没有在这篇里跑带 API Key 的完整编码任务,因此下面不把「改了某个仓库」写成实测。

本机实际执行
npx --yes @deepseek-ai/dsh --version
# 0.1.5-rc.1

npx --yes @deepseek-ai/dsh --help
npx --yes @deepseek-ai/dsh web --help

export DSH_HOME="$PWD/.tmp_dsh_home"
npx --yes @deepseek-ai/dsh --profile web --dump-default-config

dsh --help 原文把产品定义为:在用户覆盖之下,按序叠加插件组合包(plugin-bundle patch)。子命令只有两条主线:web(--profile web 的别名)和 plugin(把剩余参数转给该 profile 目录里的 pnpm)。示例里还有 headless 一次一任务、--dump-config 打印组合树、--from-default-profile 从模板派生自定义 profile。

dsh web --help 印出的监听默认值与文档一致:--host、--port(0 让操作系统选空闲端口)、--no-open、--trusted-host。配置树里 webserver 默认 127.0.0.1、3080。

项测到的值证据
npm 包版本0.1.5-rc.1dsh --version
默认模型deepseek-official / deepseek-flashdump 里 agent-default-model
Web 监听127.0.0.1:3080dump 里 webserver
默认 presetstandarddump 里 agent-presets
默认组合树行数539 行 YAML / 152 条 id--dump-default-config
标记 disabled26 条(多为 tool-*)同一份 dump

26 条 disabled: true 主要是 tool-bash、tool-fs、tool-skill、tool-web 这类面向模型的工具:dsh-web-app 先把它们关掉,等工作区 / preset 再打开。所以「dump 里工具是灰的」不等于「Web UI 没有 bash」。这是组合层的细节,营销页不会写。

模型、工具、循环怎么组合

架构文档把运行中的 dsh 写成一棵启动时按层叠加的插件树。你日常只碰四样东西:

  • Profile:$DSH_HOME/profiles/<name> 里的具名组装。随附模板有 web、headless、sdk、sdk-minimal、acp。
  • Bundle:带 dsh.bundle 的 npm 包,贡献一份 patch。第一次初始化时,@deepseek-ai/dsh-base 是第一层。
  • 插件模块:导出 apply(ctx) 的 TypeScript。模型适配器 ctx.llm.registerAdapter();工具 ctx.tools;循环是 ctx.agentLoop。
  • 覆盖顺序:各 bundle patch → profile 自己的 cordis.patch.yml → home 级 patch → 命令行 --patch。
层你碰什么换成什么别搞混
模型Settings → Models,或 $DSH_HOME/settings.yaml官方卡、内置提供方、自定义网关换模型不会自动换 bash 实现
工具preset / DSH_TOOLS_MODE / 工具插件标准全套、极简双工具、自己注册工具 schema 进提示词,和模型目录是两本账
循环默认 dsh-agent-loop,可整段替换另一个 loop 插件大多数产品把 loop 写死,dsh 故意不写死
入口dsh web / headless / sdk / acp同一套 CLI,不同 profile不要再发明第二个可执行文件

装第三方插件的官方路径是 dsh plugin --profile web add <包名或 git>。我们跑 dsh plugin --profile web --help 时,它直接把 pnpm 的帮助打出来——文档说「转发给 pnpm」不是比喻。本地试验可以 dsh web --patch ./cordis.yml,教程见 第一个插件。发布到 GitHub 时加上 dsh-plugin topic。

绑模型时,DeepSeek 官方卡只收一把 API Key,密钥进 $DSH_HOME/.credentials.yaml。自定义网关要小写 Provider ID、base URL、协议(openai-completions / openai-responses / anthropic-messages)。Provider ID 不能改名:会话和默认模型都指向它。网关能通 Key 仍可能 400——推理模型可能把系统提示发成 developer 角色、输出上限发成 max_completion_tokens。官方要你在 settings.yaml 写 compat.supportsDeveloperRole: false 和 maxTokensField: max_tokens。步骤见 Configure models。

Web UI 还要先选 workspace,否则输入框不可用;官方建议先发一句「总结这个仓库」。见 Use the Web UI。技能(Skills)是另一套程序性说明,和 dsh 插件不是同一个东西;背景见 Hermes Agent Skills 清单。

四种模式怎么选

产品页列了四种运行模式。我们 dump 到的默认 preset 是 standard,与「标准模式」对齐。其余三种以官方说明为准,下表不把未跑过的模式写成「我们测了」。

模式官方给什么什么时候用别指望
标准文件编辑、Shell、检索、Skills、计划、目标、子代理、工作流日常编码 Agent它不会替你选对模型价
PTC标准能力 + Code Mode SDK,模型用一段 TypeScript 组合多步工具工具调用链很长、想少来回网关协议不对时一样失败
极简持久 bash + str_replace_editor给模型做最小工具基准没有完整检索/工作流
创造标准能力 + 检查运行时、内存里试插件、写新 preset你要自制组合,而不是只聊天预览期 API 会变

权限另有三档,写在 dump 的 permission 插件里:read-only、workspace-write(默认,可用 DSH_PERMISSION_MODE 改)、danger-full-access。标准模式不等于「已经放开写整个磁盘」。

和 Claude Code / Hermes 谁该用

把 dsh 理解成「可拆的底盘」,选择会清楚很多。

  • 要可替换的模型、工具、循环,并准备写插件:用 DeepSeek Harness。预览期请锁版本。
  • 要产品化编码 Agent、账单按套餐走:先看 Claude Code 2026 价格,不要指望 dsh 复制同一套订阅体验。
  • 要 Skills / Gateway 那套程序性记忆:Hermes 更贴;dsh 也有 dsh-skill,但默认 dump 里 filesystem skill 是关掉的,直到组合打开它。
  • 已经在跑 MCP:协议层仍独立,见 MCP 开发者指南。dsh 文档把它当作客户端能力,不是「装了 dsh 就不用 MCP」。

第三方评测提到可选 bundle 能把任务委派给 Claude Code / Codex。我们这份默认 web dump 没有出现 subagent-claude-code 这类条目,所以不写成「开箱即委派」。Agent 技术栈怎么叠,见 2026 AI Agent 技术栈。

FAQ

DeepSeek Harness 和 DeepSeek 模型是一回事吗?

不是。Harness 是运行时;模型是推理服务。默认路由指向官方 DeepSeek,但你可以加 OpenAI、Anthropic 或自定义网关。账单跟你选的提供方走。

dsh 怎么安装、Web UI 默认端口?

官方:npx @deepseek-ai/dsh web。我们测到包版本 0.1.5-rc.1,默认 127.0.0.1:3080。SSH 场景加 --no-open。源码路径是 clone 后 pnpm install && pnpm run build && pnpm dsh web。

模型、工具到底怎么组合?

Profile 叠 bundle,bundle 用 patch 插入插件。模型注册在 ctx.llm,工具在 ctx.tools,循环在 ctx.agentLoop。看自己机器上的树:dsh --profile web --dump-config。

四种模式怎么选?

日常编码用标准(默认)。要比模型本身,用极简。工具链很长,看 PTC。要自制 preset,用创造。预览期名称和能力可能改。

开发者预览能不能上生产?

官方警告会有破坏性变更。可以在隔离目录、锁 npm 版本做实验;不要把未锁定的 npx 直接挂到生产证书机。

小结

DeepSeek Harness 回答的是「Agent 底盘怎么拆」,不是「DeepSeek 模型排第几」。我们在 0.1.5-rc.1 上看到的硬事实:web 默认树 152 条插件、默认 Flash、3080 端口、preset=standard。组合顺序是 profile → bundle → 模型适配器 / 工具注册表 / 循环,而不是在一个二进制里写死。

把 dsh 放在一台不合盖的 Mac 上,比笔记本挂着 Web UI 更稳

dsh web 要常驻 Node、工作区磁盘和 API Key。笔记本合盖,会话、子代理和 Trajectory 回放一起断。云端 Mac mini 适合当隔离的 Harness 主机:SSH 里跑 dsh web --no-open,DSH_HOME 和工作区留在同一台机器,白天用的证书机不兼做预览版 Agent。权限先停在 workspace-write,日租验完再锁月租。

对比套餐 · 查看方案 · 开通验收清单 · 开始使用