Skip to content

DeepSeek Harness(dsh)配置

DeepSeek Harness 是官方 Agent 的 Web UI + CLI(npm 包 @deepseek-ai/dsh,命令 dsh)。可以接 DeepSeek 官方,也可以加 自定义 OpenAI 兼容网关——本站走这条。

官方模型配置:https://deepseek-harness.github.io/deepseek-harness/en/guide/providers

图形界面 = Settings → Models → Add a custom provider。命令行 = $DSH_HOME/settings.yamlllm-pi-ai + dsh --profile headless

快速字段

Provider IDashpetals(小写,保存后不能改名
baseURLhttps://api.ashpetals.com/v1必须带 /v1
apiopenai-completions(Chat);Claude 用 anthropic-messages 且 URL 不带 /v1
密钥环境变量名,例如 ASHPETALS_API_KEY
模型示例gpt-5.6-sol / deepseek-v4-flash
配置文件$DSH_HOME/settings.yaml(默认 ~/.dsh
密钥文件$DSH_HOME/.credentials.yaml(UI 保存后只回显脱敏)

pi-ai 适配层会把 baseURL 直接/chat/completions。少写 /v1 会 404。这一点和部分网关渠道「base 不带 /v1」相反。


图形界面(Web UI)

  1. 安装并启动 Web UI(见下方安装)。浏览器打开 Settings → Models
  2. 不要只填 DeepSeek 官方那一张卡(那是官方 Key)。点 Add a custom provider
  3. 填写:
    • Provider ID:ashpetals(永久;要改名只能新建再删旧的)
    • Display name:AshPetals API
    • Base URL:https://api.ashpetals.com/v1
    • API protocol:openai-completions
    • Credential:粘贴 sk-你的APIKey(或选已有环境变量)
  4. Model catalog → Fetch available models,勾选 gpt-5.6-sol 等,再 Save。手填模型默认当纯文本;需要视觉时要在 yaml 里给该模型加 input: [text, image]
  5. 把默认模型切到 ashpetals / gpt-5.6-sol
  6. 改动一般 下一请求生效,不必重启;路由大改时重启更稳。

UI 报 settings are unavailable in this browser:这是 dsh 把设置页限制在 localhost。请在本机浏览器打开,或按官方 / 发行版说明为远程域名装 lanmode 类插件。本页不展开自建反代。


命令行 / 配置文件

安装

bash
npm install -g @deepseek-ai/dsh
dsh --version

开发预览版迭代快,以 dsh --version 为准。Web UI:

bash
# 默认数据目录 ~/.dsh ;可显式指定
DSH_HOME=~/.dsh dsh web --port 8123 --host 127.0.0.1

settings.yaml(llm-pi-ai)

密钥不要写进 yaml。用环境变量名,把真 Key 放 $DSH_HOME/.env 或启动环境:

bash
# $DSH_HOME/.env
ASHPETALS_API_KEY=sk-你的APIKey
yaml
llm-pi-ai:
  providers:
    ashpetals:
      apiKeyEnv: ASHPETALS_API_KEY
      displayName: AshPetals API
      api: openai-completions
      baseURL: https://api.ashpetals.com/v1
      models:
        - id: gpt-5.6-sol
          name: GPT-5.6 Sol
          contextWindow: 272000
          maxTokens: 16384
          input: [text]
        - id: deepseek-v4-flash
          name: DeepSeek V4 Flash
          contextWindow: 128000
          maxTokens: 8192
          input: [text]

Claude 分组(另建 provider):

yaml
    ashpetals-claude:
      apiKeyEnv: ASHPETALS_API_KEY
      displayName: AshPetals Claude
      api: anthropic-messages
      baseURL: https://api.ashpetals.com
      models:
        - id: claude-sonnet-5
          name: Claude Sonnet 5
          contextWindow: 200000
          maxTokens: 8192
          input: [text]

api 常用值:openai-completions / openai-responses / anthropic-messages。Codex 风格走 Responses 时用 openai-responses,Base 仍带 /v1

默认模型

Web profile 的用户补丁(不要改发行版 cordis.yml)。常见路径:$DSH_HOME/profiles/web/cordis.patch.yml

yaml
- id: agent-default-model
  config:
    provider: ashpetals
    model: gpt-5.6-sol

核对合成配置:

bash
dsh --profile web --dump-config | grep -A4 agent-default-model

无浏览器验收(headless)

dsh 的 API 是 RPC,不是 REST,curl 页面接口往往会 404。用内置 headless:

bash
cat > /tmp/ashpetals.patch.yml <<'EOF'
- id: agent-default-model
  config:
    provider: ashpetals
    model: gpt-5.6-sol
EOF

DSH_HOME=~/.dsh ASHPETALS_API_KEY="sk-你的APIKey" \
  timeout 150 dsh --profile headless --patch /tmp/ashpetals.patch.yml "reply with exactly: PONG"

输出 PONG = 配置 + 密钥 + 本站 + 适配层全通。headless 默认可能走 DeepSeek 官方,必须 --patch 切到 ashpetals


验证

  • UI:Settings 里能看到 ashpetals,发一条短消息。
  • dsh --profile web --dump-configashpetals / gpt-5.6-sol
  • headless 返回 PONG
bash
curl -sS https://api.ashpetals.com/v1/chat/completions \
  -H "Authorization: Bearer sk-你的APIKey" \
  -H "Content-Type: application/json" \
  -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"ping"}]}'

注意事项

  • baseURL 必须带 /v1(openai-completions / openai-responses)。少了会 404。
  • Provider ID 永久。显示名、URL、模型列表可改。
  • 手填模型默认 text-only;视觉模型要在 yaml 给 input: [text, image],否则 UI 会在发图前拒绝。
  • UI 保存的 Key 进 .credentials.yaml,yaml 里只留 apiKeyEnv 引用。
  • 远程域名打开设置页可能被围栏拦住,优先本机 127.0.0.1
  • 不要把 Key 提交到 Git。.env 权限建议 chmod 600

AshPetals API — 单主站 · OpenAI 兼容