MAC-SQL: Spolupráca viacerých agentov pri prevode textu na SQL
MAC-SQL sa objavil v decembri 2023 ako najvýraznejšia odpoveď orientovaná na agentov na problém text-to-SQL: namiesto jedného promptu generujúceho jeden dopyt spolupracujú traja špecializovaní agenti na výbere relevantnej sub-schémy, dekompozícii otázky a oprave SQL po vykonaní. Čítam to preto, lebo predchádzajúce dva príspevky pokrývali BIRD (benchmark, v ktorom MAC-SQL v čase predloženia dominoval) a DIN-SQL (dekompozičný základ, ktorý MAC-SQL rozširuje), a prirodzenou otázkou je, či nadstavba s viacerými agentmi prináša niečo konkrétne navyše k týmto základom.
Práca
"MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL" (Wang et al., COLING 2025) sa zameriava na chybový režim, ktorý BIRD odhalil v predchádzajúcich metódach s jedným promptom: veľké databázy s neusporiadanými schémami a zložité viacstupňové otázky zahltia modely, ktoré sa snažia uvažovať o všetkom naraz.
Architektúra má troch agentov. Selector zúži veľkú databázu na relevantnú sub-sch ému odfiltrovaním irelevantných tabuliek a stĺpcov ešte pred začatím akéhokoľvek generovania SQL. Decomposer je hlavným motorom — rozkladá zložité otázky v prirodzenom jazyku na sub-problémy a generuje SQL inkrementálne pomocou reasoning-u typu few-shot chain-of-thought. Refiner vykonáva kandidátske SQL voči skutočnej databáze, číta chybové hlásenia slovo po slove a iteratívne opravuje dopyt až po maximálny limit pokusov. Nie všetci traja agenti sa aktivujú pri každom dopyte; jednoduchšie úlohy vynechávajú Selector alebo Refiner na základe signálov o zložitosti.
Autori tiež dolaďujú SQL-Llama (Code Llama 7B) na výstupoch produkovaných týmto rámcom, čím poskytujú menší open-source variant.
Kľúčové myšlienky
- Redukcia schémy pred generovaním: Selector filtruje databázu na relevantnú sub-schému predtým, ako Decomposer napíše SQL. Ablácia potvrdzuje +2,11 percentuálneho bodu na BIRD dev — reálne, ale skromné.
- Zjemňovanie riadené vykonávaním: Refiner číta skutočné chybové správy databázy a opravuje SQL. Toto je najväčší samostatný prispievateľ v ablácii: jeho odstránenie zníži presnosť BIRD dev o 4,63 bodu, čo je viac ako odstránenie Selectora (−2,11) alebo dokonca Decomposera (−3,85).
- Podmienečné nasadenie agentov: Smerovanie jednoduchších dopytov mimo Selector a Refiner šetrí tokeny bez poškodenia presnosti v jednoduchých prípadoch.
- Medzera v open-source destilácii: SQL-Llama (7B) dosahuje 43,94 % na BIRD dev v porovnaní so základnou úrovňou GPT-4 (46,35 %). Rozdiel nie je dramatický vzhľadom na rozdiel v počte parametrov, ale vyladený 7B model stále zaostáva za plným skóre GPT-4+MAC-SQL na testovacej sade (59,59 %) o viac ako 15 bodov.
- Výsledok testu BIRD: 59,59 % presnosť vykonávania, čo v čase predloženia znamenalo prvé miesto v rebríčku a prekonanie DAIL-SQL+GPT-4 (57,41 %) o 2,18 bodu.
Čo obstojí — a čo nie
Refiner je tu najlepším nápadom a ablácia to potvrdzuje. Agent, ktorý číta skutočnú chybovú správu databázy a opravuje vlastné SQL, robí niečo skutočne principiálnejšie než LLM, ktoré hádal samo seba vo vákuu — ide o princíp „nástrojom-interaktívnej kritiky“ (tool-interactive critiquing) CRITIC aplikovaný priamo a konkrétne na spätnú väzba z vykonávania SQL.
Prínos Selectora je pozitívny, ale malý. Pre databázy so stovkami tabuliek má pravdepodobne väčší význam; pre typickú schému BIRD je okrajový a práca neuvádza, ako často Selector zasahuje alebo aká je jeho presnosť pri zachovávaní relevantných stĺpcov — je to čierna skrinka s jedným agregovaným číslom.
Decomposer je inkrementálnym vylepšením oproti DIN-SQL. DIN-SQL už rozkladal dopyty na sub-problémy so samovybavovaním; MAC-SQL to prebaľuje ako konverzáciu viacerých agentov. Architektonické rozdelenie na troch pomenovaných agentov je skôr voľbou softvérového dizajnu než novým inferenčným algoritmom. To, či štruktúra promptu s tromi agentmi prekoná jedného agenta s dlhším promptom (pri kontrole celkového počtu tokenov), sa nikdy netestovalo. Priznané obmedzenia — prompty „nie sú rozsiahlo optimalizované“ a doladenie obmedzené na 7B — sú reálne, ale podstatnejším vynechaním je absencia ablácie dĺžky promptu verzus architektúry.
Časový kontext je dôležitý pre kalibráciu. Výsledok MAC-SQL 59,59 % na teste BIRD bol v decembri 2023 na špičke. Do polovice roku 2025 rebríček BIRD ukazuje systémy prekračujúce 81 %. Konkrétne nápady — filtrovanie sub-schém, dekompozícia otázok, opakovanie vykonávania — boli absorbované a rozšírené následnými prácami využívajúcimi tréning zameraný na uvažovanie, RLVR a bohatší CoT. MAC-SQL ako artefakt vyzerá zastaralo; MAC-SQL ako architektonický vzor zostáva aktuálny.
Prečo na tom záleží pre finančnú AI
Beancount používa beanquery — dopytovací jazyk blízky SQL — ako svoje primárne programové rozhranie nad údajmi v účtovnej knihe. Skutočný viacročný súbor beancount má schému, ktorá zahŕňa desiatky účtov usporiadaných v hierarchii, viaceré meny, metadáta a vypočítané stĺpce zostatkov. To je presne ten problém veľkej a neusporiadanej schémy, na ktorý sa Selector zameriava.
Decomposer sa priamo vzťahuje na typy dopytov, ktoré používatelia skutočne kladú: „Aké boli moje celkové výdavky na stravovanie v EUR v 3. štvrťroku 2024 okrem preplatených transakcií, rozdelené podľa mesiacov?“ je dekompozičný problém — filtrovanie podľa prefixu účtu, filtrovanie podľa rozsahu dátumov, vylúčenie označených transakcií, agregácia podľa mesiacov. Refiner sa tiež prirodzene prekladá: pred potvrdením vygenerovaného záznamu v beancount by ho agent mohol skúšobne spustiť cez beancount parser, prijať syntaktické chyby alebo chyby v zostatkoch a opraviť ich. Slučka spätnej väzby z vykonávania, ktorú demonštruje MAC-SQL, je rovnaká slučka, akú potrebuje bezpečnostná vrstva pre zápis údajov.
Výsledok open-source destilácie je varovaním: vyladenie 7B modelu tak, aby aproximoval potrubie založené na GPT-4, prináša model, ktorý je stále ďaleko pozadu. Ak Bean Labs vytvorí lokálny model na generovanie dopytov v účtovnej knihe, medzera v MAC-SQL naznačuje, že malé modely potrebujú tréningové údaje špecifické pre danú doménu ďaleko nad rámec toho, čo poskytuje univerzálne doladenie.
Čo čítať ďalej
- DAIL-SQL (Gao et al., 2023, arXiv:2308.15363) — systematické hodnotenie benchmarku prompt-engineering-u, ktoré MAC-SQL priamo vylepšuje v benchmarku BIRD; oplatí sa čítať kvôli kontrolovanej ablácii reprezentácie schémy a výberu few-shot príkladov.
- SQLFixAgent (arXiv:2406.13408) — rozširuje opravu SQL riadenú vykonávaním do systému s viacerými agentmi s kontrolou konzistencie, priamy nástupca myšlienky Refiner z MAC-SQL.
- BIRD-Critic / SWE-SQL (2025) — novšia vetva uvažovania BIRD vyžadujúca pochopenie chýb pri vykonávaní, prirodzený vývoj toho, čo Refiner robil v MAC-SQL.
