Agent Runtime Research · 2026-08-17

DeepSeek Harness 深度调研当模型厂商把自己的实验台开源

一家卖模型的公司,突然把"跑 agent 的那套壳子"整个开源了,两天涨了十几万 star。这篇不吹参数,只回答四件事:它到底是什么、怎么上手、真正特别在哪、以及它把这个行业的哪块地基挪动了。

对象:DeepSeek Harness (dsh) v0.1内核:Cordis 元框架对照:Claude Code · Codex · OpenHands阅读方式:先看图,细节可跳
◷ 阅读提示:第 01–03 章建立整体画面,不需要任何工程背景;第 04 章讲它的内核(有点硬,但那是全篇最值钱的一段);第 05 章是可折叠的机制细节,感兴趣再点开;第 06–08 章是横向对比、行业影响和几个反直觉的判断;第 09 章给你三条要不要试的路径。技术事实按 2026 年 8 月官方仓库与文档整理,dsh 目前是 v0.1 开发者预览版,官方明确写了"会有破坏性变更",具体接口随时会变。
一句话先记住:DeepSeek 开源的不是"又一个编程助手",而是它自己在实验室里评测模型时用的那台测试台——并且这台测试台被设计成万物可拆:模型、工具、沙箱、界面,连"agent 怎么循环思考"这件事本身,都是一个能在运行中拔下来换掉的插件。
01先用比喻理解成建制剧团 vs 一个所有东西都能中途换的舞台
02五分钟上手一行命令、一个网页界面、四种预设模式
03"万物皆插件"激进的不是插件多,是连主循环都没特权
04内核 Cordis可撤销的副作用 + 会自己反应的依赖
01

先用一个比喻理解

不要被 harness、runtime、插件这些词绕住,先建立画面。

先说清楚一个词。harness 直译是"马具"——套在马身上、让马的力气能真正拉动车的那套东西。在 AI 圈里它指的是:模型本身只会"输出下一句话",而 harness 负责把这句话变成真实动作——读文件、跑命令、调工具、把结果再喂回去、决定什么时候停。DeepSeek 官方自己的说法很干脆:Agent = Model + Harness,模型是灵魂,harness 给它手脚和记性。

你现在最熟的 Claude Code,是一个成建制的剧团。导演、演员、道具师、剧本都是同一家公司自己配的,彼此磨合了很久,开演即顺。但你没法把主演换成别家的人,也没法在演出中途换剧本——那些是焊死在班子里的。

DeepSeek Harness(命令行里叫 dsh)走了另一条路:它更像一个装好了标准接口的空舞台。演员(模型)、道具(工具)、剧本(agent 循环)、灯光音响(界面)、后台仓库(会话存储)全都是可插拔的模块,而且——这是最关键的一点——可以在演出进行当中换掉,不用把幕落下来重新开场。更讲究的是,任何模块被拔下去的时候,它上台时搬来的桌椅、拉过的电线、开过的灯,都会被自动收回原位。

三个一眼看懂的差异

02

五分钟上手:它到底怎么用

先把手感建立起来,再谈架构。

它不是那种"读三天文档才能跑起来"的框架。装了 Node(官方要求 22.19 以上)之后,一行命令就能把它拉起来:

npx @deepseek-ai/dsh web

命令跑完,浏览器打开 http://127.0.0.1:3080,你会看到一个本地网页界面——注意这一点跟 Claude Code 的气质就不同:dsh 的默认门面是 Web UI,不是纯终端。填进 API key、选一个工作目录(这一步不选,输入框是不激活的),就可以开始对话干活了。

想从源码跑(比如你要改插件),官方给的是标准 pnpm 三步:

git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

四种预设模式,对应四种使用意图

装好之后你要做的第一个选择不是"选哪个模型",而是"选哪种 agent 预设"。这四种模式本身就是理解这个项目的好切口——它们其实是四套不同的插件组合:

