Дата публикации
coding

GitHub Copilot CLI как ACP‑сервер: как превратить Copilot в своего кодящего агента

Что нового

GitHub научил Copilot CLI работать как сервер, совместимый с Agent Client Protocol (ACP). Это не просто автодополнение в терминале, а полноценный бэкенд‑агент, к которому можно подключать любые инструменты.

Ключевые новшества:

  • Режим ACP‑сервера в Copilot CLI
    Copilot CLI теперь можно запускать в режиме сервера по стандарту ACP. Он принимает запросы от клиентов (IDE, скрипты, CI/CD) и отвечает в едином формате.

  • Два режима подключения

    • stdio — общение через stdin/stdout. Подходит для IDE и локальных инструментов.
    • TCP — сетевой режим для удалённых и распределённых систем.
  • Стандартизированный протокол вместо кастомных интеграций
    Раньше каждый редактор и каждый ИИ‑ассистент требовали отдельной интеграции. ACP вводит единый протокол: любой клиент может разговаривать с любым агентом, который поддерживает ACP.

  • Потоковые ответы и управление сессиями
    Ответы приходят кусками (streaming), поверх NDJSON‑потоков. Можно строить интерфейсы с «живыми» ответами и управлять жизненным циклом сессий.

  • Встроенная поддержка инструментов и прав
    Агент может вызывать внешние инструменты (например, запускать тесты или линтеры), а клиент управляет разрешениями и границами доступа.

Цены, лимиты контекста и бенчмарки производительности GitHub в этом анонсе не раскрывает. Для работы нужен активный платный доступ к GitHub Copilot.

Как это работает

Что такое ACP

Agent Client Protocol — открытый стандарт, который описывает, как клиент (IDE, CLI‑утилита, веб‑панель) общается с ИИ‑агентом.

До ACP всё выглядело так:

  • каждый IDE писал свою интеграцию под каждого ассистента;
  • каждый ИИ‑агент держал свой API под каждый редактор.

ACP вводит единый «язык общения» между клиентом и агентом:

  • формат сообщений клиент → агент и агент → клиент;
  • потоковая передача ответов;
  • механизм запуска инструментов с контролем прав;
  • сессии с контекстом (репозиторий, файлы, история диалога);
  • координация нескольких агентов в одной системе.

Ключевая идея: любой редактор может говорить с любым агентом, если оба поддерживают ACP.

Как вписывается GitHub Copilot CLI

Copilot CLI в режиме ACP‑сервера — это ИИ‑агент, который:

  • принимает запросы по протоколу ACP;
  • использует свои внутренние модели (те же, что и обычный Copilot CLI);
  • имеет доступ к файловой системе, репозиторию и внешним инструментам (если вы ему это разрешите).

Архитектура:

  • Клиент — ваш инструмент: IDE‑плагин, скрипт на TypeScript/Python, CI‑джоб, веб‑панель;
  • ACP — слой протокола: NDJSON‑сообщения, события, сессии;
  • Copilot CLI — агент, который генерирует код, объясняет, рефакторит, вызывает инструменты;
  • Система — файлы проекта, git‑репозиторий, тесты, любые CLI‑утилиты.

Транспорт:

  • в stdio‑режиме клиент общается с Copilot через stdin/stdout процесса;
  • в TCP‑режиме — по сети, что удобно для CI/CD и удалённых агентов.

Обмен идёт в виде NDJSON‑строк, каждая строка — отдельное событие протокола (создание сессии, сообщение, фрагмент ответа, завершение).

Жизненный цикл запроса

Типичный сценарий работы через ACP:

  1. Клиент запускает Copilot CLI в режиме ACP‑сервера.
  2. Устанавливает соединение (stdio или TCP).
  3. Создаёт сессию: указывает рабочую директорию, контекст репозитория и т.п.
  4. Отправляет промпт (например, «сгенерируй тесты для этого файла»).
  5. Copilot обрабатывает запрос и начинает стримить ответ по частям.
  6. При необходимости агент запрашивает право вызвать инструмент (например, запустить npm test).
  7. Клиент подтверждает или отклоняет этот вызов.
  8. После завершения задачи клиент может закрыть сессию или продолжить диалог с уже набранным контекстом.

ACP поддерживает текстовые и мультимодальные запросы (если агент это умеет), инкрементальные ответы, отмену запросов и управление несколькими сессиями параллельно.

Как это запустить

Исходный материал описывает общий процесс, без конкретных CLI‑команд. Базовые шаги такие:

  1. Оформите подписку на GitHub Copilot.
    Без активной подписки Copilot CLI работать не будет.

  2. Установите GitHub Copilot CLI.
    GitHub предлагает установку через npm, brew или другие менеджеры пакетов — точная команда зависит от вашей платформы.

  3. Аутентифицируйтесь.
    Запустите Copilot CLI и пройдите процедуру логина через GitHub‑аккаунт.

  4. Запустите Copilot CLI в режиме ACP.
    В документации GitHub указано, что для этого нужно передать специальный флаг при запуске, который включает ACP‑режим и выбирает транспорт (stdio или TCP). Конкретный флаг GitHub фиксирует в своей документации по Copilot CLI.

  5. Подключите клиент.
    Один из вариантов — использовать TypeScript‑SDK для ACP:

    • запустить Copilot CLI как процесс;
    • создать потоки ввода/вывода;
    • инициализировать ACP‑клиент, передав эти потоки;
    • отправить промпт и подписаться на стриминг‑ответы.

