使用自带模型与 API Key
连接 OpenAI 兼容、Azure 或 Anthropic 服务,理解 provider 配置优先级与离线模式。
This page has not been translated into English yet. The original Chinese version is shown below.
BYOK 让 CLI 使用你配置的模型提供商,也可连接本地模型。模型必须支持 tool calling 和 streaming;官方建议上下文至少 128k tokens,但这是建议,不是所有模型统一的最低硬门槛。
配置入口与优先级
当前配置参考提供 ~/.copilot/providers.json 注册表,顶层包含 providers 和 models。用 COPILOT_PROVIDERS_CONFIG 覆盖文件位置。只要该文件声明了任意 provider 或 model,就优先于旧 COPILOT_PROVIDER_ 环境变量。*
官方 BYOK 操作教程仍主要使用环境变量。下面保留其可核实示例,不自行猜测 providers.json 内部字段;需要注册表格式的完整示例时运行 copilot help providers,以当前 CLI 帮助为准。
OpenAI 兼容服务
默认 provider type 是 openai,适用于 Chat Completions 兼容端点,包括 Ollama、vLLM 和 Foundry Local。远程服务示例:
export COPILOT_PROVIDER_BASE_URL=https://api.openai.com/v1
export COPILOT_PROVIDER_API_KEY=YOUR-OPENAI-API-KEY
export COPILOT_MODEL=YOUR-MODEL-NAME
copilot替换模型名称和密钥;不要把真实密钥提交到仓库。本地 Ollama 示例只需设置 COPILOT_PROVIDER_BASE_URL=http://localhost:11434 和已拉取的模型名;服务无需认证时可省略 API key。
Azure OpenAI
export COPILOT_PROVIDER_BASE_URL=https://YOUR-RESOURCE-NAME.openai.azure.com
export COPILOT_PROVIDER_TYPE=azure
export COPILOT_PROVIDER_API_KEY=YOUR-AZURE-API-KEY
export COPILOT_PROVIDER_AZURE_API_VERSION=YOUR-AZURE-API-VERSION
export COPILOT_PROVIDER_MODEL_ID=YOUR-MODEL-NAME
export COPILOT_PROVIDER_WIRE_MODEL=YOUR-DEPLOYMENT-NAME
export COPILOT_MODEL=YOUR-DEPLOYMENT-NAME
copilotAzure 按 deployment 路由。MODEL_ID 标识实际模型能力和 token 限额,WIRE_MODEL 是请求发送的部署名,不能把两者无条件设为相同值。API version 使用该部署支持的版本。
Anthropic
export COPILOT_PROVIDER_TYPE=anthropic
export COPILOT_PROVIDER_BASE_URL=https://api.anthropic.com
export COPILOT_PROVIDER_API_KEY=YOUR-ANTHROPIC-API-KEY
export COPILOT_MODEL=YOUR-MODEL-NAME
copilot模型可通过 COPILOT_MODEL 或 --model 选择。是否可用还取决于 provider 的授权、能力与配置。
其他变量
| 变量 | 用途 |
|---|---|
| COPILOT_PROVIDER_BEARER_TOKEN | 非 API-key 方式的 Bearer 认证 |
| COPILOT_PROVIDER_WIRE_API | 指定服务通信协议,具体值以当前帮助为准 |
| COPILOT_PROVIDER_MAX_PROMPT_TOKENS | 每次请求的 prompt token 上限 |
| COPILOT_PROVIDER_MAX_OUTPUT_TOKENS | 生成 token 上限 |
| COPILOT_PROVIDER_API_KEY_COMMAND | 每次请求前运行命令取得新 key,优先于静态 API_KEY |
API_KEY_COMMAND 的输出还会替换与凭据冲突的自定义请求头。它执行实际 Shell 命令,应仅配置受信任的密钥获取程序。
离线模式的范围
export COPILOT_OFFLINE=true先配置模型,再设置此变量启动 CLI,可阻止联系 GitHub 服务器。它不保证断网:远程 provider 仍会接收提示与代码上下文,只有 provider 也位于本地或隔离环境时才符合该隔离目标。
BYOK 不要求先登录 GitHub,但未登录时 GitHub 专属能力受限。
设备管理可以通过 forceLoginOrgs 要求指定组织身份,并拒绝纯 BYOK / API-key 认证;这属于设备准入限制。参见托管配置。
遇到模型或 endpoint 未按预期生效,先检查 providers.json 是否覆盖了环境变量,再检查模型的工具调用和流式支持,最后区分 provider 认证错误与GitHub 登录错误。