大家好!我是瓜哥。前互联网技术副总裁,现在带队死磕 AI 编程。
8 月 13 日,DeepSeek 开源了一个新东西:deepseek-harness。仅 3 天的时间,Github 上的 star 已冲到 127k。
这是个什么东东?又凭什么这么火爆?
一句话解释:它是 DeepSeek 官网最新开源的智能体,一个让大模型在真实场景里能调用工具、跑多步任务、写代码的那种智能体。
千呼万唤,终于等来了 deepseek 自家的 agent。话不多说,我花了一个晚上把它装上、跑起来、拆开看了一圈。
下面是我看到的所有东西,全部带截图、带耗时数据、带产物文件,值不值得你装上,一次拆开给你看。
01 | 三个真实任务
我自己跑通了 3 个任务,每一个都从 0 到能跑能看。这是实测结果。
① 橘猫名片

一句话告诉 dsh「做一张橘猫程序员名片,要会眨眼、要能点按钮投喂」。它花了 2 分钟,吐出一个 449 行的 HTML 文件,单文件、零依赖。
底下这张 GIF 是按投喂按钮之后的效果:

尾巴会摇一下,屏幕上飘过 5 条小鱼干。按钮文字会变成「投喂成功」。
这些彩蛋我没要求,是它自己加的。
② 午餐投票小站

难度上来了:Node.js 后端 + Express + 文件存数据 + 前端 + 启动说明,全套。
dsh 自己列了任务清单,5 个文件一个个写完,然后装依赖、启动服务、自己跑了一遍冒烟测试 —— 下面是它给的执行总结:

跑通之后我用浏览器真的投了一次票,麻辣烫拿了 1 票:

这是整个过程的 GIF:

功能和逻辑一把过,挑不出什么毛病。
③ 3D 立方体

要求是纯 CSS 3D、不要 WebGL、不要 Three.js。6 个面分别代表 DeepSeek Harness 的 6 个核心概念。
它 1 分 33 秒就搞完了。旋转的动效:

④ 三个任务的耗时
| 任务 | 步骤数 | LLM 耗时 | 输出速度 | 缓存复用 |
|---|---|---|---|---|
| 橘猫名片 | 1 轮 4 步 | 2 分 01 秒 | 163 tok/s | 89% |
| 投票小站 | 2 轮 15 步 | 3 分 14 秒 | 169 tok/s | 97% |
| 3D 立方体 | 1 轮 4 步 | 1 分 33 秒 | 177 tok/s | 89% |
缓存复用最高跑到 97% —— dsh 把每次对话的 system prompt 和工具清单都缓存了,第二轮直接复用,不用重新发给模型,这个缓存命中率真是相当可以。
我还看到有人执行的任务,缓存命中率能高达 99%,这意味着你只需要极低的成本就可以完成一个任务。
02 | dsh 如何安装?
① npx 启动
装它其实就一行:
codenpx @deepseek-ai/dsh web
打开浏览器访问 http://127.0.0.1:3080,UI 长这样:

打开之后它第一件事是拦住你,让你配 API Key:

配上 API Key之后,才露出真实样子:

写个 prompt,回车,它就开始干活。顺手查了下这个包:
code$ npm view @deepseek-ai/dsh version0.1.0-rc.6$ npm view @deepseek-ai/dsh licenseMIT
包名是 @deepseek-ai/dsh,命令叫 dsh,最新版本 0.1.0-rc.6,MIT 协议。
看 dependencies 是一长串:@deepseek-ai/cordis-plugin-*、@deepseek-ai/dsh-base、@deepseek-ai/dsh-headless 等等。
真相是:dsh CLI 自己只是个调度器。真正干活的是这些子包,按需要拼起来用。
03 | 拆开看内部
① dump-default-config 把插件树摊开
启动一个 dsh 进程,里面到底加载了啥?官方给了一条命令:
codenpx @deepseek-ai/dsh --profile web --dump-default-config
输出是一份 490 行 的 cordis.yml 树,里头有 129 个插件。
换 headless profile 跑一次:
codenpx @deepseek-ai/dsh --profile headless --dump-default-config
只剩 333 行、81 个插件。
对比一下:
| 维度 | web 模式 | headless 模式 |
|---|---|---|
| 插件总数 | 129 | 81 |
| ui-* 客户端插件 | 54 | 0 |
| cordis.yml 行数 | 490 | 333 |
| bundle 层数 | 3 | 3 |
注意 ui-* 那一行:从 54 变成 0。同一套 base,换个 profile,整个客户端就没了。
换句话说,UI 不是 dsh 的「壳」,UI 是另一个插件包。这个设计思路挺有意思 —— 它没有「核心代码 vs 插件」之分,全是插件,连 agent loop 自己都是插件。
04 |UI 长这样
① 设置面板把 cordis.yml 摊成 UI
点左下角的齿轮,会弹出一个设置面板:

四个 tab:通用设置、模型、插件、Agent 预设。右上角有个「打开配置文件」按钮 —— 点开就是 cordis.yml 本身。
切到「插件」tab:

