DeepSeek Harness

把 DeepSeek Harness(dsh)的模型插件指向 U-Token 通用币——安装、配置供应商、设置 API Key 与验证。

DeepSeek Harness(命令名 dsh)是 DeepSeek 官方开源的 agent harness,采用「一切皆插件」架构——模型、工具、技能、会话、沙箱、界面全部是可替换的插件。它默认调用 DeepSeek 官方 API,把其中的模型插件指向 U-Token 通用币 之后,同一套 harness 就能使用 U-Token 通用币 目录里的全部模型。

dsh 处于开发者预览阶段,官方明确说明会有破坏性变更,配置字段可能随版本变化。

前提条件

  • 已注册 U-Token 通用币 账号并获取 API Key(前往获取 ↗)
  • 已安装 Node.js(dsh 通过 npm 分发)

配置步骤

1. 安装 dsh

dsh 的包名是 @deepseek-ai/dsh,安装后提供 dsh 命令。

npm install -g pnpm          # 已安装可跳过
pnpm add -g @deepseek-ai/dsh
dsh --version

pnpm 的全局 bin 目录需要在 PATH 上,用 pnpm bin -g 可以查到具体路径。安装过程中 pnpm 可能提示 Ignored build scripts: node-pty, koffi …,可以忽略——这两个依赖自带各平台预编译二进制,不需要本地编译。

不想全局安装也可以直接试跑:

npx @deepseek-ai/dsh web

2. 配置自定义供应商

dsh 的配置根目录是 $DSH_HOME,macOS / Linux 默认 ~/.dsh,Windows 默认 %USERPROFILE%\.dsh。以下两种方式任选其一。

dsh web

