发布日期:2026-08-24 | 话题:DeepSeek Harness / dsh / AI Agent 框架 / 避坑指南

DeepSeek Harness(dsh)是 DeepSeek AI 于 2026 年 8 月 13 日以 MIT 协议开源的"一切皆插件"Agent 运行框架,发布 48 小时内积累超过 95,000 个 GitHub Star,成为 Agent 框架赛道 2026 年最快破万星的开源项目;其 Cordis 内核将模型、工具、会话存储乃至执行循环本身均设计为可替换插件,当前处于 Developer Preview 阶段且官方明确警告接口仍在快速演化。据 Princeton CORE-Bench 实测,同一模型在不同框架下的得分可从 42% 跳升至 78%,框架选型影响力远超模型代差;本文系统整理了 10 个高频踩坑——从 Node.js 版本过低、工作区未选导致输入框灰色失效,到自定义网关的 compat.supportsDeveloperRolemaxTokensField 两项兼容配置,再到 rc.8 升级后 SQLite 历史会话消失的预防与恢复方法——覆盖安装、首次配置、多模型网关接入、视觉模型声明、插件开发与发布全流程。


为什么 Harness 比模型本身更重要

选择哪个 Agent 框架,比选择哪个模型影响更大——这不是观点,是实验数据。

Princeton CORE-Bench 实测结果显示:同一个模型在一套 scaffold 下得分 42%,换到另一套 scaffold 得分上升至 78%——框架差距比模型代差更悬殊(Princeton,2025 年)。Letta Code 在相同 Anthropic 模型上跑出 59.1% 的 SWE-bench 得分,而 Claude Code 同期为 41.6%(Letta,2026 年)。Vercel 工程团队则通过移除 80% 冗余工具,将单次任务延迟从 724 秒压缩至 141 秒。

这些数字指向同一个结论:框架的工具组合、上下文管理和执行调度,往往是区分 Agent 能力的决定性因素,而非模型参数本身。


安装前:检查环境要求

要求

最低

推荐

Node.js

≥ 22.19

24 LTS

内存

4 GB

8 GB+

磁盘

2 GB+ 可用

SSD

pnpm

仅源码安装需要

≥ 10

坑 0:Node.js 版本过低

这是三成用户在第一步就卡住的根本原因。执行:

node --version

低于 22 的版本无法启动 dsh,必须先升级。Node.js 18/20 会报错但错误信息不直接提示版本问题,容易被误诊为安装失败。


三分钟快速启动

# 方式一:npx 直接运行(推荐新手,每次自动拉取最新版)
npx @deepseek-ai/dsh web

# 方式二:全局安装(适合频繁使用)
npm install -g @deepseek-ai/dsh
dsh web

# 方式三:源码构建(适合插件开发)
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install && pnpm run build && pnpm dsh web

Web UI 默认运行在 http://127.0.0.1:3080

坑 1:终端没刷新,装完找不到命令

npm install -g 后 PATH 未更新,新开一个终端窗口即可,不需要重装。

坑 2:端口 3080 被占用

dsh web --port 8080

首次配置:三步不能乱序

第 1 步:配置 API Key

Web UI 启动后进入 Settings → Models,粘贴 API Key(仅显示一次,立即保存)。

坑 3:MISSING_CREDENTIAL 报错

最常见原因有两个:

  • Key 未填写,或粘贴时混入了前后空格

  • API 账户余额为零(Key 有效但无法调用)

去 platform.deepseek.com 先确认账户余额再排查 Key。

通过环境变量注入的正确写法(注意是变量,不是 Key 值本身):

# settings.yaml
llm-pi-ai:
  providers:
    deepseek:
      apiKeyEnv: DEEPSEEK_API_KEY   # ← 填变量名,不是 Key 本身

第 2 步:选择工作区

坑 4:输入框灰色无法输入

未选择工作区时,对话输入框始终为禁用状态。点击"选择工作区",指定一个本地文件夹(建议新建空文件夹,避免污染已有项目)。

第 3 步:选择运行模式

模式在新建会话时选择,运行后无法切换

模式

适用场景

