MAC-SQL: Многоагентно сътрудничество за Text-to-SQL
MAC-SQL се появи през декември 2023 г. като най-явно ориентирания към агенти отговор на проблема text-to-SQL: вместо един промпт да генерира една заявка, три специализирани агента си сътрудничат, за да изберат подходяща под-схема, да декомпозират въпроса и да поправят SQL кода след изпълнение. Чета тази статия, защото двата предишни записа покриха BIRD (бенчмаркът, който MAC-SQL оглави при публикуването си) и DIN-SQL (базовата линия за декомпозиция, която MAC-SQL надгражда), и естественият въпрос е дали една многоагентна обвивка добавя нещо конкретно върху тези основи.
Документът
"MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL" (Wang et al., COLING 2025) се фокусира върху режим на отказ, който BIRD разкри в по-ранните методи с единичен промпт: големи бази данни с шумни схеми и сложни многостъпкови въпроси претоварват моделите, които се опитват да разсъждават върху всичко наведнъж.
Архитектурата има три агента. Selector стеснява голямата база данни до подходяща под-схема чрез филтриране на нерелевантни таблици и колони, преди да започне генерирането на SQL. Decomposer е основният двигател — той разбива сложните въпроси на естествен език на подпроблеми и генерира SQL поетапно с few-shot разсъждения тип „верига от мисли“ (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 срещу 46,35% базова линия на GPT-4. Разликата не е драматична предвид разликата в броя на параметрите, но фино настроеният 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 и по-богат CoT. Като артефакт MAC-SQL изглежда остарял; като архитектурен модел MAC-SQL остава актуален.
Защо това е важно за AI във финансите
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) — системната бенчмарк оценка за проектиране на промптове (prompt-engineering), която MAC-SQL подобрява в BIRD; заслужава си да се прочете заради контролираната аблация на представянето на схеми и избора на few-shot примери.
- SQLFixAgent (arXiv:2406.13408) — разширява корекцията на SQL, насочвана от изпълнението, в многоагентна система с проверка на последователността; директен наследник на идеята за Refiner в MAC-SQL.
- BIRD-Critic / SWE-SQL (2025) — по-новите изследвания върху разсъжденията в BIRD, изискващи разбиране на грешките при изпълнение; естествената еволюция на това, което Refiner правеше в MAC-SQL.
