ГАЙД 2026 · ПРОТОКОЛЫ АГЕНТОВ

Agent Client Protocol: как подключить любой coding-агент к любому редактору

ACP — это Language Server Protocol для coding-агентов: редактор запускает агент подпроцессом и общается с ним по JSON-RPC. Разбираем, что внутри, кто поддерживает и как подключить свой агент.

ГайдПротоколы агентовMCP · ACP · A2A
Уровень СреднийВремя на подключение 30–60 минутОбновлено 31.10.2026

Если у вас три редактора и пять coding-агентов, без общего протокола получается пятнадцать интеграций. Agent Client Protocol (ACP) сводит это к трём плюс пяти: клиент реализует одну сторону, агент — другую, и любая пара работает вместе. Ниже — как протокол устроен, чем отличается от MCP и A2A, кого он уже поддерживает и как подключить агент к ACP-клиенту на практике.

Короткий ответ
ACP соединяет редактор (клиент) и coding-агент (harness): клиент запускает агент подпроцессом и говорит с ним по JSON-RPC через stdin/stdout. MCP отвечает за инструменты агента, A2A — за общение агентов между собой. Если задача — «запускать Claude Code, Codex и Gemini CLI из одного окна», нужен именно ACP.
49
Агентов в офиц. списке
agentclientprotocol.com, 31.10.2026
153
Клиентов и коннекторов
там же, 8 категорий
43
Агентов в ACP Registry
реестр с установкой в один клик
4 554
Звёзд у ядра протокола
GitHub API, 31.10.2026

01Что такое ACP и какую проблему он решает

Agent Client Protocol стандартизует связку «редактор ↔ coding-агент». Идея та же, что у Language Server Protocol: раньше каждый редактор писал интеграцию под каждый язык, теперь пишет одну — под протокол. С агентами всё повторяется: Cursor, Zed, JetBrains, Neovim, Obsidian и десятки других клиентов иначе вынуждены поддерживать Claude Code, Codex, Gemini CLI, OpenCode и остальных по отдельности.

Протокол развивают Zed Industries и JetBrains, ядро написано на Rust и открыто под Apache-2.0. Спецификация живёт в двух ветках: стабильная v1 (последняя схема — v1.28.0 от 30 октября 2026 года) и черновик v2 с переработанным жизненным циклом промпта. У протокола есть библиотеки для Kotlin, Java, Python, Rust и TypeScript и отдельный набор тестов, которым проверяют реализацию агента.

Три уровня связки
Клиент (редактор)Zed, JetBrains, Neovim, Obsidian, T3 Code: рисует чат и диффы, спрашивает разрешения, отдаёт до…кто отвечает за UXACP-транспортJSON-RPC 2.0 поверх stdin/stdout: инициализация, сессии, стрим уведомлений, отменакто за совместимостьАгент (harness)Claude Agent, Codex CLI, Gemini CLI, OpenCode, OpenHands: планирует, правит файлы, запускает ко…кто за работу с кодом
Почему это стало актуальным именно сейчас
Харнессы размножились: только в официальном списке ACP — 49 агентов, а клиентов и коннекторов — 153. Пользователь больше не выбирает «один редактор навсегда» и «один агент навсегда»: он хочет держать подписку на Claude Code и при этом смотреть на задачу в привычном редакторе.

02Что внутри протокола

Цикл простой: клиент поднимает агент как дочерний процесс, стороны обмениваются возможностями, затем открывается сессия и начинается ход промпта. На одно соединение можно открыть несколько сессий — это и есть «несколько параллельных задач в одном окне», а не маркетинговое обещание.

Путь одного запроса
1initializeРукопожатие: версия протокола и возможности обеих сторон2session/newСоздание сессии, рабочая директория, конфиг MCP-серверов3session/promptПромпт уходит агенту, ответ течёт потоком уведомлений4tool callАгент просит разрешение на файл, терминал или MCP-инструментСхема по официальной архитектуре ACP: транспорт stdio, MCP-конфиг передаётся агенту на старте сессии
Элемент протоколаНаправлениеЗачем нужен
initializeклиент → агентсогласовать версию и набор возможностей
session/new · session/listклиент → агентсессии и их восстановление
session/promptклиент → агентпоставить задачу и получить поток ответа
tool call updateагент → клиентпоказать, что именно выполняется, в реальном времени
request_permissionагент → клиентподтверждение опасных действий
fs/read_text_file · terminal/createагент → клиентфайлы и терминал руками клиента, а не в обход
session/cancelклиент → агентостановить работу без убийства процесса
Методы v1 по документации agentclientprotocol.com; в v2 часть названий меняется — см. раздел миграции.

