DeepSeek Harness、Claude Code 与 Omnigent 怎么选
比较 DeepSeek Harness、Claude Code 与 Omnigent 的架构、模型绑定、许可证和成熟度,并说明各自运行在 VPS 上所需的依赖与资源。
DeepSeek Harness、Claude Code 与 Omnigent:您需要哪一个
DeepSeek Harness、Claude Code 和 Omnigent 都称为代理运行框架,但它们解决的是不同部分的问题。DeepSeek Harness 是带有 Web UI(用户界面)的插件运行时,模型由您自行提供。Claude Code 是 Anthropic 提供的终端程序,用于运行 Anthropic 模型。Omnigent 是 Databricks 提供的编排器,负责驱动包括 Claude Code 在内的其他运行框架,而不是自行实现代理循环。它们都不是其他产品的即插即用替代品,因此真正需要回答的问题是:您缺少哪一层。
真正存在差异的维度包括架构、模型绑定方式、界面、成熟度和许可证。下文的所有版本和日期均已在 18 August 2026 核对。其中两个产品的变化速度足够快,因此在决定采用哪个产品前,您应再次检查相关信息。
什么是 DeepSeek Harness?插件模型有何价值?
DeepSeek 于 2026 年 8 月在 github.com/deepseek-ai/deepseek-harness 发布了 DeepSeek Harness,即 dsh。仓库描述用 4 个词概括了整个设计:一切皆为插件。模型适配器、工具注册表、会话日志、沙箱以及 agent 循环本身都是插件,由基于 Cordis 构建的运行时加载。该项目的采用速度异常快,发布后几天内仓库就获得了 150,000 个 star(截至 18 August 2026)。
DeepSeek Harness 当前处于开发者预览阶段,迭代速度很快。后续版本将破坏兼容性。
这是 README 自己给出的警告,也是这次比较中最重要的一句话。现在基于插件 API(应用程序编程接口)编写的任何内容,都应预期将来需要重写。
使用 npx 启动。系统必须已安装 Node.js:
npx @deepseek-ai/dsh web该命令会输出 URL。默认情况下,Web UI 位于 http://127.0.0.1:3080。从源代码构建时则使用 pnpm:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh webdsh web 是 dsh --profile web 的简写。配置文件位于 $DSH_HOME/profiles/ 下的目录中,启动器会启动你指定的配置文件。这一点很重要,因为项目还提供无头配置文件:dsh --profile headless "job" 会运行一个持久化会话,输出结果后退出。这正适合 cron 任务或构建步骤。--profile 和 --patch 等启动器选项必须放在应用自身参数之前,因为启动器在参数交接处会停止解析。--port 这类选项属于已启动的配置文件,而不是启动器,因此位置很重要。插件通过将参数转发给 pnpm 进行管理,例如 dsh plugin --profile web add <package>。
Claude Code 是什么,为什么它是终端程序?
Claude Code 是 Anthropic 自有的 CLI(命令行界面)代理。该产品本身没有 Web UI。它在您指定的工作目录中运行于终端,因此非常适合服务器会话。在 macOS、Linux 和 WSL 上,只需运行一条命令即可安装:
curl -fsSL https://claude.ai/install.sh | bash
claude --version安装成功后会输出版本号和产品名称,例如 2.1.211 (Claude Code)。如果安装失败,运行 claude doctor 可输出只读的安装和设置诊断信息,而不会启动会话。此外还有 npm 软件包 npm install -g @anthropic-ai/claude-code;截至 v2.1.198,它要求 Node.js 22 或更高版本。该软件包安装的是相同的原生二进制文件,因此已安装的 claude 在运行时不使用您的 Node.js。Anthropic 还为 Debian、Ubuntu、Fedora、RHEL 和 Alpine 发布了带签名的 apt、dnf 和 apk 软件源。如果您使用配置管理系统维护服务器,这种方式更合适,因为更新会通过正常的升级流程提供。
Claude Code 需要 Pro、Max、Team、Enterprise 或 Console 账户。免费的 Claude.ai 计划不包含访问权限。选择Claude 订阅还是 API 计费,对费用的影响远大于工具内部的任何设置。
Omnigent 是什么,meta-harness 负责编排什么?
Databricks 于 2026 年 6 月发布了 Omnigent,并以 Apache 2.0 许可证开源。它将自身称为 meta-harness。它不实现 agent 循环,而是驱动现有的 agent:Claude、Codex、Cursor、OpenCode、Hermes、Pi 和 OpenAI 的 agents SDK(软件开发套件)。其中一些 agent 在 harness 列表中出现两次:一种通过供应商的 SDK 通信,另一种以原生形式封装供应商实际提供的终端程序。
Agent 是一个 YAML 文件,YAML 是一种纯文本配置格式:
name: my_agent
prompt: You are a helpful data analyst.
executor:
harness: claude-sdk
tools:
word_count:
type: function
callable: mypackage.mymodule.word_count
docs:
type: mcp
url: https://example.com/mcp
researcher:
type: agent
prompt: Search for relevant information.executor.harness 行是整个项目的核心。将 claude-sdk 改为 codex 后,相同的提示和相同的工具就能在另一家供应商的模型上运行。工具可以是 Python 函数、MCP(模型上下文协议)服务器或另一个 agent。最后一种情况用于表达多 agent 工作:子 agent 本身就是一个工具。如果您还没有确定 skills、MCP 服务器和 rules 文件分别应放在哪里,建议先阅读agent skills、MCP 和 rules 文件的区别,因为 Omnigent 会继承底层 harness 支持的相关机制。
随附的示例具体展示了这一理念。Polly 是一个不会自行编写代码的编码编排器。它负责规划任务,在并行的 git worktree 中将工作委派给编码子 agent,然后将每个差异交给运行在另一家供应商模型上的审查 agent。
使用官方发布的脚本安装:
curl -fsSL https://raw.githubusercontent.com/omnigent-ai/omnigent/main/scripts/install_oss.sh | sh也可以手动安装,但需要 Python 3.12 或更高版本:
uv tool install omnigent
omnigent setup
omnigent startpip install "omnigent" 同样可用,附加依赖项通常通过 uv tool install "omnigent[databricks,modal]" 选择。omnigent setup 用于收集凭据和默认设置。omnigent start 启动服务器,将本机注册为主机,并在 http://localhost:6767 上提供 Web UI。omnigent server status 和 omnigent stop 是日常使用的另外两个命令。直接运行 omnigent 会打开交互式会话,但不会启动服务器。
依赖项列表比单行安装程序所暗示的更长:Python 3.12 或更高版本、git、Node.js 22 LTS(长期支持版)或更高版本,以及 npm 和 pnpm;原生终端封装器需要 tmux;Linux 沙箱需要 bubblewrap(bwrap)。这直接源于其设计。Omnigent 必须自行安装和管理供应商 CLI,因此它是一个负责运行 Node.js 软件的 Python 软件。
谁提供模型,费用由谁承担?
这是实际影响最大的维度,而且这 3 种答案确实不同。
DeepSeek Harness 采用自带提供商模式。已安装的提供商目录涵盖 Anthropic、OpenAI、Bedrock、Vertex、Azure 和 Codex。自定义提供商条目需要填写小写的提供商 ID、显示名称、基础 URL、API 协议、凭据以及至少一个模型。这样即可将其指向公司网关或自托管服务器。密钥写入 $DSH_HOME/.credentials.yaml,而 $DSH_HOME/settings.yaml 只保存密钥引用。这意味着设置文件可以安全共享,但凭据文件不能共享。网关条目也可以改为指定环境变量,例如 apiKeyEnv: GATEWAY_API_KEY。尽管项目名称中包含 DeepSeek,但它不会强制您使用 DeepSeek 自有模型。
Claude Code 的设计决定了它与单一供应商绑定。您可以使用付费账户登录,也可以设置 ANTHROPIC_API_KEY,让 Claude Code 提示您批准该密钥,而不是打开浏览器。第二种方式适用于无头服务器。已经从其他平台购买容量的组织,可以通过 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 进行路由。
Omnigent 需要底层 harness 所需的全部配置,并通过 omnigent setup 收集这些配置。它支持 API 密钥、现有 CLI 订阅、兼容 OpenAI 或 Anthropic 的网关,以及 Databricks 工作区。这正是元 harness 的实际成本:一台机器最终会保存每个供应商的凭据。在让这台机器接入公网之前,请先阅读如何防止 AI 代理访问机密。
截至 August 2026,每个项目的成熟度如何?
Claude Code 自 2025 年起正式发布。截至 August 2026,它处于 2.1.x 系列。它会在后台自动更新,提供 latest 和 stable 发布渠道,发布经过 GPG 签名的版本清单,并为需要设定最低版本的组织记录了 minimumVersion 固定版本。这样的产品已经具备在生产环境中运行的条件。
Omnigent 自 June 2026 起向公众开放,目前仍处于 0.x 系列,其 README 将它描述为 alpha 版本。预计支持的 harness 列表和 YAML schema 都会继续变动。它已经可以使用,但尚未稳定。
DeepSeek Harness 的成熟度远低于前两者。它于 August 2026 发布,在撰写本比较前仅数日,其 README 也说明后续版本可能引入兼容性破坏性变更。大量 star 数量只能说明许多人正在关注它,无法说明 plugin API 是否已经稳定。
每个工具采用什么许可证?
DeepSeek Harness 采用 MIT 许可证,第三方许可证已在 THIRD_PARTY_NOTICES.md 中披露。Omnigent 采用 Apache 2.0 许可证。Claude Code 不是开源软件:它是 Anthropic 的商业产品,运行需要付费账户或按用量计费的 API 访问权限。如果您的要求是能够阅读和修改每一行代码,那么在比较任何功能之前就应排除 Claude Code。如果您的要求是工具下个月仍能正常运行且无需您维护,那么结论正好相反。
在 VPS 上运行这些工具分别需要什么?
Claude Code 是三者中最简单的工具。安装并登录后,在 tmux 中运行它,以便 SSH(安全 Shell)连接中断后会话仍能继续。Anthropic 要求使用 4 GB RAM(随机存取内存)或更多内存,以及 x64 或 ARM64 处理器;操作系统需要是 Ubuntu 20.04 或更高版本、Debian 10 或更高版本,或 Alpine 3.19 或更高版本。在 Alpine 上,还必须先安装 bash、curl、libgcc 和 libstdc++ 以及 ripgrep,否则安装命令会因 not found 错误而失败。在 VPS 的 tmux 中运行 Claude Code详细介绍了会话管理。
DeepSeek Harness 需要 Node.js,以及一个指向其 Web UI 的浏览器。README 要求使用 Node.js,但没有指定最低版本。因此,选择 Node 22 LTS 更稳妥,因为其周边生态以此为目标版本。不要公开发布端口 3080。让服务器监听 127.0.0.1,然后从笔记本电脑转发该端口:
ssh -N -L 3080:127.0.0.1:3080 you@your-vps然后在本地打开 http://127.0.0.1:3080。在 VPS 上完整安装 DeepSeek Harness介绍了配置文件布局和插件命令。
Omnigent 的资源需求最高,因为它会安装并管理其他厂商的 CLI。它要求在同一台服务器上安装 Python 3.12、Node.js 22、npm、pnpm、tmux 和 bubblewrap。此外,它还会下载每个已启用的厂商 CLI。端口转发方式相同:
ssh -N -L 6767:127.0.0.1:6767 you@your-vps如果服务器供其他人使用,受支持的方式是在 deploy/ 下使用 Docker 部署,该方式默认启用多用户账户。手动启动服务器时,设置 OMNIGENT_AUTH_ENABLED=1 也可启用相同功能;OIDC(OpenID Connect)登录支持 Google、GitHub、Okta 和 Microsoft。Omnigent 多智能体 Harness 指南介绍了沙箱提供程序;当智能体开始写入磁盘时,这些提供程序就会变得重要。
为什么服务器的公网 IP 地址上的 Web UI 为空白?
这两个 Web 工具默认都监听 loopback,最直接的做法是将它们绑定到 0.0.0.0 并开放端口。但这样会导致两个问题。第一个是安全问题:两者在默认本地模式下都不提供身份验证,因此开放端口就等于在 VPS 上开放 shell。第二个是浏览器规则,这一点经常让人意外。只有在安全上下文中,crypto.randomUUID() 才会定义;安全上下文包括 HTTPS(超文本传输协议安全)、localhost 或 127.0.0.1。如果通过普通地址(例如 http://203.0.113.10:3080)加载同一个 UI,浏览器控制台会报告:
TypeError: crypto.randomUUID is not a function随后页面只能部分渲染,或者完全无法渲染,因为会话创建在页面开始绘制前就已失败。服务器没有故障,日志也会显示正常请求。该来源未被浏览器信任,因此前端依赖的某个函数从未定义。SSH 隧道无需证书即可解决此问题,因为 127.0.0.1 会被视为安全上下文。使用真实 TLS(传输层安全)证书的反向代理也可以解决此问题,但之后必须自行添加身份验证。
哪一个适合您?
如果您希望立即使用编码代理,愿意向 Anthropic 付费,并且平时就在终端中工作,请选择 Claude Code。三者中,只有它是已经完成的商业产品,而不是预览版。
如果插件模型才是重点,请选择 DeepSeek Harness:您希望替换模型适配器、沙箱或代理循环,并且接受所依赖的接口会发生变化。它的提供商目录涵盖 Anthropic 和 OpenAI,因此选择它,实际上是押注其运行时,而不是 DeepSeek 的模型。
如果您已经运行多个代理 CLI,而实际问题是协调,请选择 Omnigent:包括策略、沙箱、使用第二家供应商的模型进行审查,以及让其他人可以查看的共享会话。它会在您的技术栈中增加一层,而不需要的层就可能成为故障点。如果您的协调需求没有这么复杂,那么在同一台主机上运行两个 Claude Code 会话,就可以 互相发送消息,无需在中间加入编排器。
如果您仍在筛选,Mimo Code AI 编码代理与 Claude Code 一样属于终端代理类别。无论您选择哪一个,都值得阅读在一次性 VM 中运行编码代理,因为这三者都不会自动让粗心的 rm -rf 变得安全。三者也都不会决定代理应提出多大的差异,这属于提示级问题。因此,无论最终使用哪一种 harness,都值得叠加促使代理采用可行的最小改动的技能。
FAQ
我需要付费的 Anthropic 方案才能使用 Claude Code 吗?
需要。Claude Code 要求使用 Pro、Max、Team、Enterprise 或 Console 账户,免费的 Claude.ai 方案不提供访问权限。在无头 VPS 上,首次运行前设置 ANTHROPIC_API_KEY:之后 Claude Code 会提示您批准该密钥一次,而不是尝试打开浏览器。如果组织在其他平台有可用容量,也可以将其指向 Amazon Bedrock、Google Cloud's Agent Platform 或 Microsoft Foundry。
DeepSeek Harness 可以运行 Claude 或 OpenAI 模型吗?
可以。已安装的提供商目录涵盖 Anthropic、OpenAI、Bedrock、Vertex、Azure 和 Codex。您可以在 Settings 中进入 Models,为每个提供商添加密钥。目录之外的提供商需要作为自定义提供商添加,并且必须配置小写的提供商 ID、基础 URL、API 协议、凭据和至少一个模型。密钥存储在 $DSH_HOME/.credentials.yaml 中,而 $DSH_HOME/settings.yaml 只保存引用。因此,请单独备份凭据文件,并将其排除在版本控制之外。
Omnigent 会替代 Claude Code 吗?
不会。Omnigent 会运行 Claude Code。其 harness 列表包括 Claude、Codex、Cursor、OpenCode、Hermes 和 Pi。代理会在其 YAML 文件中通过一行 harness: 选择其中一个。底层 CLI 仍需由您自行安装并完成身份验证。Omnigent 在此基础上提供编排、策略和沙箱功能。因此,只有在运行多个代理或多个供应商时,使用它才足以抵消其依赖项。
为什么 DeepSeek Harness Web UI 在服务器的公网 IP 地址上显示为空白?
因为普通 HTTP 源不是安全上下文,crypto.randomUUID() 在此处未定义,并且浏览器控制台会报告 TypeError: crypto.randomUUID is not a function。会话创建失败,因此页面只能部分渲染,或者完全无法渲染,而服务器日志看起来正常。使用 ssh -N -L 3080:127.0.0.1:3080 you@your-vps 通过 SSH 转发端口,然后打开 http://127.0.0.1:3080,因为回环地址会被视为安全上下文。也可以使用带有有效 TLS 证书的反向代理,但之后必须自行添加身份验证。
这些 harness 需要多少 RAM 的 VPS?
Anthropic 建议 Claude Code 使用 4 GB 或更多内存。DeepSeek Harness 和 Omnigent 都没有公布具体数值,因此应进行测量,不要凭猜测决定。三种情况下模型都在远程运行,因此 harness 本身负责进程监控和文件操作,而不是执行推理。真正决定服务器规格的是代理在服务器上执行的工作,例如构建和测试套件。Omnigent 的需求最高,因为 Python、Node.js、tmux 以及启用的每个供应商 CLI 都在同一台机器上运行。