DeepSeek Harness 是 MIT 许可的开源 Agent 框架,基于 Cordis 插件机制,可复用 Claude Code 的 hooks.json 并支持将其作为子 Agent 调用。
DeepSeek Harness(dsh)是一个基于单一扩展机制构建的 MIT 许可开源 Agent 框架——一切皆是 Cordis 插件。Claude Code 是 Anthropic 的专有编程 Agent,其扩展被分为 Skills、Commands、Hooks 和 MCP Server 四类,并配有官方插件市场。两者也并非纯粹的竞争关系:dsh 可以将工作委托给 Claude Code 作为子 Agent,也可以直接复用 Claude Code 的 hooks.json 文件。
这就是这篇基于事实的对比——没有捏造的基准数据,没有虚构的定价——所有内容均来自 dsh 自己的文档和包结构,以及 Claude Code 已公开的信息。正是这种全开源许可、相似的 MCP 工具命名方式以及原生子 Agent 桥接到 Claude Code 本身的组合,使得 dsh 被定位为开源的 Claude Code 替代方案,而不仅仅是另一个编程 Agent;以下这些事实才是真正支撑这一定位的依据。
架构上的分化是核心差异所在。在 dsh 中,Hook、Skill、MCP Server 桥接和 Tool 都是注册在同一个 Cordis Context 上的插件——没有为每种类型单独定义清单格式。而 Claude Code 则将 Skills、Commands、Hooks 和 MCP Server 视为不同的扩展类型,每种都有自己的文件格式,并在其上增加了市场层(dsh 自己的 Claude Code 子 Agent 测试套件中存在一个 CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL 测试标志,这一细节确认了市场和其自动安装行为确实存在)。
两款工具都桥接了 Model Context Protocol 服务器,dsh 的文档特意强调了这种相似性:dsh 将被桥接的工具命名为 mcp__<serverName>__<rawName>——这与 Claude Code 和 Codex 使用的服务端限定命名形式完全一致。如果你之前为 Claude Code 配置过 MCP Server,心理模型可以直接迁移过来。
两者的差异在于范围。dsh 的 @deepseek-ai/dsh-mcp-client 明确只桥接 MCP Tools——Resources 和 Prompts 文档标注为暂缓支持,目前尚无 harness 端的消费者。Claude Code 的 MCP 客户端除了 Tools 之外,还会将 Resources(作为 @-mentions)和 Prompts(作为斜杠命令)暴露出来。如果你所依赖的 MCP Server 依赖 Resources 或 Prompts 而非 Tools,在切换之前这是一个需要核实的实际功能差距。
一个 dsh 的 MCP Server 配置如下(stdio 传输,每个 Server 一个插件实例):
- id: mcp-github
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: github
transport: stdio
command: npx
args: ['-y', '@modelcontextprotocol/server-github']
env:
GITHUB_TOKEN: !!js process.env.GITHUB_TOKEN
编辑这一行会触发热重载——dsh 断开并重新连接 Server,而无需重启进程。详见我们的 MCP 设置指南,了解 streamable-http 配置、重连行为和超时限制。
这是对比中最令人惊讶的事实之一:dsh 附带了一个官方桥接包 dsh-hooks-claude-code,它能将现有的 Claude Code hooks.json 文件翻译成 dsh 自己的扩展点监听器(agent/session-start、tools/pre-execute 等)。如果你的团队已经在 Claude Code hook 脚本上投入了资金,尝试 dsh 时不一定要重写它们。dsh-hooks-codex 并行桥接包也为 Codex CLI hooks 存在。参见 DeepSeek Harness 中的 Hooks 和斜杠命令了解桥接如何映射事件。
对于任何在思考"哪个更好"的人来说,最有趣的事实是:dsh 的子 Agent 系统原生支持将 Claude Code 作为其子 Agent 提供者之一(dsh-subagent-claude-code,通过 Claude Code 官方 Agent SDK 驱动),此外还有 Codex 提供者、Agent Client Protocol 提供者和进程内提供者。子 Agent 可以是单次或可继续的,单次委托支持 outputSchema、depthLimit、toolFilter 和 persona——提供者必须明确声明对每项的支持;不支持的请求会直接失败而非静默降级。
实际上,这意味着 dsh 并不严格是 Claude Code 的替代品——它可以是一个编排层,将 Claude Code 作为其执行后端之一调用,与 DeepSeek 自有模型和其他子 Agent 类型并存。参见 DeepSeek Harness 子 Agent 了解完整提供者表格。
dsh 的 Skill 系统(ctx.skills,一个合并文件系统源和内置源的提供者注册表)在架构上是独立存在的东西——它与 Claude Code 的 SKILL.md 目录约定不是同一格式。一个社区讨论(#88)专门问了 dsh 是否能复用"传统"Skills,而文档中目前没有记录直接兼容性。一些社区插件在设计上填补了这一空白——例如,dsh-skillport 能跨 Claude Code、Codex、Cursor 和 Gemini 路径发现现有的 SKILL.md 库,并将它们加载到 dsh 中。这是社区的变通方案,不是官方兼容性保证。
模型提供者:dsh 原生支持 DeepSeek,内置目录还包含 Anthropic、OpenAI、Bedrock、Vertex、Azure 和 Codex 原生认证,以及任何 OpenAI 兼容的自定义端点。Claude Code 围绕 Anthropic 的 Claude 模型构建,公开文档显示也支持通过 Amazon Bedrock 和 Google Vertex AI 访问。
沙箱:dsh 有三个明确的沙箱层级(只读、工作区写入、危险-完全访问),配有平台后端——Linux 上的 bwrap/Landlock、macOS 上的 Seatbelt、Windows 上的 ACL 限制令牌方案,以及 E2B 云沙箱选项。Claude Code 使用自己的基于审批的权限模型和可配置的自动批准行为;其沙箱内部细节我们不在此独立验证。
成熟度:dsh 明确是开发者预览版——无 SemVer 承诺,无 GitHub Releases 页面,GitHub Issues 禁用改为使用 Discussions。Claude Code 是一款已发货、有文档的 Anthropic 产品。
两者都不是在任何工作负载下都能完全替代对方的——子 Agent 桥接意味着你可以同时使用两者。
是的。dsh 采用 MIT 许可,源码在 GitHub 上。Claude Code 由 Anthropic 作为专有 CLI 工具分发。
dsh-hooks-claude-code 桥接包正是为这一问题设计的——它将现有的 Claude Code hooks.json 翻译成 dsh 自己的扩展点监听器。我们没有独立测试每种 hook 类型,所以在安装后请验证你的特定 hooks。
大多数情况下支持——如果你的 MCP Server 暴露的是 Tools。命名形式(mcp__<serverName>__<rawName>)是一样的。如果 Server 依赖 MCP Resources 或 Prompts,dsh 的客户端目前还无法桥接这些。
可以——这就是 dsh-subagent-claude-code 提供者的用途。dsh 可以将任务委托给 Claude Code(通过其官方 Agent SDK)作为多个子 Agent 后端之一。
FindHarness 目前追踪了数百个 dsh 插件,跨越十二个类别。Claude Code 有官方市场及其自己的插件目录;我们在此没有追踪可比的数量。
完全不了解 dsh?从什么是 DeepSeek Harness?开始
计划实际迁移?阅读从 Claude Code 迁移到 DeepSeek Harness
想要完整的 MCP 桥接细节?参见如何使用 MCP Server 配合 DeepSeek Harness
对这一对比的 Codex 视角感兴趣?阅读 DeepSeek Harness vs OpenAI Codex CLI
浏览工作流自动化类别,了解多 Agent 编排插件如 dsh-agent-teams
原文发表于 findharness.com。