standard · 标准模式日常干活完整工具集齐活:文件编辑、shell、文件与网页检索、技能、计划、目标、子代理、工作流。绝大多数人从这里开始,也停在这里。
code · PTC 模式用一段 TypeScript 编排多步工具标准模式的全部能力,但工具通过 Code Mode SDK 暴露——模型不再"想一步调一个工具",而是写一个程序把多步操作一次编排完。
minimal · 极简模式只留 bash + 编辑器连上下文压缩都关掉的裸配置——这正是跑模型评测时想要的那种"没有任何花活干扰"的干净基线。
cordis · 创造模式让 agent 改装自己标准模式之上再加运行时自检、插件实验和"怎么写预设"的指引——换句话说,让 agent 去改 agent。
一个容易被抄错的细节:不少报道把第四种模式写成 "Creator",但官方仓库里这个预设的 id 其实叫 cordis——跟它的内核同名。中文界面上是"创造模式",大概是从这里转译出去时走了样。
人话总结:标准模式是"给你用的",极简模式是"给评测用的",PTC 模式是"给省 token 和确定性用的",创造模式是"给改装它自己用的"。一个框架把这四种意图并列摆在首屏,本身就说明了它的野心不在"做一个好用的助手"。
顺手提一句 PTC 为什么值钱:传统 agent 每调一个工具就要来回一轮"模型输出→执行→结果回喂",几十步操作就是几十轮上下文膨胀。PTC 把这几十步压成一段可执行的 TypeScript,模型只需要写一次、看一次结果。这不是玄学优化,是直接砍掉往返轮次的 token 账单。
03

"万物皆插件"到底激进在哪

不是插件多,是没有一个"谁都得来打补丁"的特权核心。

"支持插件"这句话在 2026 年已经不算卖点,谁都支持。dsh 的说法是更狠的一句:Everything is a Plugin——模型、工具、技能、会话、沙箱、文件系统、循环、调度、界面,全都是插件,开发者不改框架源码就能替换或扩展任意一层。

要理解这句话的分量,得看它反对的是什么。绝大多数 agent 框架长这样:中间有一个主循环("读输入→想→调工具→再想"),所有新功能都得挤进这个循环里去打补丁。记忆功能加个钩子、权限检查加个钩子、多 agent 编排再加个钩子……时间一长,这个主循环变成了那种谁都碰不得的上帝对象:能改的人越来越少,改一次崩三处。

dsh 的做法是取消这个特权位置。它把每个部件都描述成三件事——我需要什么、我提供什么、我干了哪些可撤销的事——然后由内核负责把它们拼起来。主循环也遵守同一套规则,所以它也可以被整个换掉。

会话日志这条别跳过:dsh 把模型看到的每一个字节都写进一份只追加(append-only)的轨迹日志——每一步推理、每次工具调用、参数和返回值。它带来的不只是"能回看",而是能分叉:同一个上下文岔出两条路各跑一遍,比较结果。这正是评测台的思路,不是聊天工具的思路。
04

内核 Cordis:全篇最值钱的一段

"插件能热插拔"是一句轻飘飘的话,真做出来需要一套形式化的地基。

先讲一个大部分报道都漏掉的事实:dsh 的插件内核不是 DeepSeek 写的。它叫 Cordis,作者是国内开发者 shigma,原本是聊天机器人框架 Koishi 的底座,已经打磨了四年。也就是说,中国最热的模型公司,把自己 agent 运行时的地基,交给了一个从聊天机器人插件生态里长出来的元框架——不是从 LangChain 那条 AI 血脉,而是从"插件系统怎么才不会烂"这条工程血脉。

更少人注意的是,Cordis 背后有一篇正经论文:《A Programming Paradigm for Spatiotemporal Composability》(时空可组合性的编程范式)。这个词听着唬人,拆开其实就两句大白话。

