连接 AI 助手

Codex

本机 Codex · 需要 Codex CLI

安装后验证

开启新会话,运行 /mcp 检查文档连接。

请助手搜索并读取一篇本站文档,确认回答附带原文链接。

详细步骤与其他插件安装方式
备选:手动连接 MCP

没有插件入口时使用。已安装插件时,无需重复添加 MCP。

Skip to content

使用 DeepSeek Harness 集成 GenStudio API ​

AI 助手

注意

适用版本

本文的界面和配置项以 DeepSeek Harness 桌面版 0.2.2-rc.2 为准,命令行说明适用于 0.2.2-rc.1。DeepSeek Harness 仍处于预览阶段,界面可能随版本变化。

DeepSeek Harness 是 DeepSeek 开源的 AI Agent 工作台,可以读取和修改项目文件、运行命令,并通过插件扩展能力。DeepSeek Harness 桌面版将完整的工作区界面打包为原生应用,提供 macOS 和 Windows 安装包。

本文先按最少步骤完成一次对话,再说明接入方式的选择、自定义模型 API 和其他配置。

快速开始 ​

以下步骤使用 DeepSeek Harness 内置的 DeepSeek 提供商。

准备 API Key ​

创建以 sk- 为前缀的 GenStudio 通用 API Key。详见 GenStudio API 快速集成。

注意

GenStudio 通用 LLM API 服务有 API 频率限制。租户在 GenStudio 的服务等级决定了 API 调用是否计费,以及享受的 API 频率上限。详见 LLM API 计费规则。

安装 DeepSeek Harness 桌面版 ​

从 DeepSeek Harness 官网 下载安装包:

  • macOS:需要 Apple 芯片和 macOS 13 或更高版本,暂不支持 Intel 芯片。打开下载的 .dmg 文件,将 DeepSeek Harness 拖入「应用程序」文件夹。
  • Windows:需要 64 位 Windows 10 或更高版本。运行下载的 .exe 安装程序。

首次启动 ​

首次启动 DeepSeek Harness 时,欢迎页提供 登录 和 添加 API Key 两个入口。添加 API Key 页面用于填写 DeepSeek 官方 API 密钥,使用 GenStudio 时请跳过:

  1. 点击 添加 API Key。
  2. 点击 稍后配置,进入工作区。

配置内置的 DeepSeek 提供商 ​

  1. 点击左下角的 更多,选择 设置,然后在左侧选择 模型。

  2. 在 DeepSeek(deepseek-official)卡片的 API 密钥 中,填写上一步创建的 GenStudio 通用 API Key。

  3. 展开 自定义设置,在 API 地址 中填写 https://cloud.infini-ai.com/maas。

    DeepSeek Harness 会在地址末尾拼接 /v1/messages,请不要自行追加。

  4. 在 模型目录 中,将第一个模型的 ID deepseek-flash 改为 deepseek-v4.1-flash-1017,第二个模型 deepseek-v4-pro 保持不变。

  5. 点击 保存。页面提示「已保存 DeepSeek (deepseek-official)。」,DeepSeek 卡片标题旁显示绿色圆点,表示 API 密钥已配置。

发送第一条消息 ​

  1. 在输入框右下角的模型选择器中选择 DeepSeek-V4.1-Flash。

  2. 在输入框上方选择工作区。首次启动时,DeepSeek Harness 会创建 默认工作区。

  3. 在输入框中发送以下请求,回复上方显示「已完成」即表示配置成功:

    language-text
    用一句话介绍当前工作区的目录结构。

需要使用 DeepSeek 以外的模型,或希望使用其他 API 协议时,见添加自定义模型 API。

选择接入方式 ​

DeepSeek Harness 支持以下两种接入方式,GenStudio 提供对应的接口。两种方式可以同时配置。

