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

Copilot Chat

内置命令

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

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

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

命令 作用
@workspace 专注于你当前整个工作区(项目) 的代码,用于跨文件查找、架构分析等。
@vscode VS 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(必选,清单)
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 命令)
markdown 复制代码
## /hello
**描述**:回复 Hello + 自定义问候
**参数**:name(可选,字符串)
**示例**:
/hello
/hello name=Alice

执行逻辑:
如果有 name,返回 "Hello, {{name}}!";否则返回 "Hello from My Plugin!"
3. subagents/myagent.agent.md(自定义 @myagent 参与者)
markdown 复制代码
## @myagent
**角色**:自定义助手
**能力**:回答问候、简单计算
**触发**:用户提到 "hi" 或 "calculate"
4. skills/deploy/SKILL.md(deploy 技能)
markdown 复制代码
## 技能:deploy
**目标**:部署当前项目到测试环境
**步骤**:
1. 运行 npm run build
2. 上传到服务器
3. 通知团队
5. hooks.json(钩子:会话开始时打招呼)
json 复制代码
{
  "onSessionStart": {
    "action": "sendMessage",
    "message": "欢迎使用我的自定义插件!"
  }
}
6. mcp.json(MCP 服务器:接入外部 API)
json 复制代码
{
  "servers": {
    "my-mcp-server": {
      "command": "node",
      "args": ["./mcp-server.js"],
      "env": {}
    }
  }
}

安装与使用

  1. 本地开发:

    bash 复制代码
    cd my-copilot-plugin
    copilot plugins install .
  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)
json 复制代码
{
  "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:

js 复制代码
const { createConnection } = require('vscode-languageserver');
const conn = createConnection();

conn.onInitialize(() => ({ capabilities: { textDocumentSync: 1 } }));
conn.onDocumentSymbol((params) => {
  // 返回符号信息给 Agent
});

conn.listen();
4. 在 plugin.json 声明依赖
json 复制代码
{
  "name": "my-lsp-plugin",
  "mcpServers": ["my-lsp"],
  "engines": { "vscode": "^1.102.0" }
}
5. 启用 LSP 实时能力(settings.json)
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 行为
json 复制代码
{
  "chat.agent.enabled": true,
  "chat.agent.maxRequests": 25,
  "chat.agent.autoFix": true
}
2. LSP / MCP 相关
json 复制代码
{
  "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. 聊天界面与交互
json 复制代码
{
  "github.copilot.chat.welcomeMessage": "always",
  "github.copilot.chat.localeOverride": "zh-CN",
  "github.copilot.chat.scopeSelection": true
}
4. 编辑与代码生成
json 复制代码
{
  "github.copilot.editor.enableCodeActions": true,
  "github.copilot.editor.enableAutoCompletions": true,
  "chat.editing.alwaysSaveWithGeneratedChanges": false
}
5. 数据持久化(重点)
json 复制代码
{
  "myPlugin.dataDir": "${workspaceFolder}/.my-plugin-data",
  "myPlugin.cacheDir": "~/.cache/my-copilot-plugin",
  "myPlugin.historyRetentionDays": 90
}
6. 自定义命令/子智能体
json 复制代码
{
  "myPlugin.commands.greet.enabled": true,
  "myPlugin.subagents.myagent.timeout": 30
}

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

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

1. 支持的占位符(直接用)
  • ${workspaceFolder}:当前工作区根目录
  • ${userHome}:用户主目录
  • ${extensionPath}:插件自身目录
  • ${tmpdir}:系统临时目录
2. 示例:settings.json 配置持久化目录
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)
js 复制代码
const vscode = require('vscode');
const config = vscode.workspace.getConfiguration('myPlugin');
const baseDir = config.get('storage.baseDir');
// 直接读写该目录即可
4. 全局统一目录(跨工作区)
json 复制代码
{
  "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 Code settings.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 的核心文件:

json 复制代码
{
  "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 声明依赖
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

javascript 复制代码
const { Server } = require("@modelcontextprotocol/sdk/server/index.js");
const { StdioServerTransport } = require("@modelcontextprotocol/sdk/server/stdio.js");

// 1. 创建 Server 实例
const server = new Server(
  { name: "my-custom-server", version: "1.0.0" },
  { capabilities: { tools: {} } }
);

// 2. 注册一个工具,供 Copilot Chat 调用
server.tool(
  "get-system-info",
  "获取当前系统信息(OS、CPU 架构等)",
  {},
  async () => {
    const os = require("os");
    return {
      content: [{
        type: "text",
        text: `OS: ${os.platform()}, Arch: ${os.arch()}, Hostname: ${os.hostname()}`
      }]
    };
  }
);

// 3. 启动服务,通过 stdio 和 Copilot Chat 通信
const transport = new StdioServerTransport();
server.connect(transport);
console.error("MCP Server started"); // 日志输出到 stderr,避免干扰 stdio
5. 安装插件到 Copilot Chat
bash 复制代码
# 在插件根目录执行
copilot plugins install .

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」,添加:
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 没启动
    • 检查 command 和 args 路径是否正确,使用绝对路径测试
    • 确保脚本有可执行权限(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 调用你的工具
相关推荐
Ai-_Man13 小时前
您您这可以把Microsofat Copilot的多个会话比如说。左侧的多个会话一次性导出吗?不是单条会话里面的多次会对话。AI导出鸭
javascript·人工智能·ai·小程序·电脑·copilot
copilot中国版2 天前
Copilot + Excel鱼骨图:让根因分析从“凭经验”变成“有依据”
人工智能·excel·copilot
迅易科技2 天前
微软Copilot最新升级解读:哪些变化真正影响企业数字化建设?
人工智能·microsoft·copilot
xhy_07073 天前
AI 编程工具怎么选?Cursor、Copilot、Claude Code、Trae、WES Code 理解代码库的三条技术路线
人工智能·机器学习·copilot·知识图谱·ai编程·wes code
leoZ2314 天前
第 34 篇 Copilot 与嵌入式 AI:把能力缝进工作流
人工智能·大模型·copilot·agent
可乐ea4 天前
用 /create-canvas 给 Copilot 搭一块共享画布:自定义工作流实战
copilot·ai智能体·人机协作·agent开发·githubcopilot·工作流自动化
@呱呱爱学习4 天前
2026年09月28日 | 呱呱AI日报】GitHub 发布 Copilot WSL 教程,介绍在 Ubuntu 中运行编程 Agent
人工智能·github·copilot
MicrosoftReactor11 天前
技术速递|GitHub Copilot App 入门指南:使用 Diff、终端和浏览器
ai·copilot·agent
copilot中国版11 天前
copilot PPT「一键复刻旧模板」如何使用
copilot
Web极客码12 天前
抵御隐蔽的慢速连接攻击:我用 Claude 编写 nftables 规则,精准压制 HTTP Slo
服务器·copilot