外观
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.yaml 的 llm-pi-ai + dsh --profile headless。
快速字段
| 项 | 值 |
|---|---|
| Provider ID | ashpetals(小写,保存后不能改名) |
| baseURL | https://api.ashpetals.com/v1(必须带 /v1) |
| api | openai-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)
- 安装并启动 Web UI(见下方安装)。浏览器打开 Settings → Models。
- 不要只填 DeepSeek 官方那一张卡(那是官方 Key)。点 Add a custom provider。
- 填写:
- Provider ID:
ashpetals(永久;要改名只能新建再删旧的) - Display name:
AshPetals API - Base URL:
https://api.ashpetals.com/v1 - API protocol:
openai-completions - Credential:粘贴
sk-你的APIKey(或选已有环境变量)
- Provider ID:
- Model catalog → Fetch available models,勾选
gpt-5.6-sol等,再 Save。手填模型默认当纯文本;需要视觉时要在 yaml 里给该模型加input: [text, image]。 - 把默认模型切到
ashpetals / gpt-5.6-sol。 - 改动一般 下一请求生效,不必重启;路由大改时重启更稳。
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.1settings.yaml(llm-pi-ai)
密钥不要写进 yaml。用环境变量名,把真 Key 放 $DSH_HOME/.env 或启动环境:
bash
# $DSH_HOME/.env
ASHPETALS_API_KEY=sk-你的APIKeyyaml
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-config含ashpetals/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。