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

相关推荐
RebornL1 小时前
DeepSeek Harness (DSH) 插件机制解析:一切皆插件的 Agent 运行时
agent
用户9983834541131 小时前
给 Agent 加一个「挑刺的审稿人」——Critic 与自纠错回环
agent
用户9983834541131 小时前
用LLM + Neo4j 给生物医学文献建知识图谱
agent
skywalk81631 小时前
硬核移植实录:在 FreeBSD 15.1 上从零跑起 DeepSeek 智能体 harness(附完整踩坑手册)
人工智能·freebsd·deepseek·harness
sjh97141 小时前
我把 DeepSeek Harness 每次会话的账单拆开看了一遍,第一个请求占了 52%
deepseek
用户9983834541131 小时前
从研究到可交付产物——报告生成、导出与容器化部署
agent
Lear1 小时前
MinerU:把文档变成大模型能"读"的样子
agent
武子康1 小时前
GPT-Live 分析研究:从回合式语音到连续交互循环
人工智能·llm·agent
小帅不太帅1 小时前
给大家推荐一个特别好用的专为 AI Agent 打造的最快浏览器
前端·agent·浏览器