Перейти к контенту

MAC-SQL: Мультиагентное совместное преобразование текста в SQL

· 6 мин чтения
Mike Thrift
Mike Thrift
Marketing Manager

MAC-SQL появилась в декабре 2023 года как наиболее явный агентно-ориентированный ответ на проблему преобразования текста в SQL: вместо одного промпта, генерирующего один запрос, три специализированных агента совместно работают над выбором релевантной под-схемы, декомпозицией вопроса и исправлением SQL после выполнения. Я изучаю эту статью, так как две предыдущие записи охватывали BIRD (бенчмарк, который MAC-SQL возглавил на момент публикации) и DIN-SQL (базовый уровень декомпозиции, который MAC-SQL расширяет), и возникает естественный вопрос: дает ли мультиагентная оболочка что-то конкретное поверх этих основ.

Статья

2026-06-08-mac-sql-multi-agent-collaborative-text-to-sql

«MAC-SQL: Мультиагентная среда для совместного преобразования текста в SQL» (Wang et al., COLING 2025) нацелена на сценарий отказа, который BIRD выявил в ранних методах с одним промптом: большие базы данных с зашумленными схемами и сложными многошаговыми вопросами перегружают модели, пытающиеся рассуждать обо всем сразу.

Архитектура состоит из трех агентов. Selector сужает большую базу данных до релевантной под-схемы, отфильтровывая ненужные таблицы и столбцы перед началом генерации SQL. Decomposer является основным движком — он разбивает сложные вопросы на естественном языке на подзадачи и инкрементально генерирует SQL с использованием рассуждений в цепочке мыслей (chain-of-thought) на нескольких примерах. Refiner выполняет кандидатный SQL в реальной базе данных, читает сообщения об ошибках дословно и итеративно исправляет запрос до достижения лимита повторных попыток. Не все три агента активируются при каждом запросе; более простые задачи пропускают Selector или Refiner на основе сигналов сложности.

Авторы также дообучают SQL-Llama (Code Llama 7B) на результатах, полученных в этой среде, предоставляя меньший вариант с открытым исходным кодом.

Ключевые идеи

  • Сокращение схемы перед генерацией: Selector фильтрует базу данных до релевантной под-схемы перед тем, как Decomposer напишет SQL. Абляция подтверждает прирост на +2,11 процентных пункта в BIRD dev — реально, но скромно.
  • Исправление на основе выполнения: Refiner считывает фактические сообщения об ошибках базы данных и корректирует SQL. Это самый значительный вклад в абляционном исследовании: его удаление снижает точность BIRD dev на 4,63 пункта, что больше, чем удаление Selector (−2,11) или даже Decomposer (−3,85).
  • Условная диспетчеризация агентов: Перенаправление простых запросов мимо Selector и Refiner экономит токены без ущерба для точности в легких случаях.
  • Разрыв дистилляции в открытом коде: SQL-Llama (7B) достигает 43,94% на BIRD dev против базового уровня GPT-4 в 46,35%. Разрыв не является драматическим, учитывая разницу в количестве параметров, но дообученная модель 7B все еще отстает от полного результата теста GPT-4+MAC-SQL (59,59%) более чем на 15 пунктов.
  • Результат теста BIRD: 59,59% точности выполнения, что позволило занять первое место в таблице лидеров на момент публикации и превзойти DAIL-SQL+GPT-4 (57,41%) на 2,18 пункта.

Что подтвердилось, а что нет

Refiner — лучшая идея здесь, и абляционное исследование это подтверждает. Агент, который читает реальное сообщение об ошибке базы данных и исправляет свой собственный SQL, делает нечто более принципиальное, чем LLM, сомневающаяся в себе в вакууме — это принцип «интерактивной критики с инструментами» (CRITIC), примененный напрямую и конкретно к обратной связи при выполнении SQL.

Вклад Selector положителен, но невелик. Для баз данных с сотнями таблиц он, вероятно, имеет большее значение; для типичной схемы BIRD он маргинален, и в статье не сообщается, как часто срабатывает Selector или какова его точность в сохранении релевантных столбцов — это «черный ящик» с единственным агрегированным числом.

Decomposer является инкрементальным улучшением по сравнению с DIN-SQL. DIN-SQL уже разбивал запросы на подзадачи с самокоррекцией; MAC-SQL переупаковывает это в виде мультиагентного диалога. Архитектурное разделение на три именованных агента ближе к выбору дизайна программного обеспечения, чем к новому алгоритму логического вывода. Превосходит ли структура промптов из трех агентов одного агента с более длинным промптом при равном количестве токенов — не проверялось. Признанные ограничения — промпты «не были глубоко проработаны», а дообучение ограничено моделью 7B — реальны, но более существенным упущением является отсутствие абляционного исследования длины промпта в сравнении с архитектурой.

Временной контекст важен для калибровки. Результат MAC-SQL в 59,59% в тесте BIRD был передовым в декабре 2023 года. К середине 2025 года таблица лидеров BIRD показывает системы, преодолевшие отметку в 81%. Конкретные идеи — фильтрация под-схемы, декомпозиция вопросов, повторное выполнение — были поглощены и расширены последующими работами, использующими обучение с упором на рассуждения (reasoning-first), RLVR и более богатые цепочки мыслей. MAC-SQL как артефакт выглядит устаревшим; MAC-SQL как архитектурный паттерн остается актуальным.

Почему это важно для финансового ИИ

Beancount использует beanquery — язык запросов, близкий к SQL — в качестве основного программного интерфейса для данных учетной книги. Реальный файл Beancount за несколько лет имеет схему, включающую десятки счетов, организованных в иерархию, несколько валют, метаданные и расчетные столбцы баланса. Это именно та проблема большой и зашумленной схемы, на которую нацелен Selector.

Decomposer напрямую применим к типам запросов, которые на самом деле задают пользователи: «Каковы были мои общие расходы на питание в EUR в третьем квартале 2024 года, исключая возмещенные транзакции, с разбивкой по месяцам?» — это задача декомпозиции: фильтрация по префиксу счета, фильтрация по диапазону дат, исключение помеченных транзакций, агрегация по месяцам. Refiner также легко переносится: перед фиксацией сгенерированной записи Beancount агент мог бы выполнить её вхолостую через парсер beancount, получить ошибки синтаксиса или баланса и внести исправления. Цикл обратной связи по выполнению, который демонстрирует MAC-SQL, — это тот же цикл, который необходим уровню безопасности при записи данных.

Результат дистилляции в открытый код служит предостережением: дообучение модели 7B для аппроксимации конвейера на базе GPT-4 дает модель, которая все еще сильно отстает. Если Bean Labs создаст локальную модель для генерации запросов к учетной книге, разрыв в MAC-SQL предполагает, что малым моделям требуются специфические для предметной области обучающие данные, выходящие далеко за рамки того, что дает дообучение общего назначения.

Что почитать дальше

  • DAIL-SQL (Gao et al., 2023, arXiv:2308.15363) — систематический бенчмарк по разработке промптов, который MAC-SQL напрямую улучшает в BIRD; стоит прочитать ради контролируемого исследования представления схемы и выбора примеров для few-shot.
  • SQLFixAgent (arXiv:2406.13408) — расширяет исправление SQL на основе выполнения в мультиагентную систему с проверкой согласованности, прямой потомок идеи Refiner в MAC-SQL.
  • BIRD-Critic / SWE-SQL (2025) — новый трек рассуждений BIRD, требующий понимания ошибок выполнения, естественная эволюция того, что делал Refiner в MAC-SQL.