DeepSeek Harness 来了!从用户界面分析DSH

2026年8月13日,DeepSeek 正式发布了他们的首款 Agent 类产品,DeepSeek Harness(DSH),并且是以一个开源的姿态展示了了自己的产品,截至今天,已经斩获了125k start。

GitHub:github.com/deepseek-ai...

安装

DSH没有选择开发客户端,而是选择了Web形态。

用户在使用方式上有两种选择:

npm 启动

如果你不关心源码或者不需要按照自己的需求进行改造,那么直接使用npx即可。 先确保本地有一个最新的LTS 版本的Node.js

然后运行

bash 复制代码
npx @deepseek-ai/dsh web

等待一段时间之后,在本地就启动了一个web服务,默认的地址是 http://127.0.0.1:3080

源码安装

如果你想深扒源码或者想自定一定义DSH,可以选择源码启动。

将源码在下载到本地之后,确保你安装了pnpm,DSH 采用了 pnpm 进行包管理

复制代码
npm install pnpm -g 

然后在项目目录下运行:

arduino 复制代码
pnpm install
pnpm run build
pnpm dsh web

同样在本地启动一个Web服务。

上手 DeepSeek Harness

启动之后,和DeepSeek一贯的风格一样,Web页面非常简单,第一次进入时,会让你输入DeepSeek的Api Key。

和市面上多数产品一样,左侧是工作区和会话的交互界面,可以在此管理工作区和会话。

页面中间是输入框,这里可以有几个可以设置的选项。

  • Agent模式

DSH提供了几种预设的Agent模式,他们有各自的特点和使用场景

模式 界面名称 本质 场景
standard 标准模式 功能完整的编码 Agent 日常写代码、调试、重构、探索
code PTC 模式 标准模式全部能力 + Code Mode(代码化工具呈现) 批量修改、脚本化多步操作、省延迟
minimal 极简模式 固定提示词 + 双工具的极简 Agent 简单单点任务、省钱、行为要可预期
cordis 创造模式 标准模式全部能力 + 自我修改运行时的能力 写新 preset、试插件、改 harness 自身
  • 权限模式

这里可以设置 Read Only(只读模式)、Workspace Write(工作区可写)、Full acess(全部授权) 三种。 通常使用 Workspace Write即可。

模式 能写哪 需要审批吗 典型用途
Read Only 哪里都不能写 是(ask) 审查、只读分析、只探索不改动
Workspace Write(默认) 仅工作区 + 平台临时区 是(ask) 日常编码:改自己的项目,碰不到工作区外
Full access 无限制 否(never,需批准的操作直接拒绝) 信任的完整控制场景,如自动化流水线
  • 模型和推理等级

这里可以选择模型和推理等级

知道了以上这些,就可以开始我们的对话了。

进阶 DeepSeek Harness

在我们进行了一个对话之后,我们会在页面上发现一个新奇的东西:轨迹

轨迹

以上是我进行一个对话之后出现的内容,这个页面像一个函数调用图,它把 agent 的整个活动过程渲染成一张按轮次(Turn)组织的事件记录表------即"幕后发生了什么"的完整流水账。

它解决的核心问题是:对话视图只展示"人类视角的聊天记录",而轨迹展示的是模型视角的完整执行痕迹

整体布局是:顶部工具栏(吸顶)→ Overview 时间线(固定)→ 主记录表(虚拟滚动)→ 选中记录时右侧弹出事件检查器

工具栏

四个控件,从左到右:

控件 功能
Duration(带时钟图标,toggle 按钮) 切换时间线色块的两种宽度模式:等宽 (每一条记录按顺序占一样宽,看"发生了什么")vs 实际耗时(按记录真实耗时画宽度,看"哪个最慢")。悬停提示是 "Use actual duration / Use equal-width operations"
Turns(⊟/⊞) 一键折叠/展开所有轮次(turn):折叠后每个 Turn 只剩一行摘要
Calls(⊟/⊞) 一键折叠/展开所有工具调用:把每个 Assistant 记录下的 Tool/Subtool 行收进摘要("N tools")
搜索框 在当前已加载的记录窗口内搜索,命中记录在时间线和表格里高亮

