开源五天暴涨12万Star!「DeepSeek harness一切皆插件」诠释了什么叫做国产之光!
上周四,DeepSeek 做了一件我觉得比发新模型更值得关注的事:他们把 DeepSeek Harness(dsh)的源码开源了。
新模型 V4-Pro 同步发布,但那是另一个话题。今天我想聊的,是 Harness 这个东西本身——以及它背后隐藏的一个信号。

从模型到"套"模型的基础设施
过去两年,DeepSeek 的打法很清晰:发模型、卷 benchmark、压价格。这条路他们走得很猛,也确实改变了行业。
但 Harness 的出现,说明他们开始打另一层了。
Claude Code、OpenAI Codex——这些工具的核心不只是接了个好模型,而是在模型外面搭了一整套"让模型能干活"的基础设施:工具调用、文件系统访问、会话持久化、子 agent 调度、沙箱隔离……这些能力组合在一起,才让 AI 从"会聊天"变成"能干活"。
DeepSeek Harness 要做的,就是这一层。
核心理念:Everything is a Plugin
DeepSeek 给 Harness 的定义是"agent harness",底层基于一个叫 Cordis 的元框架,这个框架是围绕"时空可组合性(spatiotemporal composability)"设计的。
听起来有点绕,翻译成人话是:你可以在运行时随意增删组件,不需要重启,不会崩。
具体到 Harness 里,这个理念被推到了极致——模型适配器、工具注册表、会话日志、agent 循环本身,全都是插件。没有什么是"特权核心",你不需要 fork 源码,挂载一个新插件就能替换任意能力。
The New Stack 的报道用了一句话:no privileged core to patch。我觉得这是对这个架构最精准的描述。
这和大多数 agent 框架的设计思路是反的。通常的做法是:有一个核心 runtime,然后提供扩展点让你挂载插件。Harness 的做法是:整个东西就是插件的组合,核心是 Cordis 的事件总线,不是任何具体功能。

四种模式,一个 runtime
Harness 开箱提供四套预设:
Standard 模式:完整工具集,文件读写、shell 执行、网络搜索、子 agent 调度、计划模式一应俱全。日常编程任务够用了。
PTC 模式:这个挺有意思。普通模式是模型一次调用一个工具,Code 模式让模型生成一段 TypeScript 代码,用 SDK 来批量编排多个工具调用,多步操作合并成单次请求。理论上能减少来回次数,提高效率。
极简 模式:只留两个工具——bash 和 str_replace_editor。专门给 benchmark 用的,把环境变量降到最低,方便公平对比模型能力。顺便一提,DeepSeek V4-Pro 的部分 agent benchmark 成绩就是在这个模式下跑的。
Creator 模式:在 Standard 基础上加了运行时检查和插件实验能力。如果你想自己搭新的预设组合,用这个模式调试。

追加式会话日志:所有上下文都有迹可查
这个设计我觉得做得很扎实。
Harness 维护一个 append-only session log,模型看到的一切都被追加进去:系统提示、推理过程、工具调用、工具返回值、子 agent 调度记录、每一次上下文注入。
好处是什么?Resume、Fork、Replay 这些功能全建立在同一条事件流上,不是各自维护状态。你在 Trajectory 视图里可以按来源筛选——哪段是系统提示注入的、哪段是工具返回的、哪段是模型自己推理出来的,一目了然。
对于调试 agent 行为来说,这个功能价值很大。现在很多 agent 框架的问题就是"黑箱"——你不知道模型在某一步究竟看到了什么,出了问题很难排查。Harness 把这个问题从设计层面解决了。

沙箱:认真做了跨平台隔离
很多 agent 框架的沙箱是事后补的,Harness 这里看起来是设计进去的。
三个平台各有对应方案:
-
Linux:Landlock(内核级文件访问控制)
-
macOS:Seatbelt(沙箱 profile)
-
Windows:ACL 受限 token runner
不是说统一用一个方案,而是各用各平台的原生机制。对于要在生产环境跑 agent 的场景,这个细节挺重要。
不锁定 DeepSeek 模型
这一点说实话有点出乎我的预料。
Harness 的模型提供商列表:DeepSeek 官方、Anthropic、OpenAI、AWS Bedrock、Azure OpenAI、Google Gemini Enterprise,以及任何兼容 OpenAI 格式的自定义端点。
更有意思的是:Harness 还内置了 Claude Code 和 OpenAI Codex 作为子 agent 提供商——也就是说,你可以在 Harness 的主 agent 循环里,把部分任务委托给 Claude Code 或 Codex 去执行。它会从 PATH 里找对应的二进制,用户自己装、自己登录。
还有兼容层:Harness 可以读取用户现有的 Claude Code hooks.json,把里面的钩子映射到自己的拦截点上。README 里老实说这是"兼容路径,不是最优设计"——但能跑起来。
以及,它读 AGENTS.md 和 CLAUDE.md。
快速试一下
npx @deepseek-ai/dsh web
装好 Node.js 之后一行命令,浏览器访问 http://127.0.0.1:3080。
如果你想用 Python SDK 把它嵌进自己的流水线:
from deepseek_harness import DeepSeekHarness
with DeepSeekHarness(
provider="deepseek-official",
model="deepseek-v4-flash",
cwd=str(workspace),
session_root=str(sessions),
) as harness:
result = harness.run(
"检查仓库并修复失败的测试",
session_id="task-001",
)
SDK 里的 runtime 是打包进来的,不需要系统单独装 Node。
坦白说,现在用还早了点
几个需要清楚的限制:
会有破坏性变更,README 里用大写写的。这是 v0.1 的开发者预览,API 稳定性没有保证。
暂时不接受外部 PR。想参与可以去 GitHub Discussions,或者自己写插件,加 dsh-plugin 话题让别人发现。
部分功能还没做完:托管后台 Agent、GitHub PR 工作流这些都没有,和 Claude Code 的功能集还有差距。
VentureBeat 的报道里有一张对比表,Claude Code 已经有的:IDE 插件、移动端、Slack 集成、托管后台 agent、GitHub Action 一键 PR——这些 Harness 目前基本都没有。
真正值得关注的,是这个信号
回到开头说的那句话:DeepSeek 开始打另一层了。
模型可以换,接口可以统一。但 agent 用什么工具、怎么调用、会话怎么存、上下文怎么组装、执行环境怎么隔离——这些决定了模型能不能真正"干活",而且一旦用户在某套框架上建起了工作流,迁移成本很高。
Anthropic 用 Claude Code 占了这一层,OpenAI 用 Codex 占了这一层。DeepSeek 现在交出了一个开源版本,MIT 许可,架构上又是"一切皆插件"——这个组合,吸引力是真实的。
开发者 Armin Ronacher(Earendil 联合创始人)在社交媒体上说:这是他第一次看到新产品后感到真正有灵感去重新审视自己的选择。当然他也补了一句,没说 Harness 完美。
我的判断:现在就把生产工作流迁过来不现实,但作为研究对象和技术灵感来源,这个项目很值得看。插件化架构、追加式会话日志这两个设计点,拿去影响自己的项目完全可以。
等它稳定下来,会是个有趣的选项。
👉 GitHub 地址:github.com/deepseek-ai/deepseek-harness
👉 官方网址:https://www.deepseek.com/harness/
你现在有在用 Claude Code 或者 Codex 做开发吗?对 Harness 这个方向有什么看法,欢迎评论区聊聊。
谢谢你阅读我的文章😀😀😀
我是顾北!我们下期再见。
更多推荐




所有评论(0)