教程DeepSeek Harness

DeepSeek Harness(dsh)接入中转站:添加自定义模型 API,协议和地址怎么填

按 DeepSeek Harness 官方文档整理:在“设置 → 模型”里添加模型提供商,切换到“自定义模型 API”,填 Provider ID、中转站地址、协议和 key,再加上模型。讲清三种协议怎么选、密钥存在哪里、中转站拒绝请求时改哪两个兼容开关,以及常见报错怎么查。

发布 · 约 9 分钟读完 · 经人工审核()· 本站的内容怎么来的

本文根据公开分享整理,本站尚未实测。操作前请对照文末的原始来源。

本页目录(9 节)
  1. 开始之前
  2. 第一步:打开模型设置
  3. 第二步:切换到自定义模型 API
  4. 第三步:添加模型
  5. 第四步:选模型,发一条试试
  6. 中转站拒绝每一个请求:改两个兼容开关
  7. 推理等级和思考开关
  8. 常见问题
  9. 接上之后

DeepSeek Harness(命令是 dsh)是 DeepSeek 开源的智能体框架,有桌面应用,也可以用一条命令启动网页界面。它默认用 DeepSeek 自己的接口,但官方文档专门写了怎么接别的服务,原话是“对于中转站、公司网关、自建服务器”,用自定义模型 API:

  1. 打开 设置 → 模型,点 添加模型提供商;
  2. 把卡片从“第三方模型提供商”切换到 自定义模型 API;
  3. 填 Provider ID、API 地址、API 协议、API 密钥;
  4. 添加至少一个模型,保存。

官方说明,模型的变更在下一次请求时生效,不用重启。

如果你还没弄清中转站是什么、有哪些风险,先读中转站是什么和用中转站有什么风险;选站可以看中转站排行榜。

开始之前

先把 dsh 跑起来

两种用法,任选一种:

  • 桌面应用:在官网下载,有 macOS(Apple 芯片)和 Windows(64 位)两个版本。
  • 网页界面:装好 Node.js 后运行下面的命令,默认在 http://127.0.0.1:3080 打开。
npx @deepseek-ai/dsh web

官方把它标为开发者预览,并提醒以后会有不兼容的改动。本文按 2026-10-10 的官方文档写,界面上的名字以你装的版本为准。

从中转站拿到三样东西

需要什么 说明
接口地址 以及它是哪一种接口,见下面第二步
模型名 中转站模型页上写的名字,一字不差
API key 在中转站的控制台创建,多数站只显示一次

1打开模型设置

打开 设置 → 模型。页面上先是一张 DeepSeek 的卡片,只有一个 API 密钥的输入框,那是给 DeepSeek 官方接口用的,接中转站不填它。往下找到 添加模型提供商。

桌面应用第一次启动会先出一个欢迎窗口。 按官方的说明,没有配置过密钥时,欢迎窗口会让你填 API Key,“保存并继续”存进去的是 DeepSeek 官方提供方的密钥。只用中转站的话,点 稍后配置 直接进工作区,再到设置里按本文添加。

官方说明里写着,点“稍后配置”不会留下完成标记,下次启动还会再检查一次密钥。配好中转站之后欢迎窗口还出不出现,官方没有写明;再出现的话再点一次“稍后配置”即可。

2切换到自定义模型 API

点“添加模型提供商”后,卡片默认打开的是 第三方模型提供商。那里列的是 dsh 自带的几家,比如 anthropic、openai,选了之后地址、协议和模型列表都由内置的目录提供,默认连的是各家官方的接口。

不要拿这些自带的提供商改个地址来接中转站。官方文档说明,自带提供商的模型列表一律由内置目录回答,哪怕它的地址已经指向了网关;想看中转站实际提供哪些模型,要用自定义提供商。

接中转站要把卡片切换到 自定义模型 API,然后填:

项目 填什么
Provider ID 自己起,小写。以后不能改,见下文
显示名称 模型选择器里显示的名字,可以改
API 地址 中转站的接口地址
API 协议 三选一,见下文
API 密钥 中转站的 key

Provider ID 一次定好

官方文档说明,Provider ID 是永久的:请求、已保存的会话、模型默认值和密钥的引用都用它。想改名只能新建一个提供商,再把旧的删掉。显示名称、地址、协议、密钥和模型以后都还能改。

起一个认得出的小写名字,比如 my-relay。

协议三选一

界面上的选项 配置文件里的写法 什么时候选
OpenAI Chat Completions openai-completions 中转站的 OpenAI 兼容接口。最通用
OpenAI Responses openai-responses 模型要走 OpenAI 的 Responses 接口时
Anthropic Messages anthropic-messages 用 Claude,中转站提供 Anthropic 原生接口时

官方的要求是:协议必须选中转站实际使用的那一种。 另外,一个提供商只能用一种协议。中转站同时提供 OpenAI 兼容和 Anthropic 原生两种接口、你两种都想用时,要建两个提供商,各起一个 Provider ID。

