DeepSeek Harness · 超越源码

终章:五种工程观,我们该抄什么

五家 harness 设计哲学总表,附最小可抄清单和体量陷阱清单。

课程目标这是本专题的最后一课。读完你能回答三个问题:五家 harness 在真源、扩展、安全三个维度上各站在哪里;DSH 的机制里哪五件不需要它的框架也能抄走;哪些设计看着眼馋、但没有专职团队千万别碰。
交互演示 · 设计决策自助餐

先玩再讲。下面是全专题讲过的主要机制,做成了可勾选的卡片,每张标着它解决的问题和依赖的前置机制。像点菜一样勾出你项目需要的,右边实时生成你的架构清单:缺了依赖会标红警告,勾了体量陷阱会提醒你养不养得起。点「播放」看一遍典型的踩坑加纠正过程。

你的架构清单
还没勾选任何机制。
自由勾选,或点「播放」看一遍典型流程。
五家工程观 · 一张总表

全专题拆的是 DSH,但每一课都在跟别家对照。收官先把五家摆在一张桌上。三个维度:真源(对话状态的权威副本放哪)、扩展模型(第三方怎么加能力)、安全依靠(防出事靠什么)。

真源
扩展模型
安全依靠
一句话立场
DSH
append-only 事件日志(zstd 压缩 JSONL),恢复、分叉、检索、回放共用一份
一切皆插件:219 个包、49 个分组,树外 bundle 安装
机制层:运行时断言、类型边界、溯源鉴权、单调证明
运行时优先,可证明性压倒交付速度
Claude Code
JSONL 会话文件(事后记录型),支撑恢复与查看
hooks + MCP + 子代理与插件
权限确认框 + 生产监控回馈(断路器阈值来自真实账单数据)
产品单体,数据驱动止损
Grok Build
内存对话为主,异步落盘为从,落盘失败不打断对话
70 多个 crate 静态组合(本地快照统计),编译期定形
Rust 类型系统 + 确认流程,模板编译期固定
性能与静态确定性优先
Codex CLI
JSONL 会话 rollout 文件
MCP 为主的外接能力
审批模式分级 + OS 级沙箱(Seatbelt / Landlock)
沙箱优先,默认不信任执行环境
OpenCode
本地文件存储的会话数据
Provider 抽象 + 插件,多模型接入
权限确认为主
开源 TUI 优先,模型可换是第一需求
DSH、Claude Code(还原源码与官方材料)、Grok Build 三列基于本地仓库逐行核对;Codex CLI 与 OpenCode 两列基于已公开资料整理,未逐行核对,取舍时请自行验证。Grok 收官三课的证据化对照见 Grok Build 与 Claude Code 证据化对照

表看完先记住一件事:五家没有对错,只有立场。Claude Code 的断路器数字来自真实账单,Grok 的静态组合换来编译期确定性,Codex 把不信任写进操作系统层,OpenCode 把可换模型放在第一位。DSH 的特殊在于它把可证明排在了好用前面,这是运行时的立场,也是它文档和测试体量的根源。

最小可抄清单 · 不要 Cordis 也能落地的五件

全专题讲了三十来个机制,大多数和 DSH 的插件框架绑定。但有五件是纯思路,抄走就能用:

  1. 事件日志真源。对话状态只存一份 append-only 的事件序列,消息数组永远从它派生。一个 JSONL 文件加一个 fold 函数就是最小实现,恢复和回放白送(机制详解见 Model-visible ⟺ logged 那一课)。
  2. 三种输入语义。用户在 agent 干活时发来的消息,明确分成排队、插话、打断三种命运,写成显式的接口语义。没有这一层,输入时机就是薛定谔的状态。
  3. 双路径压缩。主动测压和被动溢出恢复分开挂,事件不同、条件不同、失败语义不同(见 Compaction 双路径那一课)。
  4. 溯源鉴权。每段进入上下文的内容都带来源标签,高权限操作只认可信来源。工具结果里藏的指令冒充不了用户。
  5. 单调 Guard。重试、恢复这类危险放行,一律要求出示单调递增的证据(世代号、计数器),不认插件的口供。

这五件的共同点:都是接口语义层面的决定,跟你用什么语言、什么框架无关。一个周末能搭出毛坯,剩下的是打磨。

体量陷阱清单 · 看着眼馋,千万别抄的三件

反过来,有三件事是 DSH 用专职团队的人力堆出来的,个人和小团队照抄必翻车:

  1. 219 个包的插件树。一切皆插件意味着每个能力都要切出 Service Definition、Provider、Consumer 三个角色,配齐 README、测试和文档配对。DSH 有 49 个包分组、268 份 README。你项目里的同款需求,一个 plugins 文件夹加约定就够了。
  2. 双语三文件文档配对。每份文档是英文、中文加一份记录两侧 blob hash 的 .i18n.yaml,改一侧不重新确认配对就 CI 红。纪律漂亮,成本是每次文档改动双倍起步。
  3. per-file 100% 覆盖率门禁。每个源文件都要 100% 行覆盖。DSH 自己都写了篇 proposed 笔记(2026-06-11-mutation-testing)承认覆盖率只证明代码被执行过。没有 AI 大规模写测试的产能,这个门禁只会逼人写「执行但不断言」的假测试。
