Skip to content

在 VS Code 中使用 GenStudio 模型 ​

连接 AI 助手

VS Code 可以使用 GenStudio API Key 接入模型,不要求订阅 GitHub Copilot。请根据当前站点提供的接入方式选择以下路径;语义搜索、行内代码补全以及依赖嵌入模型的功能是否可用,仍取决于 GitHub 账户和 Copilot 服务。

  • InfiniAI 扩展会自动发现当前账号可用的模型、为模型选择兼容协议,并在多轮对话中保留模型继续推理所需的内容。使用 Agent、Claude 或需要跨轮保留思考内容的模型时,优先选择此方式。
  • VS Code Custom Endpoint无需安装提供方扩展,但需要在 chatLanguageModels.json 中逐个维护模型 ID、协议、能力和 Token 限制。适合只需维护少量模型,且模型不要求跨轮保留思考内容的场景。

获取 API Key 和端点 ​

创建以 sk- 开头的 GenStudio API Key。密钥只在 VS Code 的密钥输入框中填写,不要把真实密钥写入工作区文件、文档示例或分组名称。

VS Code 接入使用以下端点:

用途地址
发现模型https://cloud.infini-ai.com/maas/v1/models
OpenAI Chat Completionshttps://cloud.infini-ai.com/maas/v1/chat/completions
Anthropic Messageshttps://cloud.infini-ai.com/maas/v1/messages

模型 ID、上下文窗口、最大输出长度、多模态和工具调用能力会随模型变化。配置 Custom Endpoint 前,请先在模型广场查看模型卡片,或调用模型发现端点,确认当前账号可用的模型及其能力。

通过 InfiniAI 扩展接入 ​

安装 InfiniAI Provider for VS Code 后,可以直接在 VS Code Chat 和 Agent 中选择 GenStudio 模型。请使用 VS Code 1.130.0 或更高版本;配置 Agent 可用性需要扩展 0.6.10 或更高版本。

安装扩展 ​

  1. 在 VS Code 中安装 InfiniAI Provider for VS Code。
  2. 升级扩展后,如果 扩展 视图提示需要重启,请选择 Restart Extensions 或运行 Developer: Reload Window。

安装成功后,活动栏会显示 InfiniAI,其中包含 模型 和 用量 视图。

添加提供方分组并保存 API Key ​

  1. 按 Cmd+Shift+P / Ctrl+Shift+P 打开命令面板,运行 InfiniAI: 添加提供方分组。
  2. 阅读分组名称说明,选择 打开语言模型。
  3. 在 Language Models 窗口中选择 Add Models > InfiniAI。
  4. 输入分组名称。只有一个 API Key 时保留默认名称 InfiniAI;有多个 API Key 时使用 Work、Personal 等用途名称区分。不要把 API Key 或其他秘密写入分组名称。
  5. 在随后出现的 API 密钥 输入框中粘贴 GenStudio API Key。

分组名称仅用于在 VS Code 中区分不同的 API Key,不会发送给 GenStudio。API Key 会保存到该分组的凭据存储中,在 VS Code 重启和扩展升级后继续有效。需要轮换、重命名或删除分组时,运行 InfiniAI: 打开 VS Code 管理模型,使用分组的操作菜单。

注意

同一模型 ID 同时存在于多个 InfiniAI 分组时,普通 Chat 会保留所选模型与分组的凭据关系;Agents 窗口只保留其中一个分组。需要在同名模型之间切换 API Key 时,请使用普通 Chat,并在选择模型时确认分组。

让模型出现在模型选择器和 Agent 模式中 ​

模型出现在普通 Chat 模型选择器中需要同时通过两层控制:InfiniAI 模型 视图中的提供方筛选(可运行 InfiniAI: 重置 InfiniAI 提供方模型筛选 重新包含全部模型),以及 InfiniAI: 打开 VS Code 管理模型 中的眼睛图标。

