Перейти к содержимому

GitHub Copilot

Подключение GitHub Copilot Chat, агентов VS Code и Copilot CLI к Model Gate через BYOK и собственный OpenAI-совместимый эндпоинт.

GitHub Copilot через Model Gate

GitHub Copilot и Visual Studio Code поддерживают модели Bring Your Own Key (BYOK). Model Gate можно использовать как собственный OpenAI-совместимый эндпоинт для чата и агентных сценариев Copilot.

Для VS Code рекомендуется поставщик Custom Endpoint с Responses API. Используйте Chat Completions только тогда, когда выбранная модель или сценарий требует именно этого семейства API.

Обязательные значения

API key: mg_live_...
Responses endpoint: https://api.model-gate.com/v1/responses
Chat Completions endpoint: https://api.model-gate.com/v1/chat/completions
Base URL for Copilot CLI: https://api.model-gate.com/v1

Создайте отдельный API-ключ в панели Model Gate. Для интеграции команды или рабочей станции предпочтителен отдельный ключ, а не посторонний рабочий ключ: так проще проверять лимиты, историю, перевыпуск и отзыв.

Получите список активных моделей перед настройкой Copilot:

curl https://api.model-gate.com/v1/models \
  -H "Authorization: Bearer mg_live_..."

Используйте активный канонический ID модели или поддерживаемый псевдоним, возвращённый этим эндпоинтом.

VS Code: рекомендуемая настройка Custom Endpoint

Актуальные версии VS Code показывают BYOK-модели в редакторе Language Models.

  1. Откройте Command Palette.
  2. Выполните Chat: Manage Language Models.
  3. Выберите Add Models.
  4. Выберите Custom Endpoint.
  5. Укажите имя группы, например Model Gate.
  6. Введите API-ключ Model Gate, когда VS Code запросит учётные данные поставщика.
  7. Выберите тип API Responses, если выбранная модель поддерживает Responses API.
  8. Настройте модель с явным эндпоинтом Model Gate и сохраните созданный chatLanguageModels.json.
  9. Выберите модель Model Gate в списке моделей Chat.

Для новой настройки не используйте устаревший параметр github.copilot.chat.customOAIModels. Современный поставщик Custom Endpoint поддерживает эндпоинты Responses, Chat Completions и Messages и является предпочтительным способом настройки VS Code.

Рекомендуемая настройка Responses

Созданный chatLanguageModels.json может выглядеть так:

[
  {
    "name": "Model Gate",
    "vendor": "customendpoint",
    "apiKey": "${input:modelGateApiKey}",
    "apiType": "responses",
    "models": [
      {
        "id": "gpt-5.4",
        "name": "GPT-5.4 through Model Gate",
        "url": "https://api.model-gate.com/v1/responses",
        "toolCalling": true
      }
    ]
  }
]

Замените gpt-5.4 на активную модель или псевдоним Model Gate.

Обычно VS Code отправляет API-ключ так:

Authorization: Bearer mg_live_...

Это правильный формат аутентификации OpenAI-совместимого API Model Gate.

Запасной вариант Chat Completions

Если выбранному сценарию нужен Chat Completions, настройте модель так:

[
  {
    "name": "Model Gate",
    "vendor": "customendpoint",
    "apiKey": "${input:modelGateApiKey}",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "MODEL_ID",
        "name": "MODEL_ID through Model Gate",
        "url": "https://api.model-gate.com/v1/chat/completions",
        "toolCalling": true
      }
    ]
  }
]

Предпочтителен явно заданный полный URL эндпоинта. Это исключает неоднозначность при изменении поведения VS Code по определению пути URL.

Рекомендации по возможностям модели

Агентным сценариям Copilot нужна модель с инструментами. Для надёжной работы агентов через Model Gate:

  • выбирайте модель с проверенной поддержкой вызова инструментов/функций;
  • выбирайте модель с поддержкой потоковых ответов;
  • для вложенных изображений используйте модель с проверенной поддержкой vision/входных изображений и задайте для неё "vision": true;
  • для агентной работы со всем репозиторием выбирайте большой контекст; GitHub сейчас рекомендует не менее 128k токенов контекста для собственных моделей Copilot CLI;
  • не заявляйте toolCalling, vision, рассуждения, контекст или ограничения вывода выше фактических возможностей выбранной модели Model Gate;
  • проверьте конкретную модель в Playground Model Gate перед включением для большой команды.

