본문으로 건너뛰기

MAC-SQL: 다중 에이전트 협업 텍스트-SQL(Text-to-SQL)

· 약 5분
Mike Thrift
Mike Thrift
Marketing Manager

MAC-SQL은 2023년 12월 텍스트-SQL 문제에 대한 가장 명시적인 에이전트 중심의 해답으로 등장했습니다. 하나의 프롬프트가 하나의 쿼리를 생성하는 대신, 세 가지 전문 에이전트가 협업하여 관련 서브 스키마를 선택하고, 질문을 분해하며, 실행 후 SQL을 복구합니다. 필자가 이 논문을 읽는 이유는 이전의 두 게시물에서 BIRD(MAC-SQL이 제출 당시 1위를 차지했던 벤치마크)와 DIN-SQL(MAC-SQL이 확장한 분해 베이스라인)을 다루었기 때문이며, 자연스럽게 제기되는 질문은 다중 에이전트 래퍼가 이러한 기반 위에 구체적인 이점을 제공하느냐는 것입니다.

논문 요약

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

"MAC-SQL: A Multi-Agent Collaborative Framework for Text-to-SQL" (Wang 등, COLING 2025)은 BIRD가 이전의 단일 프롬프트 방식에서 노출시킨 실패 모드를 겨냥합니다. 즉, 노이즈가 많은 스키마를 가진 대규모 데이터베이스와 복잡한 다단계 질문은 모든 것을 한 번에 추론하려는 모델을 압도한다는 점입니다.

아키텍처에는 세 가지 에이전트가 있습니다. Selector는 SQL 생성이 시작되기 전에 관련 없는 테이블과 열을 필터링하여 대규모 데이터베이스를 관련 서브 스키마로 좁힙니다. Decomposer는 핵심 엔진으로, 복잡한 자연어 질문을 하위 문제로 분해하고 퓨샷 생각의 사슬(CoT) 추론을 통해 점진적으로 SQL을 생성합니다. Refiner는 후보 SQL을 실제 데이터베이스에 대해 실행하고, 오류 메시지를 그대로 읽어 최대 재시도 횟수까지 쿼리를 반복적으로 수정합니다. 모든 쿼리에서 세 에이전트가 모두 활성화되는 것은 아니며, 단순한 작업은 복잡도 신호에 따라 Selector나 Refiner를 건너뜁니다.

저자들은 또한 프레임워크에서 생성된 출력을 바탕으로 SQL-Llama (Code Llama 7B)를 미세 조정하여 더 작은 오픈 소스 변체도 제공합니다.

핵심 아이디어

  • 생성 전 스키마 축소: Selector는 Decomposer가 SQL을 작성하기 전에 데이터베이스를 관련 서브 스키마로 필터링합니다. 절제 연구 결과 BIRD dev 세트에서 2.11% 포인트 상승을 확인했으며, 이는 실질적이지만 완만한 수치입니다.
  • 실행 가이드 기반 정제: Refiner는 실제 데이터베이스 오류 메시지를 읽고 SQL을 수정합니다. 이는 절제 연구에서 가장 큰 단일 기여 요인으로 나타났습니다. 이를 제거하면 BIRD dev 정확도가 4.63포인트 하락하며, 이는 Selector(-2.11)나 Decomposer(-3.85)를 제거했을 때보다 더 큰 폭입니다.
  • 조건부 에이전트 파견: 단순한 쿼리를 Selector와 Refiner를 거치지 않게 라우팅함으로써 쉬운 사례의 정확도를 해치지 않으면서 토큰을 절약합니다.
  • 오픈 소스 증류 격차: SQL-Llama (7B)는 BIRD dev에서 GPT-4의 46.35% 베이스라인 대비 43.94%에 도달했습니다. 파라미터 수 차이를 고려하면 격차가 드라마틱하지는 않지만, 미세 조정된 7B 모델은 여전히 GPT-4+MAC-SQL의 전체 테스트 점수 59.59%보다 15포인트 이상 뒤처집니다.
  • BIRD 테스트 결과: 실행 정확도 59.59%를 기록하여 제출 당시 리더보드 1위를 차지했으며, DAIL-SQL+GPT-4(57.41%)를 2.18포인트 앞섰습니다.

유효한 점과 그렇지 않은 점

Refiner가 여기서 가장 훌륭한 아이디어이며, 절제 연구가 이를 증명합니다. 실제 데이터베이스 오류 메시지를 읽고 자신의 SQL을 수정하는 에이전트는 진공 상태에서 스스로를 의심하는 LLM보다 훨씬 더 원칙적인 작업을 수행하는 것입니다. 이는 CRITIC의 "도구 상호작용적 비판(tool-interactive critiquing)" 원칙을 SQL 실행 피드백에 직접적이고 구체적으로 적용한 것입니다.