Agent 模型选择器只显示支持工具调用的模型,因此模型可以在普通 Chat 中可见,但不出现在 Agent 模式中。扩展 0.6.10 或更高版本默认在 Agent 中启用 claude-* 模型和其他已确认支持工具调用的模型。如果模型没有自动显示,但模型卡片确认其支持工具调用,请运行 InfiniAI: 配置 Agent 可用性,为该模型选择 Enable for Agent。此设置只控制模型是否出现在 Agent 模型选择器中,不能为模型增加工具调用能力。

如果使用 Agents 窗口,还需要启用 chat.agentHost.byokModels.enabled 并重启 Agent Host。VS Code 1.130 的 Agents 窗口不显示 InfiniAI 的逐模型配置控件;请先在普通 Language Models 窗口中保存思考强度、思考开关和输出限制,再启动 Agent 会话。

为 Claude 模型选择 Anthropic 协议 ​

发送 Claude 请求前,在 InfiniAI 模型 视图中确认有效协议为 Anthropic Messages。如果显示其他协议,运行 InfiniAI: 切换模型协议,选择目标 Claude 模型,再选择 Anthropic Messages。协议选择会全局应用于相同的模型 ID,且与 Agent 可用性互不影响。

保留多轮思考内容 ​

部分 Kimi、DeepSeek、GLM、MiniMax、MiMo 和 Claude 模型要求后续请求同时包含前面轮次的思考内容。InfiniAI 扩展会保留并重新发送 OpenAI reasoning_content、MiniMax reasoning_details 或 Anthropic thinking 内容,使多轮对话和连续工具调用可以继续。

infiniai.thinkingReplayStore 默认为 localPlaintext,会把需要重新发送的思考内容以明文保存在本机扩展存储中,并在 VS Code 重载或重启后继续用于原会话。如果组织策略不允许在磁盘上保存这些内容,请设置为 memory;重载或重启后,请开始新会话。

运行 InfiniAI: 清除思考回放缓存 会立即删除已保存的思考内容,且不能撤销。清除后请开始新会话;依赖这些内容的旧会话无法继续。

检查模型发现和连接 ​

  1. 运行 InfiniAI: 刷新模型列表。刷新失败时,模型列表会保留上次成功结果;请使用错误通知中的管理模型或打开日志操作继续检查。
  2. 在 Chat 中运行 @infiniai /doctor,检查提供方分组、发现端点、缓存状态和最近一次已脱敏错误;需要查看模型的有效协议和 Token 限制时运行 @infiniai /models refresh,需要测试连通性时运行 @infiniai /test。

诊断输出默认不记录 API Key、提示词或完整响应正文;分享日志前仍应检查组织专用端点名和模型 ID。

更多配置 ​

逐模型请求控件(Max output tokens、Reasoning effort、Thinking mode)、图片输入覆盖、分组重命名与密钥轮换、思考回放缓存的保留设置等更多配置项,请参见扩展的 README。全部命令均可通过在命令面板中输入 InfiniAI: 查找。

通过 VS Code Custom Endpoint 接入 ​

VS Code 的 Bring Your Own Key(BYOK)功能可以连接兼容的 Chat Completions、Responses 或 Messages 端点。以下步骤使用 Custom Endpoint 手动添加 GenStudio 模型,无需安装提供方扩展。

注意

组级只写 url、不写 models 数组时,VS Code 会查询 {url}/models 自动发现模型,但发现结果中的能力和 Token 限制是启发式推测值。生产使用建议在 models 数组中显式填写模型 ID、协议、能力和 Token 限制。

确认 VS Code 和组织策略 ​

  • 使用 VS Code 1.130.0 或更高版本。
  • 准备 GenStudio API Key 和目标模型 ID。
  • 如果使用 Copilot Business 或 Enterprise,请确认组织管理员没有禁用 BYOK。
  • 如果使用 Agents 窗口,请启用 chat.agentHost.byokModels.enabled,然后重启 Agent Host。