При ручной настройке contextWindow, maxInputTokens или maxOutputTokens в VS Code используйте известные лимиты выбранной модели со страницы /models после входа; не угадывайте их.

Настройка VS CodeDetails модели в аккаунте
contextWindowContext
maxInputTokensMax input
maxOutputTokensMax output

Начиная с 12.0.0, GET /v1/models возвращает только id, object, created и owned_by. Он не возвращает context_window, max_input_tokens, max_output_tokens или флаги возможностей; расширенный ответ временно отключён. Поэтому GET для обнаружения моделей не может заполнить эти необязательные настройки клиента.

Недоступный или нулевой настроенный лимит не означает фактическую ёмкость в ноль токенов. Оставляйте необязательное переопределение незаданным, если значение не опубликовано. Вызов инструментов, vision и streaming должны соответствовать поддерживаемым возможностям модели аккаунта и результату проверки интеграции, а не предположению по ID.

Вспомогательные модели в VS Code

VS Code также использует небольшие фоновые модели для заголовков, сводок, сообщений коммитов, предложений переименования и определения намерения.

При использовании Model Gate BYOK без модели Copilot на стороне GitHub настройте:

chat.utilityModel
chat.utilitySmallModel

Выберите быструю и недорогую модель Model Gate для chat.utilitySmallModel. Обычно нет смысла оплачивать самую большую модель рассуждений ради сообщений коммитов и других лёгких вспомогательных задач.

Параметр chat.byokUtilityModelDefault также определяет, будут ли вспомогательные задачи использовать выбранную основную BYOK-модель агента, вспомогательные модели GitHub Copilot или останутся без модели по умолчанию.

Copilot CLI

GitHub Copilot CLI поддерживает собственных OpenAI-совместимых поставщиков через переменные окружения.

Linux или macOS

export COPILOT_PROVIDER_TYPE="openai"
export COPILOT_PROVIDER_BASE_URL="https://api.model-gate.com/v1"
export COPILOT_PROVIDER_API_KEY="mg_live_..."
export COPILOT_MODEL="MODEL_ID"

copilot

Windows PowerShell

$env:COPILOT_PROVIDER_TYPE = "openai"
$env:COPILOT_PROVIDER_BASE_URL = "https://api.model-gate.com/v1"
$env:COPILOT_PROVIDER_API_KEY = "mg_live_..."
$env:COPILOT_MODEL = "MODEL_ID"

copilot

Для Copilot CLI выбранная модель должна поддерживать вызов инструментов и потоковые ответы. Используйте активную модель или псевдоним Model Gate и проверьте их до сохранения постоянной настройки.

Не помещайте API-ключ в историю оболочки, файл репозитория или сохранённый в репозитории .env. По возможности используйте хранилище учётных данных ОС, защищённое окружение оболочки или менеджер секретов организации.

Copilot Business и Enterprise

GitHub также поддерживает собственные модели организаций и предприятий через BYOK. Сейчас GitHub указывает OpenAI-совместимых поставщиков как поддерживаемую категорию собственных моделей. Эта возможность уровня организации управляется политиками GitHub и на разных поверхностях Copilot может находиться в предварительном доступе.

Для управляемой организации:

  1. Включите политику GitHub custom models / BYOK, требуемую вашим планом Copilot.
  2. Добавьте собственного OpenAI-совместимого поставщика и модель в настройках моделей Copilot организации или предприятия.
  3. Используйте отдельный API-ключ Model Gate с минимально необходимыми правами и лимитами Model Gate.
  4. Укажите эндпоинт Model Gate и ID модели, доступной аккаунту.
  5. Проверьте модель в чатах и агентных сценариях Copilot, прежде чем открывать её всем участникам в списке моделей организации.

По мере развития возможности GitHub может менять интерфейс собственных моделей организации. Для точных названий полей ориентируйтесь на текущий административный интерфейс GitHub, а не снимки старого выпуска.

