在 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 Completions | https://cloud.infini-ai.com/maas/v1/chat/completions |
| Anthropic Messages | https://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 或更高版本。
安装扩展
- 在 VS Code 中安装 InfiniAI Provider for VS Code。
- 运行
code --version,确认 VS Code 版本不低于1.130.0。 - 升级扩展后,如果 扩展 视图提示需要重启,请选择 Restart Extensions 或运行 Developer: Reload Window。
安装成功后,活动栏会显示 InfiniAI,其中包含 模型 和 用量 视图。
添加提供方分组并保存 API Key
按 Cmd+Shift+P / Ctrl+Shift+P 打开命令面板,运行 InfiniAI: 添加提供方分组。
阅读分组名称说明,选择 打开语言模型。
在 Language Models 窗口中选择 Add Models > InfiniAI。
输入分组名称:
- 只有一个 API Key 时,保留默认名称
InfiniAI。 - 有多个 API Key 时,使用
Work、Personal或Team A等用途名称。每个 InfiniAI 分组的名称必须唯一。 - 不要把 API Key、账户密码或其他秘密写入分组名称。
- 只有一个 API Key 时,保留默认名称
在随后出现的 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 Models > InfiniAI 重新添加。
请通过 InfiniAI: 打开 VS Code 管理模型 管理 API Key 分组。InfiniAI: 打开 InfiniAI 设置 只管理普通的 infiniai.* 设置;更新 API Key 时,请返回提供方分组的操作菜单。
让模型出现在普通模型选择器中
要让模型出现在普通 Chat 模型选择器中,请同时检查以下两项设置:
- InfiniAI 提供方筛选:在 InfiniAI 模型 视图中包含或排除模型。需要重新包含全部已发现模型时,运行 InfiniAI: 重置 InfiniAI 提供方模型筛选。
- 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: 清除思考回放缓存 会立即删除已保存的思考内容,且不能撤销。清除后请开始新会话;依赖这些内容的旧会话无法继续。
检查模型发现和连接
- 运行 InfiniAI: 刷新模型列表。刷新失败时,模型列表会保留上次成功结果;请使用错误通知中的管理模型或打开日志操作继续检查。
- 在 Chat 中运行
@infiniai /doctor,检查提供方分组、发现端点、缓存状态、模型协议设置和最近一次已脱敏错误。 - 运行
@infiniai /models refresh,刷新并查看模型的有效协议、能力来源和 Token 限制。 - 运行
@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 模型
- 在 Chat 模型选择器中选择管理模型齿轮,或从命令面板运行 Chat: Manage Language Models。
- 选择 Add Models > Custom Endpoint。
- 输入分组名称,例如
GenStudio OpenAI。这是本地显示标签,不会发送给 GenStudio。 - 输入显示名称和 API Key,API 类型选择 Chat Completions。
- 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、contextWindow、maxOutputTokens、toolCalling 和 vision 改为当前账号模型卡片中显示的值。
添加 Anthropic Messages 模型
Claude 模型使用 GenStudio Anthropic Messages 端点时,必须把 API 类型设置为 Messages,并使用完整的 /v1/messages 地址。
- 再次选择 Add Models > Custom Endpoint。
- 输入分组名称,例如
GenStudio Anthropic。 - 输入显示名称和 API Key,API 类型选择 Messages。
- 在
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 不会为模型增加该能力。
校正 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:单次请求的输出上限。
启用模型并开始对话
- 保存
chatLanguageModels.json。如果新模型没有立即出现,重启 VS Code。 - 打开 Language Models,确认目标模型的眼睛图标为可见。
- 从 Chat 模型选择器中选择该模型。
- 如果普通 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 模型列表为空或刷新失败
- 运行 InfiniAI: 打开 VS Code 管理模型,确认至少存在一个 InfiniAI 提供方分组。
- 在分组操作菜单中选择 Update API Key,确认密钥有效。
- 运行 InfiniAI: 刷新模型列表。刷新失败时,使用错误通知中的管理模型或打开日志操作检查 API Key 和错误信息,然后重试。
- 运行
@infiniai /doctor,检查发现地址是否为https://cloud.infini-ai.com/maas/v1/models。 - 清空
infiniai.modelDiscoveryUrl,除非您明确需要自定义发现端点。 - 检查 InfiniAI 提供方筛选和 VS Code 可见性两个独立层。
刷新超时后,VS Code 仍会显示上次成功获取的模型列表。请查看 InfiniAI 日志并重试;无需删除提供方分组或重新安装扩展。
模型没有出现在 Agent 模式中
- 先确认模型在普通 Chat 模型选择器中可见。
- 在 Language Models 中使用
@capability:agent或@capability:tools检查能力。 - 使用 Custom Endpoint 时,确认
toolCalling为true且模型实际支持工具调用。 - 使用 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。
升级扩展后仍看到旧行为
- 在 扩展 视图确认已安装版本,并完成 Restart Extensions。
- 运行
code --list-extensions --show-versions,确认drewzhao.infiniai-copilot的版本。 - 运行
@infiniai /doctor和@infiniai /models refresh。
如果仍看到旧行为,请不要手动删除扩展目录。请在 Language Models 中检查提供方分组、模型协议和可见性;问题仍未解决时,请打开 InfiniAI 日志并将检查后的诊断信息提供给支持人员。
Custom Endpoint 模型没有出现
- 保存
chatLanguageModels.json后重启 VS Code。 - 确认
vendor为customendpoint,apiType与完整 URL 匹配。 - 确认
maxOutputTokens已设置,并且同时设置了contextWindow或maxInputTokens。 - 运行 Chat: Manage Language Models,检查配置语法错误和眼睛图标可见性。