接入方式API 协议GenStudio API 地址
内置的 DeepSeek 提供商Anthropic Messageshttps://cloud.infini-ai.com/maas
自定义模型 APIOpenAI Chat Completionshttps://cloud.infini-ai.com/maas/v1
自定义模型 APIOpenAI Responseshttps://cloud.infini-ai.com/maas/v1
自定义模型 APIAnthropic Messageshttps://cloud.infini-ai.com/maas

两种方式的区别:

  • 内置的 DeepSeek 提供商:只使用 Anthropic Messages 协议。模型选择器中可以切换推理等级。该提供商默认会把会话日志随请求发送到 GenStudio,详见会话日志上传。
  • 自定义模型 API:每个提供商选择一种 API 协议。除 DeepSeek 模型外,也可以添加 GenStudio 提供的其他模型。模型选择器中不显示推理等级,请求中不包含会话日志。

本文的示例中,内置的 DeepSeek 提供商使用 deepseek-v4.1-flash-1017 和 deepseek-v4-pro,自定义模型 API 使用 kimi-k3、glm-5.3 和 deepseek-v4.1-flash-1017。

注意

以上模型仅为示例。GenStudio 当前可用的模型及其 ID,以 GenStudio 模型广场或 /models 接口的返回结果为准。使用 Anthropic Messages 协议时,可以在模型广场中使用「Claude 兼容」筛选条件查看支持该协议的模型。

两种接入方式的优缺点 ​

两种方式都能完成日常编码任务。下面的差异来自 DeepSeek Harness 对两种方式的实现方式,可以按需要取舍。

对比项内置的 DeepSeek 提供商自定义模型 API
可用模型仅 DeepSeek 模型GenStudio 提供的任意模型,包括 Kimi、GLM、Qwen 等
API 协议仅 Anthropic MessagesOpenAI Chat Completions、OpenAI Responses、Anthropic Messages,每个提供商选一种
配置步骤改两个模型 ID 中的一个建提供商、选协议、选模型
模型发现手动修改模型 IDOpenAI 协议下可从 /models 获取并勾选;Anthropic Messages 协议需手动填写
模型参数预置 DeepSeek 专用配置,包括思考内容在历史中的传递方式每个模型的上下文窗口、输入类型和推理等级需要自行设置
推理等级模型选择器中可直接切换 Off、Low、High、Max模型选择器中不显示,需要在模型选项中设置
图片输入默认开启默认仅文本,需按模型能力手动勾选
会话日志默认随每次请求发送到 GenStudio,可在设置中关闭不发送
提供商专用适配有,例如 DeepSeek 的提示词与工具更新方式,以及跨轮次传递思考内容通用实现,不含模型专用适配

选择建议:

  • 只使用 DeepSeek 模型、希望保留模型选择器中的推理等级开关时,使用内置的 DeepSeek 提供商。
  • 需要使用 DeepSeek 以外的模型、需要 OpenAI Responses 协议,或希望请求中不包含会话日志时,使用自定义模型 API。
  • 两种方式可以同时配置,互不影响。

查看 API 接入信息 ​

DeepSeek Harness 通过 GenStudio 通用 LLM API 调用模型。不同接入方式和 API 协议使用不同的 Base URL:

  • OpenAI (OpenAI Compatible):自定义模型 API 选择 OpenAI Chat Completions 或 OpenAI Responses 协议时使用。

    • Base URL: https://cloud.infini-ai.com/maas/v1

    • Endpoints

      • Create Chat Completion: /chat/completions
      • Create Response: /responses
      • List Models: /models
  • Anthropic (Anthropic Messages Compatible):内置的 DeepSeek 提供商,以及自定义模型 API 选择 Anthropic Messages 协议时使用。

    • Base URL: https://cloud.infini-ai.com/maas

    • Endpoints

      • Create Message: /v1/messages

查询模型的上下文长度 ​