Рекомендации по безопасности и стоимости

  • Создайте отдельный ключ Model Gate для Copilot, не используйте общий универсальный ключ.
  • Настройте RPM, одновременность, лимит расходов или групповую политику Business с учётом трафика агентной разработки.
  • Немедленно перевыпустите ключ, если он попал в репозиторий, чат, журнал или обращение.
  • Никогда не сохраняйте mg_live_... в репозитории внутри chatLanguageModels.json; пусть VS Code хранит ключ или ссылается на ввод/секрет.
  • Оставляйте подтверждение разрушительных действий инструментов включённым, если среда разработки намеренно не изолирована.
  • Агентный режим может выполнить много обращений к модели и инструментам по одной инструкции. Задайте лимиты расходов Model Gate перед включением дорогих моделей рассуждений для больших репозиториев.
  • Используйте меньшую вспомогательную модель для фона, а крупные модели рассуждений — для планирования, отладки и сложных изменений.
  • При неожиданных расходах, задержках, ограничениях частоты или ошибках поставщика проверяйте Request History Model Gate.

Что BYOK заменяет и чего не заменяет

Модель Model Gate BYOK может обслуживать чат VS Code, агентные сценарии, инструменты и вспомогательные задачи при поддержке необходимых возможностей.

Она не заменяет автоматически все функции GitHub Copilot. В зависимости от версии VS Code/GitHub стандартные встроенные дополнения кода, семантический поиск, embeddings и другие функции на стороне GitHub могут по-прежнему требовать аутентификацию GitHub, план Copilot или инфраструктуру GitHub.

Используйте Model Gate BYOK для управления маршрутом чат-/агентной модели и её оплатой, а не исходя из предположения, что весь сетевой трафик GitHub Copilot идёт через Model Gate.

Проверить Model Gate перед Copilot

Responses

curl https://api.model-gate.com/v1/responses \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "input": "Reply with exactly: Model Gate OK"
  }'

Chat Completions

curl https://api.model-gate.com/v1/chat/completions \
  -H "Authorization: Bearer mg_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "MODEL_ID",
    "messages": [{"role": "user", "content": "Reply with exactly: Model Gate OK"}]
  }'

Если эти запросы не проходят, исправьте API-ключ, модель или политику Model Gate до отладки Copilot.

Устранение проблем

ПроблемаРешение
Модель не появляется в агентном режимеПроверьте настройку вызова инструментов и фактическую поддержку функций/инструментов моделью Model Gate. После изменения поставщика перезапустите VS Code.
401 invalid_api_keyЗаново введите или перевыпустите отдельный ключ Model Gate. Проверьте отправку Copilot заголовка Authorization: Bearer ....
404 или неверный эндпоинтДля Responses используйте полный https://api.model-gate.com/v1/responses; для Chat Completions — /v1/chat/completions.
Модель не найденаЗапросите /v1/models для канонического ID либо используйте активный псевдоним, подтверждённый администратором.
Агент не использует инструментыВыберите модель с проверенным вызовом инструментов/функций. Copilot CLI также требует streaming.
Изображение игнорируется или отклоняетсяИспользуйте модель с проверенной поддержкой входных изображений/vision и включите vision: true только для неё.
Вспомогательные функции не работают при использовании только BYOKНастройте chat.utilityModel и chat.utilitySmallModel на доступные BYOK-модели.
Встроенные дополнения кода всё ещё используют GitHub или требуют входЭто ожидаемо: BYOK в основном управляет трафиком чат-, агентных и вспомогательных моделей, а не всеми функциями Copilot.
Неожиданно дорогие запросыВыберите меньшую модель для вспомогательных задач, при необходимости уменьшите глубину рассуждений и настройте лимиты расходов/RPM/одновременности Model Gate.

Актуальные источники поставщиков

GitHub и VS Code могут менять настройку BYOK между выпусками. Для актуального поведения проверяйте:

  • https://code.visualstudio.com/docs/agent-customization/language-models
  • https://docs.github.com/en/copilot/concepts/models/bring-your-own-key
  • https://docs.github.com/en/copilot/how-tos/copilot-cli/customize-copilot/use-byok-models
  • https://docs.github.com/en/copilot/how-tos/administer-copilot/manage-for-organization/enable-custom-models

Расширения с фиксированным эндпоинтом

Для разрешённого локального расширения без настройки собственного эндпоинта см. Переопределение эндпоинта в Windows и Linux. Этот необязательный вариант mitmproxy требует совместимых запросов, ключа Model Gate и явного доверия локальному CA; он не заменяет аутентификацию Copilot и не обходит закрепление сертификата. Предпочтительны штатные настройки BYOK выше.

Значение 0 в метаданных лимитов модели аккаунта означает неизвестное или ненастроенное ограничение, а не пригодный бюджет в ноль токенов. Минимальный Model API эти лимиты не возвращает.