GitHub Copilot SDK插件目录:打包技能、钩子和MCP服务器的终极方案
GitHub Copilot SDK插件目录打包技能、钩子和MCP服务器的终极方案【免费下载链接】copilot-sdkMulti-platform SDK for integrating GitHub Copilot Agent into apps and services项目地址: https://gitcode.com/GitHub_Trending/co/copilot-sdkGitHub Copilot SDK是一个跨平台软件开发工具包专为将GitHub Copilot Agent集成到应用程序和服务中而设计。通过插件目录功能开发者可以轻松打包技能、钩子、MCP服务器和自定义代理实现功能的模块化管理和分发。本文将详细介绍如何利用这一强大功能为你的项目打造高效、可扩展的插件系统。为什么选择插件目录插件目录是GitHub Copilot SDK中一项强大的功能它允许开发者将多种扩展功能如技能、钩子、MCP服务器和自定义代理打包到一个目录中通过单一清单文件进行管理。这种方式带来了诸多优势简化分发流程将相关功能打包成一个插件便于分享和安装确保一致性在团队或项目中统一使用相同的插件版本避免配置差异提高开发效率本地开发插件后可直接测试无需复杂的发布流程灵活扩展轻松覆盖或扩展现有插件满足特定需求当你需要添加多个相关扩展时插件目录是理想选择。对于单个功能你可以通过SDK配置直接注册但当功能数量达到三个或更多时插件目录能显著提升管理效率。插件目录结构解析一个典型的GitHub Copilot SDK插件目录结构如下my-plugin/ ├── plugin.json # 清单文件必需除非仅使用SKILL.md ├── SKILL.md # 可选顶级技能 ├── hooks.json # 可选钩子配置 ├── .mcp.json # 可选MCP服务器配置 ├── agents/ # 可选自定义代理每个代理一个.md文件 │ └── code-reviewer.md └── skills/ # 可选额外技能 └── lint-fix/ └── SKILL.md清单文件也可以放在.github/plugin.json或.github/plugin/plugin.json位置这样插件可以集成到现有仓库中而不改变根目录结构。每个子系统钩子、MCP、LSP、技能、代理都有自己的加载器并且是可选的——插件只需要包含它所贡献的部分。完整的清单模式可以通过CLI的/plugin命令查看运行时文档。如何加载插件目录通过在SDK生成CLI时传递--plugin-dir path参数来加载插件目录。每种语言都通过运行时连接的extra-args选项公开此功能。该标志可以重复以加载多个插件。多语言加载示例以下是几种主流编程语言中加载插件目录的示例Node.js / TypeScriptimport { CopilotClient, RuntimeConnection } from github/copilot-sdk; const client new CopilotClient({ connection: RuntimeConnection.forStdio({ args: [ --plugin-dir, ./plugins/code-reviewer, --plugin-dir, ./plugins/lint-fix, ], }), }); await client.start();Pythonfrom copilot import CopilotClient, StdioRuntimeConnection client CopilotClient( connectionStdioRuntimeConnection( args( --plugin-dir, ./plugins/code-reviewer, --plugin-dir, ./plugins/lint-fix, ), ), ) await client.start()Goclient : copilot.NewClient(copilot.ClientOptions{ Connection: copilot.StdioConnection{ Args: []string{ --plugin-dir, ./plugins/code-reviewer, --plugin-dir, ./plugins/lint-fix, }, }, }) if err : client.Start(ctx); err ! nil { return err }注意上述示例使用stdio运行时连接——这是SDK捆绑CLI时的默认设置。如果你通过URL连接到外部运行时则需要在启动长期运行的CLI服务器时传递--plugin-dir参数SDK不会将--plugin-dir转发给它没有生成的运行时。插件可以贡献什么加载插件目录后其扩展对客户端创建的每个会话都是可见的。运行时将插件提供的扩展与你通过SDK注册的任何内容合并插件贡献对会话的可见性技能SKILL.md、skills/*/SKILL.mdsession.skills.list()中的项目可按名称注入自定义代理agents/*.md可通过task(agent_type...)工具调度钩子hooks.json与通过SDK注册的钩子一起触发MCP服务器.mcp.json通过session.mcp.*可访问的工具和资源LSP服务器.lsp.json通过session.lsp.initialize(...)初始化插件代理在fleet mode中是一等子代理父代理可以通过agent_type调度它们运行时像对待任何其他子代理一样为它们触发subagentStart/subagentStop钩子。插件目录 vs 市场插件运行时有两种安装插件的方式对会话来说两者看起来相同市场/直接仓库插件通过CLI的/plugin命令或底层的installedPlugins用户设置持久安装。它们是环境性的——每个针对相同用户配置运行的会话都能看到它们并且它们参与插件发现规则。--plugin-dir插件是显式且临时的——它们仅适用于使用该标志启动的CLI进程。它们优先于环境发现并与具有相同缓存路径的市场条目去重因此当两个表面都引用同一插件时不会加载两次。对于SDK驱动的应用程序--plugin-dir通常是正确的选择它使插件集处于应用程序的控制之下而不是依赖于每台机器的用户状态。如何使插件集具有确定性当主机可能安装了其他插件市场或个人时在运行时环境中设置COPILOT_PLUGIN_DIR_ONLYtrue以抑制自动插件发现。只有通过--plugin-dir传递的目录才会加载。Node.js / TypeScript示例process.env.COPILOT_PLUGIN_DIR_ONLY true; const client new CopilotClient({ connection: RuntimeConnection.forStdio({ args: [--plugin-dir, ./plugins/code-reviewer], }), }); await client.start();在CI、无头服务器部署以及任何你想要可重现的插件集而不依赖于主机用户配置的地方使用此设置。检查哪些插件已加载创建会话后列出活动插件以确认目录已正确加载Node.js / TypeScript示例const plugins await session.rpc.plugins.list(); for (const plugin of plugins.plugins) { console.log(${plugin.name} (${plugin.enabled ? enabled : disabled})); }通过--plugin-dir加载的插件会在此列表中显示其缓存路径设置为你提供的目录。市场安装的插件会标记其注册源。常见问题解决no plugin.json or SKILL.md found in— 目录存在但不符合插件条件。在根目录或.github/下添加plugin.json清单或包含顶级SKILL.md。插件已加载但代理/技能不可见— 确保插件清单声明了它贡献的代理/技能或使用隐式布局agents/*.mdskills/*/SKILL.md。然后调用session.rpc.skills.reload()以在不重启的情况下获取更改。重复钩子触发— 运行时通过cache_path去重但仅当同一目录同时作为市场安装和--plugin-dir引用时。如果两个不同的目录包含相同的插件两者都会加载。移除一个或使用COPILOT_PLUGIN_DIR_ONLYtrue。连接到外部运行时时忽略--plugin-dir— SDK仅在自己生成CLI时转发额外参数。对于外部运行时在启动运行时服务器的命令行上传递--plugin-dir。相关资源自定义代理编写可放入插件agents/文件夹的代理。技能SKILL.md文件的加载方式和技能层级排序规则。钩子插件定义的钩子与SDK注册的钩子一起触发。MCP服务器插件提供的MCP服务器与内联注册的集成方式相同。Fleet Mode插件提供的代理可作为子代理调度。通过GitHub Copilot SDK的插件目录功能你可以轻松构建、管理和分发功能丰富的插件为你的应用程序带来强大的扩展能力。无论你是个人开发者还是大型团队这一功能都能显著提升你的工作效率让你更专注于核心功能的开发。要开始使用GitHub Copilot SDK插件目录只需克隆仓库git clone https://gitcode.com/GitHub_Trending/co/copilot-sdk探索插件目录的无限可能为你的项目打造量身定制的扩展生态系统 【免费下载链接】copilot-sdkMulti-platform SDK for integrating GitHub Copilot Agent into apps and services项目地址: https://gitcode.com/GitHub_Trending/co/copilot-sdk创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