注意事项

Standard(标准)

日常编程、调试、文档生成

默认首选,功能最全

PTC(代码模式)

批量重构、类型修复、测试补全

效率最高,适合重复性任务

Minimal(极简)

性能评测、轻量调试

仅 bash + str_replace_editor

Creator(创造)

插件开发、自定义工作流

新手勿选,面向插件开发者

坑 5:第一次用就进创造模式

Creator 是面向插件开发者的高级入口,会暴露大量底层配置项,新手直接懵掉。不确定就选 Standard。


自定义 API 网关:80% 兼容性问题的统一解法

将 dsh 接入非 DeepSeek 官方 API(兼容 OpenAI 格式的第三方网关、企业内网 API、多模型聚合平台)时,最常见的失败模式是:Key 完全正确,但请求仍然被拒

根本原因是格式不完全兼容 OpenAI 协议,主要体现在两点:

  • 推理模型使用 developer role 发送系统提示,部分网关返回 400/422

  • 字段名差异:dsh 默认用 max_completion_tokens,旧版网关只认 max_tokens

统一解法是添加 compat 配置:

llm-pi-ai:
  providers:
    my-gateway:
      baseURL: https://your-gateway.com/v1
      apiKeyEnv: YOUR_GATEWAY_KEY
      compat:
        supportsDeveloperRole: false   # 关闭 developer role
        maxTokensField: max_tokens     # 兼容旧版字段名
      models:
        - id: deepseek-v4-flash
        - id: deepseek-v4-0324

以下是一个多模型聚合平台的完整接入配置示例(字段设置逻辑相同):

llm-pi-ai:
  providers:
    qiniu-api:
      apiKeyEnv: QINIU_API_KEY
      api: openai-completions
      baseURL: https://api.qnaigc.com/v1
      compat:
        supportsDeveloperRole: false
        maxTokensField: max_tokens
      models:
        - id: deepseek-v4-flash
        - id: kimi-k3
        - id: glm-5.3

坑 6:compat 字段值不能为空

supportsDeveloperRole: null 会报"no value"错误,必须显式写 truefalse

坑 7:401 错误实际上是模型 ID 未声明

部分提供方不开放 GET /v1/models 自动发现接口,dsh 无法自动获取模型列表,必须在 models 块手动写入每个模型 ID(ID 必须与提供方完全一致,不能缩写)。


视觉模型配置

坑 8:图片发送前被客户端直接拒绝

手动录入的模型默认不声明视觉能力,dsh 会在客户端层面阻止图片上传。解决方式:

models:
  - id: vision-capable-model
    input: [text, image]   # 显式声明多模态输入

只对确实支持视觉输入的端点声明,否则提供方收到图片请求后会报错。


升级注意:rc.8 历史会话消失

坑 9:升级到 rc.8 后,所有历史会话不见了

