Skip to main content

GitHub Copilot CLI 命令参考

查找有助于有效使用的 Copilot 命令行界面(CLI) 命令和键盘快捷方式。

命令行命令

命令Purpose
copilot启动交互式用户界面。
copilot completion SHELL生成一份适用于所选 Shell 的 shell 脚本,你可以利用该脚本来为 Copilot 命令行界面(CLI) 启用 Tab 键补全功能。 支持的 shell: bashzshfish。 请参阅使用 copilot completion
copilot help [TOPIC]显示帮助信息。 帮助主题包括:billing、、、configcommands``environment``loggingmonitoringpermissionsproviders
copilot init初始化 Copilot 此存储库的自定义说明。
copilot login使用 OAuth 设备流通过 Copilot进行身份验证。 接受 --host HOST 以指定 GitHub 主机 URL (默认值: https://github.com) 。
copilot login [OPTION]使用 OAuth 设备流通过 Copilot进行身份验证。 请参阅 copilot login 选项
copilot mcp从命令行管理 MCP 服务器配置。
copilot plugin管理插件和插件市场。
copilot plugins list以非交互方式检查为当前工作目录发现的每个插件、MCP 服务器、技能、指令源和语言服务器——这些资源与 CLI 内插件仪表板显示的资源相同。 请参阅使用 copilot plugins list
copilot skill从命令行管理代理技能(列出、添加和删除技能)。 请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加代理技能”。
copilot update下载并安装最新版本。
copilot version显示版本信息并检查更新。

copilot login 选项

选项Purpose
--host HOST
GitHub 主机 URL (默认值: https://github.com) 。 使用此方法向使用数据驻留(例如 GitHub Enterprise Cloud)的 https://example.ghe.com 实例进行身份验证。

默认身份验证模式是基于 Web 的浏览器流。 完成后,身份验证令牌安全地存储在系统凭据存储中。 如果未找到凭据存储,令牌将存储在 ~/.copilot/ 下的纯文本配置文件中(如果已设置,则存储在 COPILOT_HOME 指定的目录下)。

或者, Copilot 命令行界面(CLI) 将使用在环境变量中找到的身份验证令牌。 以下项按优先级顺序进行检查: COPILOT_GITHUB_TOKENGH_TOKENGITHUB_TOKEN 此方法最适合无外设使用,例如自动化。

支持的令牌类型包括具有“Copilot 请求”权限的 fine-grained personal access tokens (v2 PATs),Copilot CLI 应用中的 OAuth 令牌,以及 GitHub CLI (gh) 应用中的 OAuth 令牌。 不支持经典 personal access tokens (ghp_)。

示例:

# Authenticate with github.com
copilot login

# Authenticate with GitHub Enterprise Cloud (data residency)
copilot login --host https://example.ghe.com

# Use a fine-grained PAT via environment variable
COPILOT_GITHUB_TOKEN=github_pat_... copilot

使用 copilot completion

该命令 copilot completion SHELL 输出指定 shell(bash、zsh 或 fish)的脚本。

通过执行该脚本(或将其写入 shell 的补全目录),即可在终端中为 copilot 的子命令、命令选项以及命令选项的已知取值,启用 Tab 键自动补全功能。

用法示例

Bash (仅限当前会话):

Bash
source <(copilot completion bash)

Bash (持久性,Linux):

Bash
copilot completion bash | sudo tee /etc/bash_completion.d/copilot

Zsh — 将输出写入 $fpath 路径中的一个目录。 运行此命令后重启 shell:

Shell
copilot completion zsh > "${fpath[1]}/_copilot"

鱼:

Shell
copilot completion fish > ~/.config/fish/completions/copilot.fish

使用 copilot plugins list

运行 copilot plugins list 来检查在当前工作目录中发现的每个插件、MCP 服务器、技能、指令源和语言服务器。 输出按类型分组,然后按配置范围(用户、存储库、组织、插件参与、内置或未知)分组。

# List everything for the current workspace
copilot plugins list

# Only MCP servers and skills
copilot plugins list --kind mcp --kind skill

# Only user-scoped resources, as JSON
copilot plugins list --scope user --json
选项说明
--kind KINDS按类型筛选。 可重复或逗号分隔:mcp、、skill``instructionplugin``lsp
--scope SCOPES按配置范围进行筛选。 可重复或逗号分离。
--json发出计算机可读 JSON,而不是分组文本。
--config-dir=DIRECTORY配置目录的路径。 此选项已弃用。 改用 COPILOT_HOME

自定义代理和会话范围的挂钩不受覆盖 copilot plugins list;这两者都需要实时会话。

copilot plugins enable / copilot plugins disable

按名称启用或禁用插件、MCP 服务器或技能。 更改会保存到配置中,并在今后的会话中生效。

# Disable an MCP server
copilot plugins disable github --mcp

# Enable a skill
copilot plugins enable my-skill --skill

# Enable a plugin (default kind)
copilot plugins enable spark@copilot-plugins
选项说明
--plugin以插件为目标(默认)。
--mcp以 MCP 服务器为目标。
--skill以某项技能为目标。
--config-dir=DIRECTORY配置目录的路径。 此选项已弃用。 改用 COPILOT_HOME

这些指令仅在当前会话中生效,无法通过这些命令切换。 语言服务器、代理和钩子由别处管理。

copilot plugins remove

卸载插件、删除 MCP 服务器或按名称删除技能。

# Remove an MCP server
copilot plugins remove github --mcp

# Delete a personal or project skill
copilot plugins remove my-skill --skill

# Uninstall a plugin (default kind)
copilot plugins remove spark@copilot-plugins
选项说明
--plugin删除插件(默认值)。
--mcp删除 MCP 服务器。
--skill删除个人技能或项目技能。
--config-dir=DIRECTORY配置目录的路径。 此选项已弃用。 改用 COPILOT_HOME

使用 --skill 传递技能名称或指向添加的自定义技能目录的路径。 技能名称删除该技能的文件;自定义目录路径仅取消注册目录并将其文件保留在磁盘上。 只能删除你添加的个人和项目技能 -- 插件提供的技能或内置集不能以这种方式删除(改为禁用它们)。 指令源从磁盘中发现,无法在此处删除。

交互式界面中的全局快捷方式

ShortcutPurpose
@ FILENAME将文件内容包含在上下文中。
# NUMBER在上下文中包含 GitHub 问题或拉取请求。
! COMMAND在本地 shell 中执行命令,绕过 Copilot。 在空提示符下单独输入 ! ,以按顺序输入运行多个 shell 命令的 shell 模式。 在空提示符上按 EscCtrl+C 退出 shell 模式。
$在提示符处单独输入 $,即可将终端切换到一个真正的交互式 shell(Unix 上为 $SHELL,Windows 上为 %COMSPEC%),其当前目录为会话的工作目录。 与 ! shell 模式不同,这会完全暂停 CLI 界面,因此作业控制、全屏应用、Tab 补全和颜色都能原生工作。 退出 shell(exit或 Unix 上的 Ctrl+D )以返回到 CLI。 仅对真实 TTY 上本地、受信任且空闲的会话激活。 可以在企业托管设置中禁用。 默认已禁用。 使用 shellShortcut 设置启用它 - 请参阅 GitHub Copilot CLI 配置目录
?打开快速帮助(在空白提示中)。 再次按以消除并插入文本 ?
Esc取消当前操作。 双按即可中断当前运行中的回合,或在主代理空闲时停止后台代理。
Ctrl+C取消操作/清除输入。 按两次退出。
Ctrl+D关闭。
Ctrl+G在外部编辑器中编辑提示($EDITOR)。
Ctrl+L清除屏幕。
Ctrl+EnterCtrl+Q将消息排队,以在智能体繁忙时发送。
Ctrl+R反向搜索命令历史记录。
Ctrl+V从剪贴板粘贴为附件。
Ctrl+然后 X/开始键入提示后,这样就可以运行斜杠命令,例如,如果要更改模型,而无需重新键入提示。
Ctrl+然后 Xe在外部编辑器中编辑提示($EDITOR)。
Ctrl+然后 Xb将正在运行的任务或 shell 命令提升到后台。
Ctrl+然后 Xo从时间线打开最新的链接。
Ctrl+Z将进程挂起到后台 (Unix)。
Shift+EnterOption+Enter (Mac) / Alt+Enter (Windows/Linux)在输入中插入换行符。
Shift键+Tab键在标准模式、计划和 Autopilot 模式之间循环。

交互式界面中的时间线快捷方式

ShortcutPurpose
Ctrl+F打开时间线搜索。
Ctrl+O虽然提示输入中没有任何内容,但这会扩展 Copilot 回复时间线中的最近项目以显示更多详细信息。
Ctrl+E虽然提示输入中没有任何内容,但这会展开Copilot的响应时间轴中的所有项。
Ctrl+T在响应中展开/折叠推理显示。
向上翻页/向下翻页将当前时间线视图向上或向下翻动一页。

会话选取器快捷方式

会话选择器打开时(通过 /resume--continue 打开):

ShortcutPurpose
/向上或向下移动所选内容。
输入打开所选会话。
s在以下排序顺序中循环:相关性→创建时间→名称→上次使用。
Tab在本地选项卡和远程选项卡之间切换。
d删除所选会话。
Esc关闭选取器。

会话按以下模式排序:

模式说明
relevance根据与当前工作目录的匹配度对会话进行排序(默认)。
last used最近修改的会话优先。
created最近创建的会话优先。
name按会话名称按字母顺序排列;未命名的会话将排序到末尾。

已在另一个窗口中打开的会话在所有非相关性排序模式下浮动到顶部。 当没有工作目录上下文可用时,将跳过 relevance 模式。

差异模式快捷键

当打开差异模式时(通过 /diff 进入):

ShortcutPurpose
/ k将所选内容向上移动一行。
/ j将所选内容向下移动一行。
/ h跳转到上一个文件。
/ l跳转到下一个文件。
/ g跳到第一行。
结束 / G跳到最后一行。
向上翻页向上滚动一页。
向下翻页向下滚动一页。
Ctrl+U向上滚动半页。
Ctrl+D向下滚动半页。
Click选择点击的差异行(需要鼠标支持)。
鼠标滚动向上或向下滚动。
Alt/Option+滚动每次滚动一行,以实现更精细的控制。
c在所选行上添加或编辑批注。
s显示批注摘要(当存在批注时)。
b在未暂存更改和分支差异之间切换。
w切换是否隐藏仅空白字符的更改。
输入提交所有注释(如果存在批注)。
r刷新差异(仅限远程会话)。
Esc / Ctrl+C退出差异模式。
ShortcutPurpose
Ctrl+A移动到行首(输入时)。
Ctrl+B移到上一个字符。
Ctrl+E移动到行的末尾(键入时)。
Ctrl+F移动到下一个字符。
Ctrl+H删除上一个字符。
Ctrl+K从光标删除到行尾。 如果光标位于行的末尾,请删除换行符。
Ctrl+U从光标删除到行首。
Ctrl+W删除上一个单词。
主页跳转至当前可视化行首。
结束跳转至当前可视化行尾。
Ctrl+主页移动到文本的开头。
Ctrl+结束移动到文本的末尾。
Alt+/ (Windows/Linux)
选项+/ (Mac)按单词移动光标。
/浏览命令历史。
Tab键 / Ctrl+Y接受当前的内联补全建议。

交互式接口中的斜杠命令

这些是在交互式 CLI 会话中可以使用的斜杠命令。 这些斜杠命令的子集可供通过其 ACP 服务器使用 CLI 的客户端使用。 有关详细信息,请参阅“Copilot CLI ACP 服务器”。

命令Purpose
/add-dir PATH将目录添加到允许的文件访问列表。
/after [DELAY PROMPT]/after为当前会话安排一个仅执行一次的提示、技能或可安排执行的斜杠命令(例如 /after 30m remind me the time/after 1h /chronicle standup)。 在没有参数的情况下,将显示计划管理器。 仅在实验模式下可用。
/agent浏览并选择可用代理(如果有)。 请参阅“关于自定义代理”。
/app启动GitHub Copilot 应用,如果应用未安装,则显示下载链接。
/ask QUESTION在不添加到对话历史记录的情况下提出一个快速的附带问题。
/allow-all [on|off|show]/yolo [on|off|show]启用所有权限(工具、路径和 URL)。
/changelog [summarize] [VERSION|last N|since VERSION]/release-notes [summarize] [VERSION|last N|since VERSION]显示 CLI 更改日志。 可选地指定一个版本、最近发布的版本数量或起始版本。 请为 AI 生成的摘要添加关键字 summarize
/chronicle <standup|tips|improve|reindex|skills create|skills review|skills status>会话历史工具和分析。
skills 子命令用于起草、审查和跟踪根据观察到的使用情况生成的仓库技能提案的状态。 请参阅“关于 GitHub Copilot 命令行界面 (CLI) 会话数据”。
/clear [PROMPT]/new [PROMPT]/reset [PROMPT]启动新对话。
/clikit [COMPONENT]预览 CLI 业务组件(例如配额信息)。
/compact [FOCUS-INSTRUCTIONS]汇总对话历史记录以减少上下文窗口使用情况。 (可选)提供焦点说明来引导摘要,例如 /compact focus on the auth module。 请参阅“在 GitHub Copilot 命令行界面 (CLI) 中管理上下文”。
/context显示上下文窗口令牌使用情况和可视化效果。 请参阅“在 GitHub Copilot 命令行界面 (CLI) 中管理上下文”。
/copy将最后一个响应复制到剪贴板。
/cwd/cd [PATH]更改工作目录或显示当前目录。
/delegate [PROMPT]使用 AI 生成的拉取请求提交更改到远程存储库。 请参阅“将任务委派给 Copilot”。
/diff查看当前目录中的更改;当工作树干净时自动切换到分支差异(实验性)。
/downgrade VERSION下载并重启到特定 CLI 版本。 可用于团队帐户。
/env显示加载的环境详细信息(说明、MCP 服务器、技能、代理、挂钩、插件、LSP、扩展)。
/every [INTERVAL PROMPT]/every为当前会话安排周期性提示、技能或可安排的斜杠命令(例如 /every 1h run tests/every 1d /chronicle standup)。 在没有参数的情况下,将显示计划管理器。 仅在实验模式下可用。
/exit/quit关闭当前会话。 如果仍有其他会话在运行,则会将剩余会话中最新的一个切换到前台,而不是退出。 仅当当前是最后一个打开的会话时,才退出 CLI。
/exit print 始终关闭 CLI,并提供转储记录的选项。
/extensions [manage|mode]/extension管理 CLI 扩展。
/experimental [on|off|show]切换、设置或显示实验性功能。
/feedback/bug提供有关 CLI 的反馈。
/fleet [PROMPT]支持对任务的某些部分进行并行子代理执行。 请参阅“使用 /fleet 命令并行运行任务”。
/help显示交互式命令的帮助。
/ide连接到 IDE 工作区。 请参阅“连接GitHub Copilot 命令行界面 (CLI)到VS Code”。
/init初始化此存储库的 Copilot 自定义说明和智能体功能。 请参阅 项目初始化Copilot
/instructions查看和切换自定义指令文件。
/keep-alive [on|off|busy|DURATION]/caffeinate [on|off|busy|DURATION]防止计算机进入睡眠状态:当命令行界面(CLI)会话处于活动状态,或者软件代理繁忙,或者在设定的时间段内。 接受持续时间,例如3030m2h1d(裸数默认为分钟)。
/limits打开交互式响应限制对话框。
/limits set max-ai-credits VALUE为每个响应允许的 AI 信用额度设置软最大值。 响应限制是针对每个用户消息重置的软限制。 请参阅“在 AI credit 中设置 GitHub Copilot 命令行界面 (CLI) 会话限制”。
/limits unset [max-ai-credits|all]删除特定的响应限制或所有响应限制。
/list-dirs显示允许访问文件的所有目录。
/login登录到 Copilot。
/logout注销 Copilot。
/lsp [show|test|reload|logs|help] [SERVER-NAME]管理语言服务器配置。 子 logs 命令打开实时 LSP 服务日志面板。
/mcp [list|show|add|edit|delete|disable|enable|auth|reload|search] [SERVER-NAME]管理 MCP 服务器配置。
list (别名 ls)打印一个纯文本列表,其中包含连接状态和实时状态的已配置服务器,并且是只读的,因此可以在代理忙于处理轮次时运行;所有其他子命令都会被阻止,直到轮次完成。 沙盒化的本地服务器显示为 connected (sandboxed) 状态。 请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加 MCP 服务器”。
/model [--repo|--local|--session] [MODEL]/models选择要使用的 AI 模型,或选择 “自动”。 --repo/--local 在存储库设置而不是当前会话中固定默认模型; --session (别名 -s) 仅更改当前会话的模型、推理工作或上下文窗口,而无需触摸保存的设置。 在具有长上下文变体的模型上按 Tab ,在默认窗口和长上下文窗口之间切换其上下文列。 请参阅“关于 Copilot自动模型选择”。
/permissions [show|reset]查看或清除当前会话中内存中的工具和路径授权。
/plan [PROMPT]在编码之前创建实现计划。
/plugins (别名 /plugin管理插件、MCP 服务器和技能;打开插件仪表板,或结合 --plugin--mcp--skill 运行,以打开并聚焦到相应的选项卡。请参阅 关于 GitHub Copilot 插件
/plugins help显示完整的 /plugins 命令用法。
/plugins install SOURCE从市场规范、GitHub 仓库、git URL 或本地路径安装插件。
/plugins install --skill [--project] <FILE|URL|DIRECTORY>安装技能;--project 将文件或 URL 的安装范围限定到此仓库,而不是你的用户帐户。
/plugins update PLUGIN[@MARKETPLACE]更新已安装的插件。
/plugins uninstall PLUGIN[@MARKETPLACE]卸载插件。
/plugins list (别名 /plugin ls列出已安装的插件。
/plugins enable|disable|remove --plugin|--mcp|--skill NAME按名称启用、禁用或删除/卸载插件、MCP 服务器或技能;默认为 --plugin 未指定类型时。
/plugins marketplace add SOURCE添加应用市场。
/plugins marketplace remove NAME移除商城。
/plugins marketplace list列出已注册的市场。
/plugins marketplace browse NAME在应用市场中浏览插件。
/plugins mcp [SUBCOMMAND]委托给 /mcp;在插件仪表板中管理 MCP 服务器。
/pr [view|create|fix|auto|automerge]管理当前分支的拉取请求。
auto 将拉取请求驱动为绿色并停止; automerge (别名: agentmerge) 将拉取请求驱动为绿色并合并请求。 请参阅“使用 /pr 命令管理拉取请求”。
/refine TEXT将大致撰写的提示重写为明确的提示以供审阅。 不带参数运行(通过 Ctrl+X 然后 /refine),以清理当前输入框。 对于通过语音输入的提示词尤其有用。
/remote [on|off]显示远程控制状态(如果未提供任何参数)、启用远程转向(on)或结束远程连接(off)。 请参阅“通过其他设备控制 GitHub Copilot 命令行界面 (CLI) 会话”。
/rename [NAME]重命名当前会话(如果省略,将自动生成名称;这是/session rename的别名)。
/research TOPIC使用 GitHub 搜索和 Web 源进行深入调查。 请参阅“使用GitHub Copilot 命令行界面 (CLI)进行研究”。
/reset-allowed-tools重置允许的工具列表。
/restart重启 CLI,保留当前会话。
/resume [SESSION-ID]/continue [SESSION-ID]通过从列表中选择(可选指定会话 ID)切换到其他会话。
/review [PROMPT]运行代码评审代理以分析更改。 请参阅“使用 GitHub Copilot 命令行界面 (CLI) 请求代码评审”。
/rubber-duck [PROMPT]咨询橡皮鸭智能体,以获取关于计划、代码和测试的第二种意见。 请参阅“关于橡皮鸭智能体”。
/sandbox [enable|disable]启用、禁用或配置 OS 级沙盒,以限制 shell 命令、MCP/LSP 服务器和内置文件/Web 工具的文件系统和网络访问。 在没有参数的情况下运行 /sandbox 以打开策略对话框。
/search [QUERY]/find [QUERY]搜索对话时间线。 仅在实验模式下可用。
/security-review [PROMPT]对当前本地代码改动进行有针对性的安全审查,并返回按优先级排序的漏洞发现及修复建议。 此命令不是完整的存储库安全审核。
/session [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]/sessions [info|checkpoints [n]|files|plan|rename [NAME]|cleanup|prune|delete [ID]|delete-all]显示会话信息和管理会话。 子 info 命令显示会话详细信息,包括会话链接(如果可用)。 子命令:info、、、checkpointsfiles``plan``rename``cleanupprune、。 delete``delete-all
/settings [--repo|--local] [show KEY|KEY|KEY VALUE],
/config [--repo|--local] [show KEY|KEY|KEY VALUE]
打开设置对话框,打开时将焦点置于特定设置上(KEY),以内联方式设置某项设置(KEY VALUE),或显示某项设置的当前值(show KEY)。
show 掩码机密命名值(例如,标记或 API 密钥嵌套在设置下),而不是用明文打印它们。 该对话框显示 用户存储库存储库(本地) 选项卡;可使用 Tab/Shift++Tab 切换;在另一作用域中被覆盖的设置会显示一个标记,说明哪个作用域生效。 将 --repo--local 添加到目标 .github/copilot/settings.json.github/copilot/settings.local.json 中,而不是添加到用户设置文件中——例如 /settings --repo model gpt-5.2。 只能以这种方式设置 可重写的存储库密钥 。 由有效的组织或由 MDM 管理的策略控制的行将显示为只读,并带有 (managed) 标记。 请参阅“使用 /settings 命令更改设置”。
/share [link|off|file|html|gist|research] [...]/export [...]共享当前会话。 未指定子命令时,如果你已登录并完成同步,则会生成可共享的 GitHub 链接(否则会退回为 Markdown 文件导出)。
off 停止共享。
link 是默认链接流的显式别名; link off 停止链接共享。
file [session|research] [PATH] 导出到 Markdown 文件。
html [session|research] [PATH] 导出到 HTML 文件。
gist [session|research]创建了GitHub Gist。
research [PATH] 导出研究报告。
/skills [list|info|add|remove|reload] [ARGS...]管理技能以提升能力。 请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加代理技能”。
/statusline/footer配置状态行中显示的项。
/subagents/agents配置默认子代理模型和每个代理的子代理模型。 请参阅“GitHub Copilot CLI 配置目录”。
/tasks查看和管理任务(子代理和 shell 命令)。
/terminal-setup为多行输入支持配置终端(Shift+EnterCtrl+Enter)。
/theme [default|github|dim|high-contrast|colorblind]查看或设置颜色模式。
/tuikit [colors|icons|select|tabbar]预览 TUIkit 设计系统组件和颜色令牌。
/undo/rewind倒退最后一轮并还原文件更改。 文件跟踪是通过工具层完成的,不需要 Git。
/update/upgrade将 CLI 更新到最新版本。
/usage显示会话使用情况指标和统计信息,包括每模型令牌总计。
/user [show|list|switch]管理当前 GitHub 用户。
/version显示版本信息并检查更新。
/voice [on|off|models|devices]切换语音模式、浏览可用的语音模型或选择输入设备(麦克风)。
/fork [NAME]/branch [NAME]将当前会话复制到新会话中,并可选择为其命名。 仅在实验模式下可用。
/worktree [branch|task]基于 HEAD 创建一个新的 Git 工作树并切换到该工作树,将未提交的更改保留在当前工作树中。 传入分支名称、任务描述(支持多行,用作新工作树中的初始提示),或者省略该参数,以根据对话自动生成分支名称。 需要 Git 存储库。 仅在实验模式下可用。
/move [branch|task]将未提交的更改移动到新的 Git 工作树并切换到它。 传入分支名称、任务描述(支持多行,用作新工作树中的初始提示),或者省略该参数,以根据对话自动生成分支名称。 需要 Git 存储库。 仅在实验模式下可用。

要获取所有可用的斜杠命令的完整列表,请在 CLI 的交互式界面中输入 /help

命令行选项

选项Purpose
--add-dir=PATH将目录添加到允许的文件访问列表(可多次使用)。
--add-github-mcp-tool=TOOL添加工具以启用 GitHub MCP 服务器,而不是默认 CLI 子集(可多次使用)。 将 * 用于所有工具。
--add-github-mcp-toolset=TOOLSET添加工具集以启用 GitHub MCP 服务器,而不是默认 CLI 子集(可多次使用)。 对所有工具集使用 all
--additional-mcp-config=JSON仅为此会话添加 MCP 服务器。 服务器配置可以作为 JSON 字符串或文件路径(前缀) @提供。 从 ~/.copilot/mcp-config.json 扩充配置。 覆盖任何已安装的同名 MCP 服务器配置。 请参阅“为 GitHub Copilot 命令行界面 (CLI) 添加 MCP 服务器”。
--agent=AGENT指定要使用的值 自定义智能体 。 请参阅“关于自定义代理”。
--allow-all启用所有权限(等效于 --allow-all-tools --allow-all-paths --allow-all-urls)。
--allow-all-mcp-server-instructions在系统提示符中包含来自所有 MCP 服务器的初始化指令。 默认情况下,只有列入允许列表的服务器指令会预先加载;其他服务器的指令则按需获取。
--allow-all-paths禁用文件路径验证并允许访问任何路径。
--allow-all-tools允许所有工具在不确认的情况下自动运行。 以编程方式使用 CLI 时是必需的(env: COPILOT_ALLOW_ALL)。
--allow-all-urls允许在没有确认的情况下访问所有 URL。
--allow-tool=TOOL ...CLI 有权使用的工具。 不会提示输入权限。 对于多个工具,请使用带引号的逗号分隔列表。 请参阅“允许和拒绝工具使用”。
--allow-url=URL ...允许访问特定的网址或域。 对于多个 URL,请使用带引号的逗号分隔列表。
--acp以代理客户端协议服务器身份启动。
--attachment PATH将文件附加到初始提示(可以多次使用)。 可以接受图像文件,但要成功发送这些文件,前提是所选模型和组织策略允许视觉输入。
--autopilot启用自动驾驶连续运行模式——代理会持续运行,直到调用 task_complete,然后返回交互模式。 请参阅“允许 GitHub Copilot CLI 自主工作”。
--available-tools=TOOL ...只有这些工具可供模型使用。 对于多个工具,请使用带引号的逗号分隔列表。 请参阅“允许和拒绝工具使用”。
--banner--no-banner显示或隐藏启动横幅。
--bash-env启用 BASH_ENV 对 bash shell 的支持。
-C DIRECTORY在执行任何其他操作之前,请更改工作目录。
--connect[=SESSION-ID]直接连接到远程会话(可选)指定会话 ID 或任务 ID。 与 --resume--continue.
--context TIER为分层定价模型设置上下文窗口档位(会覆盖持久化设置,并在新启动的交互式会话中生效)。 选项:“default”、“long_context”。
--config-dir=DIRECTORY用于设置配置目录的选项已弃用。 请改用 COPILOT_HOME 环境变量。
--continue恢复当前工作目录中的最新会话,回退到全局最新会话。 与 --resume 冲突
--deny-tool=TOOL ...CLI 没有使用权限的工具。 不会提示输入权限。 对于多个工具,请使用带引号的逗号分隔列表。
--deny-url=URL ...拒绝访问特定 URL 或域,优先于 --allow-url。 对于多个 URL,请使用带引号的逗号分隔列表。
--disable-builtin-mcps禁用所有内置 MCP 服务器(当前: github-mcp-server)。
--disable-mcp-server=SERVER-NAME禁用特定的 MCP 服务器(可以多次使用)。
--disallow-temp-dir防止自动访问系统临时目录。
--effort=LEVEL--reasoning-effort=LEVEL设置推理工作量级别(low、、medium``highxhigh``max)。
max是Anthropic模型中深度最高的层级。
--enable-all-github-mcp-tools启用所有 GitHub MCP 服务器工具,而不是默认 CLI 子集。
--add-github-mcp-toolset--add-github-mcp-tool选项被覆盖。
--enable-memory在提示模式下启用内存(默认禁用)。
--enable-reasoning-summaries请求对支持它的 OpenAI 模型进行推理摘要。
--excluded-tools=TOOL ...这些工具将不适用于模型。 对于多个工具,请使用带引号的逗号分隔列表。
--experimental启用实验性功能(使用 --no-experimental 进行禁用)。
--extension-sdk-path DIRECTORY使用本地 @github/copilot-sdk 文件夹覆盖注入到扩展子进程中的捆绑 copilot-sdk/。 无效路径将回退到随附的 SDK。
-h--help显示帮助。
-i PROMPT--interactive=PROMPT启动交互式会话并自动执行此提示。
--log-dir=DIRECTORY设置日志文件目录(默认值: ~/.copilot/logs/)。
--log-level=LEVEL设置日志级别(选项:none、、error``warninginfodebugall``default)。
--max-ai-credits=CREDITS为每个响应允许的 AI 信用额度设置软最大值。 该限制会在每条用户消息后重置,并且可在会话中途通过 /limits 进行调整。 请参阅“在 AI credit 中设置 GitHub Copilot 命令行界面 (CLI) 会话限制”。
--max-autopilot-continues=COUNTAutopilot 模式下的最大延续消息数(默认值:无限制)。 必须是非负整数;格式不正确的值(NaN、负值或小数)将被拒绝。 请参阅“允许 GitHub Copilot CLI 自主工作”。
--mode=MODE设置初始代理模式(选项:interactive、、plan``autopilot)。 不能与 --autopilot--plan.
--model=MODEL设置要使用的 AI 模型。 作为值传递 auto ,以便 Copilot 自动选取最佳可用模型。 请参阅“关于 Copilot自动模型选择”。
--mouse[=VALUE]在交互式界面中启用或禁用鼠标支持。 VALUE 可以是 on (默认值) 或 off。 启用后,CLI 捕获鼠标事件(滚轮、单击等)以导航其自己的界面,例如滚动时间线或单击选项卡。 禁用后,将保留终端的本机鼠标行为,例如文本选择和滚动回退。 显式设置此选项时,该值将保存到配置文件中。
-n NAME--name=NAME设置新会话的名称。 供 --resume/resume 用于按名称查找会话。
--no-ask-user
ask_user禁用该工具(代理在不提出问题的情况下自主工作)。
--no-auto-update禁用自动下载 CLI 更新。
--no-bash-env禁用 BASH_ENV 对 bash shell 的支持。
--no-color禁用所有颜色输出。
--no-custom-instructions禁止从 AGENTS.md 相关文件中加载自定义指令。
--no-experimental禁用实验性功能。
--no-mouse禁用鼠标支持。
--no-remote禁用此会话的远程访问。
--no-remote-export禁止将您的会话导出到 GitHub.com 和 GitHub Mobile(也会禁用远程控制)。
--output-format=FORMATFORMAT 可以是 text (默认值)或 json (输出 JSONL:每行一个 JSON 对象)。
-p PROMPT--prompt=PROMPT以编程方式执行提示(完成后退出)。 退出摘要包含一个用于继续会话的 copilot --resume=SESSION-ID 提示。 请参阅“以编程方式运行GitHub Copilot 命令行界面 (CLI)”。
--plan在计划模式下启动。
--mode plan 的速记。 不能与 --mode--autopilot.
--plain-diff禁用富差异渲染(通过 Git 配置指定的差异工具进行语法高亮)。
--plugin-dir=DIRECTORY从本地目录加载插件(可以多次使用)。
--remote启用从GitHub.com和GitHub Mobile远程访问此会话。 请参阅“通过其他设备控制 GitHub Copilot 命令行界面 (CLI) 会话”。
--remote-export将您的会话导出到 GitHub.com 和 GitHub Mobile(只读;不会启用远程控制)。
-r--resume[=VALUE]通过从列表中选择来恢复以前的交互式会话。 (可选)指定会话 ID、ID 前缀或会话名称。 名称匹配精确且不区分大小写;当没有显式名称匹配时,回退到自动生成的摘要。 与 --continue 冲突 单独使用 --resume(无值)会显示一个需要 TTY 的交互式会话选择器。 如果存在多个会话且无法显示选择器(例如在 -p、非 TTY -i 或通过管道传入的 stdin 下),CLI 将退出并报错,而不是静默启动新会话——请显式传递 --resume=SESSION-ID 或使用 --continue
-s--silent仅输出代理响应(不使用使用情况统计信息),对于使用 -p脚本编写非常有用。
--screen-reader启用屏幕阅读器优化。
--secret-env-vars=VAR ...从 shell 和 MCP 服务器环境(可以多次使用)中修订环境变量。 对于多个变量,请使用带引号的逗号分隔列表。 默认情况下, GITHUB_TOKENCOPILOT_GITHUB_TOKEN 环境变量中的值会从输出中隐藏。
--session-id ID如果您不希望 --resume 通过 ID 前缀或会话名称进行更宽泛的匹配,请使用精确的会话或任务 ID。 如果 ID 与现有会话或任务匹配,则会恢复该会话或任务。 如果没有任何匹配项,则仅当该值是有效的 UUID 时,才会创建新会话。 名称和 ID 前缀不会创建新会话。 不要将此选项与其他会话选择或会话启动选项(例如 --resume--continue--connect)合并,因为它们争先决定要打开或创建哪个会话。
--sandbox仅为此会话启用 OS 级 shell 沙盒,而无需更改保存的沙盒设置。 与 -p 搭配使用很有用。 仅在实验模式下可用。
--no-sandbox仅禁用此会话的 OS 级 shell 沙盒,而不更改保存的沙盒设置。 仅在实验模式下可用。
--share=PATH程序化会话结束后,将会话共享到 Markdown 文件(默认路径:./copilot-session-<ID>.md)。
--share-gist在编程会话完成后,将会话共享给机密 GitHub gist。
--stream=MODE启用或禁用流模式,该模式在生成时逐渐显示 Copilot其响应,而不是等待完整响应到达(模式选项: onoff,默认值: on) 。
-v--version显示版本信息。
-w--worktree[=NAME]<repo>.worktrees/ 下创建或复用一个隔离的 Git 工作树,并在其中启动会话。
NAME 是可选的,省略后将自动生成分支名称。 与 --resume--continue--connect 冲突 仅在实验模式下可用。
--yolo启用所有权限(等效于 --allow-all)。

有关命令和选项的完整列表,请运行 copilot help

注意

--remote--no-remote--remote-export``--no-remote-export--connect选项要求在帐户上提供远程会话功能。

你可以将--remote--resume <TASK-ID>配合使用,在本地恢复远程任务。 即使任务最初是在 Git 存储库外部创建的,也是如此。

注意

permissions.disableBypassPermissionsMode 设置为 "disable" 时,所有“允许全部”标志(--allow-all-tools--allow-all-paths--allow-all-urls--allow-all--yolo)都会在启动时被禁用,且不能用于授予提升后的权限。

有三个来源可以设置此限制,按持久性递增的顺序如下:

来源Scope因切换帐户而被清除?
用户设置 (~/.copilot/settings.json机器否 - 适用于所有帐户
托管设置(按账户从服务器获取)客户是 — 切换到未禁用绕过模式的其他账户时会被清除
MDM 策略(plist/注册表/文件)设备从不 — 不可被帐户切换覆盖的设备级策略

有关 MDM 配置详细信息,请参阅 GitHub Copilot CLI 配置目录

支持的模型

使用 --model=MODELCOPILOT_MODEL 环境变量选择 AI 模型。 传递auto让Copilot自动选择最佳可用模型。

型号最适用于
claude-sonnet-4.6常规用途编码(默认值)
gpt-5.4复杂的推理任务
claude-haiku-4.5快速、轻量的操作
gpt-5.3-codex以代码为中心的任务
gemini-3.1-pro-preview谷歌双子座推理
gemini-3.5-flash快速 Google Gemini 响应
mai-code-1-flash快速自适应编码任务

还可以使用斜杠命令在 /model 交互式会话期间切换模型。

工具可用性值

--available-tools``--excluded-tools选项支持以下值:

Shell 工具

工具名称说明
bash / powershell执行命令
list_bash / list_powershell列出活动 shell 会话
read_bash / read_powershell从 shell 会话中读取输出
stop_bash / stop_powershell终止 shell 会话
write_bash / write_powershell将输入发送到 shell 会话

文件操作工具

工具名称说明
apply_patch应用修补程序(某些模型使用修补程序,而不是 edit/create
create创建新文件
edit通过字符串替换编辑文件
view读取文件或目录

代理和任务委派工具

工具名称说明
list_agents列出可用的代理
read_agent检查后台代理状态
task运行子代理
write_agent向正在运行的代理发送消息

其他工具

工具名称说明
ask_user向用户提问
glob查找匹配模式的文件
grep(或 rg搜索文件中的文本
skill调用自定义技能
web_fetch提取和分析 Web 内容

工具权限模式

--allow-tool--deny-tool选项接受格式为Kind(argument)的权限模式。 该参数是可选的, 省略它与该类型的所有工具匹配。

种类说明示例模式
memory将事实存储到代理内存memory
read文件或目录读取
readread(.env)
shellShell 命令执行
shell(git push)shell(git:*)shell
url通过 web 抓取或 shell 访问 URL
url(github.com)url(https://*.api.com)
write文件创建或修改
writewrite(src/*.ts)
SERVER-NAMEMCP 服务器工具调用
MyMCP(create_issue)MyMCP

对于 shell 规则,:* 后缀与命令主干后跟一个空格匹配,以避免部分匹配。 例如, shell(git:*) 匹配 git pushgit pull 不匹配 gitea

即使设置了拒绝规则, --allow-all 拒绝规则始终优先于允许规则。

# Allow all git commands except git push
copilot --allow-tool='shell(git:*)' --deny-tool='shell(git push)'

# Allow a specific MCP server tool
copilot --allow-tool='MyMCP(create_issue)'

# Allow all tools from a server
copilot --allow-tool='MyMCP'

# Deny writes to a specific path (exact or trailing-path-segment match; no glob support yet)
copilot --deny-tool='write(secret.txt)'

--deny-tool='write(PATH)' 将拒绝范围限定为该路径 - 其他写入不受影响。 该匹配会解析符号链接和 ./.. 路径段,并且在 macOS 和 Windows 上不区分大小写。

环境变量

Variable说明
COPILOT_ALLOW_ALL将其设置为 true 以自动允许所有权限(相当于 --allow-all)。
COPILOT_AUTO_UPDATE设置为 false 禁用自动更新。
COPILOT_CACHE_HOME替代缓存目录(用于市场缓存、自动更新包和其他临时数据)。 有关平台默认值,请参阅 GitHub Copilot CLI 配置目录
COPILOT_COMPUTER_USE_LINUX设置为在支持它的 Linux 发行版上选择加入 computer-use MCP 服务器。
computer-use 服务器在 Alpine Linux(musl libc)上不可用。
COPILOT_CUSTOM_INSTRUCTIONS_DIRS自定义说明中额外目录的逗号分隔列表。
COPILOT_EDITOR用于交互式编辑的编辑器命令(在 $VISUAL$EDITOR 后检查)。 如果未设置,则默认为vi
COPILOT_ENABLE_HTTP2将其设置为 1true 以启用 HTTP/2 传输。 HTTP/1.1 是默认值。
COPILOT_GH_HOST
GitHub 仅用于 Copilot 命令行界面(CLI) 的主机名,覆盖 GH_HOST。 适用于以下场景:GH_HOST 的目标是 GitHub Enterprise Server,但 Copilot 却需要针对 GitHub.com 或 GitHub Enterprise Cloud 主机名来进行身份验证。
COPILOT_GITHUB_TOKEN身份验证令牌。 优先于 GH_TOKENGITHUB_TOKEN
COPILOT_HOME覆盖配置和状态目录。 默认值:$HOME/.copilot
COPILOT_LARGE_OUTPUT_THRESHOLD_BYTES直接返回给模型的工具输出的最大 UTF-8 字节大小。 默认值: 20480 (20 KiB)。 请参阅“在 GitHub Copilot 命令行界面 (CLI) 中管理上下文”。
COPILOT_MODEL设置 AI 模型。
COPILOT_PROMPT_FRAME
1设置为在输入提示周围启用装饰性 UI 框架,或0将其禁用。 替代当前会话的 PROMPT_FRAME 实验性功能标志。
COPILOT_SKILLS_DIRS技能附加目录的逗号分隔列表。
COPILOT_STRIP_REASONING_ON_RESUME将其设置为 0false,以在会话恢复时保留 BYOK 推理令牌,而不是将其剥离。 默认值为去除它们。
COPILOT_SUBAGENT_MAX_CONCURRENT每个会话的最大并发子代理数(默认值: 32,范围: 1256)。
COPILOT_SUBAGENT_MAX_DEPTH最大子代理嵌套深度(默认值: 4,范围: 1128)。
COPILOT_TASK_WAIT_TIMEOUT_SECONDS在退出前,-p(和 -p --autopilot)最多等待 -p 秒,以便挂起的后台代理或 shell 命令完成(默认值:0; 则立即退出,不等待)。
GH_HOST
GitHub 和 GitHub CLI 的 Copilot 命令行界面(CLI) 主机名(默认值:github.com)。 将其设置为带有数据驻留主机名的 GitHub Enterprise Cloud。 仅替代为 COPILOT_GH_HOST 的 Copilot 命令行界面(CLI)。
GH_TOKEN身份验证令牌。 优先于 GITHUB_TOKEN.
GITHUB_COPILOT_PROMPT_MODE_EXTENSIONS设置为 true 加载项目扩展并允许在提示模式下使用扩展管理工具(-p)。 默认情况下禁用以防止运行存储库控制的扩展代码,而无需交互式信任。
GITHUB_COPILOT_PROMPT_MODE_REPO_HOOKS设置为 true 以在提示模式 (-p)下加载存储库挂钩。 如果该文件夹已受信任或已设置 COPILOT_ALLOW_ALL,仓库钩子也会自动加载。
GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP将其设置为 true 以在提示模式下加载工作区 MCP 源(-p)。 默认情况下禁用以防止启动存储库控制的 MCP 服务器,而无需交互式信任。
GITHUB_TOKEN身份验证令牌。
PLAIN_DIFF设置为 true 以禁用多差异呈现。
USE_BUILTIN_RIPGREP设置为 false 以使用系统 ripgrep,而不是捆绑的版本。

配置文件设置

有关配置文件设置的详细信息(包括用户设置、存储库设置、本地设置及其级联方式的完整列表),请参阅 GitHub Copilot CLI 配置目录

注意

用户设置以前存储在 ~/.copilot/config.json. 该位置中的现有用户可编辑设置将在启动时自动迁移到 ~/.copilot/settings.json 该位置。

Copilot 的项目初始化

使用命令 copilot init或交互式会话中的斜杠命令 /init 时, Copilot 分析代码库并写入或更新 .github/copilot-instructions.md 存储库中的文件。 此自定义说明文件包含特定于项目的指南,可改进将来的 CLI 会话。

当你启动新项目时,或者当你在现有存储库中开始使用 copilot init 时,你通常会使用/init 或 Copilot 命令行界面(CLI)。

copilot-instructions.md创建或更新的文件通常记录信息:

  • 生成、测试和 Lint 命令。
  • 高级体系结构。
  • 特定于代码库的约定。

如果文件已存在,Copilot 会提议可选择应用或拒绝的改进。

CLI 在启动时查找 copilot-instructions.md 文件,如果缺少该文件,则会显示消息:

💡 未找到副驾指令。 运行 /init 以为此项目生成 copilot-instructions.md 文件。

如果不想创建此文件,可以使用斜杠命令永久隐藏当前存储库的 /init suppress 此启动消息。

有关详细信息,请参阅“为GitHub Copilot添加存储库自定义说明”。

自定义说明位置

Copilot 命令行界面(CLI) 同时从这些位置加载自定义指令(全部合并):

位置备注
CLAUDE.md在 Git 根和 cwd 中
GEMINI.md在 Git 根和 cwd 中
AGENTS.md在 Git 根和 cwd 中
.github/instructions/**/*.instructions.md在 Git 根和 cwd 中
.github/copilot-instructions.md在 Git 根和 cwd 中
$HOME/.copilot/copilot-instructions.md
$HOME/.copilot/instructions/**/*.instructions.md
COPILOT_CUSTOM_INSTRUCTIONS_DIRS通过环境变量指定的附加目录。

自定义指令导入

说明文件支持 @path 导入。 在一行前加上 @ 并后跟一个路径,以内联另一个文件的内容。 路径可以是相对于指令文件的目录或绝对路径。 导入以递归方式解析,达到深度限制,并具有周期和大小防护。 AGENTS.mdCLAUDE.md.github/copilot-instructions.md 支持此功能。

挂钩引用

有关挂钩的详细信息(包括挂钩配置格式、挂钩事件、输入有效负载和决策控制),请参阅 GitHub Copilot 挂钩参考

MCP 服务器配置

MCP 服务器向 CLI 代理提供其他工具。 在~/.copilot/mcp-config.json中配置持久性服务器。 使用 --additional-mcp-config 来为单个会话添加服务器。

在沙盒内启动的本地(stdio)服务器(请参阅 /sandbox 斜杠命令)会在 connected (sandboxed)copilot mcp list 中显示为 /mcp list 状态,因为远程(HTTP/SSE)服务器绝不会在沙盒中运行。 仅在实验模式下可用。

copilot mcp list/mcp list 会在文本输出中使用 (disabled) 后缀标记已禁用的服务器,或者在 --json 输出中为每台服务器显示一个 "enabled": falsecopilot mcp get 显示一行 Status: Enabled/Disabled

切换 /sandbox 时,仅会重启本地(stdio)MCP 服务器,因为它们是在沙盒内启动的。 远程(HTTP/SSE)服务器保持连接状态。

copilot mcp 子命令

用于 copilot mcp 从命令行管理 MCP 服务器配置,而无需启动交互式会话。

子命令说明
list [--json]列出按源分组的所有已配置的 MCP 服务器,包括插件提供的服务器。
get <name> [--json]显示特定服务器的配置和工具。 对于插件提供的服务器,还显示源插件名称和版本。
add <name>将服务器添加到用户配置。 写入到 ~/.copilot/mcp-config.json
remove <name>删除用户级服务器。 工作区服务器必须直接在其配置文件中进行编辑。

** copilot mcp add 选项:**

选项说明
-- <command> [args...]本地 (stdio) 服务器的命令和参数。
--url <url>远程服务器的 URL。
--type <type>传输类型:local、、stdio``httpsse
--env KEY=VALUE环境变量(可重复)。
--header KEY=VALUE远程服务器的 HTTP 标头(可重复)。
--tools <tools>工具筛选器: "*" 表示全部,逗号分隔列表,或 "" 表示无。
--timeout <ms>超时(以毫秒为单位)。
--json将添加的配置输出为 JSON 格式。
--show-secrets显示完整的环境变量和标头值。

注意

--show-secrets 可以将敏感的环境变量和标头值输出到终端或日志。 仅在受信任的环境中使用此选项,避免在共享日志或历史记录中复制、粘贴或其他捕获输出。

传输类型

类型说明必填字段
local / stdio本地进程通过 stdin/stdout 进行通信。
commandargs
http使用可流式 HTTP 传输的远程服务器。url
sse使用服务器发送事件 (Server-Sent Events) 传输的远程服务器。url

本地服务器配置字段

领域必需说明
command是的用于启动服务器的命令。
args是的命令参数(数组)。
tools是的要启用的工具:["*"],可以是所有工具或特定工具名称的列表。
env环境变量。 支持$VAR${VAR}``${VAR:-default}扩展。
cwd服务器的工作目录。
timeout工具调用超时(以毫秒为单位)。
type
"local""stdio"。 默认值:"local"
deferTools
"auto" (default) 或 "never". 将其设为 "never",即可始终显示此服务器的工具,即使在启用工具搜索时也是如此。

专用 npm 注册表

--registry 数组中使用 args 从私有 npm 注册表拉取包 — 例如,Artifactory 或 GitHub Packages 源:

{
    "mcpServers": {
        "my-internal-server": {
            "command": "npx",
            "args": [
                "--registry", "https://npm.pkg.github.com",
                "@my-org/internal-mcp-server"
            ],
            "tools": ["*"]
        }
    }
}

在计算服务器的身份指纹时,--registry 标志和其他 npm 配置标志(--userconfig--globalconfig--prefix--cache--node-options--workspace-w)会被视为消耗值的参数。 这可确保当这些标志出现在包名称之前时,企业级允许列表检查和软件包注册表验证能够正常工作。

远程服务器配置字段

领域必需说明
type是的
"http""sse"
url是的服务器 URL。
tools是的要启用的工具。
headersHTTP 标头。 支持变量扩展。
oauthClientId静态 OAuth 客户端 ID(跳过动态注册)。
oauthPublicClientOAuth 客户端是否为公共客户端。 默认值:true。 将其设置为false,适用于具有存储机密的机密客户端。
oauthGrantTypeOAuth 授权类型:"authorization_code"(默认,基于浏览器的流程)或 "client_credentials"(完全无外设,无需浏览器或回调)。
oidc启用 OIDC 令牌注入。 当true,CLI 会为服务器GITHUB_COPILOT_OIDC_MCP_TOKEN块(本地服务器)中引用的任何GITHUB_COPILOT_OIDC_MCP_TOKEN_<SUFFIX>env变量注入 OIDC 令牌,或将令牌作为Bearer``Authorization标头(远程服务器)发送。 对于本地服务器,首选后缀变体(例如), ${GITHUB_COPILOT_OIDC_MCP_TOKEN_MY_SVC}为每个服务器分配唯一的变量名称。
timeout工具调用超时(以毫秒为单位)。
deferTools
"auto" (default) 或 "never". 将其设为 "never",即可始终显示此服务器的工具,即使在启用工具搜索时也是如此。

OAuth 重新身份验证

使用 OAuth 的远程 MCP 服务器可能会在令牌过期或需要其他帐户时显示 needs-auth 状态。 使用 /mcp auth <server-name> 触发新的 OAuth 流。 这会打开浏览器身份验证提示,允许你登录或切换帐户。 完成流后,服务器会自动重新连接。

无外设 OAuth(client_credentials 授权)

对于没有可用的浏览器的 CI 或 cron 用例,请设置 oauthGrantType: "client_credentials"。 这需要:

  • oauthClientId— MCP 提供程序颁发的静态客户端 ID。
  • oauthPublicClient: false- 客户端是机密的。
  • 存储在系统钥匙串中的 client_secret(通过 /mcp UI 配置一次,或写入 OAuth 凭据存储)。

配置后,CLI 将完全跳过浏览器、回调服务器、PKCE 和动态客户端注册。 每次遇到 401 错误时,会将 grant_type=client_credentials 直接发送至服务器检测到的令牌端点。

{
    "mcpServers": {
        "headless-api": {
            "type": "http",
            "url": "https://api.example.com/mcp",
            "tools": ["*"],
            "oauthClientId": "YOUR-CLIENT-ID",
            "oauthPublicClient": false,
            "oauthGrantType": "client_credentials"
        }
    }
}

筛选器映射

控制如何使用服务器配置中的filterMapping字段来处理 MCP 工具输出。

模式说明
none无筛选。
markdown将输出格式化为 Markdown。
hidden_characters删除隐藏或控制字符。 违约。

内置 MCP 服务器

CLI 包括内置 MCP 服务器,这些服务器在没有其他设置的情况下可用。

服务器说明
github-mcp-server
GitHub API 集成:问题、拉取请求、标签、提交、代码搜索和 GitHub Actions。
playwright浏览器自动化:导航、单击、键入、屏幕截图和表单处理。
fetch通过 fetch 工具发送的 HTTP 请求。
time时间实用工具: get_current_timeconvert_time
computer-use屏幕捕获和鼠标/键盘自动化。 在 Alpine Linux 上不可用 (musl libc)。 将其设置为 COPILOT_COMPUTER_USE_LINUX,以便在其他提供该功能的 Linux 发行版上选择启用。

用于 --disable-builtin-mcps 禁用所有内置服务器,或 --disable-mcp-server SERVER-NAME 禁用特定服务器。

GitHub MCP 服务器工具

github-mcp-server 提供以下工具。

工具说明
get_file_contentssearch_code浏览存储库文件。
list_issuesissue_readsearch_issues问题跟踪。
get_pull_requestlist_pull_requestsget_pull_request_files拉取请求。
list_commitsget_commit提交历史记录。
list_workflow_runsget_workflow_run_logs
GitHub Actions。
get_labellist_labellabel_write标签管理。

MCP 服务器命名

服务器名称可以包含任何可打印字符,包括空格、Unicode 字符和标点符号。 不允许控制字符(U+0000–U+001F、U+007F)和右大括号(})。 服务器名称用作工具名称的前缀,例如,名为 my-server 的服务器生成类似 my-server-fetch 的工具名称,而名为 My Server 的服务器生成类似 My Server-fetch 的工具名称。

MCP 工具名称清理

MCP 服务器名称和工具名称在发送到模型之前进行过滤。 工具名称中无效的字符(除了 a-zA-Z0-9-_ 之外的任何字符)都将被 - 替换。 Unicode 字符是 Punycode 编码的。 符号 @ 也替换为 - ,以避免与 Punycode 编码冲突。

组合名称 (serverName-toolName) 上限为 64 个字符。 截断将创建名称冲突时,将追加数字后缀(例如,my-server-tool2``my-server-tool3),以确保唯一性。

MCP 服务器信任级别

MCP 服务器从多个源加载,每个源具有不同的信任级别。

来源信任级别需评审
内置
存储库 (.github/mcp.json中等推荐
工作区 (.mcp.json中等推荐
用户配置(~/.copilot/mcp-config.jsonUser-defined用户责任
远程服务器始终

所有 MCP 工具调用都需要显式权限。 这甚至适用于对外部服务的只读操作。

MCP 服务器加载优先级

来自不同源的 MCP 服务器按优先级顺序合并(第一个最高)。 当服务器共享名称时,优先级较高的源优先。

  1. --additional-mcp-config 标志 (最高)
  2. 插件提供的服务器
  3. 工作区服务器 — .mcp.json.github/mcp.json 从工作目录向上加载到 Git 根目录;要求该文件夹受信任
  4. ~/.copilot/mcp-config.json (最低)

注意

工作区 MCP 服务器(.mcp.json.github/mcp.json)在交互式会话和 SDK 服务器模式会话中都会被加载,前提是工作目录已受信任。 有关文件夹信任的详细信息,请参阅 允许和拒绝工具使用

企业 MCP 允许列表

GitHub Enterprise 组织可以强制实施允许的 MCP 服务器白名单。 处于活动状态时,CLI 会根据企业策略评估每个非默认服务器,然后再连接。

检测到 GitHub Enterprise 注册表策略(或启用 MCP_ENTERPRISE_ALLOWLIST 实验性功能标志)时,CLI:

  1. 根据每个配置的非默认服务器的命令、参数和远程 URL 计算指纹。
  2. 将指纹发送到企业白名单评估端点。
  3. 仅允许指纹已获批准的服务器;所有其他服务器都将被阻止,并收到一个包含企业名称的消息。

此检查为“失效关闭”模式:如果评估终结点不可访问或返回错误,则会阻止非默认服务器,直至策略可以被验证。

当企业允许列表阻止服务器时,CLI 会显示:

MCP server "SERVER-NAME" was blocked by your enterprise "ENTERPRISE-NAME".
Contact your enterprise administrator to add this server to the allowlist.

内置默认服务器始终不受允许列表强制实施的约束。

迁移自 .vscode/mcp.json

如果项目使用 .vscode/mcp.json(VS Code 的 MCP 配置格式),请迁移到 .mcp.json 以便于 GitHub Copilot 命令行界面 (CLI)。 迁移会将密钥servers重新映射到 mcpServers

POSIX Shell(bash、zsh、fish 和其他):

jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json

需要 jq

PowerShell:

pwsh -NoProfile -Command "`$json = Get-Content '.vscode/mcp.json' -Raw | ConvertFrom-Json; `$content = ([pscustomobject]@{ mcpServers = `$json.servers } | ConvertTo-Json -Depth 100); [System.IO.File]::WriteAllText('.mcp.json', `$content, (New-Object System.Text.UTF8Encoding `$false))"

在Windows,如果使用 Windows PowerShell 而不是 PowerShell Core,请将 pwsh 替换为 powershell

Stdio 服务器输出

MCP 的 stdio 传输将 stdout 专门用于以换行符分隔的 JSON-RPC 帧。 在将输出传递到协议分析器之前,CLI 会自动筛选出任何非 JSON 行(纯文本日志、异常堆栈跟踪或仅空格行)。

将所有诊断输出写入 stderr,而不是 stdout。 将日志或错误消息写入 stdout 的服务器可以触发分析错误反馈循环,该循环会停止初始化握手;筛选器通过静默删除非 JSON 帧来阻止此情况。

超过 1 MB 的行会绕过结构检查,并按原样转发,以避免拆分或丢弃超大但有效的协议帧(例如,一个较大的 tools/list 响应)。

技能指南

技能是可扩展 CLI 功能的 Markdown 文件。 每个技能都位于其自己的目录中,其中包含一个 SKILL.md 文件。 调用(通过 /SKILL-NAME 或自动由代理调用)时,技能的内容将注入到会话中。

技能前页字段

领域类型必需说明
name字符串是的技能的唯一标识符。 仅字母、数字和连字符。 最多 64 个字符。
description字符串是的技能的作用以及何时使用它。 最多 1024 个字符。
argument-hint字符串在技能选取器中显示的、用于描述预期参数的自由格式提示(例如 "[target] [mode]")。
allowed-toolsString 或 String[]技能处于活动状态时自动允许的工具的逗号分隔列表或 YAML 数组。 将 "*" 用于所有工具。
user-invocable布尔用户是否可以使用 /SKILL-NAME 调用技能。 默认值:true
disable-model-invocation布尔阻止代理自动调用此技能。 默认值:false

技能位置

系统将按照优先顺序从这些位置加载技能(对于重复名称,以首次找到项为准)。

位置Scope说明
.github/skills/项目项目特定技能
.agents/skills/项目替代项目位置。
.claude/skills/项目与 Claude 兼容的位置。
.github/skills/继承Monorepo 父目录支持。
~/.copilot/skills/个人适用于所有项目的个人技能。
~/.agents/skills/个人跨所有项目共享的代理技能。
插件目录插件已安装插件中的技能。
COPILOT_SKILLS_DIRS自定义其他目录(逗号分隔)。
(与 CLI 捆绑)内置CLI 附带的技能。 最低优先级 - 可以被任何其他来源替代。
(组织/企业)远程由你的组织或企业托管、通过 AHP 中继提供的技能。 调用技能时,会按需提取内容。

当本地技能具有相同名称时,远程技能与本地技能一起投影,并遵循相同的基于名称的优先级。

当两个插件提供具有相同名称的技能时,两个插件都使用插件限定的调用名称(例如 /my-plugin/search/other-plugin/search) 共存。 未限定名称会解析到优先级更高的插件。 这只适用于技能;命令仍保留标准的按层级去重规则,以优先级更高的来源为准。

以非交互方式安装技能

使用 copilot plugins install --skill 可从文件、URL 或目录安装技能,而无需打开交互式会话:

# Install for your user account (default scope)
copilot plugins install --skill ./my-skill/SKILL.md

# Install into the current project (.github/skills; file or URL skills only)
copilot plugins install --skill --scope project ./my-skill/SKILL.md

安装一个目录时,系统会将其注册为自定义技能源,而不是复制该目录。 安装文件或 URL 会将技能的内容复制到个人或项目技能目录中。 等效的交互式命令为 /plugins install --skill [--project] <FILE|URL|DIRECTORY>. 有关完整选项参考,请参阅 GitHub Copilot CLI 插件参考

命令(可选技能格式)

命令是 .md 中存储为单个 .claude/commands/ 文件的技能的替代项。 命令名称派生自文件名。 命令文件使用简化格式(无需 name 字段),并支持 argument-hintdescriptionallowed-toolsdisable-model-invocation。 命令的优先级低于具有相同名称的技能。

自定义代理参考

自定义代理是在 Markdown 文件中定义的专用 AI 代理。 文件名(减扩展名)将成为代理 ID。 使用 .agent.md.md 用作文件扩展名。

内置代理

代理人默认模型说明
code-reviewclaude-sonnet-4.5高信噪比代码审查。 分析代码差异中的缺陷、安全问题和逻辑错误。 不会修改代码。
exploreclaude-haiku-4.5快速代码库浏览。 搜索文件、读取代码和回答问题。 提供不超过300字的简明答案。 可以安全地并行运行。
general-purposeclaude-sonnet-4.5支持复杂多步骤任务的全功能代理。 在单独的上下文窗口中运行。
researchclaude-haiku-4.5根据说明执行全面搜索。 使用引文搜索 GitHub 存储库、提取文件、验证声明和报告详细发现。
rubber-duck互补模型使用互补模型来对提案、设计、实现或测试进行建设性的批评。 标识薄弱点并建议改进。 请参阅“关于橡皮鸭智能体”。
security-reviewclaude-sonnet-4.5以安全为中心的代码评审。 分析 11 个类别中的高置信度漏洞变化。 仅标记可利用性置信度超过 80% 的问题。 报告严重程度和置信度评分。 不会修改代码。
taskclaude-haiku-4.5命令执行(测试、构建、代码检查)。 成功时返回简要摘要,失败时返回全部输出。

自定义代理程序前端字段

领域类型必需说明
description字符串是的说明显示在代理列表和task 工具中。
infer布尔允许主代理自动委派。 默认值:true
mcp-servers对象要连接的 MCP 服务器。 使用与~/.copilot/mcp-config.json相同的模式。
model字符串此代理的 AI 模型。 未设置时,继承外部代理的模型。 当会话模型设置为 Auto (服务器选择)时,子代理始终继承解析的会话模型,而不考虑此字段。
name字符串显示名称。 默认为文件名。
tools字符串[]代理可用的工具。 默认值: ["*"] (所有工具)。

自定义代理位置

Scope位置
项目
.github/agents/.claude/agents/
用户~/.copilot/agents/
插件<plugin>/agents/

对于项目作用域的代理,CLI 会从当前工作目录开始,逐级向上遍历直到 Git 根目录,并在沿途每一级父目录中加载 .github/agents/.claude/agents/ 目录。 这意味着 monorepo 中的每个包或子目录都可以贡献自己的代理。 当路径中存在多个 .github/agents/ 目录时,将加载所有目录,其中最深的目录具有最高优先级。 在同一级别中,.github/agents/ 约定优先于 .claude/agents/。 用户级代理的优先级低于项目级代理。 插件代理的优先级最低。

代理通信

在自定义代理中使用 list_agentswrite_agent,以检查附近的代理并在多代理会话中协调工作。

list_agents中的关系标签

关系标签标识可见代理与当前代理的关系。 当子代理在启用了共享同级通信的父会话内运行时,将显示标签。

标签Meaning使用它来
"self"当前代理确认哪个条目表示活动智能体
"sibling"由同一父级启动的智能体通过 write_agent 与对等代理协调
"child"由当前智能体启动的智能体跟踪当前智能体委派的后续工作

作用域列表

scope上使用list_agents,以便在选择目标之前缩小列表范围。

scopeReturns使用它来
省略当前上下文中的邻近智能体请参阅当前工作流的默认工作集
"siblings"仅同级代理查找同一父级启动的对等智能体
"children"仅限当前智能体的子智能体查看当前智能体委派的工作
"all"所有可见代理检查完整会话树而不使用它进行协调

在单代理会话中,默认视图以子代理为中心。 在多代理会话中,默认视图显示即时本地上下文,而不是整个树。

list_agents(scope="siblings")
list_agents(scope="children")
list_agents(scope="all")

作用域内消息传送

scope上使用write_agent,将一条消息广播给多个相关代理。

仅可在启用了共享同级通信的父会话内运行的子智能体中使用作用域内消息传送。 在顶级会话中,应改为以具有显式 agent_id 值的代理为目标。

scope发送到使用它来
"siblings"所有可见的同级代理在共享会话中协调协作工作
"children"当前代理的所有子代理向委派的工作发送相同的后续工作

如果某个作用域匹配的智能体过多,write_agent 会返回错误,并要求改为从 agent_id 提供明确的 list_agents 值。

write_agent(scope="children", message="Re-check your findings against the updated schema.")
write_agent(scope="siblings", message="Post status when your current check completes.")
write_agent(agent_id="explore-auth", message="Focus on token refresh flow and report only confirmed issues.")

子代理限制

CLI 强制实施深度和并发限制以防止生成失控代理。

Limit默认麦克斯
最大深度6256
最大并发数基于计划的32

深度 计数彼此嵌套的代理数。 达到深度限制时,最内部的代理无法生成进一步的子代理。 并发 计数在整个会话树中同时运行的子代理数。 达到限制后,将拒绝新的子代理请求,直到活动代理完成。

默认并发限制取决于您所用的 Copilot 套餐:

Plan最大并发数
免费/教育2
Pro/ Pro+4
麦克斯8
商业16
Enterprise32
基于使用量的计费32

按使用量计费的用户可通过 subagents.maxConcurrencysubagents.maxDepth 设置覆盖这些限制:

{
    "subagents": {
        "maxConcurrency": 16,
        "maxDepth": 10
    }
}

超出有效范围的值会被限制:maxConcurrency 的上限为 32maxDepth 的下限为 256。 对于不使用基于使用情况的计费的计划,将忽略这些设置。 请参阅 配置文件设置

Sidekick 智能体

Sidekick 代理在后台自动运行,并将上下文发布到会话收件箱中。 它们响应会话事件,而不是被显式调用。

在任何代理定义中添加 sidekick: 块,使其成为辅助代理:

---
name: Context Gatherer
description: Gathers relevant context when the working directory changes
sidekick:
    triggers:
        - session.context_changed
        - event: user.message
          limit: 1
    behavior: persistent
    maxSendsPerTurn: 2
---

Gather useful context about the current repository and working directory.
Summarize recent changes and any relevant project structure.

Sidekick 触发器

triggers 中的每个条目要么是一个纯事件名称字符串,可触发无限次;要么是一个包含 event 和可选的 limit 的对象。

事件说明
user.message在每次用户发送消息时触发。
session.context_changed在工作目录、仓库或分支发生变化时触发(例如,在 cd 之后或切换 Git 分支后)。
触发器字段类型默认说明
eventstring必需启动此代理的会话事件类型。
limitnumber无限制此触发器每个会话可触发的最大次数。 设置时必须是正整数。

Sidekick 配置字段

领域类型默认说明
triggers
string[] 或 object[]必需启动此代理的会话事件类型。 至少需要一个触发器。
behaviorstring"restart"
"restart":每次触发时取消之前的运行并重新开始。
"persistent":保持同一个长时间运行的进程持续运行,并将新消息投递到现有循环中,而不是重新启动。
maxSendsPerTurnnumber1每个触发器允许的最大收件箱发送量。 在 "persistent" 模式下,每个传递的用户消息都会重置此预算。

"restart" 的行为模式适合用于收集上下文的无状态代理。 "persistent" 行为适用于跨轮次累积状态的智能体。

权限审批结果

当 CLI 提示执行作的权限时,可以使用以下键进行响应。

密钥Effect
y允许此特定请求一次。
n拒绝此特定请求一次。
!在会话剩余时段允许所有类似的请求。
#在会话剩余时段拒绝所有类似的请求。
?显示有关请求的详细信息。

显示完整对话框后,还可以从以下选项中进行选择:

选项Scope持久性
一旦单一使用没有
此位置在手动清除之前按位置保存到磁盘
始终永久配置文件

当 CLI 可以确定位置密钥(Git 根目录或当前目录)时,将显示 “此位置 ”选项。 它将审批保存到磁盘,以便在下次在该目录中工作时自动授予相同的权限,而无需再次提示。

使用 /permissions reset 清除当前会话的内存中授权。

安全性

计划模式

/plan 启动只读分析会话,该会话可阻止写入操作和 shell 命令执行,同时允许完整代码库浏览。 会产生修改的工具调用——包括编辑器写入、向非计划文件写入 apply_patch、会造成修改的 shell 命令以及创建拉取请求——是在工具层被硬性阻止的,而不只是由系统提示加以劝阻。 从计划模式会话生成的子代理继承相同的限制。 仍然允许对计划文件本身进行读取和写入操作。

命令安全分析

在执行之前会分析 Shell 命令,以确定潜在的危险模式:

  • 文件删除 (rm -rf
  • 系统修改 (sudochmod 777
  • 网络渗漏(带有敏感路径的 curl
  • 凭据访问(读取 .env、SSH 密钥)
  • 用于覆盖危险变量的内联环境变量赋值(例如,PATH=...LD_PRELOAD=...

高风险命令显示其他警告,并需要显式确认。

环境变量拒绝列表

CLI 会阻止内联分配环境变量,这些环境变量可以被利用以执行任意代码,即使在其他只读命令中也是如此。 阻止的类别包括:

类别示例
动态链接器注入
LD_*DYLD_* (所有前缀)
Git 索引配置覆盖
GIT_CONFIG_COUNTGIT_CONFIG_KEY_*GIT_CONFIG_VALUE_*(所有GIT_CONFIG_前缀)
Git 外部程序钩子
GIT_EXTERNAL_DIFFGIT_PROXY_COMMAND
Git 配置文件覆盖
GIT_CONFIGGIT_CONFIG_GLOBALGIT_CONFIG_SYSTEM
Shell PATH 和启动文件
PATHBASH_ENVENV
现有被屏蔽的变量
PAGERGIT_PAGERGIT_EDITORVISUALEDITORGIT_SSHGIT_SSH_COMMANDGIT_ASKPASSBROWSERGH_BROWSER

web_fetch SSRF 防护

该工具 web_fetch 在发出任何 HTTP 请求之前强制实施服务器端请求伪造(SSRF)保护:

  • 协议允许列表:仅允许 http://https:// URL。 file:// 和其他方案均被拒绝。
  • IP 阻止列表:IP 文本检查和 DNS 预解析阻止了对环回地址127.x.x.x(、 ::1)、RFC-1918 专用范围(10.x172.16–31.x192.168.x)和云元数据终结点(例如) 169.254.169.254的请求。
  • 无自动重定向3xx 不会自动遵循重定向。 在继续跟随该重定向之前,系统会根据同一 IP 黑名单再次验证重定向目标 URL。

若要允许 web_fetch 在开发期间访问 localhost (例如,对于本地文档服务器),请设置以下环境变量:

export COPILOT_WEB_FETCH_ALLOW_LOCALHOST=1

OpenTelemetry 监视

Copilot 命令行界面(CLI) 可以通过 OpenTelemetry(OTel )导出跟踪和指标,从而了解代理交互、LLM 调用、工具执行和令牌使用情况。 所有信号名称和属性都遵循 OTel GenAI 语义约定

默认情况下,OTel 处于关闭状态,开销为零。 当满足以下任一条件时,它将激活:

  • COPILOT_OTEL_ENABLED=true
  • OTEL_EXPORTER_OTLP_ENDPOINT 已设置
  • COPILOT_OTEL_FILE_EXPORTER_PATH 已设置

OTel 配置也可以在 VS Code 中设置,或者在企业范围内的 managed-settings.json 文件中设置。 请参阅 文档中的 VS Code 和 企业托管设置参考

OTel 环境变量

Variable默认说明
COPILOT_OTEL_ENABLEDfalse显式启用 OTel。 如果 OTEL_EXPORTER_OTLP_ENDPOINT 已设置,则不是必需的。
OTEL_EXPORTER_OTLP_ENDPOINTOTLP 终结点 URL。 设置此项会自动启用 OTel。
COPILOT_OTEL_EXPORTER_TYPEotlp-http导出程序类型: otlp-httpfile。 当设置file时自动选择COPILOT_OTEL_FILE_EXPORTER_PATH
OTEL_EXPORTER_OTLP_PROTOCOLhttp/jsonOTLP HTTP 线路协议: http/jsonhttp/protobuf。 仅适用于 otlp-http 导出器。
OTEL_EXPORTER_OTLP_TRACES_PROTOCOL仅为跟踪覆盖 OTEL_EXPORTER_OTLP_PROTOCOL
OTEL_EXPORTER_OTLP_METRICS_PROTOCOL仅为指标覆盖 OTEL_EXPORTER_OTLP_PROTOCOL
OTEL_SERVICE_NAMEgithub-copilot资源属性中的服务名称。
OTEL_RESOURCE_ATTRIBUTES逗号分隔的 key=value 对的额外资源属性。 对特殊字符使用百分比编码。
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalse捕获完整的提示和响应内容。 请参阅 内容捕获
OTEL_LOG_LEVELOTel 诊断日志级别:NONE、、ERROR``WARNINFO``DEBUGVERBOSEALL
COPILOT_OTEL_FILE_EXPORTER_PATH将所有信号作为 JSON 行写入此文件。 设置此项会自动启用 OTel。
COPILOT_OTEL_SOURCE_NAMEgithub.copilot用于跟踪程序和计量的检测范围名称。
OTEL_EXPORTER_OTLP_HEADERSOTLP 导出器(例如 Authorization=Bearer token)的身份验证头。

Traces

运行时为每个智能体交互发出分层跨度树。 每个树都包含根invoke_agent范围,以及chat``execute_tool子范围。

invoke_agent span 属性

包装整个智能体调用:一个用户消息的所有 LLM 调用和工具执行。

  • 顶层会话子代理调用(例如 explore、task)都使用跨度类型INTERNAL(进程内);面向提供方的推理由子CLIENT``chat跨度表示。
  • 顶层会话还会携带server.addressserver.port;子代理调用则不会携带。
Attribute说明Scope
gen_ai.operation.nameinvoke_agent两者都有
gen_ai.provider.name提供者(例如githubanthropic两者都有
gen_ai.agent.id已知时稳定的代理定义标识符;顶级默认使用 github.copilot.default两者都有
gen_ai.agent.name代理名称(可用时)两者都有
gen_ai.agent.description代理说明(可用时)两者都有
gen_ai.agent.version已知时代理定义版本;否则为运行时版本两者都有
gen_ai.conversation.id会话标识符两者都有
enduser.pseudo.id若可用,从 analytics_tracking_id 获取假名 Copilot 用户标识符两者都有
gen_ai.request.model请求的模型两者都有
gen_ai.response.finish_reasons
["stop"]["error"]两者都有
gen_ai.usage.input_tokens总输入令牌数(所有轮次)两者都有
gen_ai.usage.output_tokens总输出标记(所有轮次)两者都有
gen_ai.usage.cache_read.input_tokens读取缓存的输入令牌两者都有
gen_ai.usage.cache_creation.input_tokens创建的缓存输入令牌两者都有
github.copilot.turn_countLLM 往返次数两者都有
github.copilot.cost货币成本两者都有
github.copilot.aiuAI 单元消耗两者都有
server.address服务器主机名仅限顶层
server.port服务器端口仅限顶层
error.type错误类名称(出错时)两者都有
gen_ai.input.messages完整输入消息作为 JSON 格式(仅限内容捕获)两者都有
gen_ai.output.messagesJSON格式的完整输出消息(仅用于捕获内容)两者都有
gen_ai.system_instructionsJSON 格式的系统提示内容(仅限内容捕获)两者都有
gen_ai.tool.definitions工具模式为 JSON(仅内容捕获)两者都有

chat span 属性

每个 LLM 请求一个跨度。 范围类型: CLIENT.

Attribute说明
gen_ai.operation.namechat
gen_ai.provider.name提供者名称
gen_ai.request.model请求的模型
gen_ai.request.stream是否使用了流式处理模式(仅流式处理)
gen_ai.conversation.id会话标识符
gen_ai.response.finish_reasons停止原因
gen_ai.response.id响应 ID
gen_ai.response.model已解析的模型
gen_ai.response.time_to_first_chunk首次流式处理区块的时间(以秒为单位)(仅流式处理)
gen_ai.usage.cache_creation.input_tokens创建的缓存令牌
gen_ai.usage.cache_read.input_tokens读取缓存令牌
gen_ai.usage.input_tokens此轮次输入令牌
gen_ai.usage.output_tokens此轮次输出令牌
github.copilot.cost轮次成本
github.copilot.aiuAI 单元消耗当前回合
github.copilot.server_duration服务器端持续时间
github.copilot.initiator请求发起者
github.copilot.turn_id轮次标识符
github.copilot.interaction_id交互标识符
server.address服务器主机名
server.port服务器端口
error.type错误类名称(出错时)
gen_ai.input.messagesJSON 格式的完整提示消息(仅限内容捕获)
gen_ai.output.messagesJSON 形式的完整响应消息(仅内容捕获)
gen_ai.system_instructionsJSON 格式的系统提示内容(仅限内容捕获)

execute_tool span 属性

为每个工具调用指定一个跨度。 范围类型: INTERNAL.

Attribute说明
gen_ai.operation.nameexecute_tool
gen_ai.provider.name提供程序名称(如果可用)
gen_ai.tool.name工具名称(例如, readFile
gen_ai.tool.typefunction
gen_ai.tool.call.id工具调用标识符
gen_ai.tool.description工具说明
error.type错误类名称(出错时)
gen_ai.tool.call.arguments工具输入参数以 JSON 格式(仅内容捕获)
gen_ai.tool.call.result工具输出为 JSON(仅限内容捕获)

Metrics

GenAI 约定指标

Metric类型单位说明
gen_ai.client.operation.duration直方图sLLM API 调用和代理调用持续时间
gen_ai.client.token.usage直方图tokens按类型排序的令牌计数 (input/output
gen_ai.client.operation.time_to_first_chunk直方图s接收第一个流媒体数据块的时间
gen_ai.client.operation.time_per_output_chunk直方图s第一个区块后的区块间延迟
gen_ai.invoke_agent.inference_calls直方图{inference_call}单次代理调用期间发起的模型调用次数,在提供方分发时计数(包括失败和部分调用;不包括在分发前被阻止的请求)。 维度: gen_ai.agent.name.
gen_ai.invoke_agent.tool_calls直方图{tool_call}在一个代理调用期间进行的客户端工具调用数(包括失败和部分调用);不包括合成 CLI 工具生命周期和提供程序执行的服务器端工具。 维度: gen_ai.agent.name.

特定于供应商的指标

Metric类型单位说明
github.copilot.tool.call.countCountercalls通过 gen_ai.tool.namesuccess 调用工具
github.copilot.tool.call.duration直方图s工具执行由 gen_ai.tool.name 产生的延迟
github.copilot.agent.turn.count直方图轮次每个代理调用的 LLM 往返次数
github.copilot.mcp.server.connection.countCounter尝试按传输方式和结果划分的已完成 MCP 服务器连接尝试次数
github.copilot.code.lines_addedCounter线由文件编辑工具添加的行,实时记录
github.copilot.code.lines_removedCounter线文件编辑工具删除的行会被实时记录

跨度事件

在活动 chatinvoke_agent 跨度上记录的生命周期事件。

事件说明密钥属性
github.copilot.hook.start挂钩开始执行
github.copilot.hook.typegithub.copilot.hook.invocation_id
github.copilot.hook.end挂钩成功完成
github.copilot.hook.typegithub.copilot.hook.invocation_id
github.copilot.hook.error挂钩失败
github.copilot.hook.typegithub.copilot.hook.invocation_idgithub.copilot.hook.error_message
github.copilot.session.truncation对话历史记录被截断
github.copilot.token_limitgithub.copilot.pre_tokensgithub.copilot.post_tokensgithub.copilot.pre_messagesgithub.copilot.post_messagesgithub.copilot.tokens_removedgithub.copilot.messages_removedgithub.copilot.performed_by
github.copilot.session.compaction_start历史压缩开始没有
github.copilot.session.compaction_complete已完成历史记录压缩
github.copilot.successgithub.copilot.pre_tokensgithub.copilot.post_tokensgithub.copilot.tokens_removedgithub.copilot.messages_removedgithub.copilot.message(仅内容捕获)
github.copilot.skill.invoked调用了技能
github.copilot.skill.namegithub.copilot.skill.pathgithub.copilot.skill.plugin_namegithub.copilot.skill.plugin_version
github.copilot.session.shutdown会话正在关闭
github.copilot.shutdown_typegithub.copilot.total_premium_requestsgithub.copilot.lines_addedgithub.copilot.lines_removedgithub.copilot.files_modified_count
github.copilot.session.abort用户取消了当前操作github.copilot.abort_reason
exception会话错误
github.copilot.error_typegithub.copilot.error_status_codegithub.copilot.error_provider_call_id

资源属性

所有信号都携带这些资源属性。

Attribute价值
service.name
github-copilot (可通过 OTEL_SERVICE_NAME
service.version运行时版本

内容捕获

默认情况下,不会捕获提示内容、响应或工具参数,仅捕获模型名称、令牌计数和持续时间等元数据。 若要捕获完整内容,请设置 OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true

警告

内容捕获可能包括敏感信息,例如代码、文件内容和用户提示。 仅在受信任的环境中启用此功能。

启用内容捕获后,将填充以下属性。

AttributeContent
gen_ai.input.messages完整提示消息 (JSON)
gen_ai.output.messages完整响应消息 (JSON)
gen_ai.system_instructions系统提示内容 (JSON)
gen_ai.tool.definitions工具架构 (JSON)
gen_ai.tool.call.arguments工具输入参数
gen_ai.tool.call.result工具输出结果

延伸阅读