DeepSeek Harness 到底值不值得你上?我把它的内核扒了一遍

0 阅读7分钟

DeepSeek Harness 到底值不值得你上?我把它的内核扒了一遍

最近 DeepSeek 开源的 Harness(下称 dsh)刷屏了。有人说它是 Claude Code 平替,有人说又是套壳。但绝大多数文章停在一个命令就结束了:npx @deepseek-ai/dsh web

我把官方文档和源码架构扒了一遍,结论是:它值不值得上,取决于你是哪一类人。本文不教安装,只讲它到底在解决什么问题,以及哪类人该认真看、哪类人先别急。

30 秒速览:dsh = 一个把 Agent 运行时做成可组合基础设施的框架。内核 Cordis 用「插件 + 共享上下文 + 类型化事件 + 可逆副作用」四件套实现时空可组合;它的杀手锏是 Trajectory 可审计(模型看到的都能从日志重建)。结论不是「好不好用」,而是「你属于哪一类人」。

一、先去魅:你早就在用"Harness"了

很多人把 dsh 当成"又一个 AI 聊天框",这是误解。dsh 的官方公式只有一句话:

Agent = Model + Harness

模型只负责推理。真正决定一个 Agent 能不能干活的是 Harness 这一层:它管上下文怎么拼、工具怎么调、在哪执行、进程崩了怎么恢复、子 Agent 怎么调度。

00-agent-model-harness.png

同一个模型,套在不同的 Harness 下,表现会差很多。官方文档明确列了 Harness 至少要回答上面这六个问题。所以 dsh 不是来替代模型的,它是来把"模型到真实世界"这条链路变成可组合的基础设施。这就是为什么我说"你早就在用 Harness":Claude Code、Codex 本质都是 Harness,只是它们把扩展点包成了产品。dsh 的区别是把整条运行时都插件化了。

二、Cordis 五要素:一切皆插件的真功夫

dsh 底层是 Cordis,一个被 vendor 进仓库的插件框架。它的设计被一篇论文《A Programming Paradigm for Spatiotemporal Composability》形式化。落到代码,核心是五个概念(以下为基于官方文档结构整理的架构示意,非逐字源码,请勿直接复制运行):

// 架构示意:Cordis 五要素如何落地(基于官方文档整理,非逐字源码)
class MyPlugin {
  // 1. Plugin:实现 Service 的对象,可以是函数或 Service 子类
  inject = ['counter']; // 3. 依赖声明,框架在依赖就绪时自动激活本插件
  apply(ctx) {
    // 2. Context:共享服务仓库,插件按稳定键挂载能力
    ctx.tools.register('my-tool', { ... }); // ctx.tools 由其他插件提供
    // 4. Typed Events:waterfall 中间件,调用 next() 才放行下游
    ctx.on('agent/pre-step', (input, next) => {
      if (shouldBlock(input)) return; // 不调用 next = 短路接管
      return next(input);
    });
    // 5. 可逆 Effects:插件卸载时,这些注册被运行时自动撤销
    ctx.effect(() => { /* 注册服务 / 监听 / 启动定时器 */ });
  }
}

