插件提供了分发自定义 Copilot 功能的方法。 可以使用插件将预配置的功能集添加到 Copilot包括 Copilot 命令行界面(CLI) 和 Copilot云代理。
什么是插件?
- 扩展 Copilot功能的可分发包。
- 单个可安装单元中的一组组件。
插件包含的内容
插件可以包含以下部分或全部组件:
- 自定义代理 — 专用 AI 助手(在
*.agent.md的agents/文件中) - 技能 - 离散可调用功能(包含
skills/文件的技能子目录SKILL.md) - 钩子 — 拦截智能体行为的事件处理程序(插件根目录或
hooks.json中的hooks/文件) - MCP 服务器配置 - 模型上下文协议集成(
.mcp.json插件根目录中的文件,或mcp.json位于.github/中的文件) - LSP 服务器配置 - 语言服务器协议集成(插件根目录中的
lsp.json文件或.github/)
插件的结构
插件是具有特定结构的目录。 至少,它在该目录的根目录中包含一个 plugin.json 清单文件。 清单为插件命名,并指明该插件提供的组件。 除了清单之外,目录还可以包含代理、技能、挂钩、MCP 服务器配置和 LSP 服务器配置的任意组合。
典型的插件目录如下所示:
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 插件参考。 有关创作插件的分步指南,请参阅 为 GitHub Copilot 命令行界面 (CLI) 创建插件。
为何使用插件?
插件具有以下优势:
- 跨项目可重用性
- 团队标准化 Copilot 配置
- 分享领域专业知识(例如,通过提供 Rails 专家或 Kubernetes 专家的技能)
- 封装复杂的 MCP 服务器配置
在哪里可以获取插件?
可以从以下位置安装插件:
- 市场
- 存储库
- 本地路径
市场是开发人员可在其中发布、发现、安装和管理插件的位置。 这有点像应用商店,但这是为插件而设计的。
市场示例包括:
安装插件的方式取决于所使用的客户端:
- 在 Copilot 命令行界面(CLI) 中,可以使用
copilot plugin install命令或/plugin install斜杠命令以命令式方式安装插件,也可以通过将插件添加到用户级~/.copilot/settings.json文件或仓库级.github/copilot/settings.json文件中的enabledPlugins字段,以声明式方式安装插件。 请参阅“查找并安装插件适用于GitHub Copilot 命令行界面 (CLI)”。 - 在 Copilot云代理 中,你可以通过将插件添加到代码库的
.github/copilot/settings.json文件中的enabledPlugins字段,以声明式方式安装插件。 若要从默认情况下未注册的应用市场安装插件,还可以将该应用市场添加到同一文件中的extraKnownMarketplaces字段。
企业管理员可以定义适用于企业 Copilot 计划中用户的插件标准,包括指定自动安装的其他市场和插件。 请参阅“关于企业管理的插件标准”。
插件市场的工作原理
插件市场是可从中浏览和安装的插件的注册表。 市场可以托管在 GitHub.com 上的存储库中、任何其他在线 Git 托管服务中,或者托管在本地文件系统或共享文件系统上。
市场由 marketplace.json 文件定义,该文件提供有关市场的元数据,并列出它提供的插件。 市场 plugins 数组中的每个条目都描述了一个插件,包括插件的名称、说明、版本和插件目录的路径。
由于市场中的插件已进行版本控制,因此市场可以轻松发现、安装和更新插件,并在团队中共享它们。 有关创建市场的分步指南,请参阅 为 GitHub Copilot 命令行界面 (CLI) 创建插件市场。
插件与手动配置的比较
可以使用插件添加的任何功能,也可以通过手动配置 Copilot 来添加,例如,通过添加自定义代理配置文件或 MCP 服务器。 但是,插件比手动配置提供了多种优势:
| 功能 | 存储库中的手动配置 | 插件 |
|---|---|---|
| Scope | 单个存储库 | 任何项目 |
| 共享 | 手动复制/粘贴 | 安装命令或 enabledPlugins 条目 |
| Versioning | Git 历史 | 市场版本 |
| Discovery | 搜索存储库 | 市场浏览 |