FlexSQL: Flexible Exploration and Execution Make Better Text-to-SQL Agents
FlexSQL introduz um agente de texto-para-SQL que supera modelos mais robustos no benchmark Spider2-Snow ao empregar um princípio de design flexível que permite exploração dinâmica de esquemas, inspeção de dados e planos de execução diversos com um mecanismo de reparo em dois níveis ao longo do processo de raciocínio.
Artigo original sob licença CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Esta é uma explicação gerada por IA do artigo abaixo. Não foi escrita nem endossada pelos autores. Para precisão técnica, consulte o artigo original. Ler aviso legal completo
Imagine que você é um detetive tentando resolver um mistério, mas, em vez de uma cena de crime, sua "cena de crime" é uma biblioteca massiva e caótica contendo milhões de livros, arquivos e pontos de dados. Seu chefe lhe dá uma pista vaga: "Encontre todas as patentes sobre ciência dos materiais depositadas no início de 2014 e conte quantas patentes mais antigas elas citam."
A maioria dos programas de computador atuais que tentam resolver isso age como um robô rígido. Eles recebem um mapa da biblioteca apenas no início. Escolhem algumas prateleiras com base nesse mapa, escrevem uma lista de instruções (uma consulta) e depois tentam executá-la. Se ficarem presos ou a resposta estiver errada, só podem corrigir pequenos erros de digitação em suas instruções. Não podem voltar e dizer: "Espere, escolhi as prateleiras erradas completamente", ou "Não percebi que 'ciência dos materiais' estava escondida sob um código como 'MS-01'". Eles ficam presos ao seu erro inicial.
FlexSQL é um novo tipo de agente detetive que age mais como um explorador humano curioso. Em vez de ser rígido, é flexível. Veja como funciona, usando analogias simples:
1. O "Explorador Flexível" (Interação Flexível)
Em vez de olhar para o mapa da biblioteca uma única vez e comprometer-se com um caminho, FlexSQL é permitido vaguear pela biblioteca enquanto pensa.
- O Jeito Antigo: O robô olha para o mapa, adivinha que "Ciência dos Materiais" está na seção "Ciência" e começa a escrever sua lista.
- O Jeito do FlexSQL: O agente diz: "Não tenho certeza onde está 'Ciência dos Materiais'. Deixe-me caminhar até a seção 'Tecnologia', espiar dentro de uma caixa e ler os rótulos."
- Ele usa ferramentas especiais para navegar pelas prateleiras (esquema), ler o conteúdo real das caixas (valores de dados) e executar pequenas buscas de teste para ver se suas suposições fazem sentido. Se perceber que está no corredor errado, pode imediatamente virar e ir para o correto. Não fica preso em um beco sem saída.
2. A "Equipe de Tempestade de Ideias" (Planejamento Diverso)
A pista "patentes anteriores que cada uma cita" é complicada. Significa apenas patentes domésticas? Estrangeiras também? Aplicações pendentes?
- O Jeito Antigo: O robô escolhe uma interpretação (por exemplo, "Apenas domésticas") e se apega a ela. Se estiver errado, toda a resposta está errada.
- O Jeito do FlexSQL: Age como uma equipe de detetives fazendo tempestade de ideias. Gera múltiplas teorias diferentes (planos) ao mesmo tempo.
- Plano A: Contar apenas citações domésticas.
- Plano B: Contar citações domésticas e estrangeiras.
- Plano C: Contar tudo, incluindo aplicativos pendentes.
Executa todas essas teorias e depois deixa a "votação majoritária" decidir qual resposta tem maior probabilidade de estar correta. Assim, mesmo que uma teoria esteja errada, a equipe ainda pode obter a resposta certa.
3. O "Tradutor Bilíngue" (Execução Flexível)
Às vezes, uma tarefa é muito complicada para ser escrita como uma única instrução linear (SQL). Pode exigir um loop, uma decisão "se-então" ou um cálculo passo a passo que é confuso de escrever em uma linguagem de banco de dados.
- O Jeito Antigo: O robô tenta forçar tudo em uma única sentença SQL rígida, muitas vezes tornando-a muito complexa e propensa a falhar.
- O Jeito do FlexSQL: É bilíngue. Pode escrever as instruções em SQL (a linguagem que os bancos de dados falam) OU em Python (uma linguagem de programação flexível).
- Se a tarefa for uma lista simples, usa SQL.
- Se a tarefa exigir um loop complexo ou um cálculo passo a passo, escreve primeiro um script em Python porque é mais fácil pensar dessa maneira.
- Assim que o script em Python funciona perfeitamente, traduz o resultado final de volta para SQL para que o banco de dados o entenda. É como escrever uma receita complexa em um caderno primeiro e depois traduzi-la para o pedido oficial da cozinha.
4. O Botão "Refazer" (Retrocesso)
Se FlexSQL escrever um plano e depois perceber: "Oh não, entendi a pergunta completamente errada", não tenta apenas corrigir o código. Aperta o botão de retrocesso. Volta completamente ao início, reexamina as prateleiras da biblioteca, muda toda a sua estratégia e inicia um novo plano. Isso evita desperdiçar tempo tentando consertar uma fundação quebrada.
Os Resultados
O artigo testou esse "detetive flexível" em um benchmark muito difícil chamado Spider2, que simula bancos de dados corporativos massivos e do mundo real.
- A Pontuação: Usando um modelo chamado
gpt-oss-120b, FlexSQL obteve 65,4%. - A Comparação: Essa pontuação foi maior do que a de outros sistemas de ponta que usaram modelos muito maiores e mais poderosos (como
DeepSeek-R1ougpt-o3). - A Conclusão: Ao ser flexível — vagueando pela biblioteca, fazendo tempestade de ideias com múltiplas teorias, falando duas línguas e pressionando "desfazer" quando necessário — FlexSQL resolveu problemas melhor do que os "robôs rígidos", mesmo com um cérebro menor.
Em resumo, FlexSQL prova que, no mundo complexo dos grandes dados, a flexibilidade vence a rigidez. É melhor ser um agente que pode explorar, adaptar-se e mudar de ideia do que um que teimosamente segue um único mapa pré-escrito.
Afogado em artigos na sua área?
Receba digests diários dos artigos mais recentes que correspondam às suas palavras-chave de pesquisa — com resumos técnicos, no seu idioma.