Tracks
大多数对编码代理的比较,最终都变成了对速度、价格、工具数量或基准分数的比拼。这种框架忽略了一个将二者区分开来的关键问题:开发者能替换多少代理运行时?
DeepSeek Harness 和 Claude Code 分别在不同层面回答了这个问题。Harness 将模型适配器、存储、沙箱和代理循环暴露为可替换的插件。Claude Code 则把围绕 Claude 的内置循环打包,并为工作流提供扩展点。与其比较 DeepSeek 和 Claude 的模型差异,这条边界在这里更重要。
我给两种工具相同的有缺陷代码库,使用同一个 Claude 模型,看看运行时会带来什么变化。单个案例无法为产品排名,但能说明为何 harness 并非背景细节。我将重点比较模型选择、设置、验证、日志与成本方面的差异。
摘要
- 如果运行时本身是工作的一部分:Harness 将模型适配器、存储、沙箱和代理循环以可替换插件形式暴露,并支持多个模型提供方。
- 如果主要任务是应用代码:Claude Code 对更多运行时进行打包,并通过 Skills、hooks、MCP 等功能扩展其工作流。
- 同模型测试:两者都生成了字节级一致的补丁并通过原始测试套。在这次 Windows 运行中,Claude Code 报告用时 55.0 秒;Harness 在三次审批提示后记录为 125.4 秒。
- 成本:DeepSeek Harness 本身无许可费用;模型使用按所选提供方计费,另有相应基础设施成本。Claude Code 包含在付费 Claude 方案中。
- 快速规则:常规应用开发从 Claude Code 开始;当需要更改或检查运行时时,从 Harness 开始。
DeepSeek Harness 与 Claude Code:快速对比
|
维度 |
DeepSeek Harness |
Claude Code |
|---|---|---|
|
是什么 |
含可替换部件的代理运行时 |
打包的编码代理 |
|
许可与状态 |
MIT,开发者预览,尚无稳定版 |
专有,生产级产品 |
|
模型 |
DeepSeek、Anthropic、OpenAI、Bedrock、Vertex、Azure、本地 |
Claude,可直连或经 Bedrock 与 Vertex |
|
可替换循环 |
是,可覆盖的插件入口 |
否,扩展环绕其外 |
|
扩展单元 |
Cordis 插件,覆盖任意运行时能力 |
打包技能、hooks、代理、MCP 的插件 |
|
运行历史 |
追加式强类型事件日志,可重放 |
JSONL 对话记录、检查点、OpenTelemetry |
|
使用界面 |
本地 Web UI、无头 CLI、Python SDK |
终端、IDE、桌面、网页、Slack、CI |
|
设置 |
需配置提供方并熟悉 profile |
默认设置更少;可选权限、hooks、MCP 与项目配置 |
什么是 DeepSeek Harness?
DeepSeek Harness 是一款开源代理 harness,当前处于开发者预览阶段。它提供一个运行时,让模型使用工具与上下文,并可运行来自 DeepSeek 以外提供方的模型。其 README 提醒更新可能会破坏现有设置。
如果您想试用,建议从我们的DeepSeek Harness 教程开始。
DeepSeek Harness 的工作方式
代理循环作为插件实现。Harness 使用 Cordis 组合模型适配器、工具、会话、存储、沙箱与循环。
Cordis 让插件发现服务并交换事件。依赖变更会加载或卸载插件;热重载会清理过期监听器与后台作业。
默认 profile 将循环展示为配置。 dsh --profile headless --dump-default-config 会包含如下条目:
- id: agent-loop
name: '@deepseek-ai/dsh-agent-loop'
config:
agents: []
该条目可通过 cordis.patch.yml 替换,这表明循环本身并非固定不变。
插件面板展示运行时组件。视频作者自制。
四种运行时模式
DeepSeek Harness 提供四种运行时模式。
- Standard:完整的编码代理模式
- PTC/Code:将若干工具调用合并为一个 TypeScript 程序
- Minimal:仅保留持久化 bash 与 str_replace_editor
- Creator:用于检查与测试运行时
DeepSeek 的基准测试使用了 Minimal 模式。
什么是 Claude Code?
Claude Code 是 Anthropic 的专有编码代理与代理式 harness,可在本地或托管环境下,通过终端、IDE、桌面、网页、Slack 与 CI 使用。
CLI 在项目目录内以 claude 启动。该目录成为默认文件作用域,会话从 CLAUDE.md 读取项目说明。用户稍后可放宽文件访问或添加外部服务。
Anthropic 将这些界面视为访问 Claude Code 的方式。本地会话在您机器上运行;云端会话在托管环境或您组织运维的服务器上运行;Remote Control 允许通过浏览器操控本地工作。
最佳起点是我们的 Claude Code 教程 和 Claude Code 最佳实践指南。
内置循环与扩展
Anthropic 将 Claude Code 描述为围绕 Claude 的代理式 harness,其包含重复的上下文、行动与验证循环。用户可在运行中引导其行为。
Claude Code 将会话存储在本地,并在窗口填满时压缩较早的上下文。CLAUDE.md 与自动记忆可在会话间携带选定的说明与项目细节。子代理使用独立的上下文窗口,并将摘要返回父会话。
Claude Code 的扩展层如何工作
Claude Code 支持多种扩展机制。CLAUDE.md、skills、hooks、MCP、subagents、plugins、Agent Teams 与 Agent SDK 都能扩展其工作流。
这些扩展在 Claude Code 的内置循环周围发挥作用。Hooks 可强制执行工具调用规则;Agent SDK 则在代码中提供工具与上下文管理。
DeepSeek Harness 与 Claude Code:架构与控制
DeepSeek Harness 将较底层的运行时部件暴露为可替换项;Claude Code 固定其内置循环,并在其周围支持扩展。
可替换运行时 vs. 打包代理
DeepSeek Harness 将运行时视为可配置的基础设施:模型适配器、存储、沙箱与循环都可通过 profile 条目替换。Claude Code 固定其内置循环,并围绕它扩展工作流。
DeepSeek Harness 可利用该机制替换模型提供方或其他运行时部件。此处“插件”一词的范围也不同:
- Claude Code 插件在循环周边打包功能。
- DeepSeek Harness 插件可定义运行时本身的组成部分。
模型支持与提供方选择
DeepSeek Harness 支持更多模型提供方。它可运行 DeepSeek、Anthropic、OpenAI、云提供方以及兼容的本地端点。Claude Code 则只运行……Claude。换言之,DeepSeek Harness 可承载 Claude,但 Claude Code 不能承载 DeepSeek。
这让我在测试中得以固定模型变量。将 Harness 中的 DeepSeek 模型与 Claude Code 中的 Claude 比较,会同时改变两个变量。
选择提供方会增加凭据与端点设置,包括精确的模型 ID。Claude Code 则控制模型家族与大多数请求行为。
更换提供方并不保证行为相同。不同模型可能支持不同工具格式、上下文大小或推理控制。Harness 会保留周边插件设置,但提供方适配器仍需匹配所选端点。
会话日志与运行可追溯性
DeepSeek Harness 以只追加的事件流记录提示、上下文注入、工具调用与权限决定。其轨迹视图展示每条记录的来源,并支持恢复、分叉、搜索与重放。
Claude Code 存储 JSONL 记录,支持恢复与分叉,并输出 OpenTelemetry 跟踪。
两者都暴露会话历史,但 DeepSeek Harness 在 UI 中呈现了更多运行路径细节。
轨迹视图重建了一次完整运行。视频作者自制。
执行环境与权限
DeepSeek Harness 在 Linux 上使用 bubblewrap 或 Landlock,在 macOS 上使用 Seatbelt,在 Windows 上使用受 ACL 限制的令牌。若沙箱无法启动,Harness 将停止命令。Claude Code 提供 权限模式,以及允许、询问与拒绝规则。在此次运行中,Windows 沙箱影响了验证路径与时序。
两者的访问标签不同,无法做到完全对齐。
-
DeepSeek Harness 权限预设包括
read-only、workspace-write和danger-full-access。 -
Claude Code 将自动编辑、人工审批、规划与基于规则的命令访问分开处理;并会在编辑前快照文件,以便无需 Git 即可回滚。
在当前 Pro、Max 与 Team 的终端和 VS Code 会话中,Auto 模式是 Claude Code 的默认起始模式。分类器会在后台审查动作。本测试显式使用了 acceptEdits,因此其权限行为反映的是测试配置,而非当前默认。
在比较审批次数时,这一区别很重要。
执行位置也不同。Harness 主要在其 Web UI 或无头进程所在的机器上运行。Claude Code 可在本地、Anthropic 托管云环境或自托管基础设施上运行。Remote Control 则在执行保持本地的同时提供浏览器界面。
DeepSeek Harness 与 Claude Code 的动手测试
为了查看这些运行时差异是否影响执行,我给两者同一个只有一行错误的 TypeScript 缺陷。若您只关心计时结果,请阅读本节。
测试设置:同一模型、同一代码库与同一提示
我写了一个用于习惯连击的 TypeScript 库,其中一行有误。它通过对耗时毫秒数取整来度量日历天数。
- 23:50 的一次完成接着 00:10 的一次,看起来像同一天。
- 08:00 的一次完成接着第二天 20:00 的一次,看起来像漏了一天。
十个固定测试暴露了三个失败。
每个全新克隆都会在计时运行前安装依赖。两位代理收到相同指令并使用 Claude Sonnet 5。代码库与提示保持不变;工具、权限与沙箱行为各自产品自定。
两者的权限配置并不等价。DeepSeek Harness 以 workspace-write 启动,但其 Windows 沙箱无法启动。Web UI 请求审批后,我三次授予 danger-full-access。Claude Code 使用 accept-edits,且只能通过 bash 运行测试命令。
本次聚焦任务只使用本地代码与测试。代理需要找到并修改一行错误,然后运行测试套。计时前已安装依赖,尽管 Harness 仍选择再次运行 npm install。
测试结果:补丁一致,审批路径不同
Claude Code 报告用时 55.0 秒。它运行测试套、找到缺陷、编辑了一个源文件,并再次运行测试。10/10 通过。
在这次 Windows 测试中,DeepSeek Harness 用时 125.4 秒。它找到相同的未使用 daysBetween 辅助函数,做出相同修改,并成功运行原始测试套。
两者 diff 字节级一致:
-import { DAY_MS } from './dates.js';
+import { daysBetween } from './dates.js';
function gapInDays(earlier: number, later: number): number {
- return Math.round((later - earlier) / DAY_MS);
+ return daysBetween(earlier, later);
}
审批路径与重复的 shell 操作解释了大部分用时差距。
为何 DeepSeek Harness 在 Windows 上更慢
DeepSeek Harness 的 workspace-write 沙箱在 Windows 上无法启动,因此 Web UI 三次请求更高权限模式。审批后,Harness 运行原始测试套,编辑了 src/streak.ts,并再次运行测试。10/10 通过。
该结果并不代表 Harness 在 Linux 或 macOS 上的表现。由于两次运行使用相同模型 ID,用时差异不可能源于模型家族不同。不同的权限与工具路径仍然影响了各自的运行。

