- 人工智能
- AI Agent
- 即时通讯
- 后端
- 本地部署
- 语音
【免费下载链接】openclaw-cn
中文社区版OpenClaw,同原版保持定期更新,已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。🦞
导读
GitHub Copilot 不只是一个编辑器内的代码补全工具,它同时也是一个可供第三方应用调用的模型供应商。openclaw-cn(中文社区版 OpenClaw)内置了github-copilot供应商,允许你用自己的 GitHub 账户与 Copilot 订阅直接驱动 Claude、GPT、Gemini、Grok 等模型,而无需额外申请 API Key。本文围绕 GitHub Copilot 官方文档 展开,完整讲解两条接入路径的配置步骤、CLI 命令、可选参数与配置文件写法,并结合仓库源码说明登录流程、令牌兑换与缓存机制的底层实现。读完本文,你将能够在 openclaw-cn 中通过设备流程一键登录 Copilot,并把github-copilot/gpt-4o这类模型设为默认模型。
什么是 GitHub Copilot 供应商
GitHub Copilot 是 GitHub 推出的 AI 编程助手,其模型访问权限绑定你的 GitHub 账户与订阅计划。openclaw-cn 把 Copilot 视为一个模型供应商:你只需要拥有 GitHub 账号和有效的 Copilot 订阅,就能获得多个主流模型的访问权。
在 openclaw-cn 中,使用 Copilot 有两种方式:
| 方式 | 供应商 ID | 是否需要 VS Code | 适用场景 |
|---|---|---|---|
| 内置供应商 | github-copilot | 否 | 默认且最简单,使用原生设备登录流程 |
| Copilot Proxy 插件 | copilot-proxy | 是 | 已在 VS Code 中运行 Copilot Proxy,或需要经过代理路由 |
1) 内置 GitHub Copilot 供应商(github-copilot)
这是官方推荐路径。openclaw-cn 通过 GitHub 的**设备授权流程(device flow)**获取 GitHub token,然后在运行时将其兑换为 Copilot API token。整个过程不依赖 VS Code,只需要交互式终端。
2) Copilot Proxy 插件(copilot-proxy)
对应仓库中的 copilot-proxy 插件。该插件把Copilot ProxyVS Code 扩展当作本地桥接:openclaw-cn 连接代理的/v1端点,使用你在扩展中配置的模型列表。适合已经运行 Copilot Proxy 的场景,但需要启用插件并保持 VS Code 扩展持续运行。
CLI 登录:设备流程一键接入
内置供应商的登录命令位于 models-cli.ts,核心命令为:
openclaw-cn models auth login-github-copilot执行后终端会显示一个授权 URL 和一次性代码,例如:
Visit: https://github.com/login/device Code: ABCD-EFGH你需要访问该 URL、输入代码并完成授权。在完成授权之前请保持终端打开,否则设备代码过期后需要重新登录。
登录流程的可选参数
# 指定认证配置文件 ID(默认 github-copilot:github) openclaw-cn models auth login-github-copilot --profile-id github-copilot:work # 已有配置文件时跳过覆盖确认,直接覆盖 openclaw-cn models auth login-github-copilot --yes参数说明(与 github-copilot-auth.ts 中的实现一一对应):
--profile-id <id>:认证配置文件的 ID,默认值为github-copilot:github。适合在同一个 GitHub 账户下区分工作/个人配置,或轮换多个订阅账户。--yes:布尔开关。当profileId已存在时,默认会提示"重新运行将覆盖现有凭据",加上--yes可跳过确认直接覆盖。
设备流程的底层实现
从源码可以看到完整的设备授权链路(github-copilot-auth.ts):
- 发起
POST https://github.com/login/device/code请求,携带固定的CLIENT_ID(Iv1.b507a08c87ecfe98)与scope: "read:user",拿到device_code、user_code、verification_uri、expires_in和interval。 - 以
interval为轮询间隔,持续向https://github.com/login/oauth/access_token发起urn:ietf:params:oauth:grant-type:device_code类型的请求,直到拿到access_token。 - 轮询期间需要处理三种典型错误:
authorization_pending(等待授权,继续轮询)、slow_down(请求过快,需额外等待)、expired_token/access_denied(代码过期或被拒绝,直接报错退出)。 - 拿到 GitHub token 后写入认证配置文件,并通过
applyAuthProfileConfig把github-copilot供应商配置同步进模型配置,最终显示 "Done"。
需要特别注意的是,该命令要求交互式终端(TTY)。源码在函数入口处显式检查了process.stdin.isTTY,非 TTY 环境会直接抛出 "github-copilot login requires an interactive TTY."。因此在脚本化、后台或 CI 环境中无法直接执行此命令,请务必在真实终端中运行。
令牌兑换与缓存:运行时如何变成 Copilot API Token
登录时拿到的是 GitHub token,而调用模型需要的是 Copilot API token。openclaw-cn 在运行时完成兑换,核心实现在 github-copilot-token.ts:
- 兑换接口:
GET https://api.github.com/copilot_internal/v2/token,请求头携带Authorization: Bearer <githubToken>。 - 缓存机制:兑换结果(
token、expiresAt、updatedAt)写入状态目录下的credentials/github-copilot.token.json。再次运行时若缓存仍在有效期(源码中保留了 5 分钟的过期安全余量),直接复用缓存,不再请求网络。 - 动态 Base URL:Copilot 返回的 token 是以分号分隔的键值串,其中包含
proxy-ep=...字段。deriveCopilotApiBaseUrlFromToken会把proxy.xxx转换为api.xxx作为 API 地址;若无法解析则回退到默认地址https://api.individual.githubcopilot.com。这一点在 github-copilot-token.test.ts 中有对应的单测验证。 - 运行时调用点:在 pi-embedded-runner 的 run.ts 与 compact.ts 中,每当模型供应商为
github-copilot时都会调用resolveCopilotApiToken完成兑换。
此外,openclaw-cn 还支持通过环境变量直接提供 GitHub token,无需走交互式登录。从 resolveImplicitCopilotProvider 的实现看,它会依次读取COPILOT_GITHUB_TOKEN、GH_TOKEN、GITHUB_TOKEN,若这些环境变量为空则回退到认证配置中的首个github-copilotprofile。
设置默认模型
登录完成后,把 Copilot 的某个模型设为默认模型:
openclaw-cn models set github-copilot/gpt-4o对应配置文件示例(JSON5):
{ agents: { defaults: { model: { primary: "github-copilot/gpt-4o" } } } }配置路径的含义:github-copilot是供应商 ID,gpt-4o是模型 ID。除了gpt-4o,还可以尝试其他 ID,例如github-copilot/gpt-4.1、github-copilot/claude-sonnet-4.5等。
内置模型清单
openclaw-cn 在 github-copilot-models.ts 中维护了一份完整的 Copilot 可用模型清单(该清单独立于上游 pi-ai 内置列表,避免上游更新滞后)。从源码看,内置模型按厂商分为四组:
- Anthropic Claude:
claude-haiku-4.5、claude-opus-4.5、claude-opus-4.6(上下文窗口 200K)、claude-sonnet-4、claude-sonnet-4.5 - Google Gemini:
gemini-2.5-pro、gemini-3-flash-preview、gemini-3-pro-preview - OpenAI GPT:
gpt-4.1、gpt-4o、gpt-5、gpt-5-mini、gpt-5.1、gpt-5.1-codex、gpt-5.1-codex-max、gpt-5.1-codex-mini、gpt-5.2、gpt-5.2-codex - xAI:
grok-code-fast-1
这些模型定义统一使用openai-completions(或openai-responses,针对 GPT-5 系列)API 协议、成本记为零、支持文本与图片输入。另外buildCopilotModelDefinition提供了兜底逻辑:当请求的模型 ID 不在清单中时,会按通用参数(128K 上下文、16K 最大输出)自动生成一个临时定义,因此配置中出现较新的模型 ID 也不会直接失败。
方案二:Copilot Proxy 插件
如果你选择 Copilot Proxy 方案,仓库中提供了现成的 copilot-proxy 插件。
启用插件
内置插件默认处于禁用状态,需要先启用:
openclaw-cn plugins enable copilot-proxy启用后需要重启 Gateway 才能生效。
认证配置
openclaw-cn models auth login --provider copilot-proxy --set-default认证时插件会通过交互式向导询问两个问题(实现见 index.ts):
- Copilot Proxy base URL:代理服务地址,默认
http://localhost:3000/v1。注意该地址必须包含/v1后缀,插件会自动为未以/v1结尾的地址补全。 - Model IDs(逗号分隔):要暴露给 openclaw-cn 的模型列表,默认包含
gpt-5.2、gpt-5.1、claude-opus-4.5、claude-sonnet-4.5、gemini-3-pro、grok-code-fast-1等主流模型。
配置完成后,插件会写入copilot-proxy:local认证 profile,并把供应商配置(baseUrl、apiKey: "n/a"、authHeader: false、模型定义列表)以及默认模型写入模型配置。由于本地代理不做鉴权,apiKey固定为占位值且关闭了authHeader请求头注入。
使用前提
- Copilot Proxy VS Code 扩展必须处于运行状态,否则
/v1/chat/completions端点不可达; - 可用模型取决于你的 Copilot 订阅计划,若某模型被拒绝,可编辑配置中
models.providers.copilot-proxy下的模型列表; - 该方案与内置供应商相比多了一层本地代理,适合需要复用 VS Code 内已有会话的场景。
使用注意事项
- 必须使用交互式终端:设备流程登录依赖 TTY,请直接在终端执行,不要在 IDE 内嵌终端工具或后台进程中运行。
- 模型可用性取决于订阅计划:GitHub Copilot 不同订阅(如 Copilot Pro、Copilot Business 等)开放的模型集合不同。若某模型在运行时被 API 拒绝,请换用其他模型 ID(例如从
gpt-4o换成gpt-4.1),或参考上文内置清单逐个尝试。 - 凭据存储与兑换时机:登录后 GitHub token 保存在 openclaw-cn 的认证配置中(
auth-profiles.json),运行时才兑换为短期有效的 Copilot API token,并缓存到credentials/github-copilot.token.json;缓存过期后会自动重新兑换,无需重新登录。 - provider 自动注入:只要认证配置中存在
github-copilotprofile 或设置了相关环境变量,openclaw-cn 在生成models.json时就会自动注入github-copilot供应商(见 models-config.ts),无需手动编写 provider 定义;仅当你在配置中显式定义了该 provider 时,显式配置会优先生效。
总结
openclaw-cn 为 GitHub Copilot 提供了开箱即用的支持:内置供应商通过设备流程完成无 VS Code 依赖的登录,运行时自动把 GitHub token 兑换为 Copilot API token 并缓存复用;Copilot Proxy 插件则为已在使用 VS Code Copilot Proxy 的用户提供桥接方案。两条路径共享同一个模型命名空间github-copilot/<model-id>,配置上只需一条openclaw-cn models set命令即可切换默认模型。相关实现可进一步查阅 github-copilot-auth.ts、github-copilot-token.ts、github-copilot-models.ts 与 copilot-proxy 插件 源码,以及 模型供应商概念文档。
- 人工智能
- AI Agent
- 即时通讯
- 后端
- 本地部署
- 语音
【免费下载链接】openclaw-cn
中文社区版OpenClaw,同原版保持定期更新,已内置钉钉、企业微信、飞书、QQ、微信以及国内网络环境优化。你的专属个人AI助手。支持所有操作系统和平台。🦞
相关推荐
OpenClaw GitHub Copilot 代理运行时插件(@openclaw/copilot)接入指南
OpenClaw GitHub Copilot 代理运行时插件(@openclaw/copilot)接入指南 OpenClaw 默认使用内嵌(embedded)
AI 应用AI Agent交互助手后端即时通讯网关Godot Web 导出指南:从浏览器白屏到即点即玩,一份就够
Godot Web 导出指南:从浏览器白屏到即点即玩,一份就够 如果你曾经把 Godot 项目导成 HTML5 丢进浏览器,点开后却只看到一片白屏,那多半不是游
文档教程游戏开发Vercel OIDC 令牌兑换全解析:深入 `exchangeVercelOidcToken` 的实现与实战
Vercel OIDC 令牌兑换全解析:深入 exchangeVercelOidcToken 的实现与实战 exchangeVercelOidcToken 是
CLI后端云原生
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考