Overview 时间线

这是活动时间总览,从左到右按时间投影每条记录。

三条线(lane)的划分 (timeline.ts 第 46-50 行 laneFor):

线 放什么记录 颜色语义
Input(最上面) SYSTEM / USER / CONTEXT(系统提示词、用户消息、注入的上下文) 输入侧
Model(中间) ASSISTANT / COMPACTED(模型回复、压缩检查点) 模型生成
Tools(最下面) TOOL / SUBTOOL(工具调用与嵌套子工具) 工具执行

每条色块的含义

  • 宽度 = 耗时(Duration 开时)或等宽(Duration 关时);
  • Assistant 色块 内部还区分两段颜色:TTFT (首 token 延迟,前段)和 Decoding (解码耗时,后段)------悬停 500ms 显示精确提示,例如 ASSISTANT 10:00:00.123 → 10:00:01.665 Total 1,542 ms · TTFT 368 ms · Decoding 1,174 ms
  • 错误记录有红色标记;轮次边界画竖线分隔;搜索命中的记录带匹配标记。

主记录表

按轮次组织的事件账本 ,每条记录一行:索引 | 事件类型标签 | 内容预览

轮次分组 :每个 Turn 有吸顶的轮次头 Turn N,右侧带 Input / Output / Think / Time 列标签;轮次之间用粗分割线隔开,轮次内部用紧凑的行内标记标示 Step。

记录类型(TrajectoryTable.tsx 第 38-46 行),每条有对应图标:

