> ## Documentation Index
> Fetch the complete documentation index at: https://docs.token.poryf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness

> 在 DeepSeek Harness（dsh）中添加再来点Token作为模型供应商，改一个 settings.yaml 即可。

DeepSeek Harness（命令名 `dsh`）是深度求索开源的 AI Agent 框架，支持通过 `settings.yaml` 接入 OpenAI 兼容的第三方模型服务。本站的 DeepSeek、GLM、Kimi 系列都可以添加，接入方式是：把 Base URL 换成本站地址，再填本站的 API 密钥。

| 项目 | 填写 |
| - | - |
| 配置文件 | `$DSH_HOME/settings.yaml`，未设置 `DSH_HOME` 时为 `~/.dsh/settings.yaml`（Windows 为 `%USERPROFILE%\.dsh\settings.yaml`） |
| 协议 `api` | `openai-completions` |
| Base URL `baseURL` | `https://token.poryf.com/v1` |
| 模型 ID | 本站模型 ID，例如 `deepseek-v4-pro` |

## 给 AI 助手的一段话

DeepSeek Harness 本身就是 AI 助手，可以直接把下面这段话发给它，让它自己写好配置。这段话会包含你的完整密钥，接收它的 AI 服务会看到，请只发给你信任的 AI 助手。把 `YOUR_API_KEY` 换成你的密钥，`deepseek-v4-pro` 换成你要用的模型 ID。

````text wrap theme={null}
请帮我把 DeepSeek Harness 接入再来点Token（OpenAI 兼容的 API 服务）。

1. 把 API 密钥保存到环境变量 TOKENDISCOUNT_API_KEY，不要写进 settings.yaml：
   - macOS / Linux：在 ~/.zshrc 或 ~/.bashrc 里加一行 export TOKENDISCOUNT_API_KEY="YOUR_API_KEY"
   - Windows PowerShell：[Environment]::SetEnvironmentVariable("TOKENDISCOUNT_API_KEY", "YOUR_API_KEY", "User")
2. 打开 $DSH_HOME/settings.yaml（未设置 DSH_HOME 时为 ~/.dsh/settings.yaml，Windows 为 %USERPROFILE%\.dsh\settings.yaml），不存在就新建。在 llm-pi-ai.providers 下新增 tokendiscount 供应商，并把默认模型设为它；已有的其他供应商和设置保持不变：

```yaml
llm-pi-ai:
  providers:
    tokendiscount:
      displayName: 再来点Token
      apiKeyEnv: TOKENDISCOUNT_API_KEY
      api: openai-completions
      baseURL: https://token.poryf.com/v1
      models:
        - id: deepseek-v4-pro

agent-default-model:
  provider: tokendiscount
  model: deepseek-v4-pro
```

3. 保存后提醒我打开一个新终端（让环境变量生效），再重新启动 dsh。

这段话里有我的 API 密钥：只把它写进环境变量，回复时不要完整复述，也不要提交到代码仓库。
````

## 准备

