跳至主要内容

GitHub Copilot CLI 命令参考

查找命令和键盘快捷键,帮助你更有效地使用 Copilot CLI。

命令行命令

命令用途
copilot启动交互式用户界面。
copilot help [topic]显示帮助信息。帮助主题包括:configcommandsenvironmentloggingpermissionsproviders
copilot init为此仓库初始化 Copilot 自定义说明。
copilot update下载并安装最新版本。
copilot version显示版本信息并检查更新。
copilot login通过 OAuth 设备流向 Copilot 进行身份验证。接受 --host HOST 以指定 GitHub 主机 URL(默认值:https://github.com)。
copilot logout注销 GitHub 并删除存储的凭据。
copilot plugin管理插件和插件市场。
copilot mcp从命令行管理 MCP 服务器配置。

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

快捷键用途
@ 文件名在上下文中包含文件内容。
Ctrl+X 然后输入 /开始键入提示词后,此快捷键允许你运行斜杠命令——例如,如果你想在不重新键入提示词的情况下更换模型。
Esc取消当前操作。
! 命令在本地 shell 中执行命令,绕过 Copilot。
Ctrl+C取消操作 / 清除输入。按两次退出。
Ctrl+D关闭。
Ctrl+L清屏。
Shift+Tab在标准 (standard)、规划 (plan) 和自动驾驶 (autopilot) 模式之间切换。

交互式界面中的时间轴快捷键

快捷键用途
Ctrl+O当提示词输入框为空时,此快捷键会展开 Copilot 响应时间轴中的近期项以显示更多详细信息。
Ctrl+E当提示词输入框为空时,此快捷键会展开 Copilot 响应时间轴中的所有项。
Ctrl+T展开/折叠响应中推理过程的显示。
快捷键用途
Ctrl+A移动到行首(键入时)。
Ctrl+B移动到前一个字符。
Ctrl+E移动到行尾(键入时)。
Ctrl+F移动到后一个字符。
Ctrl+G在外部编辑器中编辑提示词。
Ctrl+H删除前一个字符。
Ctrl+K从光标处删除到行尾。如果光标在行尾,则删除换行符。
Ctrl+U从光标处删除到行首。
Ctrl+W删除前一个单词。
首页移动到当前行的开头。
End移动到当前行的末尾。
Ctrl+Home移动到文本开头。
Ctrl+End移动到文本末尾。
Meta+/按单词移动光标。
/浏览命令历史记录。

交互式界面中的斜杠命令

命令用途
/add-dir 路径将目录添加到文件访问允许列表中。
/agent浏览并从可用智能体中选择(如果有)。
/allow-all, /yolo启用所有权限(工具、路径和 URL)。
/changelog [SUMMARIZE] [VERSION]显示 CLI 更新日志,可选 AI 生成的摘要。
/clear [提示词], /new [提示词]开始新对话。
/compact总结对话历史记录以减少上下文窗口占用。
/context显示上下文窗口 Token 使用情况和可视化。
/copy将上一个响应复制到剪贴板。
/cwd, /cd [路径]更改工作目录或显示当前目录。
/delegate [提示词]通过 AI 生成的拉取请求将更改委托给远程仓库。
/diff查看当前目录中所做的更改。
/exit, /quit退出 CLI。
/experimental [on|off|show]切换、设置或显示实验性功能。
/feedback提供有关 CLI 的反馈。
/fleet [提示词]启用任务部分的并行子智能体执行。请参阅使用 /fleet 命令并行运行任务
/help显示交互式命令的帮助。
/ide连接到 IDE 工作区。
/init为此仓库初始化 Copilot 自定义说明和智能体功能。
/instructions查看并切换自定义说明文件。
/keep-alive [on|busy|数字m|数字h]防止机器进入睡眠状态:当 CLI 会话处于活动状态时、当智能体忙碌时或在定义的时间长度内。
/list-dirs显示所有已允许文件访问的目录。
/login登录 Copilot。
/logout注销 Copilot。
/lsp [show|test|reload|help] [服务器名称]管理语言服务器配置。
/mcp [show|add|edit|delete|disable|enable|auth|reload] [服务器名称]管理 MCP 服务器配置。
/model, /models [模型名称]选择要使用的 AI 模型。
/on-air, /streamer-mode切换直播模式(隐藏预览版模型名称)。
/plan [提示词]在编码前创建实现方案。
/plugin [marketplace|install|uninstall|update|list] [参数...]管理插件和插件市场。
/pr [view|create|fix|auto]对当前分支的拉取请求进行操作。
/remote启用从 GitHub.com 和 GitHub Mobile 对此会话的远程访问。
/rename [名称]重命名当前会话(如果省略则自动生成名称;/session rename 的别名)。
/reset-allowed-tools重置允许的工具列表。
/restart重启 CLI,保留当前会话。
/resume [会话 ID]通过从列表中选择切换到不同的会话(可选指定会话 ID)。
/review [提示词]运行代码审查智能体来分析更改。
/session [checkpoints [n]|files|plan|rename 名称]显示会话信息和工作区摘要。使用子命令查看详情。
/share [file|gist] [session|research] [路径]将会话共享到 Markdown 文件或 GitHub gist。
/skills [list|info|add|remove|reload] [参数...]管理技能以增强功能。
/terminal-setup配置终端以支持多行输入(Shift+EnterCtrl+Enter)。
/theme [show|set|list] [auto|主题 ID]查看或配置终端主题。
/usage显示会话使用情况指标和统计数据。
/undo, /rewind撤销上一步操作并还原文件更改。
/user [show|list|switch]管理当前 GitHub 用户。

如需查看可用斜杠命令的完整列表,请在 CLI 的交互界面中输入 /help

命令行选项

选项用途
--acp启动智能体客户端协议 (Agent Client Protocol) 服务器。
--add-dir=路径将目录添加到文件访问允许列表中(可多次使用)。
--add-github-mcp-tool=工具添加要为 GitHub MCP 服务器启用的工具,而不是默认的 CLI 子集(可多次使用)。使用 * 代表所有工具。
--add-github-mcp-toolset=工具集添加要为 GitHub MCP 服务器启用的工具集,而不是默认的 CLI 子集(可多次使用)。使用 all 代表所有工具集。
--additional-mcp-config=JSON仅为此会话添加 MCP 服务器。服务器配置可以作为 JSON 字符串或文件路径(前缀为 @)提供。扩充来自 ~/.copilot/mcp-config.json 的配置。覆盖任何同名的已安装 MCP 服务器配置。
--agent=智能体名称指定要使用的自定义智能体。
--allow-all启用所有权限(相当于 --allow-all-tools --allow-all-paths --allow-all-urls)。
--allow-all-paths禁用文件路径验证并允许访问任何路径。
--allow-all-tools允许所有工具自动运行而无需确认。以编程方式使用 CLI 时需要此选项(环境变量:COPILOT_ALLOW_ALL)。
--allow-all-urls允许访问所有 URL 而无需确认。
--allow-tool=工具 ...CLI 有权使用的工具。将不会提示获取权限。对于多个工具,请使用带引号的逗号分隔列表。
--allow-url=URL ...允许访问特定的 URL 或域名。对于多个 URL,请使用带引号的逗号分隔列表。
--autopilot在提示模式下启用自动驾驶续传。请参阅允许 GitHub Copilot CLI 自主工作
--available-tools=工具 ...模型仅可使用这些工具。对于多个工具,请使用带引号的逗号分隔列表。
--banner显示启动横幅。
--bash-env为 bash shell 启用 BASH_ENV 支持。
--config-dir=路径设置配置目录(默认值:~/.copilot)。
--continue恢复最近的会话。
--deny-tool=工具 ...CLI 无权使用的工具。将不会提示获取权限。对于多个工具,请使用带引号的逗号分隔列表。
--deny-url=URL ...拒绝访问特定的 URL 或域名,优先级高于 --allow-url。对于多个 URL,请使用带引号的逗号分隔列表。
--disable-builtin-mcps禁用所有内置 MCP 服务器(目前:github-mcp-server)。
--disable-mcp-server=服务器名称禁用特定的 MCP 服务器(可多次使用)。
--disable-parallel-tools-execution禁用工具的并行执行(LLM 仍然可以发出并行工具调用,但它们将按顺序执行)。
--disallow-temp-dir防止自动访问系统临时目录。
--effort=等级, --reasoning-effort=等级设置推理努力等级(low, medium, high)。
--enable-all-github-mcp-tools启用所有 GitHub MCP 服务器工具,而不是默认的 CLI 子集。覆盖 --add-github-mcp-toolset--add-github-mcp-tool 选项。
--enable-reasoning-summaries为支持它的 OpenAI 模型请求推理摘要。
--excluded-tools=工具 ...模型将无法使用这些工具。对于多个工具,请使用带引号的逗号分隔列表。
--experimental启用实验性功能(使用 --no-experimental 禁用)。
-h, --help显示帮助。
-i 提示词, --interactive=提示词启动交互式会话并自动执行此提示词。
--log-dir=目录设置日志文件目录(默认值:~/.copilot/logs/)。
--log-level=等级设置日志等级(可选项:none, error, warning, info, debug, all, default)。
--max-autopilot-continues=次数自动驾驶模式下的最大连续消息数(默认:无限制)。请参阅允许 GitHub Copilot CLI 自主工作
--model=模型名称设置要使用的 AI 模型。
--mouse[=值]在备用屏幕 (alt screen) 模式下启用鼠标支持。值可以是 on(默认)或 off。启用后,CLI 会在备用屏幕模式下捕获鼠标事件——滚轮、点击等。禁用后,将保留终端的原生鼠标行为。设置后,该设置将通过写入配置文件而持久化。
--no-ask-user禁用 ask_user 工具(智能体将在不提问的情况下自主工作)。
--no-auto-update禁用自动下载 CLI 更新。
--no-bash-env禁用对 bash shell 的 BASH_ENV 支持。
--no-color禁用所有彩色输出。
--no-custom-instructions禁用从 AGENTS.md 及相关文件加载自定义说明。
--no-experimental禁用实验性功能。
--no-mouse禁用鼠标支持。
--no-remote禁用此会话的远程访问。
--output-format=格式格式可以是 text(默认)或 json(输出 JSONL:每行一个 JSON 对象)。
-p 提示词, --prompt=提示词以编程方式执行提示词(完成后退出)。
--plain-diff禁用富差异渲染(通过你的 git 配置指定的差异工具进行语法高亮)。
--plugin-dir=目录从本地目录加载插件(可多次使用)。
--remote启用从 GitHub.com 和 GitHub Mobile 对此会话的远程访问。
--resume=会话 ID通过从列表中选择来恢复之前的交互式会话(可选指定会话 ID)。
-s, --silent仅输出智能体响应(不含使用统计数据),适用于配合 -p 进行脚本编写。
--screen-reader启用屏幕阅读器优化。
--secret-env-vars=变量 ...从 shell 和 MCP 服务器环境中遮蔽环境变量(可多次使用)。对于多个变量,请使用带引号的逗号分隔列表。默认情况下,GITHUB_TOKENCOPILOT_GITHUB_TOKEN 环境变量的值会从输出中遮蔽。
--share=路径在编程会话完成后将会话共享到 Markdown 文件(默认路径:./copilot-session-<ID>.md)。
--share-gist在编程会话完成后将会话共享到加密的 GitHub gist。
--stream=模式启用或禁用流模式(模式选择:onoff)。
-v, --version显示版本信息。
--yolo启用所有权限(相当于 --allow-all)。

如需查看命令和选项的完整列表,请运行 copilot help

工具可用性值

--available-tools--excluded-tools 选项支持使用以下值来指定工具

Shell 工具

工具名称描述
bash / powershell执行命令
read_bash / read_powershell从 shell 会话读取输出
write_bash / write_powershell向 shell 会话发送输入
stop_bash / stop_powershell终止 shell 会话
list_bash / list_powershell列出活动的 shell 会话

文件操作工具

工具名称描述
view读取文件或目录
create创建新文件
edit通过字符串替换编辑文件
apply_patch应用补丁(某些模型使用此工具而非 edit/create

智能体和任务委托工具

工具名称描述
task运行子智能体
read_agent检查后台智能体状态
list_agents列出可用智能体

其他工具

工具名称描述
grep (或 rg)在文件中搜索文本
glob查找符合模式的文件
web_fetch获取并解析网页内容
skill调用自定义技能
ask_user向用户提问
report_intent报告智能体计划执行的操作
show_file显著地显示一个文件
fetch_copilot_cli_documentation查阅 CLI 文档
update_todo更新任务清单
store_memory跨会话持久化事实
task_complete发出任务完成信号(仅限自动驾驶模式)
exit_plan_mode退出规划模式
sql查询会话数据(实验性)
lsp语言服务器重构(实验性)

工具权限模式

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

种类描述示例模式
shellShell 命令执行shell(git push), shell(git:*), shell
写入文件创建或修改write, write(src/*.ts)
读取文件或目录读取read, read(.env)
服务器名称MCP 服务器工具调用MyMCP(create_issue), MyMCP
url通过 web-fetch 或 shell 进行 URL 访问url(github.com), url(https://*.api.com)
memory向智能体记忆存储事实memory

对于 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'

环境变量

变量描述
COPILOT_MODEL设置 AI 模型。
COPILOT_ALLOW_ALL设置为 true 以自动允许所有权限(相当于 --allow-all)。
COPILOT_AUTO_UPDATE设置为 false 以禁用自动更新。
COPILOT_CUSTOM_INSTRUCTIONS_DIRS自定义说明的其他目录的逗号分隔列表。
COPILOT_SKILLS_DIRS技能的其他目录的逗号分隔列表。
COPILOT_EDITOR用于交互式编辑的编辑器命令(在检查 $VISUAL$EDITOR 之后检查)。如果均未设置,则默认为 vi
COPILOT_GITHUB_TOKEN身份验证令牌。优先级高于 GH_TOKENGITHUB_TOKEN
COPILOT_HOME覆盖配置和状态目录。默认值:$HOME/.copilot
COPILOT_CACHE_HOME覆盖缓存目录(用于市场缓存、自动更新包和其他临时数据)。有关平台默认值,请参阅 GitHub Copilot CLI 配置目录
COPILOT_SUBAGENT_MAX_DEPTH最大子智能体嵌套深度。默认值:6。范围:1256
COPILOT_SUBAGENT_MAX_CONCURRENT整个会话树中的最大并发子智能体数。默认值:32。范围:1256
GH_TOKEN身份验证令牌。优先级高于 GITHUB_TOKEN
GITHUB_TOKEN身份验证令牌。
USE_BUILTIN_RIPGREP设置为 false 以使用系统 ripgrep 而不是随附版本。
PLAIN_DIFF设置为 true 以禁用富差异渲染。
COLORFGBG用于检测终端深色/浅色背景的备选方案。
COPILOT_CLI_ENABLED_FEATURE_FLAGS要启用的功能标志的逗号分隔列表(例如 "SOME_FEATURE,SOME_OTHER_FEATURE")。

配置文件设置

设置按用户、仓库到本地层层递进,越具体的范围会覆盖越通用的范围。命令行标志和环境变量始终具有最高优先级。

范围位置用途
用户~/.copilot/config.json所有仓库的全局默认值。使用 COPILOT_HOME 环境变量指定备用路径。
仓库.github/copilot/settings.json共享的仓库配置(提交到仓库)。
本地.github/copilot/settings.local.json个人覆盖设置(将此项添加到 .gitignore)。

用户设置 (~/.copilot/config.json)

类型默认值描述
allowed_urlsstring[][]无需提示即可允许的 URL 或域名。
autoUpdatebooleantrue自动下载 CLI 更新。
banner"always" | "once" | "never""once"动画横幅显示频率。
bashEnvbooleanfalse为 bash shell 启用 BASH_ENV 支持。
beepbooleantrue需要注意时播放提示音。
compactPastebooleantrue将大型粘贴折叠为紧凑的 Token。
custom_agents.default_local_onlybooleanfalse仅使用本地自定义智能体。
denied_urlsstring[][]被阻止的 URL 或域名(优先级高于 allowed_urls)。
experimentalbooleanfalse启用实验性功能。
includeCoAuthoredBybooleantrue在智能体生成的 git 提交中添加 Co-authored-by 尾注。
companyAnnouncementsstring[][]启动时随机显示的自定义消息。
logLevel"none" | "error" | "warning" | "info" | "debug" | "all" | "default""default"日志详细程度。
modelstring因情况而异要使用的 AI 模型(请参阅 /model 命令)。
powershellFlagsstring[]["-NoProfile", "-NoLogo"]启动时传递给 PowerShell (pwsh) 的标志。仅限 Windows。
effortLevelstring"medium"深度思考时的推理努力等级(例如 "low", "medium", "high", "xhigh")。等级越高,计算量越大。
renderMarkdownbooleantrue在终端输出中渲染 Markdown。
screenReaderbooleanfalse启用屏幕阅读器优化。
streambooleantrue启用流式响应。
storeTokenPlaintextbooleanfalse当没有可用的系统钥匙串时,在配置文件中以纯文本形式存储身份验证令牌。
streamerModebooleanfalse隐藏预览版模型名称和配额详情(在演示 Copilot CLI 时很有用)。
theme"auto" | "dark" | "light""auto"终端颜色主题。
trusted_foldersstring[][]预先授权文件访问的文件夹。
mousebooleantrue在备用屏幕模式下启用鼠标支持。
respectGitignorebooleantrue@ 文件选择器中排除 gitignore 忽略的文件。
disableAllHooksbooleanfalse禁用所有钩子。
hooksobject内联的用户级钩子定义。
updateTerminalTitlebooleantrue在终端标题中显示当前的意图。

仓库设置 (.github/copilot/settings.json)

仓库设置适用于在此仓库中工作的所有人。仓库级别仅支持部分设置。不支持的键将被忽略。

类型合并行为描述
companyAnnouncementsstring[]已替换——仓库优先级最高启动时随机显示的消息。
enabledPluginsRecord<string, boolean>已合并——相同键下仓库覆盖用户设置声明式插件自动安装。
extraKnownMarketplacesRecord<string, {...}>已合并——相同键下仓库覆盖用户设置此仓库中可用的插件市场。

本地设置 (.github/copilot/settings.local.json)

在仓库中创建 .github/copilot/settings.local.json,用于不应提交的个人覆盖设置。将此文件添加到 .gitignore

本地配置文件使用与仓库配置文件 (.github/copilot/settings.json) 相同的架构,且优先级高于后者。

Copilot 项目初始化

当你使用 copilot init 命令,或在交互式会话中使用斜杠命令 /init 时,Copilot 会分析你的代码库并编写或更新仓库中的 .github/copilot-instructions.md 文件。此自定义说明文件包含项目特定的指导,有助于改进未来的 CLI 会话。

你通常会在开始新项目或在现有仓库中开始使用 Copilot CLI 时使用 copilot init/init

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

  • 构建、测试和 lint 命令。
  • 高层架构。
  • 代码库特定的约定。

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

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

💡 未发现 copilot 说明。请运行 /init 为此项目生成 copilot-instructions.md 文件。

如果你不想创建此文件,可以使用 /init suppress 斜杠命令永久隐藏此启动消息,这会向你的 Copilot 配置文件添加一个针对此仓库的 suppress_init_folders 设置。

如需了解更多信息,请参阅为 GitHub Copilot 添加仓库自定义说明

钩子 (Hooks) 参考

钩子是在会话期间特定生命周期点执行的外部命令,支持自定义自动化、安全控制和集成。钩子配置文件会从仓库中的 .github/hooks/*.json 自动加载。

钩子配置格式

钩子配置文件使用 JSON 格式,版本为 1

命令钩子 (Command hooks)

命令钩子运行 shell 脚本,支持所有钩子类型。

{
  "version": 1,
  "hooks": {
    "preToolUse": [
      {
        "type": "command",
        "bash": "your-bash-command",
        "powershell": "your-powershell-command",
        "cwd": "optional/working/directory",
        "env": { "VAR": "value" },
        "timeoutSec": 30
      }
    ]
  }
}
字段类型是否必填描述
type"command"必须为 "command"
bashstringbash/powershell 之一Unix 下的 shell 命令。
powershellstringbash/powershell 之一Windows 下的 shell 命令。
cwdstring命令的工作目录(相对于仓库根目录或绝对路径)。
envobject要设置的环境变量(支持变量展开)。
timeoutSecnumber超时时间(秒)。默认值:30

提示词钩子 (Prompt hooks)

提示词钩子会自动提交文本,效果如同用户键入。它们仅在 sessionStart 时受支持,并在通过 --prompt 传递的任何初始提示词之前运行。文本可以是自然语言提示词或斜杠命令。

{
  "version": 1,
  "hooks": {
    "sessionStart": [
      {
        "type": "prompt",
        "prompt": "Your prompt text or /slash-command"
      }
    ]
  }
}
字段类型是否必填描述
type"prompt"必须为 "prompt"
promptstring要提交的文本——可以是自然语言消息或斜杠命令。

钩子事件

事件触发时机输出处理
sessionStart新会话开始或恢复会话时。
sessionEnd会话终止时。
userPromptSubmitted用户提交提示词时。
preToolUse每个工具执行之前。是——可以允许、拒绝或修改。
postToolUse每个工具成功完成后。是——可以替换成功的结果(仅限 SDK 编程钩子)。
postToolUseFailure工具执行失败后。是——可以通过 additionalContext 提供恢复指导(命令钩子的退出代码 2)。
agentStop主智能体完成一次轮次。是——可以阻止并强制继续。
subagentStop子智能体完成时。是——可以阻止并强制继续。
subagentStart子智能体生成时(在运行前)。返回 prepended 到子智能体提示词的 additionalContext。支持通过 matcher 按智能体名称过滤。否——不能阻止创建。
preCompact上下文压缩即将开始(手动或自动)。支持通过 matcher 按触发器("manual""auto")过滤。否——仅限通知。
permissionRequest在向用户显示权限对话框之前,且基于规则的检查未找到匹配的允许或拒绝规则时。支持针对 toolNamematcher 正则表达式。是——可以以编程方式允许或拒绝。
errorOccurred执行期间发生错误时。
notification当 CLI 发出系统通知(shell 完成、智能体完成或空闲、权限提示、启发对话框)时异步触发。触发后即忘:从不阻塞会话。支持针对 notification_typematcher 正则表达式。可选——可以向会话注入 additionalContext

钩子事件输入载荷

每个钩子事件都会向钩子处理程序传递一个 JSON 载荷。支持两种载荷格式,由钩子配置中使用的事件名称选择:

  • camelCase 格式 —— 将事件名称配置为驼峰式(例如 sessionStart)。字段使用 camelCase。
  • VS Code 兼容格式 —— 将事件名称配置为首字母大写式(例如 SessionStart)。字段使用蛇形命名法 (snake_case),以匹配 VS Code Copilot 扩展格式。

sessionStart / SessionStart

camelCase 输入

{
    sessionId: string;
    timestamp: number;      // Unix timestamp in milliseconds
    cwd: string;
    source: "startup" | "resume" | "new";
    initialPrompt?: string;
}

VS Code 兼容输入

{
    hook_event_name: "SessionStart";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    source: "startup" | "resume" | "new";
    initial_prompt?: string;
}

sessionEnd / SessionEnd

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}

VS Code 兼容输入

{
    hook_event_name: "SessionEnd";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    reason: "complete" | "error" | "abort" | "timeout" | "user_exit";
}

userPromptSubmitted / UserPromptSubmit

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    prompt: string;
}

VS Code 兼容输入

{
    hook_event_name: "UserPromptSubmit";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    prompt: string;
}

preToolUse / PreToolUse

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
}

VS Code 兼容输入

当使用首字母大写式事件名称 PreToolUse 配置时,载荷使用蛇形命名法字段名称,以匹配 VS Code Copilot 扩展格式

{
    hook_event_name: "PreToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;    // Tool arguments (parsed from JSON string when possible)
}

postToolUse / PostToolUse

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    toolResult: {
        resultType: "success";
        textResultForLlm: string;
    }
}

VS Code 兼容输入

{
    hook_event_name: "PostToolUse";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    tool_result: {
        result_type: "success" | "failure" | "denied" | "error";
        text_result_for_llm: string;
    }
}

postToolUseFailure / PostToolUseFailure

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    toolName: string;
    toolArgs: unknown;
    error: string;
}

VS Code 兼容输入

{
    hook_event_name: "PostToolUseFailure";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    tool_name: string;
    tool_input: unknown;
    error: string;
}

agentStop / Stop

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    stopReason: "end_turn";
}

VS Code 兼容输入

{
    hook_event_name: "Stop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    stop_reason: "end_turn";
}

subagentStart

输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    agentDescription?: string;
}

subagentStop / SubagentStop

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    agentName: string;
    agentDisplayName?: string;
    stopReason: "end_turn";
}

VS Code 兼容输入

{
    hook_event_name: "SubagentStop";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    agent_name: string;
    agent_display_name?: string;
    stop_reason: "end_turn";
}

errorOccurred / ErrorOccurred

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    errorContext: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}

VS Code 兼容输入

{
    hook_event_name: "ErrorOccurred";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    error: {
        message: string;
        name: string;
        stack?: string;
    };
    error_context: "model_call" | "tool_execution" | "system" | "user_input";
    recoverable: boolean;
}

preCompact / PreCompact

camelCase 输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    transcriptPath: string;
    trigger: "manual" | "auto";
    customInstructions: string;
}

VS Code 兼容输入

{
    hook_event_name: "PreCompact";
    session_id: string;
    timestamp: string;      // ISO 8601 timestamp
    cwd: string;
    transcript_path: string;
    trigger: "manual" | "auto";
    custom_instructions: string;
}

preToolUse 决策控制

preToolUse 钩子可以通过向 stdout 写入 JSON 对象来控制工具执行。

字段描述
permissionDecision"allow", "deny", "ask"工具是否执行。空输出使用默认行为。
permissionDecisionReasonstring显示给智能体的原因。当决策为 "deny" 时必填。
modifiedArgsobject替换原始参数的替代工具参数。

agentStop / subagentStop 决策控制

字段描述
decision"block", "allow""block" 使用 reason 作为提示词强制智能体再进行一个轮次。
reasonstringdecision"block" 时下一轮次的提示词。

permissionRequest 决策控制

当工具级权限对话框即将显示时,permissionRequest 钩子会触发。它在基于规则的权限检查未发现匹配规则后触发。使用它可以以编程方式批准或拒绝工具调用——这在管道模式 (-p) 和没有交互式提示的 CI 环境中特别有用。

匹配器 (Matcher):toolName 进行测试的可选正则表达式。设置后,钩子仅对匹配的工具名称触发。

向 stdout 输出 JSON 以控制权限决策:

字段描述
behavior"allow", "deny"是否批准或拒绝工具调用。
messagestring拒绝时反馈给 LLM 的原因。
interruptboolean当设置为 true 并配合 "deny" 时,完全停止智能体。

返回空输出或 {} 以回退到默认行为(显示用户对话框,或在管道模式下拒绝)。退出代码 2 被视为拒绝;如果钩子同时在 stdout 输出 JSON,这些字段将与拒绝决策合并。

notification 钩子

当 CLI 发出系统通知时,notification 钩子会异步触发。这些钩子是触发即忘的:它们从不阻塞会话,任何错误都会被记录并跳过。

输入

{
    sessionId: string;
    timestamp: number;
    cwd: string;
    hook_event_name: "Notification";
    message: string;           // Human-readable notification text
    title?: string;            // Short title (e.g., "Permission needed", "Shell completed")
    notification_type: string; // One of the types listed below
}

通知类型

类型触发时机
shell_completed后台(异步)shell 命令完成
shell_detached_completed分离式 shell 会话完成
agent_completed后台子智能体完成(完成或失败)
agent_idle后台智能体完成一轮并进入空闲状态(等待 write_agent
permission_prompt智能体请求执行工具的权限
elicitation_dialog智能体请求用户提供额外信息

输出

{
    additionalContext?: string; // Injected into the session as a user message
}

如果返回 additionalContext,该文本将作为前置的用户消息注入会话。如果会话处于空闲状态,这可以触发智能体的进一步处理。返回 {} 或空输出则不执行任何操作。

匹配器 (Matcher): 针对 notification_type 的可选正则表达式。模式锚定为 ^(?:pattern)$。省略 matcher 则接收所有类型的通知。

用于钩子匹配的工具名称

工具名称描述
bash执行 shell 命令 (Unix)。
powershell执行 shell 命令 (Windows)。
view读取文件内容。
edit修改文件内容。
create创建新文件。
glob按模式查找文件。
grep搜索文件内容。
web_fetch获取网页。
task运行子智能体任务。

如果配置了多个相同类型的钩子,它们将按顺序执行。对于 preToolUse,如果任一钩子返回 "deny",则工具被阻止。对于 postToolUseFailure 命令钩子,以退出代码 2 退出将导致 stderr 作为恢复指导返回给助手。钩子失败(非零退出代码或超时)会被记录并跳过——它们绝不会阻塞智能体执行。

MCP 服务器配置

MCP 服务器为 CLI 智能体提供额外的工具。在 ~/.copilot/mcp-config.json 中配置持久服务器。使用 --additional-mcp-config 为单次会话添加服务器。

copilot mcp 子命令

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

子命令描述
list [--json]列出按来源分组的所有已配置 MCP 服务器。
get <名称> [--json]显示特定服务器的配置和工具。
add <名称>向用户配置添加服务器。写入 ~/.copilot/mcp-config.json
remove <名称>删除用户级服务器。工作区服务器必须直接在它们的配置文件中编辑。

copilot mcp add 选项

选项描述
-- <命令> [参数...]本地 (stdio) 服务器的命令和参数。
--url <url>远程服务器的 URL。
--type <类型>传输类型:local, stdio, http, 或 sse
--env KEY=VALUE环境变量(可重复)。
--header KEY=VALUE远程服务器的 HTTP 标头(可重复)。
--tools <工具>工具过滤器:"*" 代表全部,逗号分隔列表,或 "" 代表无。
--timeout <毫秒>超时时间(毫秒)。
--json以 JSON 格式输出添加的配置。
--show-secrets显示完整的环境变量和标头值。
--config-dir <路径>配置目录的路径。

注意

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

传输类型

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

本地服务器配置字段

字段是否必填描述
command启动服务器的命令。
args命令参数(数组)。
tools要启用的工具:["*"] 代表全部,或特定工具名称列表。
env环境变量。支持 $VAR, ${VAR}, 和 ${VAR:-default} 展开。
cwd服务器的工作目录。
timeout工具调用超时时间(毫秒)。
type"local""stdio"。默认值:"local"

远程服务器配置字段

字段是否必填描述
type"http""sse"
url服务器 URL。
tools要启用的工具。
headersHTTP 标头。支持变量展开。
oauthClientId静态 OAuth 客户端 ID(跳过动态注册)。
oauthPublicClientOAuth 客户端是否为公开。默认值:true
oidc启用 OIDC 令牌注入。当设置为 true 时,会注入 GITHUB_COPILOT_OIDC_MCP_TOKEN 环境变量(本地服务器)或 Bearer Authorization 标头(远程服务器)。
timeout工具调用超时时间(毫秒)。

OAuth 重新认证

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

过滤器映射 (Filter mapping)

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

模式描述
none无过滤。
markdown将输出格式化为 Markdown。
hidden_characters移除隐藏字符或控制字符。此为默认设置。

内置 MCP 服务器

CLI 包含无需额外设置即可使用的内置 MCP 服务器。

服务器描述
github-mcp-serverGitHub API 集成:议题、拉取请求、提交、代码搜索和 GitHub Actions。
playwright浏览器自动化:导航、点击、键入、屏幕截图和表单处理。
fetch通过 fetch 工具发送 HTTP 请求。
time时间工具:get_current_timeconvert_time

使用 --disable-builtin-mcps 禁用所有内置服务器,或使用 --disable-mcp-server 服务器名称 禁用特定服务器。

MCP 服务器信任等级

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

来源信任等级是否需要审查
内置 (Built-in)
仓库 (.github/mcp.json)建议审查
工作区 (.mcp.json)建议审查
用户配置 (~/.copilot/mcp-config.json)用户定义用户负责
远程服务器始终需要

所有 MCP 工具调用都需要明确许可。即使是对外部服务的只读操作也是如此。

技能 (Skills) 参考

技能是扩展 CLI 功能的 Markdown 文件。每个技能存在于包含 SKILL.md 文件的独立目录中。当被调用(通过 /技能名称 或由智能体自动调用)时,技能的内容会注入到对话中。

技能前置元数据 (Frontmatter) 字段

字段类型是否必填描述
namestring技能的唯一标识符。仅限字母、数字和连字符。最长 64 个字符。
descriptionstring技能的作用及使用时机。最长 1024 个字符。
allowed-toolsstring 或 string[]技能激活时自动允许使用的工具的逗号分隔列表或 YAML 数组。使用 "*" 代表所有工具。
user-invocableboolean用户是否可以使用 /技能名称 调用该技能。默认值:true
disable-model-invocationboolean防止智能体自动调用此技能。默认值:false

技能位置

技能从这些位置按优先级顺序加载(重名时第一个找到的获胜)。

位置范围描述
.github/skills/项目项目特定技能。
.agents/skills/项目备选项目位置。
.claude/skills/项目Claude 兼容位置。
父级 .github/skills/已继承Monorepo 父目录支持。
~/.copilot/skills/个人适用于所有项目的个人技能。
~/.agents/skills/个人跨所有项目共享的智能体技能。
~/.claude/skills/个人Claude 兼容个人位置。
插件目录插件来自已安装插件的技能。
COPILOT_SKILLS_DIRS自定义额外目录(逗号分隔)。
(随 CLI 附带)内置 (Built-in)随 CLI 一起发布的技能。优先级最低——可被任何其他来源覆盖。

命令(另一种技能格式)

命令是存储在 .claude/commands/ 中作为单个 .md 文件的另一种技能形式。命令名称派生自文件名。命令文件使用简化格式(不需要 name 字段),并支持 description, allowed-tools, 和 disable-model-invocation。命令的优先级低于同名的技能。

自定义智能体 (Custom agents) 参考

自定义智能体是 Markdown 文件中定义的专门 AI 智能体。文件名(不含扩展名)即为智能体 ID。使用 .agent.md.md 作为文件扩展名。

内置智能体

智能体默认模型描述
code-reviewclaude-sonnet-4.5高信噪比代码审查。分析差异中的错误、安全问题和逻辑错误。
rubber-duck (小黄鸭)互补模型使用互补模型对提案、设计、实现或测试提供建设性批评。识别薄弱环节并建议改进。仅在实验模式下可用。
exploreclaude-haiku-4.5快速代码库探索。搜索文件、读取代码并回答问题。返回 300 字以内的集中回答。可安全并行运行。
general-purposeclaude-sonnet-4.5用于复杂多步任务的全能智能体。在独立的上下文窗口中运行。
researchclaude-sonnet-4.6深度研究智能体。根据你的代码库、相关仓库及网络上的信息生成报告。
taskclaude-haiku-4.5命令执行(测试、构建、lint)。成功时返回简短摘要,失败时返回完整输出。

自定义智能体前置元数据字段

字段类型是否必填描述
descriptionstring显示在智能体列表和 task 工具中的描述。
inferboolean允许主智能体自动委托任务。默认值:true
mcp-serversobject要连接的 MCP 服务器。使用与 ~/.copilot/mcp-config.json 相同的架构。
modelstring此智能体的 AI 模型。未设置时,继承外部智能体的模型。
namestring显示名称。默认使用文件名。
toolsstring[]智能体可用的工具。默认:["*"](所有工具)。

自定义智能体位置

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

项目级智能体优先级高于用户级智能体。插件智能体优先级最低。

子智能体限制

CLI 强制执行深度和并发限制,以防止失控的智能体生成。

限制项默认值环境变量
最大深度6COPILOT_SUBAGENT_MAX_DEPTH
最大并发数32COPILOT_SUBAGENT_MAX_CONCURRENT

深度计算有多少智能体相互嵌套。达到深度限制时,最内层的智能体无法再生成子智能体。并发数计算整个会话树中同时运行的子智能体数量。达到限制时,新的子智能体请求将被拒绝,直到有活动智能体完成。数值限制在 1256 之间。

权限审批响应

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

效果
y仅允许此次特定请求。
n仅拒绝此次特定请求。
!在会话剩余时间内允许所有类似请求。
#在会话剩余时间内拒绝所有类似请求。
?显示有关请求的详细信息。

当你运行 /clear 或开始新会话时,会话审批将重置。

OpenTelemetry 监控

Copilot CLI 可以通过 OpenTelemetry (OTel) 导出跟踪 (Traces) 和指标 (Metrics),让你深入了解智能体交互、LLM 调用、工具执行和 Token 使用情况。所有信号名称和属性都遵循 OTel GenAI 语义规范

OTel 默认关闭,开销为零。当满足以下任一条件时它会激活:

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

OTel 环境变量

变量默认值描述
COPILOT_OTEL_ENABLEDfalse显式启用 OTel。如果已设置 OTEL_EXPORTER_OTLP_ENDPOINT 则不需要。
OTEL_EXPORTER_OTLP_ENDPOINTOTLP 端点 URL。设置此项会自动启用 OTel。
COPILOT_OTEL_EXPORTER_TYPEotlp-http导出器类型:otlp-httpfile。设置 COPILOT_OTEL_FILE_EXPORTER_PATH 时自动选择 file
OTEL_SERVICE_NAMEgithub-copilot资源属性中的服务名称。
OTEL_RESOURCE_ATTRIBUTES以逗号分隔的 key=value 对形式表示的额外资源属性。特殊字符请使用百分比编码。
OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENTfalse捕获完整的提示词和响应内容。请参阅内容捕获
OTEL_LOG_LEVELOTel 诊断日志等级:NONE, ERROR, WARN, INFO, DEBUG, VERBOSE, ALL
COPILOT_OTEL_FILE_EXPORTER_PATH以 JSON-lines 格式将所有信号写入此文件。设置此项会自动启用 OTel。
COPILOT_OTEL_SOURCE_NAMEgithub.copilotTracer 和 Meter 的检测范围名称。
OTEL_EXPORTER_OTLP_HEADERSOTLP 导出器的认证标头(例如 Authorization=Bearer token)。

跟踪 (Traces)

运行时为每次智能体交互发出分层 Span 树。每棵树包含一个 invoke_agent 根 Span,以及 chatexecute_tool 子 Span。

invoke_agent Span 属性

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

  • 顶级会话使用 Span 种类 CLIENT(远程服务调用),包含 server.addressserver.port
  • 子智能体调用(例如 explore, task)使用 Span 种类 INTERNAL(进程内),不带服务器属性。
属性描述Span 种类
gen_ai.operation.nameinvoke_agent两者皆有
gen_ai.provider.name提供商(例如 github, anthropic两者皆有
gen_ai.agent.id会话标识符两者皆有
gen_ai.agent.name智能体名称(可用时)两者皆有
gen_ai.agent.description智能体描述(可用时)两者皆有
gen_ai.agent.version运行时版本两者皆有
gen_ai.conversation.id会话标识符两者皆有
gen_ai.request.model请求的模型两者皆有
gen_ai.response.finish_reasons["stop"]["error"]两者皆有
gen_ai.usage.input_tokens总输入 Token 数(所有轮次)两者皆有
gen_ai.usage.output_tokens总输出 Token 数(所有轮次)两者皆有
gen_ai.usage.cache_read.input_tokens读取的缓存输入 Token 数两者皆有
gen_ai.usage.cache_creation.input_tokens创建的缓存输入 Token 数两者皆有
github.copilot.turn_countLLM 往返次数两者皆有
github.copilot.cost货币成本两者皆有
github.copilot.aiu消耗的 AI 单元 (AI units)两者皆有
server.address服务器主机名仅限 CLIENT
server.port服务器端口仅限 CLIENT
error.type错误类名(报错时)两者皆有
gen_ai.input.messagesJSON 格式的完整输入消息(仅限内容捕获开启时)两者皆有
gen_ai.output.messagesJSON 格式的完整输出消息(仅限内容捕获开启时)两者皆有
gen_ai.system_instructionsJSON 格式的系统提示词内容(仅限内容捕获开启时)两者皆有
gen_ai.tool.definitionsJSON 格式的工具架构(仅限内容捕获开启时)两者皆有

chat Span 属性

每次 LLM 请求对应一个 Span。Span 种类:CLIENT

属性描述
gen_ai.operation.namechat
gen_ai.provider.name提供商名称
gen_ai.request.model请求的模型
gen_ai.conversation.id会话标识符
gen_ai.response.id响应 ID
gen_ai.response.model解析后的模型
gen_ai.response.finish_reasons停止原因
gen_ai.usage.input_tokens本轮输入 Token 数
gen_ai.usage.output_tokens本轮输出 Token 数
gen_ai.usage.cache_read.input_tokens读取的缓存 Token 数
gen_ai.usage.cache_creation.input_tokens创建的缓存 Token 数
github.copilot.cost本轮成本
github.copilot.aiu本轮消耗的 AI 单元
github.copilot.server_duration服务器端时长
github.copilot.initiator请求发起者
github.copilot.turn_id轮次标识符
github.copilot.interaction_id交互标识符
github.copilot.time_to_first_chunk距离首个流式分块的时间,以秒计(仅限流式传输)
server.address服务器主机名
server.port服务器端口
error.type错误类名(报错时)
gen_ai.input.messagesJSON 格式的完整提示词消息(仅限内容捕获开启时)
gen_ai.output.messagesJSON 格式的完整响应消息(仅限内容捕获开启时)
gen_ai.system_instructionsJSON 格式的系统提示词内容(仅限内容捕获开启时)

execute_tool Span 属性

每次工具调用对应一个 Span。Span 种类:INTERNAL

属性描述
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.argumentsJSON 格式的工具输入参数(仅限内容捕获开启时)
gen_ai.tool.call.resultJSON 格式的工具输出(仅限内容捕获开启时)

指标 (Metrics)

GenAI 规范指标

指标类型单位描述
gen_ai.client.operation.duration直方图 (Histogram)秒 (s)LLM API 调用和智能体调用时长
gen_ai.client.token.usage直方图 (Histogram)Token 数按类型 (input/output) 统计的 Token 计数
gen_ai.client.operation.time_to_first_chunk直方图 (Histogram)秒 (s)接收到首个流式分块的时间
gen_ai.client.operation.time_per_output_chunk直方图 (Histogram)秒 (s)首个分块后的分块间延迟

厂商特定指标

指标类型单位描述
github.copilot.tool.call.count计数器 (Counter)次 (calls)gen_ai.tool.namesuccess 统计的工具调用次数
github.copilot.tool.call.duration直方图 (Histogram)秒 (s)gen_ai.tool.name 统计的工具执行延迟
github.copilot.agent.turn.count直方图 (Histogram)轮次 (turns)每次智能体调用的 LLM 往返次数

Span 事件

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

事件描述关键属性
github.copilot.hook.start钩子开始执行github.copilot.hook.type, github.copilot.hook.invocation_id
github.copilot.hook.end钩子成功完成github.copilot.hook.type, github.copilot.hook.invocation_id
github.copilot.hook.error钩子执行失败github.copilot.hook.type, github.copilot.hook.invocation_id, github.copilot.hook.error_message
github.copilot.session.truncation对话历史被截断github.copilot.token_limit, github.copilot.pre_tokens, github.copilot.post_tokens, github.copilot.pre_messages, github.copilot.post_messages, github.copilot.tokens_removed, github.copilot.messages_removed, github.copilot.performed_by
github.copilot.session.compaction_start历史压缩开始
github.copilot.session.compaction_complete历史压缩完成github.copilot.success, github.copilot.pre_tokens, github.copilot.post_tokens, github.copilot.tokens_removed, github.copilot.messages_removed, github.copilot.message (仅限内容捕获)
github.copilot.skill.invoked技能被调用github.copilot.skill.name, github.copilot.skill.path, github.copilot.skill.plugin_name, github.copilot.skill.plugin_version
github.copilot.session.shutdown会话正在关闭github.copilot.shutdown_type, github.copilot.total_premium_requests, github.copilot.lines_added, github.copilot.lines_removed, github.copilot.files_modified_count
github.copilot.session.abort用户取消了当前操作github.copilot.abort_reason
exception会话错误github.copilot.error_type, github.copilot.error_status_code, github.copilot.error_provider_call_id

资源属性

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

属性
service.namegithub-copilot (可通过 OTEL_SERVICE_NAME 配置)
service.version运行时版本

内容捕获

默认情况下,不捕获任何提示词内容、响应或工具参数——仅捕获模型名称、Token 计数和时长等元数据。要捕获完整内容,请设置 OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT=true

警告

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

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

属性内容
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工具输出

功能标志参考

功能标志可启用尚未正式发布的特性。通过 COPILOT_CLI_ENABLED_FEATURE_FLAGS 环境变量(逗号分隔列表)或使用 /experimental 斜杠命令来启用标志。

标志层级描述
RUBBER_DUCK_AGENTexperimental用于对代码和设计提供对抗性反馈的小黄鸭子代理
BACKGROUND_SESSIONSexperimental支持后台管理的多并发会话
MULTI_TURN_AGENTSexperimental通过 write_agent 实现多轮子代理消息传递
EXTENSIONSexperimental带有自定义工具和钩子的编程扩展
QUEUED_COMMANDSstaff-or-experimental (员工或实验性)在代理运行时使用 Ctrl+Enter 将命令加入队列
PERSISTED_PERMISSIONSstaff-or-experimental (员工或实验性)按位置跨会话持久化工具权限
SESSION_STOREstaff-or-experimental (员工或实验性)基于 SQLite 的会话存储,用于跨会话历史记录
COMPUTER_USEstaff (员工)内置计算机使用 MCP 服务器(屏幕截图以及鼠标/键盘控制)
copilot-feature-agentic-memory开启跨会话的持久化记忆工具
COPILOT_SWE_AGENT_BACKGROUND_AGENTS开启后台代理任务执行

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.