GitHub Copilot
GitHub Copilot 是 GitHub 的 AI 编程助手。它为你的 GitHub 账户和套餐提供对 Copilot 模型的访问。OpenClaw 可以通过三种不同的方式将 Copilot 用作模型提供程序或代理运行时。
在 OpenClaw 中使用 Copilot 的三种方式¶
使用原生设备登录流程获取 GitHub 令牌。默认情况下,OpenClaw 会将令牌放入其受保护的本地密钥库中,并在身份验证配置中仅保存一个 tokenRef。当 OpenClaw 运行时,它会验证 Copilot 访问权限并解析账户专属的 Copilot API 端点。这是默认且最简单的路径,因为它不需要 VS Code。
1. 运行登录命令
系统将提示你访问一个 URL 并输入一次性代码。请保持终端打开,直到操作完成。
2. 设置默认模型
或者在配置中:
当你希望 GitHub 的 Copilot CLI 和 SDK 为选定的 github-copilot/* 模型掌控底层代理循环时,请安装外部 @openclaw/copilot 插件。
然后将模型或提供程序选入该运行时:
{
agents: {
defaults: {
model: "github-copilot/gpt-5.6-sol",
models: {
"github-copilot/gpt-5.6-sol": {
agentRuntime: { id: "copilot" },
},
},
},
},
}
当你想要原生的 Copilot CLI 会话、SDK 管理的线程状态,以及由 Copilot 负责的这些代理轮次压缩时,请选择此方案。如果没有显式选择 agentRuntime,github-copilot/* 模型将继续使用内置提供程序。有关完整运行时契约,请参阅 Copilot SDK harness。
使用 Copilot Proxy VS Code 扩展作为本地桥接。OpenClaw 会与该代理的 /v1 端点(默认为 http://localhost:3000/v1)通信,并使用你所配置的模型列表。
copilot-proxy 插件随 OpenClaw 一并提供,并默认启用。可使用以下命令配置基本 URL 和模型 ID:
Note
当你已经在 VS Code 中运行 Copilot Proxy,或需要通过它进行路由时,请选择此方案。VS Code 扩展必须保持运行。
GitHub Enterprise(数据驻留)¶
如果你的组织使用采用数据驻留策略的 GitHub Enterprise 租户(*.ghe.com 主机,例如 your-org.ghe.com),Copilot 将位于租户本地端点之上,而不是公共的 github.com。OpenClaw 将其作为一等身份验证选项提供,因此你无需手动编辑 URL。
1. 选择 Enterprise 身份验证选项
在引导流程或 openclaw models auth 中,选择 GitHub Copilot(Enterprise / 数据驻留)。系统会提示你输入 Enterprise 域(例如 your-org.ghe.com),然后设备登录将针对该租户运行。
仅输入租户根域(your-org.ghe.com)。不接受派生服务主机,例如 api.your-org.ghe.com 或 copilot-api.your-org.ghe.com;OpenClaw 会自动从租户根域派生这些端点。
2. 域会持久化到配置中
所选主机将存储在提供程序参数下,因此后续的账户验证和补全会自动面向该租户:
{
models: {
providers: {
"github-copilot": { params: { githubDomain: "your-org.ghe.com" } },
},
},
}
设备流程和账户验证使用该租户的 GitHub 端点,Copilot 请求使用 https://copilot-api.your-org.ghe.com。这样,认证和推理都会保留在配置的数据驻留租户上,而不是公共端点上。
Note
切换域总是会重新运行设备登录。如果你已有存储的 Copilot 令牌,但选择了不同的域(公共 github.com ↔ *.ghe.com 租户,或从一个租户切换到另一个租户),OpenClaw 不会重用现有令牌——它会强制重新登录,以确保令牌的作用域限定于正在写入配置的域。针对相同域重新运行登录时,仍会提供对当前令牌的重用选项。切换回公共 github.com 会清除持久化的 githubDomain,使配置恢复默认值。
只有当代理的规范化、受支持租户作用域匹配时,它们才会共享 Copilot 凭据;Doctor 会为不同租户保留凭据,因此请为每个受影响的代理在其目标租户上进行身份验证,而不要删除其本地凭据。
Note
COPILOT_GITHUB_DOMAIN 环境变量会覆盖所有解析该域的 Copilot 路径所得到的域——包括 Enterprise 设备登录(--method device-enterprise)、独立的 openclaw models auth login-github-copilot 快捷方式、账户验证、嵌入和补全。将其设置为你的 *.ghe.com 主机,适用于完全无头或 CI 环境。如果将其留空(且配置参数不存在),则使用公共 github.com。登录会持久化其签发令牌时所针对的域(并在针对公共 github.com 登录时清除该域),因此即使在环境变量被取消设置后,路由信息仍然正确。
租户请求身份¶
OpenClaw 默认使用 copilot-developer-cli 请求身份,包括数据驻留租户。请先确认你的企业允许 Copilot CLI 以及所选模型。*.ghe.com 主机名并不表示采用不同的集成策略。
如果您的租户管理员或 GitHub 支持人员要求使用不同的身份,请使用现有的 provider 标头设置:
{
models: {
providers: {
"github-copilot": {
params: { githubDomain: "your-org.ghe.com" },
headers: { "Copilot-Integration-Id": "vscode-chat" },
},
},
},
}
provider 身份适用于设置期间的模型选择、实时模型发现、推理和嵌入。标头名称不区分大小写;request.headers 优先于 provider 的 headers。特定于嵌入的 memory.search.remote.headers 在嵌入发现和请求中仍然具有优先权。不相关的 provider 标头不会被转发到目录或嵌入端点。更改身份并不会授予对已被您组织策略禁用的模型或客户端的访问权限。
可选标志¶
| 命令 | 标志 | 描述 |
|---|---|---|
openclaw models auth login-github-copilot |
--yes |
无需提示即可覆盖现有的认证配置文件 |
openclaw models auth login --provider github-copilot --method device |
--set-default |
同时应用该 provider 推荐的默认模型 |
# Skip the re-login confirmation
openclaw models auth login-github-copilot --yes
# Login and set the default model in one step
openclaw models auth login --provider github-copilot --method device --set-default
非交互式引导¶
设备登录流程需要交互式 TTY。对于无头模式设置,请使用 openclaw onboard --non-interactive 导入现有的 GitHub OAuth 访问令牌:
openclaw onboard --non-interactive --accept-risk \
--auth-choice github-copilot \
--github-copilot-token "$COPILOT_GITHUB_TOKEN" \
--skip-channels --skip-health
您也可以省略 --auth-choice;传递 --github-copilot-token 即可推断出 GitHub Copilot provider 的认证选项。如果省略该标志,引导会回退到 COPILOT_GITHUB_TOKEN。通用的 GH_TOKEN 和 GITHUB_TOKEN 不会启用或认证该 provider。在设置了 COPILOT_GITHUB_TOKEN 的情况下使用 --secret-input-mode ref,可在认证配置文件存储中保存由环境变量支持的 tokenRef,而不是明文。
全新的非交互式设置在保存令牌之前会先验证令牌。当设置必须选择默认模型时,它还会检查实时 Copilot 模型目录。OpenClaw 会优先选择该 provider 当前的通用模型(前提是该模型已对该账户启用);否则,它会选择确定性的合格后备模型。如果账户没有任何在选择器中可见且支持流式输出和工具调用的模型,设置将失败,且不会写入新的认证配置文件。显式配置的默认模型永远不会被替换。
需要交互式 TTY
设备登录流程需要交互式 TTY。请直接在终端中运行,而不要在非交互式脚本或 CI 流水线中运行。
模型可用性取决于您的计划
Copilot 模型的可用性取决于您的 GitHub 计划和组织策略。交互式引导会使用实时目录作为其模型选择器,而非交互式引导会自动选择符合条件的模型。有关当前模型列表,请参阅 GitHub 的每个 Copilot 计划的受支持模型。
通过 Copilot API 实时刷新目录
一旦设备登录(或环境变量)认证路径解析出 GitHub 令牌,OpenClaw 就会按需从 ${baseUrl}/models(VS Code Copilot 使用的同一端点)刷新模型目录,从而使运行时能够跟踪按账户的授权和准确的上下文窗口,而无需频繁改动清单。可见的实时目录不包含从 GitHub 选择器中隐藏的模型,也不包含按账户策略禁用的模型。自动设置的默认值还额外要求支持流式输出和工具调用。
新发布的 Copilot 模型无需升级 OpenClaw 即可变为可见,上下文窗口也会反映真实的按模型限制(例如 gpt-5.x 系列为 400k,内部 claude-opus-*-1m 变体为 1M)。
刷新失败时会报告失败,并保留最后一次成功的清单;若尚无成功记录,则保留内置模型。成功但为空的响应会清除已发现的模型。缺少 Copilot 凭据时不会发出实时请求。在 agent 的模型范围内,Copilot 需要显式的 provider 配置、已保存的 Copilot 认证配置文件或 COPILOT_GITHUB_TOKEN。旧的 plugins.entries.github-copilot.config.discovery.enabled 开关已废弃。配置加载会忽略它,Doctor 在保存配置时会将其移除。它不再阻止针对已配置的 Copilot 认证发起实时请求。
传输选择
Claude 模型 ID 会自动使用 Anthropic Messages 传输。Gemini 模型使用 OpenAI Chat Completions 传输;GPT 和 o-series 模型继续使用 OpenAI Responses 传输。内置静态目录包含这些传输和请求兼容性设置,因此当实时发现不可用时,Gemini 仍会使用 Chat Completions。
思考等级
当所选模型提供该等级时,请使用 /think xhigh 或 /think max。Copilot 的实时目录会确定您的账户支持的 effort 级别,OpenClaw 会在 Responses 请求中保留这些 effort 级别。当 Responses 模型的原生 effort 范围以 low 开始时,minimal 会映射为 low,而不会发送不受支持的值。显式的实时限制优先于内置目录。Gemini 的 Chat Completions 传输不会提供 max。有关会话和逐消息级别的控制,请参阅思考等级。
请求兼容性
OpenClaw 发送与 Copilot 兼容的请求头,并带有 Copilot CLI 请求身份;将工具结果后的后续轮次标记为代理发起;当轮次包含图像输入时,设置 Copilot 视觉头。
环境凭据
COPILOT_GITHUB_TOKEN 是该提供商的唯一自动环境凭据。通用的 GH_TOKEN 和 GITHUB_TOKEN 仍可供其他 GitHub 工具使用,并仍受秘密审计和清理保护。当仅存在通用 GitHub 身份验证时,Doctor 会报告一次激活变更,并提示登录或设置 COPILOT_GITHUB_TOKEN。
设备登录流程会在 Copilot 身份验证配置文件中存储一个受保护存储的 tokenRef。显式选择的配置文件保持选中状态;无范围查找可以在首次保存配置文件之前使用 COPILOT_GITHUB_TOKEN。
令牌存储
默认情况下,设备登录会将 GitHub 令牌存储在 OpenClaw 的受保护本地秘密存储中,并仅向身份验证配置文件写入 tokenRef(配置文件 id github-copilot:github)。内置存储不需要配置外部秘密提供程序。如果 OpenClaw 无法写入存储,登录会在替换身份验证配置文件之前停止,并报告需要修复状态目录或数据库权限。
交互式引导会接受显式的 --secret-input-mode plaintext 选择以确保兼容性。该模式会将令牌内联存储,报告该选择,并且仍然对 openclaw secrets audit --check 可见。
受保护存储通过 OpenClaw 面向用户的秘密 API 是只写的,但并未静态加密;其 SQLite 文件依赖状态目录权限。在运行时,OpenClaw 解析引用、验证 Copilot 访问权限、解析账户特定的 API 端点,并使用 GitHub 令牌进行 Copilot 请求。您无需手动管理运行时身份验证。
用量检查也会使用所选配置文件的 GitHub 令牌。对于带有租户域的 OAuth 配置文件,用量会先遵循该域,再遵循提供商配置的域。COPILOT_GITHUB_DOMAIN 仍然具有优先权。
记忆搜索嵌入¶
GitHub Copilot 还可以作为 记忆搜索 的嵌入提供程序。如果您拥有 Copilot 订阅并已登录,OpenClaw 可以使用它进行嵌入,而无需单独的 API 密钥。
配置¶
显式设置 memory.search.provider 以使用 GitHub Copilot 嵌入。如果 GitHub 令牌可用,OpenClaw 会从 Copilot API 发现可用的嵌入模型,并自动选择最佳模型。
{
memory: {
search: {
provider: "github-copilot",
// Optional: override the auto-discovered model
model: "text-embedding-3-small",
},
},
}
工作原理¶
- OpenClaw 解析您的 GitHub 令牌(来自环境变量或身份验证配置文件)。
- 验证 Copilot 访问权限并解析账户特定的 API 端点。
- 查询 Copilot 的
/models端点以发现可用的嵌入模型,超时时间为 10 秒,包括读取响应正文。 - 选择最佳模型(优先顺序:
text-embedding-3-small、text-embedding-3-large、text-embedding-ada-002)。 - 向 Copilot 的
/embeddings端点发送嵌入请求。
模型可用性取决于您的 GitHub 套餐。如果发现失败或没有可用的嵌入模型,OpenClaw 仅在您显式配置另一个提供程序时使用 memory.search.fallback。否则,设置会报告错误,而不是静默选择不同的提供程序。
相关¶
选择提供程序、模型引用和故障转移行为。
身份验证详细信息和凭据复用规则。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 cl/openclaw