五个要素讲清楚:

  • Plugin:一个功能模块,可以是函数或 Service 类。
  • Context:共享服务仓库,按稳定键挂载,例如 ctx.toolsctx.llmctx.sessionsctx.fsctx.shell。插件之间靠键找能力,不互相 import 具体实现。
  • Service:被挂载到 Context 上的具体能力,可被替换。
  • Typed Events:插件间通信机制,有四种分发模式:emit(发完就走)、waterfall(中间件式,必须调 next() 才放行,可短路接管)、parallel(并发)、serial(串行、带返回值)。agent/pre-stepagent/requesttools/* 都是 waterfall,这是"拦截/改写"的实现基础。
  • Effects:注册服务、工具、监听器、定时器都通过 ctx.effect() 登记成可追踪的副作用,插件卸载时自动撤销。

下面这张图把五要素的依赖关系画出来,注意它没有特权内核:扩展 dsh 的方式,是把插件挂到别的插件旁边。

01-cordis-five.png

四种事件分发模式,是"拦截/改写"能力的来源,值得单独看一眼:

02-typed-events.png

这套设计的红利是"时空可组合":空间上组件声明依赖、依赖满足才激活;时间上组件离开后副作用尽量完整恢复。官方文档自己点明:没有需要打补丁的特权内核,扩展 dsh 的方式是把插件挂到其他插件旁边。

三、它真正值钱的地方:Trajectory 可审计

这是 dsh 区别于大部分 Agent 工具的核心,也是我读完架构最想讲的点。它有一条架构不变量:

Model-visible = logged(模型看得到的,必须能从会话日志重建)

会话是一份类型化事件的 append-only 日志,典型事件有 turn/startstep/startuser/messageassistant/chunkassistant/messagetool/calltool/resultstep/endturn/end。模型历史不是单独维护的状态,而是从这份日志派生出来的投影。

03-trajectory-sequence.png

这个不变量带来四个实打实的好处:

  • 可恢复:进程重启后用事件重建状态。
  • 可分叉:从已完成轮次开新实验分支,原状可恢复,方便做消融。
  • 可回放:重现某次工具调用和模型交互。
  • 可审计:知道模型为什么看到某段上下文,方便评测不同模型或插件组合。

Web UI 里有个 Trajectory 视图,能按来源过滤这些记录。对做 Agent 的人来说,能 fork、能 replay、能评测,比"黑盒跑一次"值钱得多。

四、5 类人决策表:你属于哪一类

下面这张流程图是依据上面三节的机制推出来的,不是我拍脑袋。每一条都回链到前面的架构事实。先看图,再看表。

04-five-person-decision.png

身份值不值得上依据
做 Agent 框架的开发者强烈推荐插件化 + 时空可组合,变化能表达成稳定语义单元,可做消融实验、独立测试、安全卸载
用 AI 干活的 Maker推荐四种模式(Standard/Code/Minimal/Creator)+ 自指能力(运行时定义/启停自己的插件),上限高
普通用户想"开箱即用"谨慎官方标 0.1.0-rc.5 是 Developer Preview,明确写"会有破兼容性的变更",别当稳定产品依赖
企业/生产环境暂观望同上是 rc 预览;可评估的是沙箱 fail-closed(Landlock 本地、Windows ACL、E2B 远程),但稳定性未到生产级
做 Agent 评测的研究者推荐append-only 日志 + model-visible=logged 不变量,Trajectory 天然支持可复现评测

一句话总结:它最值得"要改 Harness 本身"的人上;最不值得"只想稳定用个工具"的人现在就押。

五、插件生态:能力面很全,但别神化

官方列出 dsh 的能力面:Models、Tools、Skills、Sessions、Sandboxes、Storage、Loops、Scheduling、UI。模型后端支持 DeepSeek、OpenAI、Anthropic、Bedrock、Vertex、Azure、Codex,以及任意 OpenAI 兼容端点。沙箱有 PTY bash、本地 full-access、Landlock native 三种。

子 Agent 是个 Seam,Provider 可以是进程内子 Agent、从父会话 fork、DSH SDK 委派,甚至直接拉起真实的 Claude Code 或 Codex 当子 Agent。多智能体编排在 seam 抽象下变成了"选 Provider"的问题。

这些来自官方文档,能力面确实广。但要诚实说一句:列得出能力不等于用得顺手,沙箱稳不稳、Provider 切换有没有坑,得你亲自跑过才知道。本文不做实测背书,只确认架构上它给到了这些口子。

六、你该不该切:Capability Seam 的红利

如果你已经在用 Claude Code 或 Codex,dsh 的卖点不是"又一个聊天框",而是把运行时做成可组合基础设施。核心机制是 Capability Seam:要换模型就注册 ctx.llm 适配器,要换执行环境就把 ctx.fs/ctx.shell 指向远程沙箱,Bash、PTY、LSP 一起搬走,不用为每个工具写专用远程版。

05-capability-seam.png

但反过来说,如果你要的是"今天装好明天干活别出幺蛾子",Developer Preview 的破兼容性警告是认真的。它适合现在评估、实验、扒源码学架构,不适合这个季度就押生产。

你属于上面五类里的哪一类?如果你已经在用别的 Harness,最关心的点是模型切换成本还是可审计性?评论区说一下你的身份,我帮你判断该不该切、切哪一层。


标签:DeepSeek Harness,deepseek, agent, ai-engineering, juejin, 2026, 架构