返回指南

什么是 DeepSeek Harness?一文看懂 dsh 智能体运行时

DeepSeek Harness(缩写 dsh)是 DeepSeek 开源的全插件化智能体框架。本文讲清 Profile 与 Patch、Agent 预设、四种模式、会话日志,以及插件在其中的位置。

最近更新: 2026-08-13

太长不看版

DeepSeek Harness —— 官方缩写 dsh —— 是 DeepSeek 开源的智能体框架(开发者预览版已上线并开源)。它就是把模型变成"能干活的智能体"的那一层:读写文件、执行命令、联网搜索、长任务持续推进。官方对它的定义只有一句话:

Agent = Model + Harness(智能体 = 模型 + 马具/框架)。

模型是大脑,Harness 是身体:工具、权限、会话记忆,以及驱动智能体持续运转的主循环。而它最核心的设计原则是 一切皆插件 —— 模型接入、工具注册表、审批策略、会话日志、UI,甚至主循环本身,全部是可替换的插件。

两条命令即可体验(需要 Node.js 工具链):

npm install -g @deepseek-ai/dsh
dsh --profile web

然后在网页端填上 DeepSeek 的 API key 就能开始用;如果本机环境变量里已经有 key,这步都可以跳过。有问题直接看 github.com/deepseek-ai/deepseek-harness

它不是"DeepSeek 版 Claude Code"

最接近的类比是 Claude Code 或 OpenAI Codex,但 dsh 的形态不同:Codex 交付的是一个拿来即用的智能体,DeepSeek Harness 交付的是一套可组装的智能体运行时——它甚至可以不替换它们,而是把你本机的 Codex 和 Claude Code 挂载成子 Agent 直接调用。

差异体现在三处:

  1. 一切皆插件。 工具、模型供应商、审批策略、会话日志、沙箱、主循环、Web UI 都是插件。卸载一个插件,它注册的一切自动撤销,不留残余。
  2. 会话可完整回放。 每个会话是一份只增不改的事件日志:用户输入、模型输出、每次工具调用与结果、上下文注入、子智能体活动,全部按序记录。恢复、分叉、检索、回放共享同一份事件流。
  3. 自己组装自己的 Agent。 用创造模式直接提需求——"创建一个只能读、不能写的代码审查模式"——它会起草配置、挂载验证、保存为新预设。

Profile 与 Patch:一个 dsh 进程如何被组装

运行中的 dsh 可以理解为一棵插件树,由多层配置按固定顺序叠加(底层是 Cordis 插件系统):

  • Bundle(组合包) —— 官方发布的成套插件配置;
  • Profile —— 你机器上的具名组装清单;
  • Patch(覆盖层) —— 你自己的修改层,可以精确定位到任意一个插件条目并替换。

上层配置始终覆盖下层。所以"安装插件"通常就是在 Profile / Patch 配置里加一行——每个插件的仓库都写了自己的安装方式。这套分层配置本质上是按顺序叠加的 cordis.patch.yml

内置的 Patch 层,简单说就是一套给 Agent 装能力的装扮系统——它决定你的智能体"穿"上哪些能力。通过 Patch 你可以:

  • 把本机的 Codex 和 Claude Code 挂载为子 Agent,让 Harness 直接调度它们;
  • 安装各种插件:接入外来的工具和服务、调整运行权限、开启全文搜索;
  • 替换界面 UI 模块——界面本身也只是插件;
  • JavaScript 表达式定义规则,让这些能力按条件生效("只在这个仓库生效""只对这类文件生效")。

Agent 预设与四种模式

界面顶部的模式选择器,选的是当前会话的 Agent Preset(智能体预设):这个会话里的智能体有哪些工具、什么系统提示词、怎么工作。

  • 标准模式(standard) —— 默认。完整的编程助手:能理解需求、修改代码、运行命令并检查结果。
  • PTC 模式 —— 在标准模式基础上,支持用 TypeScript 编写小程序,把多步操作组合成自动化流程。程序化工具调用(循环、条件、并发都行),只有程序的最终输出进入上下文——步骤越多、中间数据越大,越快越省上下文。
  • 极简模式(minimal) —— 只提供持续可用的终端和基础文本替换工具,适合简单的改动,也面向基准测试与教学。
  • 创造模式(creation) —— 在标准模式基础上,额外支持运行时检查、尝试插件,以及使用预设完成创作类任务:检查当前运行时、在内存中试验插件、组合并保存新预设。注意:它能执行模型写的代码并修改运行时,信任等级等同 shell,建议只在受信任环境使用。

会话一旦产生内容就不能再切换模式——中途换模式会导致旧工具调用无法被新工具集解释。

智能体怎么干活

工作由两个概念组织:step(步骤) 是一次模型请求加上它要求执行的工具调用;turn(轮次) 是从接到任务到全部做完的整个过程。每个关键位置(步骤开始前、工具执行前后、模型请求发出前)都是可拦截的扩展点,插件可以在这里插入审批、改写、记录、拦截逻辑。

会话日志 记录模型看到的一切,只增不改:系统提示词、思维链、工具调用与结果、上下文注入、子智能体调度。它支撑会话恢复、自动标题、上下文压缩和跨会话检索。

智能体还可以先交方案再动手(你批准后执行)、把长任务拆成可勾选的清单,遇到需要拍板的事会暂停并抛出带选项的问题。

安全模型

  • 进程沙箱三档 —— read-only(只读)、workspace-write(可写工作区)、danger-full-access(完全放开),使用各平台原生隔离(Linux bwrap/Landlock、macOS Seatbelt、Windows ACL 受限令牌)。沙箱后端如实上报隔离执行情况,不虚报安全边界。
  • 审批与权限 —— 风险操作先申请批准,权限有预置档位可整体调节。
  • 守卫 —— 检测重复无效动作(循环卫生)、强制中断超时工具调用。
  • 密钥不进日志 —— API Key 走独立通道,日志里只有引用没有明文。会话日志默认不上传,遥测需显式开启。

五种使用方式

  1. Web UI —— 浏览器打开本地地址,对话、审批、切换模式、改设置;
  2. Headless CLI —— 无界面执行单个任务,跑完即退,适合 CI/CD;
  3. Python SDK —— 自带打包运行时,高层 turns API + 底层 JSON-RPC;
  4. TypeScript SDK —— JSON-RPC 协议、服务端与客户端,适合深度集成;
  5. ACP 服务端 —— Agent Client Protocol,面向编辑器与工具链厂商。

生态兼容也很全:支持 MCP(任意 MCP 服务器接入后与内置工具走同一条流水线),Hooks 桥让 Claude Code / Codex 的钩子脚本直接可用。

插件在哪里登场

正因为一切皆插件,社区短短几天就做出了几百个插件:UI 皮肤、任务进度条、跨会话记忆、桌面宠物、小游戏、深度研究编排器……去插件目录看看现在都有什么,或者读插件开发入门,自己写一个。

继续探索

DSH Plugins 是独立的 DeepSeek Harness plugins 社区导航站,与 DeepSeek 官方无关,也不代表官方背书。第三方插件未经安全审计,安装前请审查源码。