Pular para o conteúdo principal

MAC-SQL: Colaboração Multi-Agente de Texto para SQL

· 7 min para ler
Mike Thrift
Mike Thrift
Marketing Manager

O MAC-SQL surgiu em dezembro de 2023 como a resposta mais explicitamente centrada em agentes para o problema de texto para SQL: em vez de um único prompt gerando uma única consulta, três agentes especializados colaboram para selecionar um sub-esquema relevante, decompor a pergunta e reparar o SQL após a execução. Estou lendo este artigo porque as duas entradas anteriores cobriram o BIRD (o benchmark que o MAC-SQL liderou no momento da submissão) e o DIN-SQL (a linha de base de decomposição que o MAC-SQL estende), e a pergunta natural é se um invólucro multi-agente traz algo concreto além dessas fundações.

O artigo

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

"MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL" (Wang et al., COLING 2025) visa um modo de falha que o BIRD expôs em métodos anteriores de prompt único: bancos de dados grandes com esquemas ruidosos e perguntas complexas de várias etapas sobrecarregam modelos que tentam raciocinar sobre tudo de uma só vez.

A arquitetura possui três agentes. Um Seletor reduz um banco de dados grande a um sub-esquema relevante, filtrando tabelas e colunas irrelevantes antes de qualquer geração de SQL começar. Um Decompositor é o motor principal — ele divide perguntas complexas em linguagem natural em subproblemas e gera SQL de forma incremental com raciocínio de cadeia de pensamento (chain-of-thought) poucas vezes (few-shot). Um Refinador executa o SQL candidato contra o banco de dados real, lê quaisquer mensagens de erro literalmente e corrige iterativamente a consulta até um limite máximo de tentativas. Nem todos os três agentes são ativados em cada consulta; tarefas mais simples pulam o Seletor ou o Refinador com base em sinais de complexidade.

Os autores também realizaram o ajuste fino do SQL-Llama (Code Llama 7B) em saídas produzidas pelo framework, fornecendo uma variante de código aberto menor.

Ideias-chave

  • Redução de esquema antes da geração: O Seletor filtra o banco de dados para um sub-esquema relevante antes que o Decompositor escreva o SQL. A ablação confirma +2,11 pontos percentuais no BIRD dev — real, mas modesto.
  • Refinamento guiado por execução: O Refinador lê mensagens de erro reais do banco de dados e corrige o SQL. Este é o maior contribuidor individual na ablação: removê-lo reduz a precisão do BIRD dev em 4,63 pontos, mais do que remover o Seletor (−2,11) ou até mesmo o Decompositor (−3,85).
  • Despacho condicional de agentes: Encaminhar consultas simples sem passar pelo Seletor e Refinador economiza tokens sem prejudicar a precisão em casos fáceis.
  • Lacuna de destilação de código aberto: O SQL-Llama (7B) atinge 43,94% no BIRD dev contra a linha de base de 46,35% do GPT-4. A lacuna não é dramática dada a diferença na contagem de parâmetros, mas o modelo 7B ajustado ainda fica atrás da pontuação total de teste de 59,59% do GPT-4+MAC-SQL por mais de 15 pontos.
  • Resultado do teste BIRD: 59,59% de precisão de execução, liderando o ranking no momento da submissão e superando o DAIL-SQL+GPT-4 (57,41%) em 2,18 pontos.

O que se sustenta — e o que não

O Refinador é a melhor ideia aqui, e a ablação demonstra isso. Um agente que lê uma mensagem de erro real de um banco de dados e corrige seu próprio SQL está fazendo algo genuinamente mais fundamentado do que um LLM duvidando de si mesmo no vácuo — este é o princípio CRITIC de "crítica interativa com ferramenta" aplicado direta e concretamente ao feedback de execução SQL.

A contribuição do Seletor é positiva, mas pequena. Para bancos de dados com centenas de tabelas, provavelmente importa mais; para o esquema típico do BIRD, é marginal, e o artigo não relata com que frequência o Seletor é acionado ou sua precisão em manter colunas relevantes — é uma caixa preta com um único número agregado.

O Decompositor é uma evolução incremental sobre o DIN-SQL. O DIN-SQL já decompunha consultas em subproblemas com autocorreção; o MAC-SQL reempacota isso como uma conversa multi-agente. A divisão arquitetônica em três agentes nomeados está mais próxima de uma escolha de design de software do que de um novo algoritmo de inferência. Se a estrutura de prompt de três agentes supera um único agente com um prompt mais longo, controlando o total de tokens, nunca é testado. As limitações reconhecidas — prompts "não extensivamente otimizados" e ajuste fino limitado a 7B — são reais, mas a omissão mais substantiva é que a ablação sobre o comprimento do prompt versus arquitetura está inteiramente ausente.

O contexto temporal importa para a calibração. Os 59,59% do MAC-SQL no teste BIRD eram o estado da arte em dezembro de 2023. Em meados de 2025, o ranking do BIRD mostra sistemas ultrapassando 81%. As ideias específicas — filtragem de sub-esquema, decomposição de perguntas, tentativa de execução — foram absorvidas e estendidas por trabalhos subsequentes que utilizam treinamento focado em raciocínio, RLVR e CoT mais rico. O MAC-SQL como artefato parece datado; o MAC-SQL como padrão arquitetônico permanece atual.

Por que isso importa para a IA financeira

O Beancount usa o beanquery — uma linguagem de consulta adjacente ao SQL — como sua principal interface programática sobre os dados do livro-razão. Um arquivo beancount real de vários anos possui um esquema que inclui dezenas de contas organizadas em uma hierarquia, múltiplas moedas, tags de metadados e colunas de saldo calculado. Esse é precisamente o problema de esquema grande e ruidoso que o Seletor visa.

O Decompositor se aplica diretamente aos tipos de consultas que os usuários realmente fazem: "Qual foi o meu gasto total com alimentação em EUR no terceiro trimestre de 2024, excluindo transações reembolsadas, detalhado por mês?" é um problema de decomposição — filtrar por prefixo de conta, filtrar por intervalo de datas, excluir transações marcadas, agregar por mês. O Refinador também se traduz naturalmente: antes de confirmar um lançamento gerado no beancount, um agente poderia fazer uma execução de teste (dry-run) através do parser do beancount, receber erros de sintaxe ou de saldo e revisar. O loop de feedback de execução que o MAC-SQL demonstra é o mesmo loop que uma camada de segurança de gravação precisa.

O resultado da destilação de código aberto é um alerta: ajustar um modelo de 7B para aproximar um pipeline baseado em GPT-4 produz um modelo que ainda está muito atrás. Se a Bean Labs construir um modelo local para geração de consultas em livros-razão, a lacuna do MAC-SQL sugere que modelos pequenos precisam de dados de treinamento específicos do domínio muito além do que um ajuste fino de propósito geral oferece.

O que ler a seguir

  • DAIL-SQL (Gao et al., 2023, arXiv:2308.15363) — a avaliação sistemática de benchmark de engenharia de prompt que o MAC-SQL melhora diretamente no BIRD, vale a leitura pela ablação controlada da representação do esquema e seleção de exemplos few-shot.
  • SQLFixAgent (arXiv:2406.13408) — estende a correção de SQL guiada por execução para um sistema multi-agente com verificação de consistência, um descendente direto da ideia do Refinador do MAC-SQL.
  • BIRD-Critic / SWE-SQL (2025) — a trilha de raciocínio mais recente do BIRD que exige a compreensão de erros de execução, a evolução natural do que o Refinador estava fazendo no MAC-SQL.