添加 OpenAI Chat Completions 模型 ​

  1. 在 Chat 模型选择器中选择管理模型齿轮,或从命令面板运行 Chat: Manage Language Models。

  2. 选择 Add Models > Custom Endpoint。

  3. 输入分组名称,例如 GenStudio OpenAI。这是本地显示标签,不会发送给 GenStudio。

  4. 输入显示名称和 API Key,API 类型选择 Chat Completions。

  5. VS Code 打开 chatLanguageModels.json 后,按模型卡片修改以下配置并保存:

    language-json
    [
          {
            "name": "GenStudio OpenAI",
            "vendor": "customendpoint",
            "apiKey": "${input:genstudioApiKey}",
            "apiType": "chat-completions",
            "models": [
              {
                "id": "kimi-k3",
                "name": "Kimi K3",
                "url": "https://cloud.infini-ai.com/maas/v1/chat/completions",
                "toolCalling": true,
                "vision": true,
                "thinking": true,
                "supportsReasoningEffort": ["low", "high", "max"],
                "contextWindow": 1048576,
                "maxOutputTokens": 65536
              }
            ]
          }
        ]

此处的模型和 Token 数值只是配置示例。保存前,请将模型 ID、contextWindow、maxOutputTokens、toolCalling 和 vision 改为当前账号模型卡片中显示的值。

thinking: true 不会向请求体发送 thinking 参数,它只做两件事:让 VS Code 在后续请求中把历史思考内容以 reasoning_content 回传,以及自动从请求中移除 temperature。kimi-k3 的思考始终开启且不接受 thinking.type/thinking.keep 等请求参数,同时要求多轮对话原样回传 reasoning_content,因此该字段必须保留;VS Code 在 Chat Completions 协议下本来就不发送 thinking 参数,两者不冲突。所选模型不支持思考时,请删除 thinking 和 supportsReasoningEffort 字段。

kimi-k3 的推理强度取值为 low、high、max(服务端默认 max)。声明 supportsReasoningEffort 后,模型配置中会出现 "Thinking Effort" 控件,选中的值以顶层 reasoning_effort 参数发送,与 kimi-k3 的参数约定一致;不选择时不发送该参数,由服务端使用默认值。

添加 Anthropic Messages 模型 ​

Claude 模型使用 GenStudio Anthropic Messages 端点时,必须把 API 类型设置为 Messages,并使用完整的 /v1/messages 地址。

  1. 再次选择 Add Models > Custom Endpoint。

  2. 输入分组名称,例如 GenStudio Anthropic。

  3. 输入显示名称和 API Key,API 类型选择 Messages。

  4. 在 chatLanguageModels.json 中按模型卡片修改并保存:

    language-json
    [
          {
            "name": "GenStudio Anthropic",
            "vendor": "customendpoint",
            "apiKey": "${input:genstudioApiKey}",
            "apiType": "messages",
            "models": [
              {
                "id": "claude-sonnet-4-6",
                "name": "Claude Sonnet 4.6",
                "url": "https://cloud.infini-ai.com/maas/v1/messages",
                "toolCalling": true,
                "vision": true,
                "contextWindow": 200000,
                "maxOutputTokens": 64000
              }
            ]
          }
        ]

只有在模型卡片确认支持工具调用和图片输入时,才保留 toolCalling: true 和 vision: true。Agent 模型选择器会隐藏未声明工具调用能力的模型,但把字段改为 true 不会为模型增加该能力。

配置认证请求头 ​

VS Code 按 API 类型自动选择认证头:Chat Completions 发送 Authorization: Bearer <API Key>,Messages 发送 x-api-key: <API Key> 和 anthropic-version。多数兼容端点使用默认行为即可,无需额外配置。

如果端点要求不同的认证方式(例如 Messages 端点也要求 Bearer Token,或经过网关需要自定义头),在模型的 requestHeaders 中覆盖,可用 ${apiKey} 引用已保存的密钥:

language-json
{
  "id": "claude-sonnet-4-6",
  "requestHeaders": {
    "Authorization": "Bearer ${apiKey}"
  }
}

requestHeaders 是模型级字段。设置了 Authorization、x-api-key、api-key 等常见认证头后,VS Code 会停止发送默认认证头,避免重复凭据。不要把真实密钥写进 chatLanguageModels.json,始终通过 ${apiKey} 引用。

校正 Context Size 和模型能力 ​

contextWindow 表示输入与输出共享的总上下文窗口,maxOutputTokens 表示一次请求允许的最大输出。VS Code 会用 contextWindow - maxOutputTokens 计算输入预算。如果改用 maxInputTokens,请分别填写输入和输出上限,不要把完整的共享窗口同时填入两个字段。

