news 2026/5/9 14:26:31

【Copilot Chat 】之内置命令和插件使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Copilot Chat 】之内置命令和插件使用

Copilot Chat

内置命令

GitHub Copilot Chat 的内置命令主要分为三大类:@(聊天参与者),用于召唤领域专家;#(聊天变量),用于精确定位上下文;以及/(斜杠命令),用于快速执行特定开发任务。

聊天参与者 (@) - 召唤领域专家

用于在对话开头切换至特定领域的AI“专家”,以获得更专业的回答。

命令作用
@workspace专注于你当前整个工作区(项目)的代码,用于跨文件查找、架构分析等。
@vscodeVS Code专家,帮助你解答关于VS Code编辑器本身的功能、设置、快捷键和插件开发等一切问题。
@terminal终端专家,能读取你VS Code中集成终端的内容,并帮你解释错误、生成命令行指令。
@github连接你的GitHub 仓库,用于协助处理Issues、Pull Requests等任务。
@azure专注于微软Azure云服务相关的问题,提供使用、部署和管理方面的帮助。

聊天变量 (#) - 精确定位上下文

用于在提问时精确地告诉Copilot需要关注的代码片段、文件或其他上下文信息。

命令作用
#codebase/#workspace在你的整个代码库中进行语义搜索,找到相关的文件和符号。
#file引用一个特定的文件作为上下文,可以是当前打开的文件或指定路径。
#selection引用你在编辑器里选中的一段代码。
#block引用你光标所在的代码块
#class引用光标所在的类定义
#editor引用当前编辑器的全部内容。
#changes引用你当前工作区中Git 的变更
#problems引用Problems 面板中的错误和警告。
#testFailure引用测试失败的相关信息。
#terminal终端日志、报错内容
#terminalSelection引用你在终端中选中的输出内容。
#terminalLastCommand引用终端中最后执行的命令和输出。

斜杠命令 (/) - 快速执行任务

用于直接执行特定任务,例如解释代码、修复Bug或生成测试。

命令作用
/explain一步步解释你选中的代码或当前文件是如何工作的。
/fix为选中的代码提出修复建议。
/tests为选中的代码或函数生成单元测试
/doc为选中的代码生成或添加文档注释。
/optimize分析选中的代码,并提供性能优化建议。
/generate根据你的描述,生成一段新的代码来实现特定功能。
/new在项目里创建一个新文件或搭建一个新项目的脚手架(需结合@workspace)。
/newNotebook在当前工作区创建一个新的Jupyter Notebook
/edit用自然语言描述你想要进行的代码编辑。
/review对选中的代码进行审查
/search用自然语言描述要搜索的内容,Copilot会帮你生成在VS Code中的搜索关键词
/fixTestFailure自动定位并修复失败的测试用例。
/setupTests为你的整个项目自动配置和搭建测试环境。生成测试框架配置与初始化代码
/startDebugging协助生成launch.json等调试配置,帮助启动调试
/clear清空当前的聊天记录,开启一个全新的对话会话。
/help显示Copilot Chat的基本使用说明和帮助信息。
/list列出Copilot当前可用的所有工具列表
/simplify简化代码、提升可读性
/refactor重构结构(重命名,抽方法,调依赖)
/init生成 .github/copilot-instructions.md
/saveprompt保存当前提实词模板
/fleet并性子任务执行
/cwd显示或切换当前工作目录
/exit、/quit直接结束当前会话并断开 Copilot 连接,确保资源被正确释放
/session/usage查看 Copilot 在本次会话中执行的操作,方便审计、排查问题和资源追踪
/add-dir允许 Copilot 访问指定目录,将 Copilot 限定在某个仓库或子目录
/list-dirs显示允许访问的目录列表
/model选择 AI 模型
/theme [show/set/list] [auto/dark/light]配置终端主题
/terminal-setup启用多行输入,在处理复杂指令或多步骤代码修改时尤为有用
/reset-allowed-tools重置工具权限,此命令可将已允许的工具列表快速回滚到初始状态,移除过期或存在风险的工具。
/share [file/gist] [path]导出并分享会话内容,文档记录非常重要,此命令可捕获整个会话历史,用于分享或归档
/mcp [show add edit delete disable enable]管理 MCP 配置

插件

Copilot Chat 插件是什么

GitHub Copilot Chat 插件是扩展 Copilot 智能体(Agent)能力的功能包,用来新增自定义斜杠命令、参与者、技能(Skill)、钩子(Hook)与 MCP 服务,可通过一条命令安装,本质是把 commands、subagents、MCP servers、hooks 组合成可分发的集合。

  • 宿主:VS Code 里的GitHub.copilot-chat扩展
  • 核心用途:给 Agent 加自定义/xxx命令、@xxx参与者、技能、钩子、外部工具集成
  • 安装方式:copilot plugins install <插件名/路径>

插件完整目录结构(2026‑05 官方规范)

my-copilot-plugin/ ├── plugin.json # 必选:插件清单(名称、版本、命令、依赖等) ├── commands/ # 可选:自定义斜杠命令(/xxx) │ ├── mycmd.command.md # 命令定义(触发词、描述、参数、执行逻辑) │ └── utils.js # 命令调用的工具函数(可选) ├── subagents/ # 可选:自定义参与者(@xxx,子智能体) │ └── myagent.agent.md # 子智能体定义(角色、能力、触发条件) ├── skills/ # 可选:技能集合(Agent 可执行的能力单元) │ └── deploy/ # 技能名(如 deploy、test、lint) │ ├── SKILL.md # 技能定义(目标、步骤、适用场景) │ └── run.sh # 技能执行脚本(bash/js/python 均可) ├── hooks.json # 可选:钩子配置(生命周期拦截,如会话前/命令后) ├── mcp.json # 可选:MCP 服务器配置(接入外部工具/服务) └── README.md # 可选:插件说明文档

关键文件说明(最小可用示例)

1. plugin.json(必选,清单)
{"name":"my-copilot-plugin","displayName":"My Custom Commands","version":"1.0.0","description":"Adds /hello and @myagent to Copilot Chat","author":"Your Name","license":"MIT","commands":["/hello"],"subagents":["@myagent"],"skills":["deploy"],"hooks":["onSessionStart"],"mcpServers":["my-mcp-server"]}
2. commands/hello.command.md(自定义/hello命令)
## /hello **描述**:回复 Hello + 自定义问候 **参数**:name(可选,字符串) **示例**: /hello /hello name=Alice 执行逻辑: 如果有 name,返回 "Hello, {{name}}!";否则返回 "Hello from My Plugin!"
3. subagents/myagent.agent.md(自定义@myagent参与者)
## @myagent **角色**:自定义助手 **能力**:回答问候、简单计算 **触发**:用户提到 "hi" 或 "calculate"
4. skills/deploy/SKILL.md(deploy 技能)
## 技能:deploy **目标**:部署当前项目到测试环境 **步骤**: 1. 运行 npm run build 2. 上传到服务器 3. 通知团队
5. hooks.json(钩子:会话开始时打招呼)
{"onSessionStart":{"action":"sendMessage","message":"欢迎使用我的自定义插件!"}}
6. mcp.json(MCP 服务器:接入外部 API)
{"servers":{"my-mcp-server":{"command":"node","args":["./mcp-server.js"],"env":{}}}}

安装与使用

  1. 本地开发:
    cdmy-copilot-plugin copilot pluginsinstall.
  2. 使用:在 Copilot Chat 输入/hello@myagent hi

插件如何配置 LSP 支持(获得实时代码智能)

Copilot Chat 插件本身不直接实现 LSP,但可以通过MCP(Model Context Protocol)服务VS Code LSP 代理把 LSP 能力注入给 Agent。

1. 插件目录增加 LSP 相关结构
my-lsp-plugin/ ├── plugin.json ├── settings.json # 插件配置(含 LSP) ├── mcp.json # 把 LSP 包装成 MCP 服务 ├── lsp/ │ └── my-lsp-server.js # 你的 LSP 客户端/代理 └── commands/
2. mcp.json(把 LSP 暴露给 Copilot Agent)
{"servers":{"my-lsp":{"command":"node","args":["./lsp/my-lsp-server.js"],"env":{"WORKSPACE_ROOT":"${workspaceFolder}"}}}}

Agent 会自动调用my-lsp服务获取:

  • 诊断(错误/警告)
  • 符号定义/引用
  • 代码补全、悬停信息
3. lsp/my-lsp-server.js(LSP 代理示例)

vscode-languageserver或直接调用 VS Code 内置 LSP:

const{createConnection}=require('vscode-languageserver');constconn=createConnection();conn.onInitialize(()=>({capabilities:{textDocumentSync:1}}));conn.onDocumentSymbol((params)=>{// 返回符号信息给 Agent});conn.listen();
4. 在 plugin.json 声明依赖
{"name":"my-lsp-plugin","mcpServers":["my-lsp"],"engines":{"vscode":"^1.102.0"}}
5. 启用 LSP 实时能力(settings.json)
{"github.copilot.chat.mcp.enabled":true,"github.copilot.chat.lsp.diagnostics":true,"github.copilot.chat.lsp.symbols":true}

插件的 settings.json 可以配置哪些内容(完整清单)

Copilot Chat 插件的settings.json插件独立配置,不与 VS Code 全局设置混淆,可配置:

1. Agent 行为
{"chat.agent.enabled":true,"chat.agent.maxRequests":25,"chat.agent.autoFix":true}
2. LSP / MCP 相关
{"github.copilot.chat.mcp.enabled":true,"github.copilot.chat.lsp.diagnostics":true,"github.copilot.chat.lsp.symbols":true,"github.copilot.chat.lsp.completion":true}
3. 聊天界面与交互
{"github.copilot.chat.welcomeMessage":"always","github.copilot.chat.localeOverride":"zh-CN","github.copilot.chat.scopeSelection":true}
4. 编辑与代码生成
{"github.copilot.editor.enableCodeActions":true,"github.copilot.editor.enableAutoCompletions":true,"chat.editing.alwaysSaveWithGeneratedChanges":false}
5. 数据持久化(重点)
{"myPlugin.dataDir":"${workspaceFolder}/.my-plugin-data","myPlugin.cacheDir":"~/.cache/my-copilot-plugin","myPlugin.historyRetentionDays":90}
6. 自定义命令/子智能体
{"myPlugin.commands.greet.enabled":true,"myPlugin.subagents.myagent.timeout":30}

插件如何配置数据持久化目录

插件可以通过settings.json + 环境变量 + 占位符灵活指定存储路径。

1. 支持的占位符(直接用)
  • ${workspaceFolder}:当前工作区根目录
  • ${userHome}:用户主目录
  • ${extensionPath}:插件自身目录
  • ${tmpdir}:系统临时目录
2. 示例:settings.json 配置持久化目录
{// 工作区内存储(推荐)"myPlugin.storage.baseDir":"${workspaceFolder}/.copilot-my-plugin","myPlugin.storage.sessions":"${workspaceFolder}/.copilot-my-plugin/sessions","myPlugin.storage.cache":"${userHome}/.cache/copilot-my-plugin"}
3. 代码中读取(插件 JS/TS)
constvscode=require('vscode');constconfig=vscode.workspace.getConfiguration('myPlugin');constbaseDir=config.get('storage.baseDir');// 直接读写该目录即可
4. 全局统一目录(跨工作区)
{"myPlugin.storage.globalDir":"${userHome}/.copilot-plugins/my-plugin"}
5. 官方默认持久化位置(你可以覆盖)

Copilot 核心数据默认在:

  • Windows:%APPDATA%\Code\User\workspaceStorage\{hash}\chatSessions
  • macOS:~/Library/Application Support/Code/User/workspaceStorage/{hash}/chatSessions
  • Linux:~/.config/Code/User/workspaceStorage/{hash}/chatSessions

插件可以完全自定义,不受此限制。


总结(最简记忆版)

  • LSP 接入:插件 → mcp.json → LSP 代理服务 → Agent 自动调用。
  • settings.json:可配 Agent、LSP、界面、编辑、持久化、自定义命令。
  • 持久化目录:用${workspaceFolder}/${userHome}占位符,在 settings.json 定义,代码直接读取。

MCP

MCP:智能体会通过 MCP 协议向 MCP Server 发起工具调用,由MCP Server 调用外部工具或数据源并把结果带回当前会话。

Copilot Chat 里的 MCP Server 是什么?

MCP(Model Context Protocol)是 Copilot Chat 等 AI Agent 通用的工具协议,用来把外部服务/工具暴露给 Agent。

  • 你配置的 MCP Server,本质是一个可执行程序(Node/Python/Go 等)
  • Copilot Chat 会通过标准 JSON-RPC 协议,向它发送工具调用请求
  • 你的 Server 处理请求并返回结果,Agent 再用结果继续完成任务

两种配置方式对比

Copilot Chat 支持两种方式配置 MCP Server,我推荐插件方式(可复用、可分发):

方式配置位置适用场景
全局配置VS Codesettings.json单台机器所有项目生效
插件方式(推荐)插件目录mcp.json可分发、可按项目管理、版本可控

方式一:通过插件配置 MCP Server(推荐)

1. 插件目录结构
my-mcp-plugin/ ├── plugin.json # 插件主清单 ├── mcp.json # 声明你的 MCP Server ├── src/ │ └── mcp-server.js # 你的 MCP Server 代码 └── README.md
2. 编写mcp.json(关键配置)

这是 Copilot Chat 识别 MCP Server 的核心文件:

{"servers":{"my-custom-server":{"command":"node","args":["./src/mcp-server.js"],"env":{"API_KEY":"your-secret-key-here","WORKSPACE_ROOT":"${workspaceFolder}"}}}}
  • command:启动 Server 的命令(node/python/可执行文件等)
  • args:传给命令的参数(你的脚本路径)
  • env:环境变量,可使用${workspaceFolder}等占位符
3. 编写plugin.json声明依赖
{"name":"my-mcp-plugin","displayName":"My Custom MCP Tools","version":"1.0.0","description":"Adds custom tools via MCP to Copilot Chat","mcpServers":["my-custom-server"]}

这里的"my-custom-server"要和mcp.json里的 key 对应。

4. 写一个极简的 MCP Server 示例(Node.js)

src/mcp-server.js

const{Server}=require("@modelcontextprotocol/sdk/server/index.js");const{StdioServerTransport}=require("@modelcontextprotocol/sdk/server/stdio.js");// 1. 创建 Server 实例constserver=newServer({name:"my-custom-server",version:"1.0.0"},{capabilities:{tools:{}}});// 2. 注册一个工具,供 Copilot Chat 调用server.tool("get-system-info","获取当前系统信息(OS、CPU 架构等)",{},async()=>{constos=require("os");return{content:[{type:"text",text:`OS:${os.platform()}, Arch:${os.arch()}, Hostname:${os.hostname()}`}]};});// 3. 启动服务,通过 stdio 和 Copilot Chat 通信consttransport=newStdioServerTransport();server.connect(transport);console.error("MCP Server started");// 日志输出到 stderr,避免干扰 stdio
5. 安装插件到 Copilot Chat
# 在插件根目录执行copilot pluginsinstall.

Copilot Chat 会自动读取mcp.json并启动你的 Server。


方式二:直接在 VS Code settings.json 配置(全局生效)

如果你不想做插件,只想在当前机器/项目用,可以直接配置 VS Code 设置:

  1. 打开 VS Code 设置(Ctrl+,
  2. 搜索github.copilot.chat.mcp.servers
  3. 点击「编辑 in settings.json」,添加:
{"github.copilot.chat.mcp.servers":{"my-global-server":{"command":"node","args":["/absolute/path/to/your/mcp-server.js"],"env":{}}}}

保存后,Copilot Chat 会自动加载并启动该 Server。


验证 MCP Server 是否生效

在 Copilot Chat 中直接问:

使用 get-system-info 工具,告诉我当前系统信息 或 /get-system-info ,告诉我当前系统信息

Agent 会自动调用你的get-system-info工具,返回结果。


常见问题排查

  1. Server 没启动
    • 检查commandargs路径是否正确,使用绝对路径测试
    • 确保脚本有可执行权限(Linux/macOS 下chmod +x
  2. Agent 找不到工具
    • 检查plugin.json里的mcpServers声明是否正确
    • 检查mcp.json里的 Server 名称和tool名称是否拼写正确
  3. 工具调用报错
    • 查看 VS Code 输出面板 → 选择「GitHub Copilot Chat」,查看日志
    • 确保 Server 日志输出到stderr(Node.js 用console.error),避免干扰 stdio 通信

核心步骤

  1. 写一个实现了 MCP 协议的 Server(用官方 SDK)
  2. mcp.json中声明如何启动它
  3. plugin.json把它包装成 Copilot 插件
  4. 执行copilot plugins install安装
  5. 在对话中让 Agent 调用你的工具
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/9 14:26:30

Openclaw源码深潜之三——调度器架构详解

** 作者:** AiToMoney 团队 阅读时间: 约 25 分钟 📋 学习目标 学完本教程后,你将理解: OpenClaw Cron 调度器的整体架构 CronService → ops → timer → isolated-agent 调用链 at(一次性)/every(周期性)任务的调度机制 孤立会话(isolated-agent)的执行原理 如…

作者头像 李华
网站建设 2026/5/9 14:21:10

CANN/Ascend C开发套件

项目文档 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言&#xff0c;原生支持C和C标准规范&#xff0c;主要由类库和语言扩展层构成&#xff0c;提供多层级API&#xff0c;满足多维场景算子开发诉求。 项目地址: https://gitcode.com/c…

作者头像 李华
网站建设 2026/5/9 14:19:32

基于血常规与AI的COVID-19辅助筛查:集成学习与图像处理的融合实践

1. 项目概述&#xff1a;当血液分析遇上人工智能在临床诊断领域&#xff0c;尤其是面对突发性、高传染性的呼吸道疾病时&#xff0c;快速、准确且低成本的筛查与辅助诊断手段一直是医疗工作者追求的目标。传统的病原体检测&#xff0c;如核酸检测&#xff0c;虽然特异性高&…

作者头像 李华
网站建设 2026/5/9 14:17:25

HCOMM线程通知等待API

HcommAclrtNotifyWaitOnThread 【免费下载链接】hcomm HCOMM&#xff08;Huawei Communication&#xff09;是HCCL的通信基础库&#xff0c;提供通信域以及通信资源的管理能力。 项目地址: https://gitcode.com/cann/hcomm 产品支持情况 Ascend 950PR/Ascend 950DT&…

作者头像 李华