rc.8 对 SQLite 存储后端做了不向下兼容的格式变更,旧格式数据无法自动迁移。

  • 预防:每次升级前备份 $DSH_HOME 目录(默认在 ~/.dsh/

  • 已升级:目前无官方迁移工具,等待后续版本补齐

  • 需要旧数据:降回 rc.7 手动导出后再升级


插件生态入门

dsh 在发布 24 小时内就出现了社区记忆管理、上下文压缩、定时调度插件。安装社区插件:

dsh plugin --profile web add <包名>

在插件仓库添加 dsh-plugin topic 即可被社区目录收录。开发最小插件只需一个 index.js

export const name = 'my-tool'
export const inject = ['tools']

export function apply(ctx) {
  ctx.tools.register(defineTool({
    name: 'hello',
    description: '打招呼工具',
    parameters: { name: { type: 'string', required: true } },
    output: {
      schema: { type: 'string' },
      render: (_args, val) => [{ type: 'text', text: val }],
    },
    async execute(args) { return 'Hello, ' + args.name + '!' }
  }))
}

坑 10:自动生成的插件导致 Web 卡在 "Failed to load plugins"

AI 生成的插件有时会包含自启动逻辑,加载后导致 Web UI 卡死。解决步骤:进入配置文件,从 web profile 的 plugins 列表移除该插件 ID,重启 dsh。开发阶段建议用 --patch 方式加载本地插件而非写入 profile,出错时移除 patch 文件即可。


dsh vs Claude Code vs Codex:三款框架核心差异

维度

DeepSeek Harness

Claude Code

Codex

模型绑定

任意(插件化)

主要绑定 Anthropic

主要绑定 OpenAI

开源协议

MIT

商业

CLI 开源

可扩展性

极高(一切皆插件)

强(MCP + 插件)

强(MCP)

后台托管 Agent

成熟度

Developer Preview

生产就绪

生产就绪

最适场景

组装定制、编排其他 Harness

Anthropic 模型深度集成

OpenAI 生态集成

dsh 的独特能力:它可以将 Claude Code 或 Codex 作为子 Agent 调用,即用 dsh 做元框架编排其他框架,在多模型协作场景下有架构优势。


常见问题

Q:DeepSeek V4 和 DeepSeek Harness 是同一个东西吗?

不是。DeepSeek V4 是语言模型,DeepSeek Harness 是让模型"干活"的运行框架。类比:V4 是发动机,Harness 是整辆车的传动和控制系统。模型只负责思考,Harness 负责读写文件、执行命令、管理会话状态和调度工具。

Q:现在上手值得吗?还是等稳定版?

官方已明确"未来几个月接口会快速演化",等待意味着踩坑早期版本的文档和社区积累都需要等。现在上手的优势是:与社区插件一起成长,贡献早期反馈,有机会参与 awesome-deepseek-harness 目录收录,且核心使用流程(Web UI、四种模式、基础工具集)已相对稳定,API 层才是易变部分。

Q:dsh 支持本地模型(Ollama)吗?

支持。配置 baseURL 指向 Ollama 的本地端点(默认 http://localhost:11434/v1),无需 API Key(或填任意字符串),即可离线使用本地 LLM。性能依赖本机 GPU,推荐至少 RTX 3090 级别运行 14B 以上模型。

Q:dsh 的会话日志存在哪里?

存储在 $DSH_HOME(默认 ~/.dsh/),使用 SQLite + zstd 压缩格式。从 rc.8 起跨会话历史使用多帧 zstd,手动解析时需注意格式处理。Trajectory 视图支持恢复、分叉和回放任意历史节点。

Q:如何诊断"Key 正确但请求仍失败"?

按以下顺序排查:① 用 curl 直接测试端点,确认网络和 Key 没问题;② 查看报错关键词(MISSING_CREDENTIAL / UNKNOWN_MODEL / 401);③ 检查 compat.supportsDeveloperRole 是否需要设为 false;④ 检查 compat.maxTokensField 是否需要改为 max_tokens;⑤ 手动补充 models 列表中缺少的模型 ID。


总结

DeepSeek Harness 的三成用户在第一步就卡住——根本原因集中在 Node.js 版本、工作区未选择、API Key 空格三处,均属于可提前规避的环境问题。进入自定义网关阶段后,compat.supportsDeveloperRole: falsecompat.maxTokensField: max_tokens 这两行配置能覆盖 80% 以上的兼容性报错。插件生态在发布 24 小时内已出现记忆管理和调度插件,社区增长速度超过任何一个同期开源 Agent 框架。

据 winder.ai 的横向对比分析(2026 年 8 月),dsh 当前最适合"从零组装 Agent 基础设施"和"需要模型无关架构"的场景,生产环境部署建议等待 rc.8 稳定后的下一个 milestone。

本文内容基于 DeepSeek Harness rc.8 版本(2026 年 8 月),接口迭代较快,建议核对官方文档。


延伸资源

  • DeepSeek Harness 官方仓库:github.com/deepseek-ai/deepseek-harness

  • 开发者社区讨论(踩坑帖):github.com/deepseek-ai/deepseek-harness/discussions

  • Agent 实战接入多模型 API:developer.qiniu.com/aitokenapi/12912/deepseek-with-openai-sdk-build-agent

  • 五款 Harness 横向对比:winder.ai/ai-agent-harness-comparison