1. Блог
  2. Кодинг-агенты

Как собрать плагин VST3 или CLAP с помощью ИИ-агента для кодинга

ИИ-агент для кодинга может написать рабочий плагин VST3 или CLAP, но не по памяти. Агенты проваливаются на C++-фреймворках для аудио, придумывая имена, которые звучат правдоподобно, и написав код, который компилируется, но ломает аудиопоток. Решение — дать агенту настоящий API фреймворка, с которым можно сверяться, набор правил, которые нельзя угадать, и определение «готово», которое проверяет валидатор. Именно это Sonore SDK поставляет для Claude Code, Codex, Cursor и любого MCP-клиента. Из устоявшихся фреймворков для плагинов он единственный с официальным MCP-сервером: JUCE и iPlug2 поставляют файлы инструкций для агентов, но ничего, что агент мог бы запросить.

На этой странице

Почему агенты ошибаются в аудиоплагинах

Незнакомая C++-библиотека редко заставляет агента отказаться от работы. Она заставляет его импровизировать, а аудиоплагины наказывают за импровизацию тремя способами:

  1. Придуманные имена. Класс, которого должно быть, например CompressorPro, или настоящий класс, которому приписан метод из другого фреймворка. Код читается идеально и не компилируется.
  2. Код, который компилируется и всё равно неверен. Аллокация или блокировка внутри process(), который работает в аудиопотоке. Это работает на машине разработчика и отваливается под нагрузкой в чьей-то сессии.
  3. Правила, которые нигде не записаны в API. Лимитер с look-ahead, который не сообщает свою задержку, размазывает каждый параллельный микс, в котором стоит. Таблица параметров, переставленная в версии 1.1, загружает старые сессии в неправильные контролы. Ни один заголовок об этом не говорит.

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

Что нужно агенту вместо этого

Три вещи, каждая из которых отвечает на один из этих режимов сбоя:

Агенту нужно Потому что В Sonore SDK
Способ проверить, что имя существует Память выдаёт правдоподобные имена MCP-сервер, поиск которого покрывает все 766 публичных типов в 282 заголовках
Правила, которым должен следовать плагин Их нельзя прочитать из API Скилл и sonore_rules: сигнатуры process, задержка, что запрещено в аудиопотоке
Определение готовности «Компилируется» — не значит «работает» Сгенерированные проекты с самопроверкой и аудитом реального времени в ctest, готовые к валидаторам

Все три генерируются из заголовков SDK одним и тем же скриптом. Это важнее, чем кажется. Рукописная шпаргалка для агентов расходится с кодом в пределах одного релиза, и тогда она становится вторым источником придуманных имён. Здесь npm run verify:llms ломает сборку, если файлы расходятся с заголовками, а npm run verify:mcp проверяет, что поиск находит каждый публичный тип, так что «нет совпадений» от сервера — настоящий ответ, а не дыра в индексе.

Шесть инструментов MCP-сервера

Сервер запускается из локального клона по stdio, требует только Node.js, и каждый инструмент лишь читает файлы в клоне.

Инструмент Что отвечает
sonore_search Существует ли этот класс, функция, алиас или понятие и где. Слова совпадают в любом порядке, поэтому «ladder filter» находит LadderFilter.
sonore_declaration Настоящее объявление с комментарием, который объясняет, зачем оно нужно.
sonore_header Для чего нужен один заголовок, его публичные типы и строка include.
sonore_headers Все заголовки с однострочным описанием назначения.
sonore_example Полный рабочий плагин: эффект, инструмент, сайдчейн, aux-выходы, MIDI-выход, сэмплер, ревербератор, нативный редактор и многое другое.
sonore_rules Устройство плагина, какая сигнатура process делает инструмент, отчёт о задержке и что запрещено в аудиопотоке.

Пример разницы. По запросу CompressorPro сервер отвечает, что в SDK ничего не совпадает. По запросу «ladder filter» он возвращает LadderFilter и диодный лестничный фильтр с заголовками, в которых они находятся. Агент пишет второе, а не первое.

Установка

Клонируйте SDK, затем добавьте скилл и сервер в своего агента. Для Claude Code:

Terminal
git clone https://github.com/SonorieAI/sonore-sdk "$HOME/sonore-sdk"
npx skills add SonorieAI/sonore-sdk --skill sonore-sdk -a claude-code -g
claude mcp add --scope user sonore-sdk -- node "$HOME/sonore-sdk/scripts/mcp-server.mjs"