标签 含义
SYSTEM 系统提示词(含初始提示词、提示词/工具更新,可查看 Diff)
USER 用户消息(Turn 1 USER
CONTEXT 注入的上下文
ASSISTANT 模型回复,编号为 Request #N ASSISTANT,可展开其下的工具调用
TOOL / SUBTOOL 工具调用,内容预览格式 bash {"command": ...} → 输出摘要;嵌套调用缩进显示
COMPACTED 压缩检查点

Event details 检查器

记录表右侧的局部检查器,随记录类型切换标签页:

  • 普通记录Summary / Payload / Result / Schema / Timing------输入输出原始内容、JSON schema、耗时明细;
  • 请求记录 (Request #N):Summary / Options / Usage / Timing------token 用量(Input / cache read / cache write / Output / Reasoning,含累计)、请求配置(模型、provider、重试参数)、耗时与状态(含错误);
  • 系统提示词记录Diff / System Prompt / Tools------提示词前后变化对比、完整提示词、当时挂载的工具 schema。

总结

轨迹功能是DSH具有亮点的一个设计,他为黑盒的对话,提供了可以拆解分析的工具,对话是"说了什么",轨迹是"到底怎么干的" ------每一步请求、每个工具调用、花了多少 token、耗时多久,全部可见。典型使用场景有:

  • 排查"模型为什么这么做" :看某个工具调用前后的上下文、输入输出原始数据;
  • 性能/成本审计:查看每条请求的 token 用量、TTFT、解码耗时,找慢请求、浪费的调用;
  • 调试多轮流程:确认轮次/步骤边界、压缩发生的位置、子工具(如 run_code 下的嵌套调用)的执行顺序;
  • 验证沙箱/审批效果:看被拒绝、被中断的工具记录(轨迹中这些冻结记录仍可见)。

插件

插件是DSH非常重要的核心,在DSH的官网甚至写出了 Everything is a plugin 如何理解这个插件呢,先从用户界面上看

在设置中,可以看到插件的配置,在里面就能看到一些端倪了,终端、Agent循环、网页搜索都是DSH核心的功能,但是他们在DSH中都是插件。

平时说"插件",比如浏览器插件、IDE 插件,意思是:有一个主程序,插件是装上去的附加件。主程序是主体,插件是配角。DSH 不是这个意思。DSH 的意思是反过来的:

这个软件没有"主程序"。整个软件就是一堆积木搭起来的,连"地基"都是积木。

假设 DSH 是一套乐高:

  • 模型(DeepSeek、Claude......)是一块积木;
  • 文件读写工具是一块积木;
  • 网页搜索是一块积木;
  • 终端是一块积木;
  • 沙箱(权限限制)是一块积木;
  • 连"让 Agent 思考的主循环"也是一块积木
  • 你现在看着的这个网页界面,每一块都是积木;
  • 甚至"设置页里能改插件配置"这个功能本身,也是一块积木。

没有任何一块是"原装的、动不了的" 。你看到的一切,都是同一规格的积木拼出来的。所以:

  • 想换模型?拔掉一块,插上另一块。
  • 想换搜索服务商?拔掉那块,插新的。
  • 想让 Agent 思考方式不同?把"主循环"那块积木换掉。
  • 想加新功能?没有"改内核"这回事,只有"再插一块积木"。

乐高积木能拼在一起,是因为每块积木的凸起和凹槽规格完全一致。DSH 的积木也有统一规格(叫 Cordis),每块积木都要遵守四件事:

  1. 报出自己的名字 :每个积木说自己提供什么服务,比如"我管工具"(ctx.tools)、"我管模型"(ctx.llm)。别人不直接找它要代码,只按名字找它要服务------所以换一块积木,别人不用改。
  2. 声明自己需要什么:积木装之前先说自己要依赖哪些服务,装的时候系统自动排队,谁等谁,不用人手工排序。
  3. 用"广播"通信:积木之间靠事件说话------"模型要发请求了""工具被调用了",谁关心谁听。想拦截、想观察,就监听某个广播,而不是改别人的代码。
  4. 拔下来就干净 :每块积木装上去时登记的所有东西(工具、提示词、监听),拔下来时自动全部注销,不留垃圾。这就是为什么可以热插拔、可以放心改。

因此,之前所说的创造功能 ,就能轻松地让用户自己利用DSH来升级优化DSH,可以说DSH是一个可以自己升级的Harness

总结

以上就是从用户界面分析的DeepSeek Harness,之后也会继续深入分析DSH

相关推荐
zzz_23681 天前
个人 AI 记忆如何跨工具复用:用 Markdown、索引和 Skill 搭一个可治理的记忆库
前端·人工智能·react.js·前端框架·agent·agent测评
Csvn1 天前
第 16 章 多智能体 Multi-Agent
人工智能·aigc·agent
luckystar513~1 天前
Hermes 实战 :系列收官/生产化——安全审计与运维
运维·人工智能·安全·agent·智能体开发·hermes实战·智能体网关
七牛云行业应用1 天前
Harness Engineering 是什么:从“写提示词“到“设计 Agent 边界“的工程方法论
人工智能·agent·ai编程
运维开发王义杰1 天前
终端新王登基?GPT-6 Astra 飞跃与 GLM-5.3 突围
agent
Sendingab1 天前
深入理解 DeepSeek Harness(dsh):让模型真正“动手干活“的开源 Agent 框架
智能体·deepseek·harness
lee_curry1 天前
AI Agent 工程师完整学习路线(面向生产级项目与面试)
人工智能·学习·ai·面试·agent
大模型真好玩1 天前
DeepSeek Harness 入门很简单(二)——DeepSeek Harness通用设置及Agent预设详解
人工智能·agent·deepseek
HIT_Weston1 天前
203、【Agent】【OpenCode】JS 语法:作用域链与 var 循环陷阱
人工智能·agent·opencode
Luhui Dev1 天前
Multi-Agent 实践中的坑坑洼洼
人工智能·agent·luhuidev