Под капотом ACP использует NDJSON‑потоки по stdin/stdout или по сети. Клиент читает каждую строку как отдельное событие, разбирает JSON и обновляет интерфейс или пайплайн.

Что это значит для вас

Когда это реально полезно

1. Свой «умный» редактор или IDE‑плагин
Если вы разрабатываете собственный редактор кода, терминальный UI или расширение для существующего IDE, ACP‑режим Copilot CLI даёт:

  • единый API для общения с ИИ‑агентом;
  • потоковые ответы для inline‑подсказок и чат‑панелей;
  • доступ к файловой системе и репозиторию через Copilot, без написания своего бэкенда.

Вместо кастомной интеграции под конкретный API вы работаете с протоколом ACP. При желании можно будет подключить и других агентов, не переписывая клиент.

2. Автоматизация в CI/CD
Вы можете встроить Copilot как агента в пайплайн:

  • автогенерация тестов для изменённых файлов;
  • полуавтоматическое исправление типовых ошибок;
  • рефакторинг участков кода по заданным правилам;
  • генерация описаний pull‑request’ов.

ACP‑режим удобен тем, что Copilot работает как отдельный сервис, с которым общается ваш CI‑скрипт. TCP‑режим особенно полезен для распределённых пайплайнов.

3. Внутренние дев‑ассистенты и панели управления
Можно собрать внутренний инструмент для команды разработки:

  • веб‑интерфейс, который показывает код‑ревью от Copilot;
  • чат‑ассистент, который знает о вашем монорепозитории;
  • ChatOps‑бот в мессенджере для быстрой генерации патчей.

Все они будут подключаться к одному и тому же ACP‑серверу Copilot CLI.

4. Мультиагентные системы
ACP изначально проектировали с прицелом на несколько агентов. Вы можете строить сценарии, где:

  • Copilot отвечает за код и тесты;
  • другой агент анализирует архитектуру или безопасность;
  • управляющий слой распределяет задачи между ними.

Где ожидания лучше притормозить

  • Полная автономия пока иллюзорна.
    ACP и Copilot CLI позволяют строить автономные сценарии, но вам всё равно придётся проектировать пайплайны, контролировать права и следить за качеством кода.

  • Отладка может быть сложной.
    Потоки, асинхронные события и несколько агентов в одном процессе — это не «скрипт на 50 строк». Для сложных сценариев закладывайте время на логирование и трассировку.

  • Не замена человеку в критичных местах.
    Кодогенерацию, тесты и простые рефакторинги можно смело отдавать агенту. Без ревью человека — нет.

Доступность и ограничения для России

Copilot CLI и GitHub Copilot в целом работают через инфраструктуру GitHub. В некоторых регионах для доступа к GitHub и его ИИ‑сервисам пользователям приходится использовать VPN и зарубежные платёжные инструменты. Если у вас уже есть рабочая подписка на GitHub Copilot и доступ к GitHub не блокируется, дополнительных ограничений со стороны ACP‑режима нет.

Место на рынке

ACP — это не модель, а протокол. Copilot CLI в режиме ACP‑сервера — один из первых крупных агентов, который его поддерживает.

Прямых числовых сравнений с другими ассистентами (GPT‑4o, Claude 3.5, локальные LLM) по скорости, цене или качеству кода GitHub здесь не приводит. Но можно очертить позиционирование по функциям:

  • По роли в стеке

    • Обычные API вроде OpenAI GPT‑4o или Claude 3.5: вы напрямую шлёте промпты в HTTP‑endpoint и сами проектируете протокол общения.
    • Copilot CLI в режиме ACP: агент уже «обёрнут» в стандартный протокол, у вас есть сессии, стриминг, инструменты и мультиагентность из коробки.
  • По интеграциям

    • Классический путь: для каждого IDE и ассистента писать свой плагин.
    • С ACP: вы пишете один клиент под протокол и можете подключать Copilot CLI и других ACP‑агентов.
  • По уровню абстракции

    • Чистый HTTP‑API моделей — низкоуровневый вариант, всё управление состоянием и инструментами на вашей стороне.
    • ACP + Copilot CLI — более высокий уровень: протокол уже описывает сессии, события, инструменты и стриминг.

Если вам нужен прямой доступ к конкретной модели (например, GPT‑4o) для задач вне разработки, проще использовать её нативный API. Если задача — строить инструменты вокруг кода и dev‑процессов, ACP‑режим Copilot CLI даёт более удобную точку входа.

Для кого это особенно актуально

  • Разработчики инструментов и IDE‑плагинов.
    Можно добавить Copilot в свой продукт без написания собственного протокола и бэкенда.

  • Тимлиды и архитекторы.
    Есть шанс выстроить реальные ИИ‑потоки в разработке: от генерации кода до автоматизированных проверок в CI/CD.

  • Инженеры‑инфраструктурщики и DevOps.
    ACP‑режим Copilot CLI можно встроить в пайплайны и внутренние платформы разработки.

Если вы просто иногда просите Copilot дописать функцию в VS Code, ACP‑режим вам, скорее всего, не нужен. Это история для тех, кто строит инструменты поверх Copilot и хочет «подружить» несколько агентов и клиентов в одной экосистеме.


Читайте также