不建议只填 maxInputTokens 而不填 contextWindow:此时 VS Code 会把 maxInputTokens + maxOutputTokens 之和当作总窗口,同时用于界面显示的 Context Size 和多轮对话的自动压缩预算。例如为 kimi-k3 填写 maxInputTokens: 1032192 和 maxOutputTokens: 1048576,界面会显示约 2M 的窗口;设置 contextWindow: 1048576 可以同时修正显示值和压缩预算。

本文示例按 kimi-k3 的 1,048,576 Token 共享窗口配置。配置 Custom Endpoint 时,使用 contextWindow: 1048576,并根据任务选择小于该窗口的 maxOutputTokens;如果模型广场显示不同值,请以当前模型卡片为准。

以下字段直接影响 VS Code 的模型展示和筛选:

  • toolCalling:是否允许模型出现在 Agent 模型选择器中。
  • vision:是否允许附加图片输入。
  • contextWindow:输入和输出共享的总窗口。
  • maxOutputTokens:单次请求的输出上限。

配置思考和推理强度 ​

Custom Endpoint 模型默认不启用思考能力。模型卡片确认支持思考或推理强度时,按协议添加以下字段:

  • thinking:设为 true 启用思考,并在 Language Models 中显示思考开关。Responses 协议中,只有 thinking: true 时才会发送推理相关字段。
  • supportsReasoningEffort:声明支持的推理强度列表(如 ["low", "medium", "high"]),模型选择器会显示 "Thinking Effort" 控件。
  • reasoningEffortFormat:推理强度参数的发送格式,需与 apiType 匹配——"messages" 发送 output_config.effort,"chat-completions" 发送顶层 reasoning_effort,"responses" 发送 reasoning.effort。不设置时默认值跟随 apiType,一般无需显式填写。
  • adaptiveThinking:仅 Messages 协议生效。设为 true 后由模型自行决定是否思考及思考预算,可用 minThinkingBudget 和 maxThinkingBudget 限制预算范围。这些字段对其他协议无效,会被静默忽略。

启用思考后,VS Code 会按协议保留跨轮思考内容,无需额外配置:Chat Completions 协议在 thinking: true 时把历史思考以 reasoning_content 回传(Kimi、DeepSeek 等模型要求该行为);Messages 协议回放带签名的 thinking block;Responses 协议通过 previous_response_id 链式关联(zeroDataRetentionEnabled: true 时关闭)。三种协议都支持跨轮思考保留,不存在必须切换到 Responses 才能保留思考的限制。

Messages 协议示例:

language-json
{
  "id": "claude-sonnet-4-6",
  "thinking": true,
  "adaptiveThinking": true,
  "supportsReasoningEffort": ["low", "medium", "high", "max"],
  "reasoningEffortFormat": "messages"
}

启用模型并开始对话 ​

  1. 保存 chatLanguageModels.json。如果新模型没有立即出现,重启 VS Code。
  2. 打开 Language Models,确认目标模型的眼睛图标为可见。
  3. 从 Chat 模型选择器中选择该模型。
  4. 如果普通 Chat 可见但 Agent 模式不可见,请检查 toolCalling,并在模型卡片中确认该模型支持工具调用。

BYOK 可用于 Chat、编辑和具备相应能力的 Agent 流程,但不提供标准行内代码补全。需要为编辑器 Inline Chat 指定默认模型时,设置 inlineChat.defaultModel。

配置后台任务模型 ​

VS Code 使用轻量模型生成标题、提交信息和意图分类。未登录 GitHub、只使用 BYOK 时,内置后台模型不可用,可配置:

  • chat.utilityModel:标题、摘要、设置搜索和 Git review 等通用任务。
  • chat.utilitySmallModel:提交信息、重命名、分支名和意图检测等轻量任务。
  • chat.byokUtilityModelDefault:选择 BYOK 主 Agent 模型时,决定后台任务默认使用主模型、GitHub Copilot 模型或不使用默认模型。

排查 VS Code 接入问题 ​

