MAC-SQL: Text-to-SQL col·laboratiu multiagent
MAC-SQL va arribar el desembre de 2023 com la resposta més explícitament centrada en agents al problema del text-to-SQL: en lloc d'un sol prompt que genera una sola consulta, tres agents especialitzats col·laboren per seleccionar un subesquema rellevant, descompondre la pregunta i reparar el SQL després de l'execució. L'estic llegint perquè les dues entrades anteriors cobrien BIRD (el banc de proves que MAC-SQL encapçalava en el moment de l'enviament) i DIN-SQL (la base de descomposició que MAC-SQL amplia), i la pregunta natural és si un embolcall multiagent aporta res de concret sobre aquests fonaments.
L'article
"MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL" (Wang et al., COLING 2025) aborda un mode d'error que BIRD va exposar en mètodes anteriors d'un sol prompt: les bases de dades grans amb esquemes sorollosos i preguntes complexes de diversos passos aclaparen els models que intenten raonar sobre tot alhora.
L'arquitectura té tres agents. Un Selector redueix una base de dades gran a un subesquema rellevant filtrant taules i columnes irrellevants abans que comenci qualsevol generació de SQL. Un Decomposer és el motor principal — divideix preguntes complexes en llenguatge natural en subproblemes i genera SQL de manera incremental amb un raonament de cadena de pensament (chain-of-thought) de pocs exemples (few-shot). Un Refiner executa el SQL candidat contra la base de dades real, llegeix qualsevol missatge d'error textualment i corregeix iterativament la consulta fins a un límit màxim de reintents. No tots tres agents s'activen en cada consulta; les tasques més senzilles ometen el Selector o el Refiner basant-se en senyals de complexitat.
Els autors també ajusten SQL-Llama (Code Llama 7B) en les sortides produïdes pel marc de treball, proporcionant una variant de codi obert més petita.
Idees clau
- Reducció d'esquema abans de la generació: El Selector filtra la base de dades cap a un subesquema rellevant abans que el Decomposer escrigui el SQL. L'ablació confirma un augment de +2,11 punts percentuals en el dev de BIRD — real, però modest.
- Refinament guiat per l'execució: El Refiner llegeix els missatges d'error reals de la base de dades i corregeix el SQL. Aquesta és la contribució individual més gran en l'ablació: eliminar-lo fa caure la precisió del dev de BIRD en 4,63 punts, més que eliminar el Selector (−2,11) o fins i tot el Decomposer (−3,85).
- Enviament d'agents condicional: Encaminar les consultes més senzilles més enllà del Selector i el Refiner estalvia tokens sense perjudicar la precisió en casos fàcils.
- Bretxa de destil·lació de codi obert: SQL-Llama (7B) arriba al 43,94% en el dev de BIRD enfront de la línia base del 46,35% de GPT-4. La bretxa no és dramàtica donada la diferència en el recompte de paràmetres, però el model 7B ajustat encara es queda a més de 15 punts de la puntuació final del test del 59,59% de GPT-4+MAC-SQL.
- Resultat del test BIRD: 59,59% de precisió d'execució, encapçalant la classificació en el moment de l'enviament i superant DAIL-SQL+GPT-4 (57,41%) en 2,18 punts.
Què es manté i què no
El Refiner és la millor idea aquí, i l'ablació ho demostra. Un agent que llegeix un missatge d'error real de la base de dades i corregeix el seu propi SQL està fent quelcom genuïnament més sòlid que un LLM que intenta corregir-se a si mateix en el buit — aquest és el principi de "crítica interactiva amb eines" (CRITIC tool-interactive critiquing) aplicat directament i concretament a la retroalimentació d'execució de SQL.
La contribució del Selector és positiva però escassa. Per a bases de dades amb centenars de taules probablement importa més; per a l'esquema típic de BIRD és marginal, i l'article no informa de la freqüència amb què s'activa el Selector ni de la seva precisió a l'hora de mantenir les columnes rellevants — és una caixa negra amb un sol número agregat.
El Decomposer és incremental respecte a DIN-SQL. DIN-SQL ja descomponia consultes en subproblemes amb autocorreció; MAC-SQL ho empaqueta com una conversa multiagent. La divisió arquitectònica en tres agents amb nom propi s'assembla més a una decisió de disseny de programari que a un nou algorisme d'inferència. Mai es prova si l'estructura de prompt de tres agents supera un sol agent amb un prompt més llarg, controlant el total de tokens. Les limitacions reconegudes — prompts "no excessivament dissenyats" i ajustament limitat a 7B — són reals, però l'omissió més substancial és que l'ablació sobre la longitud del prompt enfront de l'arquitectura està totalment absent.
El context temporal importa per a la calibració. El 59,59% de MAC-SQL en el test de BIRD era l'estat de l'art el desembre de 2023. A mitjans de 2025, la classificació de BIRD mostra sistemes que superen el 81%. Les idees específiques — filtratge de subesquemes, descomposició de preguntes, reintent d'execució — han estat absorbides i ampliades per treballs posteriors que utilitzen entrenament basat en el raonament, RLVR i cadenes de pensament (CoT) més riques. MAC-SQL com a artefacte sembla antiquat; MAC-SQL com a patró arquitectònic continua sent vigent.
Per què això és important per a la IA financera
Beancount utilitza beanquery — un llenguatge de consulta adjacent a SQL — com a interfície programàtica principal sobre les dades del llibre major. Un fitxer de Beancount real de diversos anys té un esquema que inclou dotzenes de comptes organitzats en una jerarquia, múltiples monedes, etiquetes de metadades i columnes de saldo calculades. Aquest és precisament el problema d'esquema gran i sorollós que aborda el Selector.
El Decomposer s'aplica directament al tipus de consultes que els usuaris realment fan: "Quina va ser la meva despesa total en restauració en EUR al tercer trimestre de 2024 excloent les transaccions reemborsades, desglossada per mes?" és un problema de descomposició — filtrar per prefix de compte, filtrar per rang de dates, excloure transaccions marcades, agregar per mes. El Refiner també es tradueix de manera natural: abans de confirmar una entrada de Beancount generada, un agent podria fer una prova d'execució (dry-run) a través de l'analitzador de Beancount, rebre errors de sintaxi o de saldo i revisar-la. El bucle de retroalimentació d'execució que demostra MAC-SQL és el mateix bucle que necessita una capa de seguretat d'escriptura (write-back).
El resultat de la destil·lació de codi obert és una advertència: l'ajustament d'un model 7B per aproximar-se a un flux de treball basat en GPT-4 dona com a resultat un model que encara està molt enrere. Si Bean Labs construeix un model local per a la generació de consultes del llibre major, la bretxa de MAC-SQL suggereix que els models petits necessiten dades d'entrenament específiques del domini molt més enllà del que proporciona un ajustament de propòsit general.
Què llegir a continuació
- DAIL-SQL (Gao et al., 2023, arXiv:2308.15363) — l'avaluació de referència sistemàtica de l'enginyeria de prompts que MAC-SQL millora directament a BIRD, val la pena llegir per l'ablació controlada de la representació de l'esquema i la selecció d'exemples de pocs exemples.
- SQLFixAgent (arXiv:2406.13408) — amplia la correcció de SQL guiada per l'execució en un sistema multiagent amb comprovació de coherència, un descendent directe de la idea del Refiner de MAC-SQL.
- BIRD-Critic / SWE-SQL (2025) — la nova via de raonament de BIRD que requereix la comprensió dels errors d'execució, l'evolució natural del que feia el Refiner a MAC-SQL.