Важная деталь: файловую систему и терминал агенту даёт клиент. Агент не получает root в вашей системе «по умолчанию» — он просит клиент прочитать файл или запустить команду, а клиент может отказать или показать дифф. Это же место, где ломается безопасность: если клиент разрешает всё без вопросов, протокол не спасёт.

MCP при этом никуда не исчезает. Клиент передаёт агенту конфигурацию своих MCP-серверов, и агент подключается к ним напрямую — ACP лишь доставляет конфиг. Если редактор сам хочет выставить свои инструменты как MCP-сервер, он поднимает маленький прокси: гонять MCP и ACP по одному сокету не нужно.

03ACP, MCP и A2A: не конкуренты

Три протокола часто смешивают в одну кучу, хотя они закрывают разные оси. MCP — «агент ↔ инструменты и данные». ACP — «редактор ↔ агент». A2A — «агент ↔ агент», обмен задачами между независимыми системами. В рабочем стеке 2026 года они сосуществуют: клиент по ACP поднимает агента, агент по MCP берёт инструменты, а по A2A зовёт соседнего агента.

ПротоколЧто соединяетТранспортКогда нужен
MCPагент и инструменты/данныеJSON-RPC, stdio или HTTPподключить базу, API, файлы
ACPредактор и coding-агентJSON-RPC поверх stdioзапускать разные агенты из одного клиента
A2Aагент и агентHTTP, Agent Cardделегировать задачу другому сервису
Оси разные: наличие MCP-сервера не делает агент совместимым с редактором, и наоборот.
Типичная путаница
«У нас есть MCP-сервер, значит мы поддерживаем ACP» — нет. MCP-сервер даёт агенту инструменты, но не даёт клиенту возможности запустить этот агент, показать его план и попросить разрешение на вызов. Это отдельная реализация.

04Кто поддерживает ACP в 2026 году

Список агентов уже не про экзотику: Claude Agent (через адаптер Zed), Codex CLI (через codex-acp), Gemini CLI, Cursor, GitHub Copilot (публичная превью), Goose, OpenCode, OpenHands, Cline, Qwen Code, Kimi CLI, Junie от JetBrains, Kiro CLI, Mistral Vibe, Hermes Agent от Nous Research. Часть подключается нативно, часть — через ACP-обёртку: это нормальная практика, а не признак «недоделанности».

Масштаб экосистемы: звёзды на GitHubРепозитории агентов и клиентов, поддерживающих ACP
0★75 000★150 000★Codex (OpenAI)132 463★Gemini CLI108 651★OpenHands92 357★Cline71 111★T3 Code34 982★Ядро ACP4 554★
Снято 31.10.2026 через GitHub API. Звёзды показывают размер аудитории, а не качество ACP-интеграции: у Codex она идёт через отдельный адаптер.

Клиентов ещё больше, и они разошлись по категориям: от IDE (Zed, JetBrains, Qt Creator, Sublime Text, Pulsar) до мессенджеров и мобильных приложений. T3 Code — показательный пример: приложение не поставляет модели, оно управляет уже установленными и залогиненными агентами, то есть работает как «поверхность управления харнессами».

Категория клиентовСколькоПримеры
Редакторы и IDE23Zed, JetBrains, Qt Creator, Sublime Text, Exo для VS Code
Desktop и Web65T3 Code, Necoder, AionUi, Oleafly
Мессенджеры18боты, подключающие ACP-агентов в чат
Мобильные клиенты13телефон как пульт к агенту на рабочей машине
CLI и TUI10acpx, Toad, Nori CLI, Hash
Фреймворки и коннекторы20мосты к A2A, MCP-шлюзам и оркестраторам
Разбивка официального списка клиентов ACP на 31.10.2026 (153 позиции, включая коннекторы).
Активность разработки ядра протоколаКоммиты в agentclientprotocol/agent-client-protocol по 4-недельным блокам
0125250375500нед. 1–49–1217–2025–2833–3641–4449–52525432132221179183180223213199161429
GitHub stats/participation, 52 недели до 31.10.2026, сгруппировано по 4 недели (слева — самые старые). Последний блок — 429 коммитов: работа над v2 и реестром.

05Как подключить агент: практика

Минимальный сценарий — взять клиент, который уже умеет ACP, и подключить к нему агент. Zed, JetBrains AI Assistant и Neovim через CodeCompanion поддерживают это из коробки; для остальных есть сторонние плагины.