InfiniAI 模型列表为空或刷新失败 ​

  1. 运行 InfiniAI: 打开 VS Code 管理模型,确认至少存在一个 InfiniAI 提供方分组。
  2. 在分组操作菜单中选择 Update API Key,确认密钥有效。
  3. 运行 InfiniAI: 刷新模型列表。刷新失败时,使用错误通知中的管理模型或打开日志操作检查 API Key 和错误信息,然后重试。
  4. 运行 @infiniai /doctor,检查发现地址是否为 https://cloud.infini-ai.com/maas/v1/models。
  5. 清空 infiniai.modelDiscoveryUrl,除非您明确需要自定义发现端点。
  6. 检查 InfiniAI 提供方筛选和 VS Code 可见性两个独立层。

刷新超时后,VS Code 仍会显示上次成功获取的模型列表。请查看 InfiniAI 日志并重试;无需删除提供方分组或重新安装扩展。

模型没有出现在 Agent 模式中 ​

  1. 先确认模型在普通 Chat 模型选择器中可见。
  2. 在 Language Models 中使用 @capability:agent 或 @capability:tools 检查能力。
  3. 使用 Custom Endpoint 时,确认 toolCalling 为 true 且模型实际支持工具调用。
  4. 使用 Agents 窗口时,确认 chat.agentHost.byokModels.enabled 已启用并重启 Agent Host。

把所有模型设为可见只会通过可见性筛选,不会绕过 Agent 的工具调用能力筛选。

使用 InfiniAI 扩展检查 Agent 可用性 ​

运行 InfiniAI: 配置 Agent 可用性,查看当前能力来源。只有在模型卡片确认支持工具调用时,才选择 Enable for Agent。

Claude 请求返回协议或认证错误 ​

  • 使用 Custom Endpoint 时,确认 apiType 为 messages,URL 为 https://cloud.infini-ai.com/maas/v1/messages。
  • 在 Language Models 中更新当前提供方或 Custom Endpoint 的 API Key。

使用 InfiniAI 扩展检查 Claude 协议 ​

在 Language Models 中更新 InfiniAI 提供方分组的 API Key;infiniai.* 设置不保存提供方分组的 API Key。在模型悬停信息中确认有效协议为 Anthropic。如果不是,请运行 InfiniAI: 切换模型协议,选择 Anthropic 或恢复自动选择。

kimi-k3 显示约 2M Context Size ​

VS Code 1.130 可能把 kimi-k3 的 Context Size 显示为约 2M。请求仍应遵循模型卡片中的共享上下文窗口,不要把界面显示的约 2M 直接用作请求预算。

使用 InfiniAI 扩展时,请确保输入与请求输出之和不超过模型卡片中的窗口上限。使用 Custom Endpoint 时,如果模型卡片显示 1,048,576 Token,请设置 contextWindow: 1048576,并另行设置较小的 maxOutputTokens。设置 contextWindow 后,界面 Context Size 和对话自动压缩预算都会以共享窗口为准;推导规则见校正 Context Size 和模型能力。

升级扩展后仍看到旧行为 ​

  1. 在 扩展 视图确认已安装版本,并完成 Restart Extensions。
  2. 运行 code --list-extensions --show-versions,确认 drewzhao.infiniai-copilot 的版本。
  3. 运行 @infiniai /doctor 和 @infiniai /models refresh。

如果仍看到旧行为,请不要手动删除扩展目录。请在 Language Models 中检查提供方分组、模型协议和可见性;问题仍未解决时,请打开 InfiniAI 日志并将检查后的诊断信息提供给支持人员。

Custom Endpoint 模型没有出现 ​

VS Code 的 Custom Endpoint 不提供连接诊断工具,配置错误时不会给出具体的连通性报错,请按以下清单逐项排查:

  • 保存 chatLanguageModels.json 后重启 VS Code。
  • 确认 vendor 为 customendpoint,apiType 与完整 URL 匹配。
  • 确认 maxOutputTokens 已设置,并且同时设置了 contextWindow 或 maxInputTokens。
  • 运行 Chat: Manage Language Models,检查配置语法错误和眼睛图标可见性。

相关文档 ​