copilot-sdk
GitHub Copilot SDK — навык Microsoft для создания приложений, которые программно взаимодействуют с GitHub Copilot. Официальный SKILL.md описывает SDK как оболочку над Copilot CLI: приложение использует клиент SDK, а CLI общается с моделью, выполняет инструменты, хранит состояние сессии и управляет жизненным циклом MCP-серверов. Связь между SDK и CLI выполняется через JSON-RPC по stdio или TCP. Базовая схема одинакова для поддерживаемых языков: создать client, открыть session и отправить message. В примере Node.js или TypeScript импортируется CopilotClient, затем вызывается createSession с выбранной моделью, после чего sendAndWait получает ответ на prompt. После завершения работы клиент нужно остановить. Для Python, Go и .NET в источнике показаны соответствующие клиенты, методы запуска и остановки, создания сессии и ожидания ответа. Такой API подходит для серверного кода, CLI-утилиты или внутреннего приложения, которому нужен управляемый программный цикл вокруг Copilot. Источник перечисляет четыре SDK-пути: Node.js с пакетом @github/copilot-sdk, Python с github-copilot-sdk, Go с github.com/github/copilot-sdk/go и .NET с пакетом GitHub.Copilot.SDK. В требованиях указаны Node.js 18 или новее, Python 3.8 или новее, Go 1.21 или новее и .NET 8.0 или новее. Перед использованием нужен установленный и аутентифицированный GitHub Copilot CLI; проверить его можно командой copilot --version. Для локальной разработки по умолчанию используется stdio: CLI запускается как subprocess и обменивается данными через pipes. Альтернативный TCP-режим позволяет использовать CLI как сетевой сервер; исходник относит его к сценариям с несколькими клиентами и backend-сервисами. Архитектура сохраняет границу между приложением, SDK Client, транспортом, Copilot CLI и провайдером модели. MCP-серверы подключаются к стороне CLI и участвуют в жизненном цикле, который SDK помогает контролировать. Навык поддерживает потоковый ответ. При создании сессии можно включить streaming и подписаться на дельты сообщения ассистента; в примере Node.js используются события assistant.message_delta и session.idle. Подписка может быть общей или привязанной к типу события в Node.js, а функция отписки должна быть вызвана после завершения работы. В .NET источник указывает на Dispose для возвращённого disposable. Такой режим полезен, когда интерфейсу нужно показывать вывод по мере готовности, а не ждать единого финального текста. Отдельный блок посвящён custom tools. Tool получает имя, описание, схему параметров и обработчик; затем его можно передать в createSession или аналогичный метод конкретного языка. В примерах параметры задаются через JSON Schema в Node.js, модель Pydantic в Python, структуру с jsonschema в Go и AIFunctionFactory в .NET. Это позволяет приложению расширять сессию проверяемыми действиями, не пряча контракт инструмента внутри prompt. В описании навыка также заявлены hooks, MCP servers, BYOK-провайдеры, сохранение сессий, custom agents, skills и deployment patterns. Подключение Copilot SDK не отменяет требования к окружению: для обычного режима нужна подписка GitHub Copilot Individual, Business или Enterprise, а BYOK указан как исключение. Поэтому перед выбором архитектуры нужно проверить наличие CLI, способ аутентификации, выбранный транспорт и необходимость BYOK. SDK предоставляет программный контур client/session/message и инструменты интеграции, но не выбирает модель, бизнес-логику приложения или правила доступа к MCP самостоятельно.
Для чего подходит
- Интеграция Copilot SDK
- Подключение MCP и custom tools
- Создание программных Copilot-агентов
Установка
Сначала прочитайте SKILL.md и scripts в исходном репозитории. Затем выполните команду в каталоге проекта:
npx skills add https://github.com/microsoft/skills/tree/main/.github/skills/copilot-sdk