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

# 使用 DeepSeek Harness 配合 CometAPI

> 配置 DeepSeek Harness 0.1.0-rc.8，以通过聊天补全、响应、Anthropic 消息或 Google generateContent 使用 CometAPI。

使用本指南运行 [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) 配合 CometAPI 使用。DeepSeek Harness 从 `$DSH_HOME/settings.yaml` 加载自定义模型提供商，该路径默认为 `~/.dsh/settings.yaml`。

本页面中的配置已使用 `@deepseek-ai/dsh@0.1.0-rc.8` 验证。每条路由均使用一个代表性模型完成了流式文本轮次和文件读取工具循环。此范围并不意味着每个 CometAPI 模型都接受每种 API 格式。

<Warning>
  DeepSeek Harness 目前处于开发者预览阶段，可能会引入破坏性变更。遵循本指南时，请固定使用已测试的软件包版本，并在升级前查阅上游发行说明。
</Warning>

官方参考资料：

* [DeepSeek Harness 仓库](https://github.com/deepseek-ai/deepseek-harness)
* [DeepSeek Harness 0.1.0-rc.8 源代码](https://github.com/deepseek-ai/deepseek-harness/tree/dsh-v0.1.0-rc.8)
* [DeepSeek Harness CLI](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/apps/cli/README.md)
* [DeepSeek Harness 提供商指南](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/docs/user/guide/providers.md)

## 先决条件

* Node.js 和 npm
* 拥有有效 API 密钥的 CometAPI 账户，该密钥来自 [控制台](https://www.cometapi.com/console/token)
* 对于计划使用的每种 API 格式，均需从 [CometAPI 模型页面](/zh-Hans/overview/models) 获取一个模型 ID

## 了解提供商路由

`api` 值用于选择传输格式。`baseURL` 截止于 Harness 附加的操作路径之前。

| 提供商 ID               | `api` 值              | `baseURL`                     | 请求路径                   |
| -------------------- | -------------------- | ----------------------------- | ---------------------- |
| `cometapi-chat`      | `openai-completions` | `https://api.cometapi.com/v1` | `/v1/chat/completions` |
| `cometapi-responses` | `openai-responses`   | `https://api.cometapi.com/v1` | `/v1/responses`        |
| `cometapi-messages`  | `anthropic-messages` | `https://api.cometapi.com`    | `/v1/messages`         |

<Note>
  分别替换每个 `your-model-id` 值。选择一个接受其提供商条目 API 格式的模型。
</Note>

## 配置提供程序

<Steps>
  <Step title="确认已测试的 Harness 版本">
    在配置 Harness 前，确认已固定的软件包版本：

    ```bash theme={null}
    npx @deepseek-ai/dsh@0.1.0-rc.8 --version
    ```

    该命令应输出 `0.1.0-rc.8`。
  </Step>

  <Step title="设置您的 CometAPI API 密钥">
    在启动 Harness 前，将您的密钥存储在 `COMETAPI_KEY` 中：

    ```bash theme={null}
    read -rsp "CometAPI API key: " COMETAPI_KEY
    printf '\n'
    export COMETAPI_KEY
    ```

    在每个启动 Harness 的 shell 会话中设置该变量。请勿将 API 密钥提交到版本控制系统。
  </Step>

  <Step title="添加 CometAPI 提供程序">
    创建 `$DSH_HOME/settings.yaml`。如果该文件已有 `llm-pi-ai` 部分，请将这些提供程序条目合并到其现有的 `providers` 映射中：

    ```yaml theme={null}
    llm-pi-ai:
      providers:
        cometapi-chat:
          displayName: CometAPI Chat Completions
          apiKeyEnv: COMETAPI_KEY
          api: openai-completions
          baseURL: https://api.cometapi.com/v1
          models:
            - id: your-model-id
        cometapi-responses:
          displayName: CometAPI Responses
          apiKeyEnv: COMETAPI_KEY
          api: openai-responses
          baseURL: https://api.cometapi.com/v1
          models:
            - id: your-model-id
        cometapi-messages:
          displayName: CometAPI Anthropic Messages
          apiKeyEnv: COMETAPI_KEY
          api: anthropic-messages
          baseURL: https://api.cometapi.com
          models:
            - id: your-model-id

    agent-default-model:
      provider: cometapi-responses
      model: your-model-id
    ```

    该示例默认选择响应提供程序。更改 `agent-default-model.provider` 和 `agent-default-model.model` 以选择其他已配置的条目。

    如果您更喜欢使用 Web UI，请在导出 `COMETAPI_KEY` 后启动它，然后使用其模型设置添加或编辑提供程序条目，并选择默认模型：

    ```bash theme={null}
    npx @deepseek-ai/dsh@0.1.0-rc.8 web
    ```

    默认本地地址为 `http://127.0.0.1:3080`。若要匹配本指南中的路由名称和基础 URL，直接使用 YAML 仍是最佳方式。
  </Step>

  <Step title="验证文本轮次">
    从您希望 Harness 使用的项目目录运行一次性无头任务：

    ```bash theme={null}
    npx @deepseek-ai/dsh@0.1.0-rc.8 \
      --profile headless \
      "Reply exactly with: COMETAPI_DSH_OK"
    ```

    成功运行会输出 `COMETAPI_DSH_OK`。要检查其他提供程序，请更新 `agent-default-model` 并再次运行该命令。
  </Step>

  <Step title="验证文件工具使用">
    创建一个临时哨兵文件，然后要求 Harness 使用文件工具读取它：

    ```bash theme={null}
    printf 'COMETAPI_DSH_TOOL_OK\n' > /tmp/cometapi-dsh-sentinel.txt
    npx @deepseek-ai/dsh@0.1.0-rc.8 \
      --profile headless \
      "Read /tmp/cometapi-dsh-sentinel.txt with a file tool, then reply with only its contents."
    ```

    确认最终答案为 `COMETAPI_DSH_TOOL_OK`。仅在您接受 Harness 访问文件、进程和网络的工作区中运行它。
  </Step>
</Steps>

## 可选路由

Harness 有一个名为 `google` 的内置提供程序路由。以下配置将该路由指向 CometAPI，因此它会替换该路由原生的 Google 端点，而不是添加第二个 Google 路由。

将此条目合并到 `llm-pi-ai.providers`，然后在 `agent-default-model` 中选择它：

```yaml theme={null}
llm-pi-ai:
  providers:
    google:
      displayName: CometAPI Google generateContent
      apiKeyEnv: COMETAPI_KEY
      baseURL: https://api.cometapi.com/v1beta
      models:
        - id: your-model-id

agent-default-model:
  provider: google
  model: your-model-id
```

请勿向此条目添加 `api` 字段。内置的 `google` 路由会保留其原生 Google 协议，并使用 `/v1beta/models/{model}:streamGenerateContent?alt=sse` 身份验证向 `x-goog-api-key` 发送流式输出（Streaming）请求。

## 故障排除

<AccordionGroup>
  <Accordion title="Harness 报告缺少 API 密钥">
    确认在启动 Harness 的同一 shell 中已设置 `COMETAPI_KEY`。更改环境变量后重启 Harness。
  </Accordion>

  <Accordion title="Harness 未显示已配置的模型">
    确认 `$DSH_HOME/settings.yaml` 是有效的 YAML，provider 位于 `llm-pi-ai.providers` 下，且模型列在该 provider 的 `models` 下。默认的 `DSH_HOME` 是 `~/.dsh`。
  </Accordion>

  <Accordion title="聊天补全或响应使用了错误的路径">
    将 `https://api.cometapi.com/v1` 用作 `baseURL`。不要追加 `/chat/completions` 或 `/responses`；Harness 会追加操作路径。
  </Accordion>

  <Accordion title="Anthropic 消息返回路径错误">
    将不含 `https://api.cometapi.com` 的 `/v1` 用作 Messages `baseURL`。Anthropic 适配器会追加 `/v1/messages`。
  </Accordion>

  <Accordion title="Google 生成了重复的 v1beta 路径">
    请严格使用 `https://api.cometapi.com/v1beta`。不要追加模型路径，也不要向内置 `api` 路由添加 `google` 字段。
  </Accordion>

  <Accordion title="某个模型在一个 provider 上可用，但在另一个 provider 上不可用">
    模型可用性和接受的 API 格式可能不同。请为每个 provider 条目选择模型，而不要假定同一模型适用于全部四种格式。
  </Accordion>

  <Accordion title="升级后配置停止工作">
    DeepSeek Harness 处于开发者预览阶段。请恢复到 `@deepseek-ai/dsh@0.1.0-rc.8`，然后在将配置调整到其他版本之前查看上游变更。
  </Accordion>
</AccordionGroup>

## 相关资源

* [CometAPI 快速入门](/zh-Hans/overview/quick-start)
* [CometAPI 模型页面](/zh-Hans/overview/models)
* [DeepSeek Harness 仓库](https://github.com/deepseek-ai/deepseek-harness)
* [DeepSeek Harness 提供商指南](https://github.com/deepseek-ai/deepseek-harness/blob/dsh-v0.1.0-rc.8/docs/user/guide/providers.md)

<script type="application/ld+json">
  {`
    {
    "@context": "https://schema.org",
    "@graph": [
      {
        "@type": "HowTo",
        "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#howto",
        "name": "将 DeepSeek Harness 与 CometAPI 配合使用",
        "description": "配置 DeepSeek Harness 0.1.0-rc.8，以便通过聊天补全、响应、Anthropic 消息或 Google generateContent 使用 CometAPI。",
        "step": [
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-1",
            "position": 1,
            "name": "确认已测试的 Harness 版本",
            "text": "确认固定使用的 DeepSeek Harness 0.1.0-rc.8 包版本。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-2",
            "position": 2,
            "name": "设置您的 CometAPI API 密钥",
            "text": "在启动 Harness 之前，将 CometAPI API 密钥存储在 COMETAPI_KEY 中。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-3",
            "position": 3,
            "name": "添加 CometAPI 提供商",
            "text": "将已验证的提供商路由添加到 Harness 的 settings.yaml 文件中。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-4",
            "position": 4,
            "name": "验证一轮文本交互",
            "text": "运行固定版本的无头任务，并确认预期的文本响应。"
          },
          {
            "@type": "HowToStep",
            "@id": "https://apidoc.cometapi.com/integrations/deepseek-harness#step-5",
            "position": 5,
            "name": "验证文件工具使用",
            "text": "要求 Harness 读取一个哨兵文件，并确认最终答案完全一致。"
          }
        ]
      },
      {
        "@type": "BreadcrumbList",
        "itemListElement": [
          {
            "@type": "ListItem",
            "position": 1,
            "name": "CometAPI 文档",
            "item": "https://apidoc.cometapi.com/"
          },
          {
            "@type": "ListItem",
            "position": 2,
            "name": "集成",
            "item": "https://apidoc.cometapi.com/integrations"
          },
          {
            "@type": "ListItem",
            "position": 3,
            "name": "将 DeepSeek Harness 与 CometAPI 配合使用",
            "item": "https://apidoc.cometapi.com/integrations/deepseek-harness"
          }
        ]
      }
    ]
    }
    `}
</script>