嵌入式显示子系统低功耗优化:像素时钟、FIFO阈值与空闲模式配置实战

嵌入式显示子系统低功耗优化:像素时钟、FIFO阈值与空闲模式配置实战

1. 项目概述:DSS低功耗优化的核心价值与挑战在嵌入式系统,尤其是电池供电的移动设备和需要长时间稳定运行的工业HMI(人机界面)中,显示子系统往往是整个系统的“耗电大户”。一块常亮的屏幕,其背后的驱动电路…

2026/7/25 0:31:15 阅读更多 →
Ruru安全检测对比分析:与其他Android安全工具的技术差异

Ruru安全检测对比分析:与其他Android安全工具的技术差异

Ruru安全检测对比分析:与其他Android安全工具的技术差异 【免费下载链接】Ruru An android sample app of detecting suspicious apps like magisk manager 项目地址: https://gitcode.com/gh_mirrors/rur/Ruru 在Android安全领域,恶意软件和系统…

2026/7/25 22:52:10 阅读更多 →
终极免费歌词获取神器:3分钟批量下载全网音乐LRC歌词

终极免费歌词获取神器:3分钟批量下载全网音乐LRC歌词

终极免费歌词获取神器:3分钟批量下载全网音乐LRC歌词 【免费下载链接】163MusicLyrics 云音乐歌词获取处理工具【网易云、QQ音乐】 项目地址: https://gitcode.com/GitHub_Trending/16/163MusicLyrics 还在为音乐播放器里空空如也的歌词栏而烦恼吗&#xff1…