三种接口的区别见接入中转站的通用方法。

地址怎么填

官方文档里 OpenAI 协议的例子,地址都是带 /v1 的写法:

https://gateway.example/v1

所以选 OpenAI Chat Completions 时,填中转站带 /v1 的那个地址。以酷站AI 为例,它的文档写的 OpenAI 兼容接口是 https://api.koozhan.com/v1。

选 Anthropic Messages 时地址要不要带 /v1,官方文档没有给例子。Anthropic 一系的工具通常只填到域名,酷站AI 的文档给 Anthropic 接口的地址也是不带 /v1 的 https://api.koozhan.com。这一条是我们按惯例推的,不是 dsh 官方的说明,填完用下面的“获取可用模型”和一次真实对话确认;不通的话把 /v1 加上再试。

密钥存在哪里

官方文档说明,密钥是只写的:保存之后,页面只能拿到脱敏后的描述,拿不到明文。密钥存在 $DSH_HOME/.credentials.yaml 里,配置文件里只留一个引用。$DSH_HOME 默认是 ~/.dsh。

这意味着保存后在界面上看不到原来的 key,中转站那边又多数只显示一次,所以创建时自己另存一份。

3添加模型

自定义的提供商至少要有一个模型才能保存。两种加法:

  • 探测:在“模型目录”里点 获取可用模型,dsh 会用表单里当前的地址、协议和密钥去问中转站有哪些模型。返回的列表可以搜索,勾选要用的,点 添加所选。
  • 手动:直接填模型 ID,照中转站的模型页写。

官方对探测的定位是“便利手段而非保证”:它读的是常见网关公开的列表格式,不是每个接口都这样回答。探测失败或者列表是空的,手动填模型 ID,效果完全一样。

每个模型可以设显示名称、上下文窗口、最大输出 token 数和输入类型。上下文窗口和输出上限按模型实际的值填;不填时 dsh 有自己的回退值。

能看图的模型要勾“图片”

手动加的模型默认只勾了文本。模型支持看图的话,编辑这个提供商,打开“自定义设置”,展开模型的“模型选项”,在输入类型里勾上图片再保存。

官方提醒,这个勾选是你对接口的声明,dsh 不会替你检查。勾了图片而中转站那边的模型其实不支持,请求会被中转站拒绝。

4选模型,发一条试试

配好的提供商会出现在模型选择器里。选一个模型,它同时成为新会话的默认模型。

然后按官方快速上手的顺序:点 选择工作区,添加一个项目目录并选中,再发一条要动手的任务,比如:

总结一下这个仓库,列出主要的几个目录是做什么的。

它能读到文件并回答,说明模型和工具调用都是通的。

中转站拒绝每一个请求:改两个兼容开关

这是接中转站时最可能卡住的地方,官方文档专门写了一节。

情况是这样的:key 是对的,地址也通,但每个请求都被拒绝。原因是 dsh 会按接口的地址判断请求该长什么样,遇到不认识的地址,就当成 OpenAI 官方来对待。而多数 OpenAI 兼容的网关,总有一两样 OpenAI 接受的东西是它不接受的。

官方说其中两样占了绝大多数:

问题 表现 开关
系统提示词用 developer 角色发出,很多网关不认 只有带推理能力的模型失败,或者全部失败 supportsDeveloperRole: false
输出上限写成 max_completion_tokens,有的服务只认 max_tokens 请求被拒 maxTokensField: max_tokens

这两个开关界面上没有,要改配置文件。 文件的位置:

$DSH_HOME/profiles/<profile>/cordis.patch.yml

用 dsh web 启动的网页界面,<profile> 是 web;桌面应用用的是 desktop。浏览器和服务在同一台电脑上时,可以点设置页顶部的 打开配置文件 直接打开它。这份文件就是模型页写入的那一份。

找到 llm-pi-ai 下面你那个提供商,加上 compat:

- id: llm-pi-ai
  config:
    providers:
      my-relay:
        # 表单写入的其他字段保持原样
        api: openai-completions
        baseURL: https://你的中转站地址/v1
        compat:
          supportsDeveloperRole: false
          maxTokensField: max_tokens
        models:
          - id: 模型名

改的时候注意三点,都来自官方文档:

  • 只加,不要删别的。 配置覆盖是整条替换的,编辑已有的条目时要保留其他提供商和字段。
  • 开关必须给值。 冒号后面留空会被拒绝,不会被忽略。
  • 不用重启。 适配器在下一次请求时重新读取这份文件。

推理等级和思考开关

手动加的模型不带推理等级,所以模型菜单里不会出现“推理等级”这一项,思不思考由中转站那边的默认值决定。想要这个菜单,同样在配置文件里给模型加 reasoningEfforts:

        models:
          - id: 模型名
            reasoningEfforts:
              off:
              high: high
              max: max