终端会打印一个带 token 的地址(默认 http://127.0.0.1:3080)并自动打开浏览器。点左下角的设置。

dsh 的 Web 界面,左侧是新会话与工作区列表,中间是会话输入框,红框标出左下角的「设置」入口

在左侧切到模型。内置的 DeepSeek(deepseek-official)是官方直连,走 U-Token 通用币 需要新建一个自定义提供方——点添加自定义提供方。

按下表填写:

字段填入
Provider ID小写字母开头的标识,例如 gateway-codex
显示名称留空即跟随 Provider ID
API 地址https://u-token.ai/v1
API 协议openai-responses 或 openai-completions,见下方
API 密钥你的 U-Token 通用币 API Key

点获取可用模型,dsh 会调用 GET /v1/models 拉取这把 Key 授权的模型列表。勾选要用的,点添加所选。

模型目录填好后,点创建提供方。

dsh 自定义提供方表单的下半部分,模型目录里已列出 gpt-5.6、gpt-5.6-luna、gpt-5.6-sol、gpt-5.6-terra、gpt-6-astra 五个模型,箭头指向右下角的「创建提供方」按钮

API 协议按你要用的模型选。 上图用的是 openai-responses,配的是 GPT 系模型——它们开放了 Responses 端点。U-Token 通用币 只有部分模型支持 Responses(以 GET /v1/models 返回的 responses_endpoint 为准),其余模型改用 openai-completions 即可。Claude 另有原生协议,配法见再配一个 Claude 提供方。见协议与端点。

一个提供方只对应一种协议,需要的话可以建多个——例如 gateway-codex 走 openai-responses 给 GPT 系,gateway-claude 走 anthropic-messages 给 Claude 系,在模型选择器里按分组切换。

API Key 会写入 $DSH_HOME/.credentials.yaml(仅当前用户可读),供应商配置写入 $DSH_HOME/settings.yaml,保存后立即生效,无需重启。

模型 ID 填 GET /v1/models 返回的裸 ID(例如 gpt-5.6-sol、claude-opus-5),不需要渠道前缀——网关会按该密钥授权的渠道路由。模型目录留空也可以,此时选择器里不显示模型,但目录外的 ID 仍可直接发送。完整目录见模型列表。

3. 设置 API Key

apiKeyEnv 填的是凭据名。dsh 按「启动时的环境变量 → $DSH_HOME/.credentials.yaml → 项目目录 .env → 家目录 .env」的顺序解析。用 Web UI 配过的话 Key 已经在凭据文件里,可以跳过这一步。

写入 ~/.zshrc:

export AI_GATEWAY_API_KEY=sk-你的KEY

4. 验证

dsh --profile headless "只回复两个字:可用。不要调用任何工具。"

输出「可用」就说明模型层已经走通 U-Token 通用币。

在 Web 界面里,输入框右下角的模型选择器会多出该提供方的分组,选中其中一个模型即可开始对话。

dsh 的对话界面,用户发送「你好」后模型完成回复,消息下方显示用量 8.9K tok、用时 20 秒,输入框右下角标注当前模型 gpt-5.6-sol

日常使用可以启动 Web 界面(dsh web),或者用 dsh --profile headless "run the tests" 跑完单次任务后退出。

再配一个 Claude 提供方

Claude 在 U-Token 通用币 上走原生 Anthropic 协议,和 GPT 系那套 OpenAI 协议不是一回事。dsh 里一个提供方只绑定一种协议,所以再建一个自定义提供方即可——两个提供方可以共用同一把 API Key。

字段填入
Provider ID例如 gateway-claude
API 地址https://u-token.ai
API 协议anthropic-messages
API 密钥同一把 U-Token 通用币 API Key

这里的 API 地址不带 /v1。 Anthropic 原生协议的请求地址是 https://u-token.ai,与 OpenAI 协议用的 https://u-token.ai/v1 不同,填错会连不上。见客户端请求地址。

点获取可用模型,勾选 Claude 系列模型,点添加所选。

dsh 的「选择要添加的模型」弹窗,列出 claude-fable-5、claude-fable-5-1、claude-opus-4-6、claude-opus-4-7、claude-opus-4-8、claude-opus-5、claude-sonnet-4-6、claude-sonnet-5 八个模型并全部勾选

模型目录填好后点创建提供方。

dsh 自定义提供方表单的下半部分,模型目录里已列出八个 Claude 模型,箭头指向右下角的「创建提供方」按钮

配好后,模型选择器里会同时出现两个分组,按需切换即可。

dsh 的对话界面,用户发送「你好」后 claude-sonnet-5 完成回复,消息下方显示用量 16.9K tok、用时 7 秒,输入框右下角标注当前模型 claude-sonnet-5

三平台差异

配置文件的内容三平台完全一致,只有路径和环境变量写法不同。

macOSLinuxWindows
配置根目录 $DSH_HOME~/.dsh~/.dsh%USERPROFILE%\.dsh
API Key 持久化~/.zshrc~/.bashrcsetx
Shell 工具沙箱BashBashPowerShell(Bash 沙箱自动禁用)

常见问题

TIMEOUT: Request timed out.

dsh 是 Node 应用,不读取 http_proxy / all_proxy 环境变量,系统代理能连通不代表 dsh 能连通。确认 https://u-token.ai 在运行 dsh 的网络环境下可直接访问。

MISSING_CREDENTIAL

apiKeyEnv 写的凭据名没解析到值。确认环境变量在启动 dsh 的那个终端里已经生效,或者 Key 已经存进 $DSH_HOME/.credentials.yaml。

另一种情形是选错了模型:内置的 deepseek-official 即使没配 Key,它的模型也照样列在模型选择器里,名字和自定义路由的很像,注意别选到它。

回复是空的,也不报错

api 选了 openai-responses,但该模型并不支持 Responses 端点。把供应商的 api 改成 openai-completions。

INVALID_REQUEST / 400 endpoint_not_supported

报文里会写 does not support the /v1/responses endpoint。同样把 api 改成 openai-completions。

401 或 402

401 多为密钥错误、失效或前后带空格;402 是余额不足或该密钥已达消费上限。见错误排查。

插件加载失败、提示路由重复

同一个路由名被注册了两次,检查 $DSH_HOME/cordis.patch.yml 和 settings.yaml 里是否都定义了同名提供方。

进阶:用 patch 层配置

settings.yaml 改的是运行时用户设置,改完下一个请求就生效。如果要改插件装配本身(替换或禁用某个插件),用 patch 层 $DSH_HOME/cordis.patch.yml:

- id: llm-pi-ai
  config:
    providers:
      gateway-codex:
        apiKeyEnv: AI_GATEWAY_API_KEY
        api: openai-responses
        baseURL: https://u-token.ai/v1
- id: agent-default-model
  config:
    provider: gateway-codex
    model: gpt-5.6-sol

用 dsh web --dump-config 可以打印合成后的完整插件树,确认配置有没有生效。

推荐模型

完整模型列表见模型列表或控制台「价格」页。dsh 主要用于 agent 场景,建议选择支持工具调用的对话模型。

本页目录

On this page