DeepSeek将harness设计为独立于模型的可插拔运行时,以'Model+Environment+Tools+State'公式重新定义agent架构,践行'一切皆插件'哲学。
在深入主题之前,先来理解三个必要术语:
Harness(哈arness):套在 AI 模型上的"安全带",让模型能可靠地执行任务
Plugin(插件):插入程序中的扩展模块,用于增强功能而无需修改主程序
Capability seam(能力接缝):能力的接口边界点,允许在不影响上层的情况下切换底层实现
打个比方:AI 模型是"大脑",Harness 就是让大脑能真实运作的"身体+工具+规则"
DeepSeek Harness(dsh 命令,仓库 deepseek-ai/deepseek-harness)于 2026 年 8 月以 Developer Preview 形式发布
它的官方定义简洁明了:Agent = Model + Environment + Tools + State(智能体 = 模型 + 环境 + 工具 + 状态)
如果说前三者(Pi、Claude Code、Codex)回答的是"Harness 应该怎么设计",DeepSeek Harness 提出了更尖锐的问题:"Harness 能否成为一个独立运行时,不绑定于任何一个模型?"
答案是"可以",而且它把这个理念推到了极端。按照架构文档的说法:"产品的每一个部分都是插件,包括 model adapter、tool registry、session log,甚至 agent loop 本身"
传统 Coding Agent 的结构是"LLM + 固定的 agent loop + 固定的 tool set"
DeepSeek Harness 的结构是"模型 + 插件核心(Cordis)",核心只负责加载/卸载插件、依赖管理和事件分发,自身不携带任何具体的 agent 能力
为什么"不需要打补丁的核心"如此重要
按照架构文档的说法:"没有需要打补丁的核心"和"你通过挂载插件来扩展 dsh,与其他组件并列"
这意味着即便是 agent loop 本身也不神圣、不可变:你可以把 DeepSeek model、Claude Code subagents、remote sandbox、custom memory、custom loop 和 custom UI 组合成一个全新的 agent
这是"model weights 之外的一切都是 Harness"这句话最完整的实现:如果 Harness 是独立的,那它就可以成为自己的操作系统
DeepSeek Harness 用 Services 来代表"能力",将几乎所有能力分为三层:
Service Definition(服务定义,声明接口)
↓
Service Provider(服务提供者,实际实现)
↓
Consumer(消费者,通常是模型看到的 tool)
以文件系统为例:在 FS Service 之下有多个 Provider,Local FS、E2B FS、Remote FS,全部通过统一的 file tools 套件开放。Shell、Subprocess、Sandbox、Web、LLM 和 SubAgent 也使用相同的结构
按照架构文档的说法:"seam 是可切换的能力,有三个角色:Service Definition 声明接口,Service Provider 实现它,Consumer 使用它"
这回答了 Harness 工程中长期悬而未决的问题:agent 应该依赖"具体工具"还是"能力接口"?DeepSeek Harness 选择后者,工具系统被标准化为接口,切换 Provider 不会改变模型看到的工具表面,但会改变其下整个环境
DeepSeek Harness 不是构建在简单的"LLM → tool → LLM"流程上,而是使用 event pipeline,每个 stage 都是插件可观察的 event point:
turn/start → claim input → assemble (system prompt / context / tools)
→ agent/pre-step → step/start → LLM request (agent/request) → llm/stream
→ assistant/message → tool/call
→ tools/pre-execute (permission / guard / policy / hook)
→ tools/execute → tools/post-execute → tool/result → step/end → next turn
这个设计最大的好处是:许多功能无需修改 agent loop 本身:
与"让 agent execution 可观察"的概念相比,DeepSeek Harness 走得更远:它不是"添加 log",而是把 loop 的每一步都变成 event point,让 observability、permissions、memory 和 policy 作为 listeners 挂在 loop 上,而不是硬编码进去
DeepSeek Harness 有 append-only 的 Session Event Log,并设置了有分量的工程约束,按照架构文档的说法:
Model-visible means logged. 任何进入 model request 的东西都必须能从 log 中重建,runtime invariant 强制执行此规则
换句话说:observability 不是事后追加的 log,而是 harness 的 first-principles 约束,任何进入 model context 的东西都应该默认被 log
这将 append-only 存储设计变成了一项原则:只追加 log,不覆盖,session state 可回放
DeepSeek Harness 的优点:极致灵活、标准化的 capability seam、first-principles 的 observability
DeepSeek Harness 的缺点:config cost 高("Harness 即 OS"的代价)、仍为 Developer Preview、没有类似 CLAUDE.md 的内置约定
与其他三者的根本区别
Pi、Claude Code 和 Codex 都优化"某个特定 agent 内部的 Harness",但 DeepSeek Harness 将 Harness 定义为独立于模型的操作系统,agent 本身只是运行在该 OS 上的可切换应用
代价很明显:更大的灵活性 = 更高的 config cost,这是"harness 即 OS"设计的天然缺点
以下四点总结来自 Learn Harness Engineering 课程的 DeepSeek Harness 设计分析:
我认为 DeepSeek Harness 是 Harness engineering 概念的"逻辑终点",如果 Harness 是"model weights 之外的一切",那让它成为自己的操作系统
但我最欣赏的不是灵活性,而是"Model-visible means logged"原则,因为它把 observability 从"事后添加的东西"变成了"系统的第一约束",这是我认为每个 Harness 都应该采用的理念
如果你想看看"最极致的 Harness 长什么样",DeepSeek Harness 就是答案
你试过 DeepSeek Harness 或 dsh 了吗?对"一切皆插件"的理念有什么看法?欢迎留言分享
[1] DeepSeek Harness. "Agent = Model + Environment + Tools + State". 2026. https://deepseek.com/harness
[2] deepseek-ai/deepseek-harness (command dsh, MIT). 2026. https://github.com/deepseek-ai/deepseek-harness
[3] DeepSeek Harness architecture.md. 2026. https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/architecture.md
[4] Learn Harness Engineering, Breaking Down DeepSeek Harness's Design. 2026. https://github.com/walkinglabs/learn-harness-engineering
本文分析基于 deepseek.com、deepseek-ai/deepseek-harness 和 walkinglabs/learn-harness-engineering,信息截至 2026 年 8 月 23 日。Nokka