# 用于 GitHub Copilot 的插件

插件打包相关的自定义项，以便可以在受支持的 Copilot 界面中将它们一起安装。

插件将相关的自定义项打包，以便你可以一起安装和管理它们，而不是单独设置每个自定义项。 例如，测试插件可以结合用于运行测试的技能、用于代码评审的代理，以及测试报告服务的 MCP 服务器。

## 可在何处使用插件

这些界面上提供了插件：Copilot

* Visual Studio Code。 从 **“Customize”** 中的聊天侧边面板或 Agents 窗口浏览并安装插件。 有关 VS Code 插件格式的详细信息，请参阅 [代理插件创作参考](https://code.visualstudio.com/docs/agents/reference/agent-plugin-reference)。
* GitHub Copilot CLI。 从已注册的应用市场浏览并安装插件。
* GitHub Copilot app。 从“**自定义**”浏览并安装插件。
* Copilot in the cloud。 通过存储库设置配置插件。

插件可以包含仅在特定界面中工作的组件。 检查插件是否支持你使用的表面。 例如，此类别中所述的 LSP 服务器配置适用于 Copilot CLI。 有关详细信息，请参阅“[插件与应用市场参考](/zh/copilot/reference/plugin-and-marketplace-reference)”。

## 插件包含的内容

插件可以打包其中部分或全部组件。 可用的组件及其位置取决于插件格式和图面：

* **自定义代理** — 专用 AI 助手（在`*.agent.md`的`agents/`文件中）
* **技能** — 特定于任务的说明、脚本和资源（位于`SKILL.md`中的技能子目录，包含`skills/`文件）
* **挂钩** — 响应代理操作的事件处理程序（插件根目录中的 `hooks.json` 文件，或位于 `hooks/` 中）
* **扩展** - Surface特定的代码，用于添加工具和斜杠命令等功能
* **MCP 服务器配置** - 模型上下文协议集成（代理插件 1.0 中的根 `mcp.json` 目录）
* **LSP 服务器配置** — 受支持的界面上的语言服务器协议集成

## 插件格式

代理插件是跨兼容平台共享插件清单、技能和 MCP 服务器配置的格式。 代理插件 1.0 插件在 `plugin.json` 中声明规范架构；其架构和组件位置并非所有界面都以相同方式支持。
Copilot CLI 还支持旧 Copilot 插件格式。 在 CLI 中，没有 Agent Plugins Schema（架构定义）的清单使用此旧格式。

如果要跨兼容界面共享技能和 MCP 服务器，请选择代理插件。 如果需要可配置的组件路径或维护现有的 Copilot 专用插件，请使用旧 CLI 格式。

对于新插件，请使用代理插件 1.0，除非需要可配置的组件路径。 主要对现有旧插件使用旧格式。

## 插件的结构

插件是具有特定结构和 `plugin.json` 清单文件的目录。 Agent Plugins 1.0 要求清单文件位于插件根目录下。 旧版插件支持额外的清单文件位置。 清单为插件指定名称和元数据。 根据格式，它还可能指向组件。 除了清单之外，目录还可以包含代理、技能、挂钩、MCP 服务器配置和 LSP 服务器配置。

### 代理插件 1.0 结构

代理插件 1.0 将技能和 MCP 服务器存储在标准位置，以便兼容的客户端可以发现它们。 其他组件（包括代理、挂钩、命令和 LSP 服务器）特定于客户端。
Copilot 从 `com.github.copilot` 目录中读取这些组件。 其他客户端将忽略此目录，因此同一插件可以将共享技能和 MCP 服务器与 Copilot特定组件相结合。

代理插件 1.0 目录如下所示：

```text
my-plugin/
├── plugin.json               # Required manifest
├── skills/                   # Skills (optional)
│   └── deploy/
│       └── SKILL.md
├── mcp.json                  # MCP server config (optional)
└── com.github.copilot/       # Copilot components (optional)
    ├── agents/
    │   └── helper.agent.md
    ├── commands/
    ├── rules/
    ├── hooks/
    │   └── hooks.json
    └── lsp.json
```

清单必须包含代理插件 1.0 `$schema`。 有关支持的顶级清单字段、名称要求和组件位置，请参阅 [代理插件 1.0 清单字段](/zh/copilot/reference/copilot-cli-reference/cli-plugin-reference#agent-plugins-10-manifest-fields)。

### 旧插件结构

旧 Copilot 插件目录如下所示：

```text
my-plugin/
├── plugin.json           # Required manifest
├── agents/               # Custom agents (optional)
│   └── helper.agent.md
├── skills/               # Skills (optional)
│   └── deploy/
│       └── SKILL.md
├── hooks.json            # Hook configuration (optional)
├── .mcp.json             # MCP server config (optional)
└── lsp.json              # LSP server config (optional)
```

有关可在清单中包含的完整字段集，请参阅 [GitHub Copilot CLI 插件参考](/zh/copilot/reference/copilot-cli-reference/cli-plugin-reference)。 有关创作插件的分步指南，请参阅 [为 GitHub Copilot CLI 创建插件](/zh/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating)。

## 为何使用插件？

插件具有以下优势：

* 跨项目可重用性
* 跨存储库共享 Copilot 配置
* 分享领域专业知识（例如，通过提供 Rails 专家或 Kubernetes 专家的技能）
* 封装复杂的 MCP 服务器配置

## 插件来自何处

Visual Studio Code、Copilot CLI以及GitHub Copilot app中的内置市场是[awesome-copilot](https://github.com/github/awesome-copilot?utm_source=customization-plugin-doc-awesome\&utm_medium=docs\&utm_campaign=universe-2026)。 在插件可用之前，必须添加其他市场。

添加市场后，其插件可供浏览。 它不会安装或启用它们。 插件的标识符将插件名称与市场名称合并为 `PLUGIN-NAME@MARKETPLACE-NAME`。 市场名称来自其`marketplace.json`文件中的`name`字段，而不是来自存储库名称。

## 决定是否启用插件

插件可以处于可用、已安装或已启用状态。 添加市场后，其插件可供浏览。 安装插件会将其添加到界面中，并启用该插件，使其组件在该界面上的会话中可用。 共享配置可以设置默认值，也可以强制是否启用插件：

| 配置源       | Effect                                      | 成员是否可以关闭插件？      |
| --------- | ------------------------------------------- | ---------------- |
| 企业托管设置    | 要求或阻止某插件在所有受支持的界面中使用。                       | No. 托管策略始终优先。    |
| 企业团队管理的设置 | 在 `enabledPlugins` 企业团队文件中添加所需的插件，基于企业基线叠加。 | No. 这些条目受托管策略管理。 |
| 存储库默认值    | 为在存储库中工作的每个人启用插件。                           | 是的，其中界面支持本地替代。   |

存储库默认值不会使某个插件成为必需。 无法启用托管策略阻止的插件或使用策略禁止的市场。 默认情况下，托管设置无法启用可选插件。 它们只要求启用插件或阻止插件运行。

企业团队文件将托管的 `enabledPlugins` 条目添加到企业基线中。 成员无法关闭所需的插件。 请参阅“[覆盖企业团队的企业托管设置](/zh/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/override-settings-for-teams)”。

存储库默认使用 `.github/copilot/settings.json`。 有关配置和特定于表面的本地替代，请参阅 [GitHub Copilot CLI 配置目录](/zh/copilot/reference/copilot-cli-reference/cli-config-dir-reference#repository-settings-githubcopilotsettingsjson)。

企业管理员可以指定必需或已阻止的其他市场和插件。 请参阅“[使用企业管理的设置管理插件市场和插件](/zh/copilot/how-tos/administer-copilot/manage-for-enterprise/use-managed-settings/manage-plugin-marketplaces-and-plugins)”。

## 插件市场的工作原理

插件市场是可从中浏览和安装的插件的注册表。 Marketplace 可以托管在 GitHub.com 上的仓库、另一个 Git 主机或本地目录中。 由于市场中的插件已进行版本控制，因此市场让用户更轻松地发现、安装和更新插件。

市场由 `marketplace.json` 文件定义，该文件提供有关市场的元数据并列出其插件。

有关使用插件或在 GitHub 存储库中发布 marketplace 的针对特定 surface 的说明，请参阅 [进一步阅读](#further-reading)。

## 插件与手动配置的比较

可以使用插件添加的任何功能，也可以通过手动配置 Copilot 来添加，例如，通过添加自定义代理配置文件或 MCP 服务器。 但是，插件比手动配置提供了多种优势：

| Feature | 存储库中的手动配置 | 插件                        |
| ------- | --------- | ------------------------- |
| Scope   | 单个存储库     | 任何项目                      |
| 共享      | 手动复制/粘贴   | 安装命令或 `enabledPlugins` 条目 |
| 版本控制    | Git 历史    | 市场版本                      |
| 发现      | 搜索存储库     | 市场浏览                      |

## 延伸阅读

* [在 Visual Studio Code 中使用插件](/zh/copilot/how-tos/copilot-in-your-ide/customize-copilot/extend-copilot-with-tools-and-context/using-plugins)
* [查找并安装插件适用于GitHub Copilot CLI](/zh/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing)
* [自定义 GitHub Copilot 应用](/zh/copilot/how-tos/github-copilot-app/customize-github-copilot-app#adding-plugins)
* [配置云中GitHub Copilot的设置](/zh/copilot/how-tos/use-copilot-agents/cloud-agent/configuring-agent-settings#configuring-plugins-for-github-copilot-cloud-agent)
* [在 GitHub 上创建和共享插件市场](/zh/copilot/how-tos/copilot-on-github/customize-copilot/create-and-share-plugin-marketplaces)