* 安装 DeepSeek Harness，能在终端运行 `dsh`（或 `npx @deepseek-ai/dsh`）。
* 在 [API 密钥](https://token.poryf.com/keys) 页面创建一个密钥，并确认 [钱包](https://token.poryf.com/wallet) 有余额。
* 在 [模型广场](https://token.poryf.com/pricing) 选好模型，复制模型 ID，例如 `deepseek-v4-pro`。

## 第 1 步：把密钥保存到环境变量

DeepSeek Harness 推荐用 `apiKeyEnv` 从环境变量读取密钥，这样 `settings.yaml` 里不会出现明文密钥。

<Tabs>
  <Tab title="macOS / Linux">
    把下面这行加到 `~/.zshrc`（bash 用户是 `~/.bashrc`），然后打开一个新终端：

    ```bash theme={null}
    export TOKENDISCOUNT_API_KEY="YOUR_API_KEY"
    ```
  </Tab>

  <Tab title="Windows">
    在 PowerShell 中运行，然后重新打开 PowerShell：

    ```powershell theme={null}
    [Environment]::SetEnvironmentVariable("TOKENDISCOUNT_API_KEY", "YOUR_API_KEY", "User")
    ```
  </Tab>
</Tabs>

## 第 2 步：编辑 settings.yaml

打开 `~/.dsh/settings.yaml`（设置了 `DSH_HOME` 时为 `$DSH_HOME/settings.yaml`），加入下面的内容并保存。文件里已经有 `llm-pi-ai.providers` 时，只把 `tokendiscount` 这一段加到它下面：

```yaml theme={null}
llm-pi-ai:
  providers:
    tokendiscount:
      displayName: 再来点Token
      apiKeyEnv: TOKENDISCOUNT_API_KEY
      api: openai-completions
      baseURL: https://token.poryf.com/v1
      models:
        - id: deepseek-v4-pro
        - id: deepseek-flash
        - id: glm-5.3

agent-default-model:
  provider: tokendiscount
  model: deepseek-v4-pro
```

### 各字段的作用

| 字段 | 说明 |
| - | - |
| `tokendiscount` | 供应商的名字，可以自己起，`agent-default-model.provider` 要和它一致 |
| `displayName` | 界面里显示的名字 |
| `apiKeyEnv` | 存放密钥的环境变量名，必须和第 1 步里的变量名完全一致 |
| `api` | 填 `openai-completions`，即 OpenAI Chat Completions 协议 |
| `baseURL` | 填 `https://token.poryf.com/v1`，不要在后面加 `/chat/completions` |
| `models[].id` | 本站的模型 ID，**必须和模型广场里的完全一致**，要添加多个模型就多写几行 |
| `agent-default-model` | 默认使用的供应商和模型；不设置时，可以在 DeepSeek Harness 里手动切换 |

## 第 3 步：验证

`settings.yaml` 修改后会自动生效。在设置好环境变量的新终端里运行：

```bash theme={null}
dsh --profile headless "Reply with OK"
```

能收到回复就说明接入成功。再试一次工具调用，确认模型可以读写文件：

```bash theme={null}
dsh --profile headless "读取当前目录下的任意一个文件，告诉我它的第一行"
```

每次调用的用量和费用都可以在 [使用日志](https://token.poryf.com/usage-logs/common) 里查到。

## 常见问题

<AccordionGroup>
  <Accordion title="提示 No API key for provider">
    DeepSeek Harness 没读到环境变量。确认 `apiKeyEnv` 的名字和你设置的环境变量名一致，并且是在设置之后新打开的终端里启动 `dsh`。用 `echo ${TOKENDISCOUNT_API_KEY:+set}` 检查，输出 `set` 说明变量已生效（不会显示密钥本身）。
  </Accordion>

  <Accordion title="报 404">
    `baseURL` 填错了。填 `https://token.poryf.com/v1`：不要只填 `https://token.poryf.com`，也不要在后面加 `/chat/completions`。
  </Accordion>

  <Accordion title="提示模型不存在（model_not_found）">
    `models[].id` 或 `agent-default-model.model` 填成了显示名。例如 `DeepSeek V4 Pro` 不对，要填模型广场里复制的 `deepseek-v4-pro`。
  </Accordion>

  <Accordion title="settings.yaml 改了不生效">
    检查 YAML 缩进：只能用空格，不能用 Tab，`tokendiscount` 要缩进在 `providers` 下面。文件里不能出现两个 `llm-pi-ai` 或两个 `agent-default-model`，已有的话合并成一个。
  </Accordion>

  <Accordion title="提示余额不足或密钥无效（401 / 403）">
    密钥填错、被禁用、过期或额度用完，都会返回 `Invalid token`。到控制台检查密钥状态和钱包余额，详见 [错误排查](/errors)。
  </Accordion>
</AccordionGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.