DeepSeek Harness是驱动大模型作为编程Agent的脚手架工具,支持多模型切换、工具调用鉴权与会话管理,被视为Claude Code的开源竞品。
DeepSeek 于 2026 年 8 月 13 日发布了 DeepSeek Harness(dsh),这不是一个模型,而是一个让模型能够真正作为 coding agent 工作的工具,具备会话循环、工具调用、权限校验和本地 Web UI,同一天还发布了基于 API 的 DeepSeek V4-Pro,VentureBeat 将其视为 Claude 的开源竞争对手。
社区反响迅速:截至 8 月 20 日,deepseek-harness 仓库在发布一周内获得了约 16.9 万星和 1.81 万个 fork。开发者关注的不仅是模型本身,还有这个能够审查代码、修正行为、并支持多模型共用的 agent harness。
模型负责预测 token,而 harness 则管理让模型能够动手执行的一切,包括:
Claude Code、Codex CLI 和 Gemini CLI 也都是 harness,但各自封装了对应提供商的模型。如果想对比 Claude Code 和 Codex CLI,可以看 Claude Code vs Codex CLI。
DeepSeek Harness 的定位由三个特点决定:
dsh 与 DeepSeek V4-Pro 同一天发布,非常适合想要同时体验模型和 agent runtime 的团队。如果想从模型 API 开始,请查阅 DeepSeek V4-Pro API 指南,里面有 endpoint、model ID 和请求示例。
常见的 harness 往往是单体架构:agent loop、model client、tools 和 session storage 都在同一个应用里,配置可以调整,但更换核心组件的能力有限。
DeepSeek Harness 采用"一切皆插件"的理念,基于 Cordis 框架,该框架的设计理念在文档 A Programming Paradigm for Spatiotemporal Composability 中有阐述。在实践中,这意味着以下核心组件都可以切换或扩展:
这种方式适合以下场景:
代价是可能出问题的面更广,尤其是在 developer preview 阶段,插件或配置可能在版本更新后失效,因此应该固定版本并在沙箱中先行测试。
用一条命令在本地运行 Web UI:
npx @deepseek-ai/dsh web
该命令会启动如下地址的 UI:
http://127.0.0.1:3080
如果不希望自动打开浏览器:
npx @deepseek-ai/dsh web --no-open
如果想从源码构建:
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web
打开 UI 后按以下步骤操作:
$DSH_HOME/.credentials.yaml
配置文件只存储对 credentials 的引用。
点击 Choose workspace — 选择希望 agent 工作所在的项目目录。这一步是必需的,因为 dsh 需要在开始 session 前知道允许访问的文件范围。
发送任务并审批操作 — 当 agent 需要写文件或运行 shell 命令时,UI 会根据当前使用的 permission policy 弹出提示。在审批前务必检查 diff 和命令内容,尤其是在处理重要仓库时。
dsh web 是以下命令的简写:
dsh --profile web
每个 profile 位于:
$DSH_HOME/profiles/<name>
如果用于自动化或 CI,请使用 headless 模式:
dsh --profile headless "检查失败的测试并提出修复方案"
该模式会运行单次会话、输出结果后退出,适用于自己控制审批步骤和结果使用的脚本。
其他有用的命令:
# 显示合并后的配置
dsh --dump-config
# 显示默认配置
dsh --dump-default-config
# 管理 profile 的插件
dsh plugin
完整的 CLI 列表请参阅 CLI README。
DeepSeek 是默认值,V4-Pro 是随 harness 发布的主力模型。
如果正在评估成本,DeepSeek 已将非工作时间折扣设为永久生效,详情见 DeepSeek V4-Pro 降价文章和 api-docs.deepseek.com 上的官方 API 文档。
不过 dsh 并不局限于 DeepSeek 模型,因为 model adapter 是插件,主要有两种方式:
1. 使用 catalog 中已有的 provider
内置支持以下 provider:
每个 provider 有自己的 credentials 管理方式。
2. 添加 OpenAI 兼容 endpoint
可以在 $DSH_HOME/settings.yaml 中添加兼容 OpenAI 的 endpoint,指定 base URL、用于 API key 的环境变量以及模型列表。这种方式适用于云 API、内部网关和本地运行的 runtime。
每个 session 都会记录使用的模型,方便在不同项目间切换模型而不至于让会话历史混乱。
配置格式请参阅 providers 指南,或查看 custom endpoint 的 YAML 示例:如何在 DeepSeek Harness 中运行任意模型。
通过 GitHub topic dsh-plugin 搜索插件,并通过 GitHub Discussions 或 Discord 关注讨论。
发布一周内,主要需求集中在三类:
Desktop wrappers — 例如使用 Tauri 的 deepseek-harness-desktop 和适用于 Windows 的 dsh_desktop,将 Web UI 包装为原生应用。这些项目由社区维护,不是 DeepSeek 直出,因此给予 API keys 访问权限前请先审查源码。
Capability plugins — 例如用于扩展 session context 的 dsh-context 和用于 routing 的 dsh-vision-router。与任何第三方包一样,使用前请审查插件的依赖和权限。
MCP support — 截至本文撰写时,dsh core 还没有原生 MCP 支持,但社区有一个名为 dsh-mcp-manager 的插件,添加了 MCP server 配置功能,支持 remote HTTP 和 local stdio,以及 OAuth、static token 和以下格式的工具:
mcp__<name>__*
每个项目的 server 配置位于 workspace 的 .dsh 目录中。
重点是:dsh 目前在 core 中并没有"原生支持 MCP",但可以通过社区插件使用 MCP。
Coding agent 会根据从 codebase、文档和可访问的 specification 中理解的内容生成代码。如果 API 实现与 spec 不符,agent 可能会基于错误的契约创建集成,问题到运行时才会暴露。
实际可行的做法是:在让 agent 修改代码之前,先验证 API surface:
Apidog 可以完整覆盖这个流程,从管理 OpenAPI、测试 endpoint 到开启 mock server,让 agent 引用正确的契约,即使 backend 还在变动中。
如果希望通过 MCP 让 dsh 访问 API specification,请将 Apidog MCP Server 与 dsh-mcp-manager 插件配合使用:
关于通过 CLI 让 agent 调用 API tests 的示例,请参阅在 DeepSeek Harness 中使用 Apidog CLI。
如果想在使用 agent 之前先准备好 API,请下载 Apidog 然后导入项目的 specification。
现在该试,如果你是:
等等再说,如果你是:
对大多数开发者来说,安全的做法是继续用现有的 agent 处理 production 任务,在 side project 或独立仓库中尝试 dsh,等理解了它的行为、权限模型和需要用到的插件之后,再决定是否引入主要工作流。
如果想直接对比 Claude Code,请参阅 DeepSeek Harness vs Claude Code。
DeepSeek Harness 免费吗?
harness 本身免费,采用 MIT 许可证的开源项目,但调用的模型会根据配置的 API 提供商产生费用。
dsh 只能和 DeepSeek 模型一起用吗?
不是。DeepSeek 是默认值,但 model adapter 是插件,dsh 支持 catalog 中的 provider(如 Anthropic、OpenAI、Bedrock、Vertex 和 Azure),以及通过 settings.yaml 添加兼容 OpenAI 的 endpoint。
DeepSeek Harness 用于 codebase 安全吗?
安全性取决于你的 permission policy 和审批操作。dsh 要求在开始 session 前选择 workspace,发现需要审批的操作时会发出提示。
不过 dsh 仍处于 developer preview 阶段,社区插件属于可能访问 API keys 的第三方代码。使用前请审查插件,并先从不重要的仓库开始。
Harness 和模型有什么区别?
模型负责推理和生成文本,harness 是让模型能够与真实系统交互的层次。例如:两个 agent 可以使用同一个模型但产生截然不同的结果,如果它们的 harness、tools、context policy 和 permission model 不同的话。