Четыре шага до рабочей сессии
1
Выберите клиент
Для проверки проще всего Zed или Neovim с CodeCompanion: там ACP уже встроен, ставить нечего.
terminalcopy
# проверьте версию клиента — ACP-поддержка появилась не сразу
zed --version
2
Поставьте агент из реестра
ACP Registry — курируемый список агентов с поддержкой аутентификации. Установка в один клик из клиента, который умеет читать реестр.
terminalcopy
# либо вручную: агент должен уметь запускаться в ACP-режиме
pip install agent-client-protocol   # Python-библиотека для своей реализации
3
Пропишите команду запуска
Клиент запускает агент подпроцессом. В конфиге клиента указывается команда и аргументы — например, запуск агента в ACP-режиме.
settings.jsoncopy
{
  "agent_servers": {
    "my-agent": {
      "command": "my-agent",
      "args": ["--acp"]
    }
  }
}
4
Проверьте разрешения
Откройте сессию и попросите агент прочитать файл: клиент должен показать запрос на доступ. Если он молча всё разрешает — настройте политику до работы с реальным репозиторием.
terminalcopy
# в чате клиента: «прочитай README и предложи правку»
# ожидаемо: запрос разрешения на fs/read_text_file
initialize.jsonjson
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "initialize",
  "params": {
    "protocolVersion": 1,
    "clientCapabilities": {
      "fs": { "readTextFile": true, "writeTextFile": true },
      "terminal": true
    }
  }
}

Если вы пишете агент, а не подключаете готовый, начните с библиотеки: реализация на Python или TypeScript закрывает транспорт и типы сообщений, вам остаётся обработка промптов и вызовов инструментов. Перед публикацией прогоните официальный набор тестов — он проверяет реализацию по пунктам спецификации, а не «на глаз».

Что важно не сломать
Агент получает доступ к вашим файлам и терминалу через клиент. Не запускайте ACP-агент на чужом репозитории без ревью, не выдавайте авторазрешение на запись и держите MCP-серверы с секретами отдельно от публичных проектов. Протокол стандартизует общение, но не модель доверия.

06Ограничения и подводные камни

  • Версии расходятся. Стабильная v1 и черновик v2 отличаются жизненным циклом промпта; при обновлении клиента проверяйте, какую версию он объявляет при initialize.
  • Список ≠ качество. 153 клиента включают коннекторы и эксперименты: смотрите, поддерживает ли конкретный клиент нужные вам методы, а не только факт «есть ACP».
  • Адаптеры добавляют слой. Codex и Claude подключаются через отдельные обёртки — при обновлении агента сначала обновляйте адаптер.
  • Протокол не решает биллинг и песочницу. ACP не продаёт токены и не изолирует выполнение: подписка остаётся у вендора, изоляция — задача клиента или контейнера.
РискКак проявляетсяЧто делать
Несовпадение версийсессия открывается, но промпт не уходитсверить protocolVersion в initialize
Слишком широкие праваагент правит файлы без запросавключить подтверждения, работать в ветке
Устаревший адаптерагент «не виден» в списке клиентаобновить обёртку codex-acp / claude-agent-acp
Секреты в MCP-конфигеключи уезжают в проект вместе с конфигомпеременные окружения вместо литералов
Практика первых подключений: почти все сбои — про версии и права, а не про сам протокол.

Частые вопросы

Agent Client Protocol — это то же самое, что MCP?
Нет. MCP описывает, как агент получает инструменты и данные. ACP описывает, как редактор запускает агента и обменивается с ним сообщениями: сессии, поток ответа, запросы разрешений, доступ к файлам и терминалу. В рабочем стеке они используются вместе: клиент по ACP поднимает агента и передаёт ему конфиг MCP-серверов.
Нужен ли ACP, если я работаю в одном редакторе с одним агентом?
Скорее нет. Выгода появляется, когда агентов или клиентов больше одного: переключение между Claude Code, Codex и Gemini CLI в одном окне, единая история сессий, одинаковые запросы разрешений. Для одной связки «редактор + агент» нативная интеграция обычно проще.
Какие редакторы поддерживают ACP прямо сейчас?
В официальном списке клиентов — Zed, JetBrains, Qt Creator, Sublime Text, Pulsar, Neovim (через CodeCompanion, agentic.nvim, avante.nvim), Obsidian (несколько плагинов), Emacs (agent-shell.el) и десятки менее известных клиентов. Полный перечень — в разделе Clients на agentclientprotocol.com.
Можно ли подключить свой самописный агент?
Да. Достаточно реализовать сторону агента: обработку initialize, создание сессии, приём промпта и стрим уведомлений, плюс запросы разрешений на инструменты. Для Python, TypeScript, Rust, Kotlin и Java есть официальные библиотеки, а набор тестов проверяет соответствие спецификации.
Это безопасно — давать агенту доступ к терминалу?
Протокол предполагает, что клиент контролирует доступ: агент просит, клиент разрешает или отказывает. Безопасность определяется политикой клиента и вашей дисциплиной: отдельная ветка, подтверждения на запись, отсутствие секретов в конфиге. Сам ACP песочницу не создаёт.

Источники и официальные ссылки

Разбираетесь в стеке агентов?
Сравните харнессы по одним критериям или посмотрите, как связать ACP с A2A и MCP в одном пайплайне.