DeepSeek Harness 设置

本指南介绍如何将 DeepSeek Harnessdsh)接到 Aiberm,把它当作自定义的 OpenAI 兼容提供方。配置完成后,一把 Aiberm API Key 即可调用 Claude、GPT、Gemini、DeepSeek、Kimi、MiniMax、GLM、Grok 以及平台上的其他模型。

Info

DeepSeek Harness 目前处于开发者预览阶段,迭代很快。本页依据官方 README配置模型指南,再映射到 Aiberm。

什么是 DeepSeek Harness?

DeepSeek Harness 是 DeepSeek AI 开源的 agent harness(智能体框架)。它采用「一切皆插件」架构,由 Cordis 组合。日常入口是浏览器界面(dsh web);同一套 home 目录也服务于一次性 headless 任务。

官方项目:

前置条件

  • Aiberm 账户(注册
  • Aiberm API Key(获取 Key
  • 已安装 Node.jsnpx 需要)
  • macOS、Linux 或 Windows 上的终端

安装并启动

官方推荐的安装方式是一次性 npx 启动。请先进入希望智能体工作的项目目录:

npx @deepseek-ai/dsh web

Web UI 默认监听 http://127.0.0.1:3080。当前工作目录会成为 workspace 根目录。

常用变体:

# 换端口
npx @deepseek-ai/dsh web --port 8080

# 一次性 headless 任务(与 Web UI 共用模型和凭据)
npx @deepseek-ai/dsh --profile headless "总结一下 README"

如果已经安装了 CLI:

dsh web
dsh --help
dsh web --help
Tip

webheadless profile 会在首次使用时自动创建在 $DSH_HOME(默认 ~/.dsh)下。只想用 Aiberm,不必克隆源码仓库。

配置 Aiberm(推荐:Web UI)

Aiberm 不是内置的 DeepSeek 卡片,也 不是 目录里的 OpenAI / Anthropic 提供方。那些条目会继续走官方端点。Aiberm 是 OpenAI 兼容网关,因此应添加为自定义提供方

官方参考:配置模型

步骤 1:打开「设置 → 模型」

在 Web UI 中打开 设置 → 模型

步骤 2:添加自定义提供方

选择 添加自定义提供方,填写:

字段
Provider IDaiberm(小写,永久 — 会话、默认模型和凭据名都会用到它)
显示名称Aiberm
基础 URLhttps://aiberm.com/v1
API 协议openai-completions
API 密钥控制台 → API Tokens 获取的 Aiberm Key

添加自定义提供方表单

Warning

Provider ID 之后不能改名。请求、已保存会话、默认模型和凭据引用都会使用它。若要更换,请新增提供方并删除旧的。

步骤 3:拉取或手填模型

模型目录 中选择 获取可用模型。Harness 会用你刚填的密钥调用 Aiberm 的 OpenAI 兼容接口 GET /v1/models。勾选需要的模型后保存。

从 Aiberm 获取可用模型

若发现失败,请手工填写模型 ID。ID 见模型列表Aiberm 价格页。例如:

  • claude-sonnet-4-6
  • claude-opus-4-6
  • gpt-5.4
  • google/gemini-3-flash
  • deepseek/deepseek-v4-pro
  • grok-4.6
Info

页面不会把 API 密钥写入 settings.yaml。密钥以只写方式存在 $DSH_HOME/.credentials.yaml,设置里只保留类似 AIBERM_API_KEY 的引用。

步骤 4:选择模型

保存后,输入框右下角的模型选择器会出现 Aiberm。选中某个模型,也会把它设为新会话的默认值。已经发过请求的会话会保留自身日志里记录的模型。

选择器会把内置 DeepSeek 模型与自定义提供方 Aiberm 分组显示。Claude、GPT、Gemini 以及其余目录请走 Aiberm 这一组。

配置 Aiberm(settings.yaml)

也可以直接编辑 $DSH_HOME/settings.yaml(通常是 ~/.dsh/settings.yaml)声明同一提供方。不要把 API 密钥写进这个文件。

llm-pi-ai:
  providers:
    aiberm:
      displayName: Aiberm
      apiKeyEnv: AIBERM_API_KEY
      api: openai-completions
      baseURL: https://aiberm.com/v1
      models:
        - id: claude-sonnet-4-6
        - id: claude-opus-4-6
        - id: claude-opus-4-6-thinking
        - id: gpt-5.4
        - id: google/gemini-3-flash
        - id: deepseek/deepseek-v4-pro
        - id: grok-4.6
        - id: kimi-k2.6
        - id: minimax-m2.7

agent-default-model:
  provider: aiberm
  model: claude-sonnet-4-6

然后把密钥放到下面任一位置(请求时按优先级取第一份有效值):

  1. 启动环境:AIBERM_API_KEY=sk-... npx @deepseek-ai/dsh web
  2. $DSH_HOME/.credentials.yaml(模型页写入的位置):
AIBERM_API_KEY: sk-your-aiberm-api-key
  1. 启动目录下的项目 .env,或 $DSH_HOME/.env

官方凭据优先级:进程环境 → $DSH_HOME/.credentials.yaml → 项目 .env$DSH_HOME/.env。在模型页写入的值会覆盖旧的 .env 密钥。

在 POSIX 上请把 .credentials.yaml 权限保持为 600

Harness 自带目录里没有的自定义路由必须同时设置 apibaseURL 和非空 models 列表。models替换该路由的目录——选择器里要出现的每个模型都必须写进去。只写 id 就够。

视觉模型

手工填写的模型在自行声明之前一律按纯文本对待。给这类模型附加图片,会在发送前被拒绝。

对 Aiberm 上的视觉模型,在 settings.yaml 里补上 input

llm-pi-ai:
  providers:
    aiberm:
      apiKeyEnv: AIBERM_API_KEY
      api: openai-completions
      baseURL: https://aiberm.com/v1
      models:
        - id: claude-sonnet-4-6
        - id: gemini-3-pro-image-preview
          input: [text, image]
        - id: gpt-image-2
          input: [text, image]

如果列表里的模型都接受图片,可以在路由上设置一次回退:

defaultInput: [text, image]

defaultInput 是回退值,不是覆盖值,默认是 [text]

验证配置

  1. 打开 http://127.0.0.1:3080
  2. 确认模型选择器里有 Aiberm 以及你的模型。

模型选择器中的 Aiberm 分组

  1. 发送一句简短提示,例如 Hi
  2. 可选:直接向 Aiberm 拉取模型列表:
curl -H "Authorization: Bearer sk-your-aiberm-api-key" \
     https://aiberm.com/v1/models

若选择器里缺少某些 ID,把它们补进该提供方的 models 列表(或重新执行 获取可用模型)。

Headless 与命令行

Web UI 与 dsh --profile headless 共用 $DSH_HOME。Aiberm 只需配置一次,然后即可运行:

npx @deepseek-ai/dsh --profile headless "列出这个目录里的文件"

启动器自己的 flag 必须写在最前面,其后全部交给 profile:

dsh --profile web --port 8080
dsh --profile web --help
dsh --help

故障排除

MISSING_CREDENTIAL

路由引用了 AIBERM_API_KEY(或其他 apiKeyEnv),但没有任何值。请到 设置 → 模型 保存密钥,或在启动 dsh 的 shell 里导出同名环境变量。

UNKNOWN_MODEL

所选模型不在该提供方的 models 列表中。请重新获取模型,或手工补上 ID。Aiberm 的模型 ID 会随时间变化——请到模型列表核对。

获取模型或对话时出现 401

  • Aiberm 控制台核对密钥。
  • 基础 URL 必须是 https://aiberm.com/v1(包含 /v1)。
  • 不要把密钥粘进 settings.yaml;应放在凭据文件或环境变量里。

请求仍发往 DeepSeek 或 OpenAI

你配置的是内置 DeepSeek 卡片,或目录里的 openai / anthropic 提供方。它们会继续走官方端点。删掉配错的那一行,改用 自定义提供方,ID 为 aiberm,基础 URL 为 https://aiberm.com/v1

图片在发送前被拒绝

该模型未声明图片模态。请给它加上 input: [text, image](见视觉模型),然后开启新会话。已附加的图片会留在旧会话日志里。

改了配置不生效

提供方和密钥的变更会在下一次请求生效,不必重启服务器。已有会话会保留日志里已经记下的模型。改完默认值后请新开对话。

文件位置

路径用途
$DSH_HOME/settings.yaml提供方、模型列表、默认模型(~/.dsh/settings.yaml
$DSH_HOME/.credentials.yaml只存 API 密钥
$DSH_HOME/profiles/web/自动创建的 web profile

注意事项

  • 密钥优先通过模型页保存。settings.yaml 只应保留 apiKeyEnv 引用。
  • 不要在已经存放敏感凭据、且你不希望智能体读取的目录里启动它。
  • 超时、重试、推理兼容等进阶字段见官方 dsh-llm-pi-ai README

相关链接