时间维 · Temporal"谁弄脏谁打扫,而且进门时就登记好怎么打扫"一个插件干的每件有副作用的事——开了个服务器、注册了个监听、起了个定时器——都必须同时交出"怎么撤销"。卸载时按相反顺序逐个撤回,环境回到它没来过的样子。
空间维 · Spatial"依赖变了,自己会反应"插件不是启动时检查一次依赖就完事。它持续盯着:所依赖的服务消失了,它自动失活;有新实现出现了,它自动重新激活。不需要人去重启进程。
为什么这两条加起来才叫"可组合":能装、能卸、卸干净、卸掉之后别人还知道该怎么办——四件事凑齐,模块才能真正在系统运行中来来去去。少任何一条,热插拔就会变成"插几次以后内存里全是野指针和幽灵监听",也就是每个做过插件系统的人都踩过的坑。
这套设计想保证的那句话,叫"路径无关":一个应用的最终状态,只取决于此刻哪些插件是启用的,而与它们被装载和卸载的先后顺序无关。听起来像废话,但凡是维护过插件系统的人都知道这有多难——现实里的系统往往是"先装 A 再装 B"和"先装 B 再装 A"会得到两种状态,于是排查问题得先复盘操作史。把这条立成不变量,等于承诺"系统没有历史包袱"。

写起来是什么样

如果你想看看这套抽象落到代码是什么手感,最能说明问题的是 effect:注册副作用的同时把清理方式一起交上去。

ctx.effect(() => {
  const timer = setInterval(() => {}, 1000)
  return () => clearInterval(timer)   // 卸载时自动执行
})

ctx.on('message', handler)            // 事件监听自动登记为 effect
ctx.provide('db', database)           // 提供服务;依赖方会自动感知
await ctx.plugin(MyPlugin, { timeout: 5000 })

底下的实现也颇讲究:上下文用 Proxy 包一层、用原型链 Object.create 派生子上下文,所以派生成本是常数级的;同名服务靠 Symbol 隔离,两个插件各自提供一个叫 db 的服务也互不打架。依赖是否变化,则靠给每个依赖算一个 epoch 串来比对,一变就触发"卸载→重载"。

这段的意义:它解释了为什么 dsh 敢把"agent 循环"这种核心也做成插件。不是胆子大,是底下这套 effect/coeffect 机制给了它敢换的资本——换掉不会留下残骸。
05

机制细节,感兴趣再展开

前面是够用的直觉层,这里补几个更准确的点。

它其实是 DeepSeek 内部的评测工装

多家媒体点出的一个关键事实:dsh 就是 DeepSeek 内部用来跑自家模型 coding-agent 评测的那套框架(报道提及用于 DeepSeek-V4-Flash 的评测)。这解释了 Minimal 模式为什么会被摆到和 Standard 同级的位置——对评测来说,"只有 bash 和编辑器、没有任何花活"才是干净的基线。也解释了会话日志为什么是 append-only 且可分叉:那是实验记录的要求,不是聊天软件的要求。

模型无关到什么程度

官方口径是 model-agnostic:DeepSeek 自家、Anthropic、OpenAI、Bedrock、Vertex、Azure,以及任何 OpenAI 兼容端点都能接。也就是说,你完全可以拿它跑 Claude 或 GPT——一家模型公司开源的 harness 默认支持竞争对手的模型,这件事本身就值得多看两眼。

Web UI 优先,而不是终端优先

npx @deepseek-ai/dsh web 起来的是本地 127.0.0.1:3080 的网页界面。这跟 Claude Code、Codex CLI 那种"终端即产品"的取向不同。好处是轨迹可视化、分叉回放这类操作在网页里更自然;代价是它不像纯 CLI 那样天然适合塞进 CI 和远程 SSH 流程。

PTC 模式的技术含义

PTC(用 TypeScript 编排多步工具调用)本质上是把"多轮工具调用"折叠成"一段可执行代码"。它同时解决两个问题:token 消耗(少了大量往返上下文)和确定性(编排逻辑是代码,不是每轮重新赌模型的判断)。这个思路 2026 年在多个 agent 项目里同时出现,说明它正在成为共识而不是 DeepSeek 的独创。