2026/7/25 8:06:14 阅读更多 →

最新新闻

GB28181标准下智能视频监控系统的优化与实践

GB28181标准下智能视频监控系统的优化与实践

1. 项目背景与行业痛点工业园区作为现代制造业的核心载体,其安防监控系统正面临从"看得见"向"看得清、看得懂"的转型升级需求。传统监控系统普遍存在三大痛点:视频质量不稳定导致关键画面模糊、设备运维依赖人工巡检效率低下、海量视…

2026/7/25 23:39:22 阅读更多 →
Django毕业设计-基于 Django 的电子商务购物平台设计与实现 轻量化线上商城购物管理系统设计(源码+LW+部署文档+全bao+远程调试+代码讲解等)

Django毕业设计-基于 Django 的电子商务购物平台设计与实现 轻量化线上商城购物管理系统设计(源码+LW+部署文档+全bao+远程调试+代码讲解等)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/25 23:39:22 阅读更多 →
2026年Java后端面试:AI应用能力成为薪资分水岭

2026年Java后端面试:AI应用能力成为薪资分水岭

如果你正在准备2026年下半年的Java后端面试,可能会发现一个明显的变化:面试官不再只盯着JVM调优和并发编程了。最近辅导了30多场面试录音,AI相关问题的占比已经超过50%,甚至有双非本科、工作仅1年半的同学因为掌握了Spring AI落地…

2026/7/25 23:39:22 阅读更多 →
Linux硬盘挂载:为什么必须用UUID替代/dev/sdX避免盘符漂移

Linux硬盘挂载:为什么必须用UUID替代/dev/sdX避免盘符漂移

你肯定遇到过这样的场景:在服务器上插了一块新硬盘,按照常规流程分区、格式化、挂载,一切顺利。然后某天重启服务器,或者拔插了一下硬盘,系统启动后某个关键服务挂了——日志一看,原来是数据盘没挂载上&…

2026/7/25 23:39:22 阅读更多 →
Hive数据仓库实战:从原理到性能优化的完整指南

Hive数据仓库实战:从原理到性能优化的完整指南

如果你正在学习大数据技术,或者工作中需要处理海量数据,那么Hive绝对是你绕不开的核心工具。但很多初学者都会遇到这样的困惑:为什么我的Hive查询这么慢?分区表到底该怎么用?视图和索引在什么场景下才能真正发挥作用&a…

2026/7/25 23:39:22 阅读更多 →
AMC7834模拟监控芯片:集成DAC/ADC/电流检测的射频PA偏置与闭环控制方案

AMC7834模拟监控芯片:集成DAC/ADC/电流检测的射频PA偏置与闭环控制方案

1. 项目概述与核心价值在射频功率放大器(PA)的偏置控制、工业自动化系统的多参数监控,或是任何需要精密模拟信号生成与采集的场合,工程师们常常面临一个经典难题:如何用最少的芯片、最简单的布线,实现电压设…

2026/7/25 23:38:21 阅读更多 →

日新闻

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:00:35 阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:00:35 阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:00:35 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 5:08:22 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 5:13:53 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/24 18:52:18 阅读更多 →

月新闻