Skip to content

使用 GitHub Copilot CLI 集成 GenStudio API

GitHub Copilot CLI 支持通过 BYOK(Bring Your Own Key)连接外部模型。本文介绍如何通过 GenStudio 的 OpenAI 兼容 API,在 Copilot CLI 中使用 glm-5.1minimax-m2.7kimi-k2.5 等模型。

使用前须知

使用前请确认:

  1. 已安装 copilot 命令。
  2. 目标模型支持 tool callingstreaming
  3. 使用 GitHub 托管能力(例如代码搜索)时,需要先执行 copilot login。其他登录方式,请参考 GitHub Copilot CLI

警告

GitHub Copilot CLI 使用自定义 Provider 时,一次会话只绑定一个模型。切换模型时,需退出当前会话,再使用新的 COPILOT_MODELcopilot --model 重新启动。会话内的 /model/models 不适用于此场景。

获取 API 接入信息

GenStudio 通用 LLM API

适用于按量付费场景。

通过 API 获取最新可用模型列表

调用以下接口查询可用模型。

使用通用 API Key(sk- 前缀)查询:

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

配置 Copilot CLI 环境变量

BYOK 通过环境变量配置。本文仅介绍 OpenAI-compatible 接入方式,使用环境变量进行配置。

  • COPILOT_PROVIDER_BASE_URL: Base URL,不追加 /chat/completions
  • COPILOT_PROVIDER_API_KEY: API 密钥。
  • COPILOT_MODEL:模型 ID,例如 glm-5.1。也可以在启动时指定,例如 copilot --model glm-5.1
  • COPILOT_PROVIDER_TYPE:API 协议类型,可省略,默认值为 openai

由于自定义模型通常不在 Copilot 内置目录中,建议补充 token 限额(以 glm-5.1 为例)。切换模型时,请按目标模型的上下文窗口更新这两个值。

  • COPILOT_PROVIDER_MAX_PROMPT_TOKENS=200000
  • COPILOT_PROVIDER_MAX_OUTPUT_TOKENS=128000

macOS / Linux:当前终端会话中临时生效

language-bash
export COPILOT_PROVIDER_BASE_URL="https://cloud.infini-ai.com/maas/v1"
export COPILOT_PROVIDER_API_KEY="sk-xxx"
export COPILOT_MODEL="glm-5.1"
export COPILOT_PROVIDER_MAX_PROMPT_TOKENS="200000"
export COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="128000"

copilot

Windows PowerShell:当前终端会话中临时生效

language-powershell
$env:COPILOT_PROVIDER_BASE_URL = "https://cloud.infini-ai.com/maas/v1"
$env:COPILOT_PROVIDER_API_KEY = "sk-xxx"
$env:COPILOT_MODEL = "glm-5.1"
$env:COPILOT_PROVIDER_MAX_PROMPT_TOKENS = "200000"
$env:COPILOT_PROVIDER_MAX_OUTPUT_TOKENS = "128000"

copilot

常用启动方式

language-bash
# 交互式会话
copilot

# 交互式会话,附带初始任务
copilot -i "Review this repository"

# 非交互式调用
copilot -p "Summarize the current diff" --allow-all-tools

切换模型与简化启动命令

自定义 Provider 下,会话内 /model/models 不适用。切换模型时,需要修改 COPILOT_MODEL 或使用 --model 指定,然后重新启动会话。

最直接的方式是在启动时显式指定模型:

language-bash
copilot --model glm-5.1
copilot --model minimax-m2.7

模型 ID 应与 GenStudio /models API 接口返回值一致。非内置模型需同步更新 token 限额。

如果需要频繁切换模型,建议把常用启动方式写成 alias 或 function。

固定模型可写成 alias:

language-bash
alias copilot-genstudio='COPILOT_PROVIDER_BASE_URL="https://cloud.infini-ai.com/maas/v1" COPILOT_PROVIDER_API_KEY="sk-xxx" COPILOT_MODEL="glm-5.1" COPILOT_PROVIDER_MAX_PROMPT_TOKENS="200000" COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="128000" copilot'

需要按次切换模型时可改用 function:

language-bash
copilot-genstudio() {
  COPILOT_PROVIDER_BASE_URL="https://cloud.infini-ai.com/maas/v1" \
  COPILOT_PROVIDER_API_KEY="sk-xxx" \
  COPILOT_PROVIDER_MAX_PROMPT_TOKENS="${2:-200000}" \
  COPILOT_PROVIDER_MAX_OUTPUT_TOKENS="${3:-128000}" \
  copilot --model "${1:-glm-5.1}"
}

用法:

language-bash
copilot-genstudio
copilot-genstudio glm-5.1
copilot-genstudio kimi-k2.5 200000 128000

建议写入 ~/.zshrc~/.bashrc,并使用独立名称(如 copilot-genstudio),避免与默认 copilot 冲突。

常见问题

为什么 COPILOT_MODEL 就够了?

COPILOT_MODEL 同时设置内部模型 ID(COPILOT_PROVIDER_MODEL_ID)和发送给 Provider 的模型名(COPILOT_PROVIDER_WIRE_MODEL)。具体解释,请参考 copilot providers help 命令输出。

相关文档