配置模型时需要填写上下文窗口。可以用以下任一方式查看模型 ID、上下文窗口和多模态能力:

  • 模型广场:打开对应模型卡片查看,不需要调用接口。

  • 模型列表接口:调用 /models,从对应模型条目中读取 id(模型 ID)、context_length(上下文窗口 Token 数)和 model_type(模型类型):

    language-shell
    curl --request GET \
      --url 'https://cloud.infini-ai.com/maas/v1/models' \
      --header 'Accept: application/json' \
      --header 'Authorization: Bearer sk-xxxxxxxxxx'

本文示例模型在 /models 中返回的信息如下。配置时请以当前账号实际返回的模型条目为准。

模型 IDcontext_lengthmodel_type
deepseek-v4.1-flash-10171048576多模态模型
deepseek-v4-pro1024000大语言模型
kimi-k31048576多模态模型
glm-5.31048576大语言模型

添加自定义模型 API ​

  1. 在 模型 设置页点击 添加模型提供商,然后选择 自定义模型 API。

  2. 填写以下配置:

    • Provider ID:以小写字母开头的标识,例如 genstudio。Provider ID 创建后不能修改。DeepSeek Harness 会用它派生 API 密钥的凭据名,例如 GENSTUDIO_API_KEY。
    • 显示名称:模型选择器中该提供商的分组名称,例如 GenStudio。
    • API 地址:按选择的 API 协议填写,见下表。DeepSeek Harness 会在地址末尾拼接请求路径,请不要自行追加。
    • API 协议:选择 OpenAI Chat Completions、OpenAI Responses 或 Anthropic Messages。
    • API 密钥:填写以 sk- 开头的 GenStudio 通用 API Key。
    API 协议API 地址
    OpenAI Chat Completionshttps://cloud.infini-ai.com/maas/v1
    OpenAI Responseshttps://cloud.infini-ai.com/maas/v1
    Anthropic Messageshttps://cloud.infini-ai.com/maas
  3. 在 模型目录 中添加模型:

    • 选择 OpenAI Chat Completions 或 OpenAI Responses 协议时,点击 获取可用模型。DeepSeek Harness 会读取 GenStudio 的模型列表,并默认勾选全部模型。点击 取消全选,勾选需要的模型,例如 kimi-k3 和 glm-5.3,然后点击 更新列表。
    • 选择 Anthropic Messages 协议时,获取可用模型 会提示 401,无法读取模型列表。请点击 添加模型,手动填写 模型 ID(例如 deepseek-v4.1-flash-1017)和 显示名称。

    添加后,展开 模型选项,按模型的实际能力检查以下配置:

    • 上下文窗口:按查询模型的上下文长度中的 context_length 填写。
    • 最大输出 token 数:留空时使用默认值。
    • 输入类型:新添加的模型默认只勾选 文本。模型支持图片输入时(例如 /models 中 model_type 为 多模态模型),同时勾选 图片。
    • 推理等级:控制是否向模型发送推理参数。
  4. 点击 创建提供商。创建成功后,模型 页显示该提供商的卡片。

一个提供商只使用一种 API 协议。需要同时使用多种协议时,请分别添加提供商,并设置不同的 Provider ID,例如 genstudio 和 genstudio-responses。

自定义模型 API 的配置写入 .dsh/profiles/desktop/cordis.patch.yml 的 llm-pi-ai 部分,API 密钥保存在 .dsh/.credentials.yaml 中。API 协议在配置中保存为 openai-completions、openai-responses 或 anthropic-messages。以下为选择 OpenAI Chat Completions 协议时的配置(节选):

language-yaml
- id: llm-pi-ai
  config:
    providers:
      genstudio:
        displayName: GenStudio
        apiKeyEnv: GENSTUDIO_API_KEY
        api: openai-completions
        baseURL: https://cloud.infini-ai.com/maas/v1
        models:
          - id: kimi-k3
            name: kimi-k3
            contextWindow: 1048576
          - id: glm-5.3
            name: glm-5.3
            contextWindow: 1048576