许可证与状态

MIT 协议,第三方依赖在 THIRD_PARTY_NOTICES.md 里披露。版本是 v0.1 开发者预览,README 用全大写写着"会有破坏性变更"。官方社区在 GitHub Discussions 和 Discord;插件作者被建议给仓库打上 dsh-plugin 标签方便被发现。

它可以把 Claude Code 和 Codex 当成自己的下属

仓库里有两个容易被忽略的包:一个通过官方 Claude Agent SDK 调起本机的 claude 可执行文件,另一个用 codex app-server --stdio 握手拉起 Codex。也就是说,dsh 把竞品的 CLI 直接当作可选的"子代理后端"——你可以让 dsh 主持全局,把某个子任务派给 Claude Code 去做,再把结果收回来。两者都不是默认装载的,要显式开启。这个方向目前还没看到反向的等价物。

它和 MCP、和现有生态的关系

dsh 是运行时层,不是协议层。它解决"一个 agent 内部怎么拼装",MCP 那类协议解决"agent 怎么连外部工具",两者不是替代关系——事实上 dsh 原生支持 MCP,而且刻意沿用了 mcp__服务名__工具名 这种和 Claude Code、Codex 一模一样的命名约定。在能互通的地方主动对齐、在架构上另起炉灶,是它挺清晰的一条策略。真正被它挑战的,是那些把运行时逻辑焊死在产品里的 coding agent。

上下文压缩:为了不打断缓存而特意设计

默认在用满上下文窗口 80% 时触发压缩,先可选地裁掉超大的工具返回值,再原样重放系统提示、工具定义和消息、附上一条压缩指令去生成摘要。特意"原样重放"是为了复用服务商的 KV 缓存而不是把它打翻;压缩只吃最老的整段对话、保留可配置长度的近期尾巴,摘要如果没能真的变短就重试。这是那种只有真的被账单教育过的人才会写的细节。

06

横向对比:它站在谁的位置上

前面的图应该已经把直觉建立起来了,这张表留技术密度。

系统一句话定位能换的"脑子"核心循环最适合谁
Claude Code原厂调校的贴身开发助理仅 Claude 系列产品的一部分,不可替换想把活干完的人
DeepSeek Harness万物可拆的 agent 运行时模型无关,含各家及本地端点是一个插件,可整体换掉想改装 agent 本身的人
Codex CLIOpenAI 的终端编程 agent以自家模型为中心产品内定OpenAI 生态用户
OpenHands开源的自主软件工程 agent 平台多模型可配置,但非"插件化到底"要开源可自托管方案的团队
Cline / Roo编辑器内的开源 agent 扩展多模型围绕编辑器场景固化习惯留在 IDE 里的人
如果你只记一行:这张表里只有 dsh 把"核心循环"这一格写成了可换。别人比的是"谁的助理更聪明",它比的是"谁的地基更能改"——这是两场不同的比赛,短期内也不会分出胜负。
07

对行业意味着什么

热度是表象,值得记住的是它挪动了哪块地基。

先看几个硬数字。仓库建于 2026 年 8 月 13 日,发布 1.5 小时后 2.2 万 star,48 小时内破 10 万,到 8 月 17 日核实为 144,965 star / 14,742 fork。同一天 DeepSeek 还发布了 V4-Pro-0813 正式版模型。社区侧,发布 24 小时内就出现近 300 个第三方插件,几天后 GitHub 上打着 dsh-plugin 标签的仓库已经数以千计(其中确实混着一批蹭标签的项目,但生态热度是真实的)。

但同一周里还发生了另一件事,值得放在一起看:DeepSeek 把 V4-Pro 的 API 价格大幅上调,输出价从 V4 Flash 的每百万 token 约 $0.28 抬到 $3.96 这一档,媒体统计的整体涨幅区间在 50% 到 1100% 之间。一手把运行时免费开源、一手把模型显著提价——这两个动作放在同一个新闻周期里,把这次开源的商业逻辑讲得很清楚:壳子免费送,是为了让流量最终流回要付费的那一层。