左边是菜单里显示的等级,右边是实际发给接口的值。只有 off 可以留空,意思是不传这个参数。

通过中转站用 DeepSeek 的模型时还有一个坑。官方举的例子是 OpenAI 兼容网关后面的 DeepSeek V4:它不明确关闭就会一直思考,留空的 off 什么都不发,停不下来。这时要给模型加一行:

            compat:
              thinkingFormat: deepseek

加了之后,off 会明确发出关闭思考的字段。

常见问题

报错的代号和含义取自官方的排错清单。

现象 原因和办法
MISSING_CREDENTIAL 这个提供商没有存密钥。到模型页把 key 填进去
UNKNOWN_MODEL 选的模型没有配置。给自定义提供商补上这个模型
获取可用模型返回 401 key 不对。另外,探测调用的是 OpenAI 兼容的 GET /models,中转站没有这个接口时手动填模型
获取可用模型提示没有 data 数组也没有 models 对象 中转站返回的列表格式探测读不了。手动填模型
key 和地址都对,每个请求都被拒绝 请求的写法和中转站要的不一样。先加上文的两个兼容开关
只有推理模型失败 中转站不认 developer 角色。设 supportsDeveloperRole: false
手动加的模型没有推理等级菜单 给模型加 reasoningEfforts
选了 off,DeepSeek 模型还在思考 加 compat.thinkingFormat: deepseek
图片在发送前被拒绝 这个模型没有声明图片。在输入类型里勾上图片
中转站拒绝了带图片的请求 模型其实不支持图片。取消勾选,然后开一个新会话:图片留在旧会话的记录里,同一个请求会不断重发
输入框显示“选择模型”,不能输入 默认模型指向的提供商被删了。重新选一个模型
想改 Provider ID 改不了。新建一个,再删掉旧的

接上之后

  • 验证拿到的是不是真模型。 能回答不等于给你的是它声称的模型。用同一把 key 到 Veridrop 检测一次,背景见中转站怎么掺假。
  • 它能动你电脑上的文件和命令。 官方的安全说明写得很直接:这是实验性的开发者预览软件,没有经过安全审计,可以执行模型生成的代码和命令;建议只给最小的权限,优先在虚拟机、容器或专用环境里运行,并备份它能访问到的文件。
  • 你的文件内容会经过中转站。 它读到的代码和文档会发给模型。涉及公司资料时,先想清楚能不能走第三方,见用中转站有什么风险。
  • 留意消耗。 智能体每一步都要把上下文带上,token 用得比普通对话快。开始时多看几次中转站控制台的用量。
  • 其他智能体的接法:OpenClaw 接入中转站、Hermes Agent 接入中转站、WorkBuddy 接入中转站。

来源

通过 API 中转站使用这些模型?到 Veridrop 免费检测中转站给你的是不是它声称的模型,或者看看中转站排行榜前 100 名。

相关文章

  • DeepSeek Harness 在国内网络下怎么用:代理要设环境变量,哪些请求不走代理教程 · DeepSeek Harness · 约 6 分钟

    按 DeepSeek Harness 官方文档整理:dsh 不读操作系统的代理设置,只认 HTTP_PROXY、HTTPS_PROXY 这些环境变量,所以常见的情况是浏览器能上、它连不上。讲清变量设在哪里、不支持 SOCKS、哪些地址要直连、哪些请求本来就不走代理,以及怎么验证。

  • 从 Claude Code、Codex 过来:DeepSeek Harness 认哪些现成的配置教程 · DeepSeek Harness · 约 10 分钟

    按 DeepSeek Harness 官方文档整理:项目里的 AGENTS.md 和 CLAUDE.md 默认就读;技能要放在 .agents/skills;Claude Code、Codex 的钩子有实验性桥接,只支持部分事件;模组兼容层只是演示;还能把 Claude Code、Codex 当子智能体调用。

  • DeepSeek Harness 的自动化:定时提醒怎么建,GitHub 有新 PR 自动开评审教程 · DeepSeek Harness · 约 7 分钟

    按 DeepSeek Harness 官方文档整理两种自动化:在对话里让它建定时提醒,到点自己把任务发回原来的会话;配一个 GitHub Webhook,PR 转为可评审时自动开一个只读的评审会话。讲清怎么开启、支持哪些时间规则、关掉程序会怎样,以及发送记录不等于执行结果。

  • DeepSeek Harness 的命令行用法:一条命令跑完一个任务,接进脚本和 Python 程序教程 · DeepSeek Harness · 约 6 分钟

    按 DeepSeek Harness 官方文档整理:除了桌面和网页界面,dsh 还能在命令行里一次跑完一个任务就退出,适合放进脚本和 CI;也能用 Python SDK 从自己的程序里调用。讲清 headless 模式的输入输出、退出码、JSON 事件流、怎么接着上一段对话,以及 SDK 的最小例子。