通过 OpenAI Responses 使用 DeepSeek ​

以下以 deepseek-v4.1-flash-1017 演示自定义模型 API 的 Responses 配置。

按上面的步骤添加自定义模型 API。Provider ID 填写 genstudio-responses,显示名称填写 GenStudio Responses,API 协议选择 OpenAI Responses,API 地址填写 https://cloud.infini-ai.com/maas/v1。客户端会自动追加 /responses。

填写 GenStudio 通用 API Key,在模型目录中添加 deepseek-v4.1-flash-1017,将上下文窗口设为 1048576。保存后,在输入框右下角的模型选择器中选择 GenStudio Responses 下的 deepseek-v4.1-flash-1017。

桌面 profile 中对应的配置如下。apiKeyEnv 是凭据引用,实际 API Key 通过界面保存。

language-yaml
- id: llm-pi-ai
  config:
    providers:
      genstudio-responses:
        displayName: GenStudio Responses
        apiKeyEnv: GENSTUDIO_RESPONSES_API_KEY
        api: openai-responses
        baseURL: https://cloud.infini-ai.com/maas/v1
        models:
          - id: deepseek-v4.1-flash-1017
            name: deepseek-v4.1-flash-1017
            contextWindow: 1048576

注意

使用 GPT 系列模型

按 /models 返回的 id 和 context_length 设置模型 ID 和上下文窗口。目标模型支持 Responses 时,API 协议保持为 OpenAI Responses(openai-responses)。需要指定最大输出 Token 数或推理等级时,按目标模型支持的取值填写。

在测试工作区中创建 responses-test.txt,写入一行测试文本,再请模型读取该文件并原样返回文本。检查工具结果和最终回复是否与文件内容一致。

命令行使用单独的 headless profile。使用 dsh headless 时,在该 profile 中配置提供商,退出后可通过 --session-id 参数继续已保存的会话。

核对内置提供商的模型参数 ​

配置内置的 DeepSeek 提供商时,可以在 模型目录 中展开每个模型的选项,按 /models 返回的信息核对以下配置:

模型 ID上下文窗口输入类型
deepseek-v4.1-flash-10171048576文本、图片
deepseek-v4-pro1024000文本

最大输出 token 数 留空时使用默认值。

API 密钥保存在 .dsh/.credentials.yaml 中,不写入模型配置文件。其他配置写入 .dsh/profiles/desktop/cordis.patch.yml,点击设置页顶部的 打开配置文件 可以查看。以下为该文件中 DeepSeek 提供商的主要配置(节选):

language-yaml
- id: llm-deepseek
  config:
    baseURL: https://cloud.infini-ai.com/maas
    models:
      - id: deepseek-v4.1-flash-1017
        name: DeepSeek-V4.1-Flash
        contextWindow: 1048576
        inputModalities:
          - text
          - image
      - id: deepseek-v4-pro
        name: DeepSeek-V4-Pro
        contextWindow: 1024000
        inputModalities:
          - text

DeepSeek Harness 的会话、设置和凭据保存在用户主目录的 .dsh 目录中,桌面版和 dsh 命令行共用该目录。模型配置按 profile 分别保存,桌面版写入 .dsh/profiles/desktop/cordis.patch.yml。

推理等级 ​

选择内置的 DeepSeek 提供商的模型时,模型选择器中同时显示当前的推理等级,可选 Off、Low、High 和 Max,默认为 High。Off 表示不启用模型的思考过程,其余三档作为思考强度发给模型。

选择自定义模型 API 的模型时,模型选择器中不显示推理等级。需要调整时,在 模型目录 的 模型选项 中修改该模型的 推理等级。

查看 Token 用量 ​

每条回复下方显示本轮的 Token 用量。输入框下方显示当前会话的轮数、步数、生成速度、累计 Token 数、缓存命中率,以及上下文窗口的已用比例。