一个必须说明的落差:热度不等于能力。第三方聚合榜单上,V4-Pro 的 SWE-bench Verified 约 80.6,而 Claude Opus 5 在 96 一档;连 DeepSeek 官方宣传的 Terminal-Bench 分数(87.9)也与公开榜单的数字(84.7)存在落差。有技术分析进一步指出一个更有意思的现象:同一个模型换一套 harness,跑分能差十几分——这既解释了 DeepSeek 为什么要做自己的 harness,也提醒我们看任何 agent 跑分时都要问一句"用的哪套壳"。
08

六个耳目一新的判断

这一章不复述新闻,只挑那些跟主流叙事拧着来的看法。

Insight 01

他们开源的不是产品,是一台实验仪器

绝大多数报道把 dsh 当成"对标 Claude Code 的开源产品",但它更准确的身份是 DeepSeek 内部用来评测自家模型的那套工装。这解释了三处怪异设计:为什么"只有 bash + 编辑器"的 Minimal 模式会被摆到和日常模式同级——评测要的就是干净基线;为什么会话日志是只追加且可分叉——那是实验记录的规格;为什么整个运行时要做到可任意替换——因为要控制变量。一家模型公司把"量自己模型的那把尺子"交出来,比交出模型权重更罕见:从此别人可以用同一把尺子来量它。

Insight 02

它的技术血脉不来自 AI 圈,来自聊天机器人插件圈

dsh 的内核 Cordis 不是 DeepSeek 造的,而是国内开发者 shigma 为聊天机器人框架 Koishi 打磨了四年的元框架,还配着一篇讲"时空可组合性"的论文。这意味着这套 agent 运行时的理论根基,不是从 LangChain 那条"给大模型套流程"的路线上长出来的,而是从"插件系统怎么才不会在装卸几十次之后烂掉"这条老工程问题上长出来的。AI 圈近三年反复重造的很多轮子,在插件生态里已经被磨了十年——这次是那条经验反向输出给了 AI。

Insight 03

它没把 Claude Code 当敌人,把它当零件

几乎所有报道都在写"开源版 Claude Code 挑战者",但仓库里躺着两个包,一个用官方 Claude Agent SDK 调起本机的 claude,一个用 codex app-server --stdio 拉起 Codex——dsh 可以把这两个竞品当作自己的子代理后端来指挥。它连 MCP 工具的命名都刻意沿用了 Claude Code 和 Codex 的写法。这透露出一种很清醒的定位:它不打算在"谁的助理更好用"上赢,它想成为那层站在所有助理之上、决定谁去干哪件事的东西。把对手变成可调用的零件,比打败对手更狠。

Insight 04

"万物皆插件"真正服务的对象,不是你,是 agent 自己

让人可以换模型、换工具,只是这套设计的副产品。它真正的用力方向,是让 agent 在运行中改装自己——装一个新工具、换一个模型、派生再回收一批子 agent,全程不重启、不留残骸。那个叫 cordis 的"创造模式"预设(让 agent 自检、试插件、造预设)就是这个意图的明牌。换句话说,这套地基不是为"人机协作"设计的,是为"agent 自我演化"预留的。你今天用不到,不代表它没有对着那个方向。

Insight 05

它顺手做了一件 Anthropic 和 OpenAI 都不肯做的事:把思考过程全摊开

dsh 把模型看到的每一个字节、每一步推理、每次工具调用都写进可回放的事件日志。而闭源阵营在往反方向走——原始思维链要么只给摘要,要么得走商务渠道。有评论直接点出这个对比:透明度正在变成开源阵营的差异化武器,而不只是道德姿态。对做 agent 的人来说,能精确看到"模型在第几步开始跑偏、成本堆在哪一段",价值远高于多两分跑分。

