Skip to content

在 VS Code 中使用 GenStudio 模型

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. 运行 code --version,确认 VS Code 版本不低于 1.130.0
  3. 升级扩展后,如果 扩展 视图提示需要重启,请选择 Restart Extensions 或运行 Developer: Reload Window

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

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

  1. Cmd+Shift+P / Ctrl+Shift+P 打开命令面板,运行 InfiniAI: 添加提供方分组

  2. 阅读分组名称说明,选择 打开语言模型

  3. Language Models 窗口中选择 Add ModelsInfiniAI

  4. 输入分组名称:

    • 只有一个 API Key 时,保留默认名称 InfiniAI
    • 有多个 API Key 时,使用 WorkPersonalTeam A 等用途名称。每个 InfiniAI 分组的名称必须唯一。
    • 不要把 API Key、账户密码或其他秘密写入分组名称。
  5. 在随后出现的 API 密钥 输入框中粘贴 GenStudio API Key。

分组名称仅用于在 VS Code 中区分不同的 API Key,不会发送给 GenStudio,也不影响 API Key 是否有效。通过 InfiniAI: 添加提供方分组 开始添加,可以在输入 API Key 前先查看分组命名说明。

VS Code 会把 API Key 保存到该提供方分组的凭据存储中。API Key 会在 VS Code 重启和扩展升级后继续有效,除非您更新或删除该分组。

注意

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

更新、重命名或删除 API Key 分组

运行 InfiniAI: 打开 VS Code 管理模型,然后打开 InfiniAI 提供方分组的操作菜单:

  • 选择 Update API Key 轮换密钥。
  • 选择 Rename Group 修改本地显示名称。重命名不会更换 API Key 或关联的 GenStudio 账户。
  • 选择 Delete 并确认,删除分组及其已保存密钥。
  • 需要完全重置时,删除分组,再通过 Add ModelsInfiniAI 重新添加。

请通过 InfiniAI: 打开 VS Code 管理模型 管理 API Key 分组。InfiniAI: 打开 InfiniAI 设置 只管理普通的 infiniai.* 设置;更新 API Key 时,请返回提供方分组的操作菜单。

让模型出现在普通模型选择器中

要让模型出现在普通 Chat 模型选择器中,请同时检查以下两项设置:

  1. InfiniAI 提供方筛选:在 InfiniAI 模型 视图中包含或排除模型。需要重新包含全部已发现模型时,运行 InfiniAI: 重置 InfiniAI 提供方模型筛选
  2. VS Code 可见性:运行 InfiniAI: 打开 VS Code 管理模型,然后用眼睛图标显示或隐藏模型。

如果模型已在 InfiniAI 视图中标记为包含,但在 Chat 中不可见,请继续检查眼睛图标。如果模型已被 InfiniAI 提供方筛选排除,请先将其设为包含;仅打开眼睛图标不会恢复被排除的模型。

让模型出现在 Agent 模式中

Agent 模型选择器只显示支持工具调用并已标记该能力的模型。因此,一个模型可以在普通 Chat 中可见,但不出现在 Agent 模式中。

运行 InfiniAI: 配置 Agent 可用性,选择模型后设置以下一项:

  • Automatic:根据模型发现结果判断是否可用于 Agent。无法确认工具调用能力的模型不会显示在 Agent 模型选择器中。
  • Enable for Agent:为选定的模型 ID 启用 Agent 可用性。
  • Disable for Agent:阻止该模型 ID 出现在 Agent 模型选择器中。

扩展 0.6.10 或更高版本默认在 Agent 中启用 claude-* 模型,并自动启用其他已确认支持工具调用的模型。如果模型没有自动显示,但模型卡片确认其支持工具调用,可以选择 Enable for Agent。此设置只控制模型是否出现在 Agent 模型选择器中,不能为模型增加工具调用能力,也不能修复 API Key、协议或服务端错误。InfiniAI 模型 视图的悬停信息会显示 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。需要恢复自动协议选择时,再次运行命令并选择 Reset exact override。Agent 可用性和 API 协议需要分别配置;把 Claude 模型设为可用于 Agent,不会同时更改协议。