DeepSeek Harness 的请求会带上系统提示和工具定义。实际用量和费用请以 GenStudio 的用量统计为准。

配置会话日志上传 ​

设置 > 通用设置 中的 在使用官方模型 API 时上传 Session Log 默认开启。开启时,内置的 DeepSeek 提供商会在每次模型请求中附带当前会话的日志,单次最多 8 MiB,这部分数据不作为模型输入。该选项只作用于内置的 DeepSeek 提供商,通过自定义模型 API 发送的请求不附带会话日志。

会话日志包含当前会话的用户消息、Agent 回复、工具调用和工具结果,并随请求一并发送到请求的 API 地址。按本文配置内置的 DeepSeek 提供商后,这些内容会随模型请求发送到 GenStudio。如果不希望上传,可以在同一设置页关闭 在使用官方模型 API 时上传 Session Log,或者改用自定义模型 API。

修改从下一次请求开始生效。

使用工作区和访问模式 ​

在输入框上方选择工作区,需要处理自己的项目时,点击左侧 工作区 旁的添加按钮,添加项目所在的文件夹。

输入框下方的访问模式默认为 工作区内修改,在该模式下,Agent 修改工作区中的文件和运行命令时不需要逐项确认。

排查常见问题 ​

发送消息后提示「API 密钥无效」 ​

回复中显示「本轮运行失败 API 密钥无效」和 AUTH 时,GenStudio 拒绝了请求中的 API 密钥:

  • 确认填写的是 GenStudio 通用 API Key,以 sk- 开头,且没有被禁用。
  • 在 设置 > 模型 中点击对应提供商卡片的 编辑,先清空 API 密钥 输入框,再重新填写并保存,确保输入框中只有一个完整的 API Key。

「获取可用模型」提示 401 ​

  • 自定义模型 API 选择 Anthropic Messages 协议时,获取可用模型 会提示 401。请点击 添加模型,手动填写模型 ID。
  • 选择 OpenAI Chat Completions 或 OpenAI Responses 协议时出现该提示,请确认 API 地址 为 https://cloud.infini-ai.com/maas/v1,并检查 API 密钥。

模型选择器显示「请选择模型」 ​

尚未选择模型、模型所在的提供商已被删除,或会话使用的模型 ID 已在模型目录中修改或删除时,模型选择器显示「请选择模型」,此时无法发送消息。完成配置内置的 DeepSeek 提供商或添加自定义模型 API后,在模型选择器中重新选择一个模型。

请求失败或模型不可用 ​

  • 确认 API 地址 与 API 协议对应:内置的 DeepSeek 提供商和 Anthropic Messages 协议使用 https://cloud.infini-ai.com/maas,OpenAI Chat Completions 和 OpenAI Responses 协议使用 https://cloud.infini-ai.com/maas/v1。地址末尾不要追加 /v1/messages、/chat/completions 等请求路径。

  • 确认模型 ID 与 /models 返回的 id 完全一致。

  • 使用 curl 直接调用 GenStudio 的接口,确认问题是否来自 DeepSeek Harness 的配置。Anthropic Messages 协议:

    language-shell
    curl --request POST \
      --url 'https://cloud.infini-ai.com/maas/v1/messages' \
      --header 'x-api-key: sk-xxxxxxxxxx' \
      --header 'anthropic-version: 2023-06-01' \
      --header 'content-type: application/json' \
      --data '{"model": "deepseek-v4.1-flash-1017", "max_tokens": 1024, "messages": [{"role": "user", "content": "你好"}]}'

    OpenAI Chat Completions 协议:

    language-shell
    curl --request POST \
      --url 'https://cloud.infini-ai.com/maas/v1/chat/completions' \
      --header 'Authorization: Bearer sk-xxxxxxxxxx' \
      --header 'Content-Type: application/json' \
      --data '{"model": "kimi-k3", "messages": [{"role": "user", "content": "你好"}]}'

相关文档 ​