抄机制不抄框架

五件可抄的都是接口语义,三件陷阱都是基础设施。判断标准:这个设计删掉框架还成立吗?成立就能抄。

体量是成本,也是团队的自证

1.8 万行文档、684 篇活跃与归档笔记、逐文件覆盖门禁,养这些的前提是有 AI 产能加专人管门禁。它证明的与其说是必要性,不如说是投入。

没做完的部分同样诚实

DSH 把自己的未完成写在明面上:预发布阶段、格式无兼容承诺、MCP 只桥了一种能力、没有交互式 TUI。看一个项目的成熟度,先看它敢不敢列这张表。

DSH 自己没做完的事 · 白纸黑字

收官课不吹主角。DSH 是开发者预览版,根 AGENTS.md 开头第二节就写着预发布立场:

Remove this section at the first tagged release. With no external consumers, prefer the correct foundation over compatibility shims: rename or repackage freely and update every reference together. Backends reject old on-disk formats. SQLite uses monotonic SCHEMA_VERSION; dsh-session keeps SESSION_FORMAT_VERSION at 0 with no compatibility promise.
(大意:第一个正式版本发布时删掉本节。当前没有外部使用者,宁要正确的地基也不做兼容垫片;后端直接拒绝旧的磁盘格式,会话格式版本停在 0,不做任何兼容承诺。) 出处:deepseek-harness-master 仓库根 AGENTS.md 第 5 至 7 行,核对日期 2026-08-13

MCP 这边,只桥接了工具一种能力,Resources 和 Prompts 明确延后,packages/mcp/mcp-client/README.md 第 111 行原文:「Tools are the only bridged MCP capability — Resources and Prompts have no harness consumer and are deferred.」产品入口也只有 Web UI 和 headless 运行(apps/ 下只有 cli 与 web 两个应用),没有 Claude Code、Grok Build 那样的交互式 TUI。这三条不算黑点,算取舍:地基没干透之前不浇二楼。

极简模式 · harness 作为模型的测量仪

最后说一个容易被略过、但最能解释 DSH 动机的东西。它的四种产品模式就是四份 preset 配置文件,其中极简模式的核心配置一共就这几行:

apps/cli/config/agent-presets/minimal/agent.cordis.yml第 1 至 13 行
# The `minimal` agent preset: a fixed-prompt, two-tool coding-agent composition.
#
# The persona is the complete system prompt, so global identity, Web orientation,
# tool guidance, and later assembly listeners cannot add prompt text. Runtime
# context snapshots are suppressed for this preset, and the model composes only
# persistent `bash` and `str_replace_editor`. Context compaction is absent.

- id: persona
  name: '@deepseek-ai/dsh-persona'
  config:
    text: You are a helpful software engineer assistant.
    complete: true
    includeRuntimeContext: false
源码快照说明:依据本地仓库 deepseek-harness-master,核对文件 apps/cli/config/agent-presets/minimal/agent.cordis.yml,核对日期 2026-08-13。代码块保留源码原文。

读一下这份配置在做什么:系统提示词就一句话,且声明为 complete,任何插件都加不了字;运行时上下文被抑制;工具只有 bash 和 str_replace_editor;没有压缩。所有 harness 侧的变量都被拧到最小。根目录的 BENCHMARK.md 推荐用 Python SDK 跑这个 minimal 变体做基准测试,每个任务独立 workspace 和会话。

这解释了 DeepSeek 做 harness 的动机之一:模型厂商需要一台标准化、可复现、无压缩干扰的测量仪来评自家模型,顺手把它做成了通用运行时。Anthropic 做 Claude Code 是为了让模型服务产品,DeepSeek 做 DSH 有一半是为了测量模型本身。立场不同,工程观自然不同。往后看,agentic RL 训练和模型评测对这种可回放、可证明的 harness 只会更饥渴,这可能是 DSH 这套重机制路线最先兑现价值的地方。

对照组的收官可以互相印证:Grok 专题的 工程复盘与证据边界Coding Agent 设计工作台 从 Rust 单体的角度回答了同一批问题,两边对着读,五种工程观就齐了。

课堂练习
01

用自助餐给自己的项目做一次架构评审

回到页首的演示,按你手头真实项目的现状勾选:已经有的机制勾上,没有的留空。看右边清单里的红色警告,找出至少一条缺依赖的组合(比如有重试逻辑但没有任何单调证据)。然后回答:补上缺的那块,最小要写多少代码?如果答案超过一周,说明你该先抄的是更底下那层。

Takeaway:五家 harness 没有对错,只有立场:产品单体、静态组合、沙箱优先、多模型开放、可证明运行时。抄的时候认机制不认框架:事件日志真源、三种输入语义、双路径压缩、溯源鉴权、单调 Guard 五件随便搬;219 包插件树、双语文档配对、逐文件全覆盖三件没有专职团队别碰。判断标准一句话:删掉框架还成立的设计才值得抄。