两次运行均达到 10 个通过测试。图片作者自制。
同模型测试隔离了什么
共享的模型 ID 并未让请求完全一致。每个产品都提供了各自的系统提示、工具描述、上下文与权限规则,任何一项都可能影响下一次模型响应。
因此,这种设置比“DeepSeek 模型 vs. Claude”更好地控制了模型家族变量,但并未隔离全部变量。
我也仅对每种配置进行了一次计时。若要将用时或工具调用次数视作稳定的性能度量,则需要以随机顺序重复多次运行。
DeepSeek Harness 与 Claude Code:成本、基准与测试局限
一次 Windows 个案无法定论更广泛的性能或定价比较,但它显示了基准细节为何重要。
基准注意:DeepSeek 使用了 Minimal 模式
DeepSeek 发布的分数使用Minimal 模式,而非本比较所用的Standard 模式。使用其他 harness 的独立测试报告了更低结果。我未复现实验。Minimal 模式的结果不能代表 Standard 模式的性能,也无法衡量 Claude Code。
成本:API 计费 vs. Claude 订阅
DeepSeek Harness 无许可费,但仍会产生模型与基础设施成本。DeepSeek 的 API 采用高峰与非高峰计价。Claude Code 包含在付费 Claude 方案中。预算前请查看 Anthropic 定价页面。
按 Anthropic API 标价计算,Harness 的本次运行约花费 $0.11。Claude Code 在使用订阅凭据时显示 $0.349。由于两者来自不同的计费系统,这并非直接的价格对比。
Claude 的个人方案包括每月 $20 的 Pro,以及 $100 或 $200 的 Max。DeepSeek Harness 无对应订阅;由模型提供方计费。本地模型不产生 API 费用,但会占用本机算力资源。
团队还应将托管沙箱与自托管算力计入成本,若这些服务不在模型账单之内。此类成本不包含在 Harness 许可中。
稳定性:开发者预览 vs. 生产产品
测试时 Harness 仍处于候选发布状态。团队应固定包版本,因为更新可能破坏 profile 或保存的会话;Claude Code 已处于生产状态。
DeepSeek Harness 与 Claude Code 的局限
两者都不覆盖所有工作流,但局限来自设计中的不同部分。
DeepSeek Harness 的局限
Harness 暴露了更多运行时部件,这也意味着更多的设置与测试落在用户身上:
-
项目仍处于开发者预览,更新可能破坏 profile 或保存的会话
-
提供方凭据、模型 ID 与端点规则需要手动配置
-
其
workspace-write沙箱在本次 Windows 个案中无法启动,需三次danger-full-access审批 -
当前 Python SDK 没有 Windows 轮子(wheel)
沙箱问题仅适用于前述 Windows 运行。我未在 Linux 或 macOS 上重复测试。
v0.1.0-rc.7 的发行说明提到修复了持久化 Bash 延迟并升级了 node-pty 以扩大 PTY 兼容性。因此该观察既与版本相关,也与 Windows 特性相关。
Claude Code 的局限
Claude Code 处理更多运行时决策,但其固定边界也排除了一些实验:
-
仅运行 Claude 模型,不提供引入其他模型家族的路径
-
其内置会话循环不作为可替换组件暴露
-
Claude Code 需要付费访问或单独计费的 API 额度,且二者都有用量限制
-
长会话可能压缩较早上下文,因此持久规则应写入
CLAUDE.md
当任务需要其他模型提供方或自定义循环时,这些局限影响最大。
DeepSeek Harness vs. Claude Code:如何选择?
先把模型名字放一边。您的任务是完成应用代码,还是要修改执行工作的运行时?
选择 DeepSeek Harness,如果运行时本身就是项目。它适合跨提供方测试、自定义循环或沙箱,以及依赖详细执行轨迹的工作。其预发布状态也意味着需要您承担版本变化与配置测试的责任。
选择 Claude Code ,如果您在现有代码库中工作,并希望代理以更少的运行时设置去检查文件、编辑代码并运行项目检查。在这次 Windows 测试中,它无需 Harness 所需的三次完全访问审批即可运行原始测试套。
两者并用,若这种分工反映了真实工作。团队可将 Claude Code 用于日常编码,将 Harness 用于对提示、工具或代理循环的实验。
结语
两种工具都能检查代码库、编辑文件并运行命令。真正的区别在于对运行时的掌控:Harness 将其部件以插件形式暴露;Claude Code 则打包内置循环,并允许您在其周围扩展工作流。
若必须基于本次测试选择起点,我会在常规应用开发上从 Claude Code 开始;当需要更改或检查运行时时(这正是任务目的),从 Harness 开始。本文是针对预发布 Harness 的 Windows 个案研究,并非永久排名。
相关比较,请参阅我们关于Grok Build、Cursor、OpenCode、Codex 以及其他 Claude Code 替代方案 的文章。
DeepSeek Harness 与 Claude Code 常见问答
DeepSeek Harness 能复用 Claude Code 的项目说明吗?
可以。Harness 会读取 CLAUDE.md 与 AGENTS.md,因此代码库中的说明可复用。Claude Code Skills 仍然是独立的。
DeepSeek Harness 能将 Claude Code 或 Codex 作为子代理运行吗?
可以。预发布版本包含 Claude Code 与 Codex 的可选子代理提供方包。在依赖其配置前请固定 Harness 版本。
Claude Code 是否允许更换其他模型?
不,它只运行 Claude。Harness 能承载 Claude,但 Claude Code 不能承载 DeepSeek。
DeepSeek Harness 的 Python SDK 目前支持哪些平台?
当前 wheel 支持 Linux(x64 或 arm64)与最新的 arm64 macOS 版本。尚无 Windows 版 wheel,且示例组合使用完整文件系统访问。
Claude Code 是否存在类似 Harness Python SDK 的平台限制?
不完全一样。它没有原生 Windows 沙箱,因此在 Windows 上的 /sandbox 需要 WSL2,但 CLI 本身可在 macOS、Linux 与 Windows 上运行。
DeepSeek Harness 的 Code 模式能运行 Python 程序吗?
使用自带后端则不行。PTC(也称 Code)模式可识别多种编程语言,但文档中的代码运行时目前提供 TypeScript 后端。
DeepSeek Harness 能运行本地模型吗?
可以。添加一个公开 OpenAI 兼容端点的自定义提供方(如本地 Ollama 或 vLLM 服务器),然后在 DeepSeek Harness 中注册模型 ID。