每个 capability 都有「打开设置」折叠项。
再切到「插件列表」:

注意顶部那个数字:133 个插件。这是这个部署实际加载的插件数。
所有插件只有两种状态:已启用 / 已停用。没有「这个是核心」「那个是边缘」的区分 —— 这就是 README 里反复说的 Everything is a Plugin。
任务跑完之后,还可以切到「轨迹」tab:

顶上是一张彩色甘特图,三条轨道:Input / Model / Tools 并行跑。下面是 SYSTEM、Turn 1、USER、CONTEXT、ASSISTANT、TOOL 的完整调用链。
每一次工具调用、每一次思考、每一条上下文注入,都摆在这里。
「会话日志作为唯一事实源」这句话,在 trajectory 视图里变成了一张可视化的图。
05 | 我的判断
① 现状:开发者预览版,不是稳定版
README 自己警告:「THERE WILL BE COMPATIBILITY-BREAKING CHANGES」。
GitHub 的 releases 数组是空的,npm 上最新是 0.1.0-rc.6,release candidate,不是 stable。
写生产代码不建议。
写 demo / 学习 / 自己 fork 一个改造,倒是正好。
② 它押的是什么
DeepSeek 把 Agent 拆成「Model + Harness」两层,把 Harness 当 npm 包发出来,把 Cordis 上游化(还给上游写了一篇论文)。
这不是 LangChain 那种 SDK 抽象的复刻路径,是新范式。
赌的是:未来 12 个月,「agent = model + harness」会被大多数开发者接受,而 harness 必须可替换、可组合、可本地化。
DeepSeek 把 harness 开源、协议 MIT、还给 Cordis 上游写论文。
这个赌注是来真的,不是营销。
③ 和 Pi 是同一个物种,但不是同一个实现
写到这,我顺手查了下另一个 harness:Pi(仓库 earendil-works/pi,91k star)。它的官网第一句话是:
Pi is a minimal terminal coding harness.
>
Designed to stay small at the core, extended through TypeScript extensions, skills, themes, and pi packages.
和 dsh 说的是同一件事 —— 把 agent 拆成 model + harness,把 harness 做小、把扩展做活。
但实现路径不一样:
| 维度 | DeepSeek Harness | Pi |
|---|---|---|
| 定位 | Open Agent Harness | minimal terminal coding harness |
| 拆 agent | model + harness | model + harness |
| 扩展机制 | Cordis plugin 系统(一切皆 plugin) | TypeScript extensions + skills + themes + packages(多种扩展形式并存) |
| 默认 UI | Web UI(浏览器) | TUI(终端) |
| 模型选择 | DeepSeek 官方模型为主 | Anthropic / OpenAI / Google / Azure 等多 provider |
两者押的是同一个赛道(harness 标准化、可替换),但实现路径不一样。
dsh 走得更极端。它把 Everything is a Plugin 这件事贯彻到底,连 agent loop、模型适配、会话日志都是 plugin。
Pi 走得更稳。它承认一个最小核心,然后让 extensions / skills / packages 在外围生长。
这就像 npm vs yarn:解决的是同一个问题,但做法不一样。现在还看不出谁会是最优解。
④ 它跟谁对位
和 LangChain / LlamaIndex 的 SDK 抽象:不是一个物种。
和 Claude Code / Codex CLI 的「完整产品」:也不是一个物种。
它对位的是 npm 之于 Node:把「agent 需要的各种能力」标准化成可安装、可替换、可组合的小包。
06 | 写在最后
3 天 127k star 不是刷出来的。
是因为「npx 一行命令 + 133 个真插件 + 真能跑通 3 个不同类型的任务」这三件事同时发生,这种稀缺性本身就是流量。
但也别上头:它是开发者预览版,releases 数组空着,README 自己说会有破坏性变更。
怎么理解这句话?
deepseek-harness当前还在快速迭代阶段,内部代码结构、API签名、数据格式这些都还没稳定;
- 别把它当稳定版本用,不要拿这个版本去搭生产系统、上线给真用户;
- 升级有风险,不要盲目追新版本号,看 changelog 再升;
- 自己 fork 是 OK 的,你下载源码研究、自己玩,没问题
结论:它当前的状态是「开发者预览版」,能用,但每天都在变。
想跟上玩一玩的话,三步走:
- 先
npx @deepseek-ai/dsh web,花 5 分钟看一眼 133 个插件
- 再
--dump-default-config,看 cordis.yml 是怎么拼出来的
- 有 API key 之后回头跑标准模式,看 trajectory 是怎么记录每一步的
扩展阅读:
- 仓库:https://github.com/deepseek-ai/deepseek-harness
- 落地页:https://deepseek.com/harness
- API 文档:https://api-docs.deepseek.com/
- Cordis 论文:https://github.com/cordiverse/paper
提交反馈
图文3 天 127k star!DeepSeek Harness 把整个 agent 拆成了 133 个 plugin,确实够彻底!