期待已久的 DeepSeek Harness(dsh)项目终于开源了,直接在 GitHub 上冲到 55K+ star。它打出的口号非常直接:一切皆是插件(DeepSeek Harness: Everything is a Plugin)。

连 agent loop(智能体循环)都是插件。
实测中没几步就被两个点彻底惊到。不是模型有多强,而是它把模型可见即已记录和透明度这两件事,同时做到了一个我没预料到的程度:Agent 轨迹(thinking、Prompt、Context、Tool、Skill、Sub-Agent)& Token 消耗 & 缓存等等全记录并公开。

DeepSeek Harness 的轨迹模式(Trajectory 视图)可以完整追踪智能体的工作进度。你的那些智能体员工们再也不敢偷懒了。

它会用不同颜色来区分 AI 执行任务过程中生成的各种内容,比如工具调用用橙色,上下文用绿色,然后像轨迹一样把它们显示在顶部。

1 轮 · 57 步 | LLM 9m53s · 工具调用 9m44s | 首 token 平均 1.8s · 53 tok/s | 缓存命中 96% | 输入 3.1M tok · 输出 26.1K tok
这让我想到 DeepSeek R1。
DeepSeek R1 当年公开思维链(CoT),把模型怎么想的从黑盒变成公开,直接引爆了复现和讨论。

dsh 做的是同一件事,但升了一个维度:R1 开放的是思考,dsh 开放的是整个执行。对话轨迹、模型请求、工具调用、token 花费,全变成可审计的事件流。一次让模型的脑子透明,一次让 agent 的手脚透明。
安装很简单,推荐 npm,一行命令:
npx @deepseek-ai/dsh web
DeepSeek Harness 的 Web UI 界面如下:

有 4 种模式可选择:标准模式、PTC 模式、极简模式、创造模式。

极简模式:仅提供持久 bash 与 str_replace_editor 的双工具编码。
System Prompt 只有这么一句话:You are a helpful software engineer assistant。回答效果一般,意识不到自己是 DeepSeek Harness,以为自己是 Claude Agent。


标准模式:功能完整的编码 Agent,支持文件编辑、Shell、文件与网页检索、Skills、计划、目标、子代理和工作流。


DeepSeek Harness 技术架构
今天的 Coding Agent——Claude Code、Codex、Cursor 那一类——基本是一整坨焊死的产品。模型适配、工具调用、沙箱执行、会话存储、agent 循环,全缝在一个进程里。

DeepSeek 的判断很直接:不该有需要打补丁的特权内核。扩展一个 agent,应该是把插件挂到别的插件旁边,而不是去动它的心脏。

dsh 底层是一个叫 Cordis 的插件框架(vendored 进仓库,设计也开源了)。

Cordis 的核心就五件事:插件实现 Service、上下文是服务容器(ctx.tools / ctx.llm / ctx.sessions)、用 inject 声明依赖、用类型化事件通信、注册是可逆副作用(装上能拆下)。
关键在于,这套机制对 dsh 的每一部分都一视同仁:模型适配器、工具注册表、会话日志,以及 agent loop 本身,全是插件,全都可以从配置替换。

运行中的 dsh 是一棵按序叠加的插件树:最底是 dsh-base(模型、工具、持久化、沙箱与审批、设置、凭据、遥测),往上叠 dsh-web-app 或 dsh-headless,再往上是你自己的 cordis.patch.yml 和 --patch overlay。一条 patch 按 id 定位某个条目,整体替换或插入新的。
dsh --profile web --dump-config 能打出你这台机器实际启动的配置树——它打出来的任何条目,你都能用自己的 patch 替换掉。

真正让"一切皆插件"落地的,是一个叫 capability seam(能力缝)的三角色结构。一项可替换能力必须同时有:
- Service Definition:声明接口,比如
dsh-shell
- Service Provider:实现它,比如
dsh-bash-local / dsh-bash-sandbox
- Consumer:使用它,通常是面向模型的工具,比如
dsh-tool-bash

这个结构的价值在于:换一个 Provider,整个产品就变了。文件系统和进程的 Provider 共享同一个执行世界,所以把它们指向一个远程沙箱,Bash、PTY、LSP 三套能力就一起搬了过去,不用为每个 Provider 单独 fork。扩展插件时也只依赖 Service Definition,绝不依赖具体 Provider——这是 dsh 把可替换写进依赖方向的方式。

最后,社区插件也上线了,可以愉快地玩耍了。一些不错的插件:
dsh-web-ui 是 DeepSeek Harness(DSH)Web UI 的插件与皮肤集合。

https://github.com/zhu1090093659/dsh-web-ui
dsh-genui:让模型的回答长出界面——文字还在,可交互的 UI 已经能用。

https://github.com/omdsh-dev/dsh-genui/tree/main
https://github.com/deepseek-ai/deepseek-harness
https://github.com/cordiverse/cordis
https://www.deepseek.com/harness/