Для Codex используйте -a codex и codex mcp add. Cursor и Antigravity получают скилл через -a cursor или -a antigravity, а сервер — через файл конфигурации MCP. Кнопка «Установить скилл и MCP» на главной странице содержит точные команды для каждого агента. Если инструмент командной строки skills недоступен, то же самое делает копирование skills/sonore-sdk в папку скиллов агента.

Первый промпт, который работает

Будьте конкретны в описании плагина и скажите, что означает «готово»:

Text
Make a tape-style saturator plugin with Drive, Tone and Mix.
Start from a generated Sonore project. Look up every sonore:: name
before you use it. It is done when it builds, ctest passes, and
clap-validator and pluginval run clean.

Когда скилл загружен, агент сам следует рабочему процессу SDK: генерирует проект с помощью sonore_new_plugin.cmake, пишет DSP в единственный файл src/plugin.cpp, проверяет имена по ходу дела и собирает. Один исходный файл становится .clap, .vst3, Audio Unit на macOS, бандлом LV2 и автономным приложением, а тот же проект собирает AUv3 для iPhone и iPad и приложение для Android.

Что значит «готово»

Плагин, который компилируется, — это черновик. Сгенерированный проект даёт агенту три проверки, которые нужно пройти по порядку того, что они доказывают:

  1. Он собирается во все форматы из одной сборки.
  2. ctest проходит. Он запускает два теста. Флаг --verify автономного приложения рендерит звук офлайн и проверяет, что всё в порядке. В проекте, собранном из клона SDK, аудит реального времени (sonore_add_rt_test) подсчитывает каждую аллокацию в аудиопотоке на всех частотах дискретизации и размерах блока и падает при любой. SDK подчиняет свои собственные примеры той же планке: девять частот дискретизации от 8 кГц до 384 кГц, размеры блока от 1 до 8192, ноль аллокаций.
  3. Валидаторы проходят. clap-validator и pluginval загружают плагин так, как это делают хосты. Оба шаблона проекта проходят их на уровне строгости 10 pluginval в сгенерированном виде, поэтому провал означает, что проблему внёс агент.

Аудит и валидаторы ловят то, чего не видно при чтении кода, поэтому их стоит включать в промпт.

Что по-прежнему нужно вам

Агент с правильными инструментами пишет плагин, который загружается, проходит валидацию и не выделяет память в аудиопотоке. Он не может сказать, хорошо ли звучит сатуратор, правильно ли ощущается интерфейс в сессии или ведёт ли себя нужный вам хост. Прослушивание, вкус и тестирование в вашей DAW остаются за вами. То же касается форматов с привратниками: AAX требует соглашения разработчика с Avid и подписи PACE, которые никакой фреймворк выдать не может.

Пошаговую версию без агента читайте в Начало работы. О том, как SDK сравнивается с JUCE, iPlug2 и остальными, см. Фреймворки для аудиоплагинов: сравнение.

Источники

Вопросы

Могут ли ChatGPT, Claude или Cursor написать плагин VST3?

Да, если агент может проверить настоящий API фреймворка и собрать результат. Полагаясь на память, агенты придумывают имена классов и методов, которых нет во фреймворке, который они используют. С установленными MCP-сервером и скиллом Sonore SDK агент проверяет каждое имя, начинает с сгенерированного проекта и считает плагин готовым только тогда, когда он собирается и проходит валидаторы.

Что такое MCP-сервер Sonore SDK?

Сервер Model Context Protocol, который запускается локально из клона SDK по stdio и требует только Node.js. Его шесть инструментов только читают данные: проверяют, существует ли имя, показывают его настоящее объявление, описывают заголовок, перечисляют заголовки, возвращают полный пример плагина и излагают правила плагина. Он поддерживает MCP 2026-07-28 и более старое рукопожатие initialize.

Отправляет ли MCP-сервер мой код куда-либо?

Нет. Он читает только клон SDK на вашем компьютере: без сетевого доступа, без телеметрии и без инструмента, который записывает файлы.

С какими кодинг-агентами он работает?

Скилл использует формат Agent Skills, который читают Claude Code, Codex, Cursor и Antigravity. MCP-сервер работает с любым MCP-клиентом, включая настольное приложение ChatGPT через Codex.

Это бесплатно?

Да. Sonore SDK, его скилл и его MCP-сервер открыты под лицензией Apache License 2.0, которая разрешает закрытые и коммерческие плагины без ограничения по выручке, сборов и заставки.