Insight 06

最有力的批评不是"它不稳",而是"为了一碟醋包了一盘饺子"

有独立评测给出了这个刻薄但精准的比喻:为了"可插拔"这一个诉求,代价是 57 个包的 TypeScript 巨型工程、约 50 万行代码,外加一个几百行 C 写的 Linux 沙箱内核。这位评测者的结论值得原样记住——"它不是 DeepSeek 版的 Claude Code,而更像一次关于 agent 运行时应该长什么样的激进实验"。承认长期价值,同时否定短期实用性:这大概是目前对它最诚实的一句话。

09

值不值得试:三条路径与一条红线

不问"哪个更强",问"你现在到底想解决什么"。

一条红线:别拿它跑重要的东西。官方自己的安全说明写着它会在你机器上执行代码和动作;企业评测指出 v0.1 的沙箱只管文件系统、不限制出站网络——也就是说,一条命令即使改不了工作区外的文件,仍可能读到它并发出去。加上版本号还停在 0.1、官方明说会有破坏性变更,现阶段合理的用法是:放在隔离环境里玩,不要接生产、不要给它敏感目录、不要放长期无人看管的任务。

至于"要不要换掉 Claude Code"——目前的实测共识相当一致:不换。多篇中文实测都指出 v0.1 在自我纠错、长循环稳定性上还不如成熟产品(有分析观察到它在四十多轮的超长任务里会提前收工)。它现在的价值在架构,不在顺手。

10

资料来源与可信度分层

官方仓库与文档优先,媒体与实测作补充,存疑的一律标注。

本文的技术描述以官方仓库、官方文档与 Cordis 论文为准;热度数字以 GitHub 官方 API 的实时查询为准;商业与行业判断来自公开媒体报道,观点部分已注明是分析师或评测者的看法而非事实。以下几点属于未证实,文中已回避或标注:所谓"三天 12.2 万 star 创 GitHub 史上最快"的说法没有一手数据背书;涨价与 IPO 筹备的因果关系仅为媒体推测;DeepSeek 公司估值在不同信源间从 500 亿到 740 亿美元不等,无统一口径。此外,Cline / OpenHands / Aider 等同行维护者截至本文写作时没有公开回应,因此本文不推测它们的反应。

D1DeepSeek Harness 官方仓库(MIT,v0.1 开发者预览) https://github.com/deepseek-ai/deepseek-harness
D2DeepSeek 官方发布公告(X) x.com/deepseek_ai
D3DeepSeek Harness 安全使用说明(官方) deepseek.com/harness
C1Cordis:时空可组合性元框架 https://github.com/cordiverse/cordis
C2论文:A Programming Paradigm for Spatiotemporal Composability https://github.com/cordiverse/paper
C3Cordis 源码解读(Proxy 与原型链、effect 回滚、epoch 重载) iceyao.com.cn
M1VentureBeat:作为 Claude Code 开源对手发布,同期 V4-Pro 提价 venturebeat.com
M2The New Stack:一切皆插件的开源 harness thenewstack.io
M3The Register:透明推理链与闭源阵营的对照 theregister.com
M4AlphaSignal:它就是 DeepSeek 内部跑模型评测用的框架 alphasignal.ai
M5Caixin Global:API 提价幅度最高达 1100% caixinglobal.com
M6TheNextWeb:开源叙事与提价动作的矛盾 thenextweb.com
R1Wavect:企业视角评测(沙箱与生产就绪度) wavect.io
R2Justin3go:独立深度评测("一碟醋与一盘饺子") justin3go.com
R3Remio:运行时层高于模型层的论证 remio.ai
R4porus.dev:开放权重已成基线,竞争前沿上移到部署层 porus.dev
R5量子位 / 掘金:中文实测(缓存命中、轨迹可读性、自我纠错短板) qbitai.com
R6入门实操(安装、四种模式、端口与配置) feisky.xyz