Awesome Copilot 插件实战:用 Meta Prompts 自动发现、安装与更新 GitHub Copilot 代理、指令和技能
【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot
导读
awesome-copilot是社区为 GitHub Copilot 维护的插件,其本质是一组"元提示词(Meta Prompts)":它不直接替你写代码,而是基于当前仓库的代码上下文与对话历史,自动从 awesome-copilot 社区仓库中发现尚未安装的 Custom Agents、Instructions 与 Skills,识别本地已安装但已过时的资产并提示更新,最终以结构化表格呈现候选清单,在获得用户确认后才自动下载并落地到.github/agents/、.github/instructions/、.github/skills/等目录。读完本文,你将掌握该插件的安装方式、四条斜杠命令的职责划分、底层 MCP 服务器配置,以及它"扫描本地 → 拉取远端 → 对比版本 → 去重推荐 → 等待确认 → 下载安装"的完整工作流,并能直接上手把它接入自己的 Copilot 环境。
插件是什么:以插件清单为入口理解整体结构
插件的元数据定义在 plugin.json 中,其description精确概括了它的定位:"Meta prompts that help you discover and generate curated GitHub Copilot agents, instructions, prompts, and skills.",即通过元提示词帮助开发者发现并生成经过策展的 GitHub Copilot 资产。
从插件清单可以看到几个关键事实:
- 版本与许可:当前版本为
1.1.0,采用 MIT 许可,作者为 Awesome Copilot Community; - 关键词:
github-copilot、discovery、meta、prompt-engineering、agents,说明其核心价值在于"发现(discovery)"与"元层(meta)"能力; - 扩展声明:在
extensions.com.github.awesome-copilot下捆绑了 1 个 Agent(./agents/meta-agentic-project-scaffold.md)与 3 个 Skill 目录(suggest-awesome-github-copilot-agents/、suggest-awesome-github-copilot-instructions/、suggest-awesome-github-copilot-skills/)。
也就是说,插件所暴露的斜杠命令并不是独立代码,而是直接映射到仓库中对应目录下的 Skill 定义——skills/suggest-awesome-github-copilot-agents/SKILL.md、skills/suggest-awesome-github-copilot-instructions/SKILL.md、skills/suggest-awesome-github-copilot-skills/SKILL.md 三个文件构成了插件的主体逻辑。
安装与前置条件
安装命令
在 Copilot CLI 环境中执行以下命令即可安装:
copilot plugin install awesome-copilot@awesome-copilot安装完成后,插件会向 Copilot 环境注册斜杠命令、Agent 与 MCP 服务器三部分能力。
前置条件:Docker
安装使用该插件有两个明确的前置条件(见 README):
- Docker 必须已经安装,并且其可执行文件位于系统
PATH中; - 插件启动时会通过
docker run ...拉起其捆绑的 MCP 服务器,镜像为ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest。
如果 Docker 不可用,MCP 服务器将启动失败(插件说明中直接声明了这一点),进而影响依赖 MCP 能力的发现与下载流程。
MCP 服务器配置解析
插件附带的 mcp.json 给出了 MCP 服务器的完整配置:
{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "awesome-copilot": { "type": "stdio", "command": "docker", "args": [ "run", "-i", "--rm", "ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest" ] } } }这段配置的关键点:
type: "stdio":MCP 服务器通过标准输入/输出与 Copilot 进程通信,因此docker run必须使用-i(保持 stdin 开放);--rm:容器在退出后自动清理,避免残留容器占用资源;ghcr.io/microsoft/mcp-dotnet-samples/awesome-copilot:latest:从 GitHub Container Registry 拉取由 .NET 示例项目构建的镜像,这也是 Docker 必须可用的根本原因。
四条斜杠命令:职责分工与底层 Skill
插件在 Copilot 中注册了四条斜杠命令,覆盖四类可发现资产。下表完整列出(摘自 README):
| 命令 | 描述 |
|---|---|
/awesome-copilot:suggest-awesome-github-copilot-collections | 基于当前仓库上下文与对话历史,从 awesome-copilot 仓库推荐相关的 GitHub Copilot 集合(collections),支持自动下载安装集合资产,并识别需要更新的过时集合资产。 |
/awesome-copilot:suggest-awesome-github-copilot-instructions | 基于当前仓库上下文与对话历史,推荐相关的 GitHub Copilot 指令文件,避免与仓库现有指令重复,并识别需要更新的过时指令。 |
/awesome-copilot:suggest-awesome-github-copilot-agents | 基于当前仓库上下文与对话历史,推荐相关的 Custom Agents 文件,避免与仓库现有自定义代理重复,并识别需要更新的过时代理。 |
/awesome-copilot:suggest-awesome-github-copilot-skills | 基于当前仓库上下文与对话历史,推荐相关的 GitHub Copilot 技能,避免与仓库现有技能重复,并识别需要更新的过时技能。 |
需要注意的是:从 plugin.json 的扩展声明看,插件实际捆绑的 Skill 文件有三个(agents / instructions / skills 各一),而collections命令目前未在插件清单中找到对应的独立 SKILL.md 文件——可以推断四条命令共享同一套"发现—去重—对比—推荐"逻辑,其中三条由上述 SKILL.md 提供完整实现细节,collections 命令则对应同一元提示词体系的另一资产类型。
三条命令的落地实现
三个 SKILL.md 遵循高度一致的结构化流程,下面以命令为单位拆解其核心逻辑。
推荐 Custom Agents(suggest-awesome-github-copilot-agents)
该命令由 skills/suggest-awesome-github-copilot-agents/SKILL.md 实现,核心流程为:
- 拉取可用清单:必须使用
fetch工具从 awesome-copilot 仓库的 agents 索引文档(对应本仓库的 docs/README.agents.md)提取 Custom Agents 列表与描述; - 扫描本地代理:发现
.github/agents/目录下的现有 agent 文件; - 提取描述:读取本地 agent 文件的 front matter 获取描述;
- 拉取远端版本:按
raw.githubusercontent.com/github/awesome-copilot/main/agents/<filename>的 URL 模式逐个获取远端对应文件; - 版本对比:逐文件比对本地与远端内容,区分"完全一致(最新)""内容有差异(过时)"以及关键差异点(tools、description、正文);
- 上下文分析:结合对话历史、仓库文件与项目需求;
- 相关度匹配:将可用代理与识别出的模式、需求做匹配;
- 呈现候选:输出包含描述、推荐理由与可用状态(含过时项)的表格;
- 价值校验:确保建议的代理能带来已有代理未覆盖的价值;
- 输出并等待确认:输出结构化表格后,必须等待用户明确指示才可安装或更新,未经指示不得动手;
- 下载/更新资产:用户确认后自动下载新代理到
.github/agents/、用最新版本整体替换过时代理、不调整文件内容,并用#todos工具跟踪进度。
推荐 Instructions(suggest-awesome-github-copilot-instructions)
由 skills/suggest-awesome-github-copilot-instructions/SKILL.md 实现,流程与 agents 版本一致,但针对指令文件的特性增加了两个关键点:
- front matter 结构:指令文件使用
description与可选的applyToglob 模式(例如'**/*.js,**/*.ts')声明适用文件范围,版本对比时需特别关注applyTo的变化; - 文件结构规范:按官方文档约定,指令文件有三类存放位置——仓库级指令
.github/copilot-instructions.md(作用于整个仓库)、路径级指令.github/instructions/NAME.instructions.md(通过applyTo匹配特定文件)、社区共享指令instructions/NAME.instructions.md(本仓库 instructions/ 目录即属此类)。下载与更新时需保持目标位置正确。
推荐 Skills(suggest-awesome-github-copilot-skills)
由 skills/suggest-awesome-github-copilot-skills/SKILL.md 实现,差异点在于:
- Skill 是自包含目录:每个 skill 是一个文件夹,内含
SKILL.md主指令文件与可选捆绑资产(脚本、模板、数据文件),下载/更新时必须连同捆绑资产一起落地,保持文件夹结构; - 结构规范:文件夹命名使用小写加连字符(如
azure-deployment-preflight),且SKILL.mdfront matter 中的name字段必须与文件夹名一致——本仓库 skills/ 目录下的数百个 skill 目录即为这种结构的实际例证; - 本地发现流程:列出
.github/skills/下所有文件夹,逐个读取SKILL.md的 front matter 提取name与description,并列出捆绑资产清单。
捆绑 Agent:Meta Agentic Project Scaffold
插件捆绑的 Agent 定义在 agents/meta-agentic-project-scaffold.agent.md,其 front matter 声明了名称、描述、模型与可用的工具集:
description: "Meta agentic project creation assistant to help users create and manage project workflows effectively." name: "Meta Agentic Project Scaffold" model: "GPT-4.1" tools: ["changes", "codebase", "edit/editFiles", "extensions", "fetch", "findTestFiles", "githubRepo", "new", "openSimpleBrowser", "problems", "readCellOutput", "runCommands", "runNotebooks", "runTasks", "runTests", "search", "searchResults", "terminalLastCommand", "terminalSelection", "testFailure", "updateUserPreferences", "vscodeAPI", "activePullRequest", "copilotCodingAgent"]从该 Agent 的提示词主体可以提炼其工作方式:
- 唯一任务:从 awesome-copilot 仓库查找并拉取相关的 prompts、instructions 与 chatmodes;
- 逐个落地:对每个相关资产,给出其在 VS Code Insiders 中的安装链接、功能解释与使用方式,并构建有效的工作流;然后逐个将文件原样拉取并放入项目中的正确文件夹,不得做任何改动或摘要;
- 输出总结:项目结束时提供总结,列出这些 prompts/instructions/chatmodes 支持的工作流清单、在应用开发流程中的用法,以及对高效项目管理的额外见解与建议。
值得注意的是其工具集中包含extensions、vscodeAPI、new、runCommands、runTasks等 VS Code 相关能力,说明该 Agent 定位在 VS Code 环境下工作,负责把社区资产系统地组织进用户项目。
核心机制深度:版本对比、图标约定与输出格式
三态图标约定
三个 SKILL.md 统一采用以下图标约定表达资产状态,这也是输出表格中Already Installed列的标准语义:
| 图标 | 含义 |
|---|---|
| ✅ | 已安装且为最新(exact match) |
| ⚠️ | 已安装但已过时(有可用更新) |
| ❌ | 仓库中尚未安装 |
版本对比的差异维度
对比不是简单比对"内容是否相同",而是按资产类型细分差异维度:
- Agents:front matter 变化(description、tools)、tools 数组增删改、正文内容(指令、示例、准则)更新。SKILL.md 中给出的示例差异如"remote uses
'web/fetch'vs local'fetch'",即工具名称不一致即可判定为过时; - Instructions:front matter 变化(description、applyTo 模式)、正文更新。示例差异如"remote uses
'**/*.java'vs local'*.java'",即 applyTo glob 范围变化即可触发更新建议; - Skills:front matter 变化(name、description)、指令内容更新、捆绑资产变化(新增、移除或修改)。
结构化输出表格
命令会以表格形式呈现分析结果,例如 agents 命令的输出列结构为:Awesome-Copilot Custom Agent、Description、Already Installed、Similar Local Custom Agent、Suggestion Rationale。skills 命令则额外增加Bundled Assets列,用于说明目标 skill 是否携带脚本、模板等资产及安装时的资源需求。
上下文分析标准:推荐如何"对准"当前项目
三条 Skill 均定义了统一的上下文分析准则,这是推荐相关度的核心依据:
仓库模式(Repository Patterns):
- 使用的编程语言(
.cs、.js、.py、.ts等); - 框架指示(ASP.NET、React、Azure、Next.js 等);
- 项目类型(Web 应用、API、库、工具、基础设施);
- 文档需求(README、规格说明、ADR);
- 基础设施与云厂商(Azure、AWS、GCP,skills 版额外包含);
- 开发工作流需求(测试、CI/CD、部署)。
对话历史上下文(Chat History Context):
- 近期讨论与痛点;
- 功能请求或实现需求;
- 代码评审模式;
- 开发工作流要求;
- 专项任务需求(绘图、评估、部署,skills 版额外包含)。
这些准则解释了插件为何能给出"贴合语境"的推荐——它同时读取仓库静态特征与对话动态信息,再与社区资产库做匹配。
落地行为与安全边界
插件在推荐与安装之间设置了明确的人工确认闸门:所有三条 Skill 都强调"AWAIT user request to proceed with installation or updates of specific instructions. DO NOT INSTALL OR UPDATE UNLESS DIRECTED TO DO SO."——即输出表格后必须等待用户明确指示,未经指示绝不安装或更新。
用户确认后的自动化行为也有严格约束:
- 目标目录:Agents →
.github/agents/,Instructions →.github/instructions/,Skills →.github/skills/(保留完整文件夹结构); - 更新策略:用远端最新版本整体替换本地文件,不调整内容("Do NOT adjust content of the files");
- 下载手段:优先使用
fetch工具,必要时可用curl(经runInTerminal/#runInTerminal)确保完整取回全部内容;skills 场景要求捆绑资产与SKILL.md一并下载; - 进度跟踪:使用
#todos工具记录下载与更新进度; - 输出纪律:除表格与分析外,不提供额外信息或上下文("Don't provide any additional information or context beyond the table and the analysis")。
与仓库其他部分的关联
插件的能力边界由本仓库的社区资产目录直接决定,读者可结合以下位置深入理解其数据来源:
- Agent 索引:docs/README.agents.md,对应 agents/ 目录下的数百个
.agent.md文件; - 指令索引:docs/README.instructions.md,对应 instructions/ 目录下的指令文件;
- 技能索引:docs/README.skills.md,对应 skills/ 目录下的技能文件夹;
- 插件市场:docs/README.plugins.md 与 plugins/ 目录,说明本插件在整个插件生态中的位置。
使用限制与注意事项
- Docker 是硬依赖:MCP 服务器通过
docker run启动,Docker 缺失将直接导致 MCP 启动失败,进而影响插件核心的发现/下载能力; - 首次拉取需要网络:插件需要访问 awesome-copilot 远端仓库的 raw 内容进行版本对比,离线环境下只能完成本地扫描,无法做远端比对;
- 安装目录约定:插件按
.github/agents/、.github/instructions/、.github/skills/的约定落地资产,与 GitHub 官方 Copilot 的目录规范保持一致,使用前应确认项目采用相同的约定; - 人工确认机制:推荐结果不会自动安装,所有下载/更新动作都以用户明确指示为前提,这是设计上的安全边界,使用时应主动审查表格中的推荐理由再确认执行。
小结
awesome-copilot插件把"社区资产策展"转化为一套可复用的元提示词工作流:斜杠命令负责四类资产的发现与去重,三份 SKILL.md 定义了从上下文分析、版本对比到结构化输出的完整执行协议,捆绑 Agent 承担项目级的工作流搭建,而 MCP 服务器(通过 Docker 运行 .NET 镜像)为上述能力提供运行时支撑。对于希望持续从社区汲取 Copilot 最佳实践的开发者,理解这套"扫描—对比—推荐—确认—落地"的机制,就等于掌握了让 Copilot 环境随社区演进自动保持新鲜的入口。
【免费下载链接】awesome-copilotCommunity-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-copilot
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考