配置模型请求控件

模型发现完成后,Language Models 会显示所选模型支持的请求控件:

  • Max output tokens 限制下一次响应的最大输出长度。
  • Reasoning effort 只对支持推理强度参数的模型显示。选择模型后,VS Code 也可能在模型选择器中显示 Thinking Effort
  • Thinking mode 只在 Language Models 中显示,并且仅适用于支持思考开关的模型。始终启用思考的模型不会显示关闭选项。

控件值在下一次请求时生效,不会修改已经发出的请求。Automatic 使用所选模型的推荐设置,不一定表示请求中不发送推理参数。

配置图片输入

当 VS Code 识别到模型支持图片时,扩展会自动允许添加图片。例如,kimi-k3 会显示为支持图片输入。只有在模型卡片确认模型支持图片、但 VS Code 没有提供图片输入时,才使用以下设置:

  • infiniai.imageInputModels:为匹配的模型 ID 强制启用图片输入。
  • infiniai.disableImageInputModels:为匹配的模型 ID 强制禁用图片输入。

两个设置都支持不区分大小写的 * 通配符。用户禁用设置优先于启用设置。

保留多轮思考内容

部分 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,检查提供方分组、发现端点、缓存状态、模型协议设置和最近一次已脱敏错误。
  3. 运行 @infiniai /models refresh,刷新并查看模型的有效协议、能力来源和 Token 限制。
  4. 运行 @infiniai /test,选择模型并通过其有效协议发送最小连接测试。

@infiniai 仅用于诊断,不用于回答普通对话。诊断输出默认不记录 API Key、提示词、工具结果、图片数据、认证 Header 或完整响应正文;分享日志前仍应检查组织专用端点名和模型 ID。

查找 InfiniAI 命令

在命令面板中输入 InfiniAI:,可以找到以下操作:

操作用途
刷新模型列表重新读取所有 InfiniAI 分组的可用模型;失败时保留上次成功结果。
从 InfiniAI 提供方列表中排除模型 / 包含模型控制哪些模型可以在 VS Code 中显示。
重置 InfiniAI 提供方模型筛选清除包含和排除设置,重新包含全部已发现模型。
配置 Agent 可用性为选定模型选择自动判断、启用或禁用 Agent。
切换模型协议为选定的 Claude 模型选择 OpenAI 或 Anthropic 协议,或恢复自动选择。
添加提供方分组查看分组命名说明并开始添加 API Key。
打开 VS Code 管理模型管理分组密钥、名称、删除操作、VS Code 可见性和逐模型控件。
打开 InfiniAI 设置打开普通 infiniai.* 设置;不管理 API Key。
打开 InfiniAI 日志查看连接和模型诊断信息。
清除思考回放缓存删除本机保存的思考内容;清除后需要开始新会话。

通过 VS Code Custom Endpoint 接入

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

重要

Custom Endpoint 需要手动填写模型 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 ModelsCustom 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": "gpt-oss-120b",
                "name": "gpt-oss-120b",
                "url": "https://cloud.infini-ai.com/maas/v1/chat/completions",
                "toolCalling": true,
                "vision": false,
                "contextWindow": 131072,
                "maxOutputTokens": 32768
              }
            ]
          }
        ]

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

添加 Anthropic Messages 模型

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

  1. 再次选择 Add ModelsCustom 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: truevision: true。Agent 模型选择器会隐藏未声明工具调用能力的模型,但把字段改为 true 不会为模型增加该能力。

校正 Context Size 和模型能力

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

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

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

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

启用模型并开始对话

  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 时,确认 toolCallingtrue 且模型实际支持工具调用。
  4. 使用 Agents 窗口时,确认 chat.agentHost.byokModels.enabled 已启用并重启 Agent Host。

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

使用 InfiniAI 扩展检查 Agent 可用性

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

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

  • 使用 Custom Endpoint 时,确认 apiTypemessages,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

升级扩展后仍看到旧行为

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

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

Custom Endpoint 模型没有出现

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

相关文档