Selector의 기여는 긍정적이지만 미미합니다. 수백 개의 테이블이 있는 데이터베이스에서는 더 중요할 수 있겠지만, BIRD의 일반적인 스키마에서는 그 효과가 미미하며, 논문은 Selector가 얼마나 자주 작동하는지 또는 관련 열을 유지하는 정밀도가 어느 정도인지 보고하지 않습니다. 이는 단일 집계 수치만 있는 블랙박스입니다.

Decomposer는 DIN-SQL에서 점진적으로 발전한 형태입니다. DIN-SQL은 이미 쿼리를 하위 문제로 분해하고 자체 수정을 수행했습니다. MAC-SQL은 이를 다중 에이전트 대화로 재포장했습니다. 세 가지 이름의 에이전트로 아키텍처를 분할한 것은 새로운 추론 알고리즘이라기보다 소프트웨어 설계 선택에 가깝습니다. 총 토큰 수를 통제했을 때, 세 에이전트 프롬프트 구조가 더 긴 프롬프트를 가진 단일 에이전트보다 성능이 우수한지는 테스트되지 않았습니다. 인정된 한계점들인 "광범위하게 엔지니어링되지 않은" 프롬프트와 7B로 제한된 미세 조정은 실제적인 문제이나, 더 실질적인 누락은 프롬프트 길이 대 아키텍처에 대한 절제 연구가 전혀 없다는 점입니다.

시점의 맥락이 평가에 중요합니다. MAC-SQL의 BIRD 테스트 점수 59.59%는 2023년 12월 당시 최첨단(SOTA)이었습니다. 2025년 중반 현재 BIRD 리더보드는 81%를 넘어서는 시스템들을 보여주고 있습니다. 서브 스키마 필터링, 질문 분해, 실행 재시도와 같은 구체적인 아이디어들은 추론 우선 학습, RLVR 및 더 풍부한 CoT를 사용하는 후속 연구들에 의해 흡수되고 확장되었습니다. 결과물로서의 MAC-SQL은 구식처럼 보일 수 있지만, 아키텍처 패턴으로서의 MAC-SQL은 여전히 유효합니다.

금융 AI에 중요한 이유

Beancount는 장부 데이터에 대한 주요 프로그래밍 인터페이스로 SQL과 유사한 쿼리 언어인 beanquery를 사용합니다. 실제 수년 치 beancount 파일은 계층 구조로 구성된 수십 개의 계정, 다중 통화, 메타데이터 태그 및 계산된 잔액 열을 포함하는 스키마를 가집니다. 이것이 바로 Selector가 겨냥하는 '대규모의 노이즈 많은 스키마' 문제입니다.

Decomposer는 사용자가 실제로 묻는 종류의 쿼리에 직접 적용됩니다. "상환된 거래를 제외하고 2024년 3분기에 EUR로 지출한 총 식비는 얼마이며, 월별로 분류해줘"라는 질문은 분해 문제입니다. 계정 접두사별 필터링, 날짜 범위별 필터링, 플래그가 지정된 거래 제외, 월별 집계가 필요하기 때문입니다. Refiner도 자연스럽게 적용됩니다. 생성된 beancount 항목을 확정하기 전에, 에이전트는 이를 beancount 파서로 시뮬레이션(dry-run) 실행하여 구문 또는 잔액 오류를 수신하고 수정할 수 있습니다. MAC-SQL이 보여주는 실행 피드백 루프는 쓰기 작업 안전 계층(write-back safety layer)에 필요한 것과 동일한 루프입니다.

오픈 소스 증류 결과는 주의를 요합니다. GPT-4 기반 파이프라인을 근사화하기 위해 7B 모델을 미세 조정하더라도 여전히 큰 격차가 존재합니다. Bean Labs가 장부 쿼리 생성을 위한 로컬 모델을 구축한다면, MAC-SQL과의 격차는 소형 모델이 일반적인 용도의 미세 조정을 넘어서는 도메인 특화 학습 데이터를 훨씬 더 많이 필요로 함을 시사합니다.

더 읽어보기

  • DAIL-SQL (Gao 등, 2023, arXiv:2308.15363) — MAC-SQL이 BIRD에서 직접적으로 개선한 체계적인 프롬프트 엔지니어링 벤치마크 평가로, 스키마 표현 및 퓨샷 예시 선택에 대한 통제된 절제 연구를 위해 읽어볼 가치가 있습니다.
  • SQLFixAgent (arXiv:2406.13408) — 실행 가이드 기반 SQL 수정을 일관성 검사를 포함한 다중 에이전트 시스템으로 확장한 것으로, MAC-SQL의 Refiner 아이디어의 직접적인 후계자입니다.
  • BIRD-Critic / SWE-SQL (2025) — 실행 오류에 대한 이해를 요구하는 최신 BIRD 추론 트랙으로, MAC-SQL의 Refiner가 수행하던 작업의 자연스러운 진화입니다.