ThanoSQL vs. AI Agents: Analyzing Complex Business Queries with Efficiency and Accuracy

AI 에이전트로 복잡한 문제를 풀거나 분석을 할 수 있을까?

최근 LLM(대규모 언어 모델)만큼이나 자주 등장하는 단어가 AI 에이전트 입니다. 지난 8월 달만 해도 국내외에서 10 개가 넘는 업체들이 각자 AI 에이전트라고 주장하는 제품을 공개하기도 하였습니다.

오늘은 AI 에이전트가 무엇이고 현실 세계의 비즈니스에서 발생하는 복잡한 문제들을 풀거나 실제로 분석에 활용할 수 있는지를 살펴보겠습니다.

1. AI 에이전트(Agent)에 대하여

LLM의 관점에서 에이전트는 LLM을 기본적인 구성 요소로 사용하여 적절한 추론을 통해 계획을 구성하고, 사용 가능한 도구와 리소스를 사용하여 문제를 해결하는 시스템입니다. 문제가 주어지면 전략을 고민하고 필요한 도구를 활용하여 문제를 해결하는 인간과 유사합니다. LLM은 에이전트에서 인간의 뇌와 유사하게 작동합니다. 문제를 해결하는 이상적인 방법은 문제를 순차적으로 또는 독립적으로 수행할 수 있는 하나 이상의 작은 문제로 분할하여 해결하는 것입니다. 에이전트도 이와 동일한 작업을 수행합니다.

일반적으로 LLM은 문제를 해결할 방법을 계획하고 에이전트는 하나 이상의 도구를 사용합니다. 에이전트는 의도된 기능을 제대로 수행하기 위해 도구 이외에도 프롬프트나 메모리 같은 다른 구성 요소를 갖습니다. 아래 그림은 단일 에이전트 시스템의 구성도입니다.

단일 에이전트 시스템은 주어진 문제를 해결하기 위해 여러 도구를 사용할 수 있는 특정 AI 에이전트로 구성됩니다. 이러한 시스템은 LLM의 추론 기능과 함께 도구의 결합된 기능을 활용하여 작업을 자율적으로 처리하도록 설계되었습니다. 

단일 에이전트 시스템의 메모리 제약과 처리 능력의 한계로 인해 더 광범위한 작업이나 복잡한 문제를 처리해야 할 때는 멀티 에이전트가 필요합니다. 멀티 에이전트 시스템은 복수개의 단일 에이전트로 구성되어 있으며, 각각은 자율적으로 작업을 수행할 수 있지만 공통의 목표를 향해 협력하도록 설계되었습니다.

위 그림은 멀티 에이전트 시스템의 구성도입니다. 만능처럼 보이는 멀티 에이전트 시스템에도 여전히 한계가 존재합니다. (지난 게시글 LLM과 랭체인의 한계와 Agent의 문제점 그리고 TAG을 참조하시면 됩니다.)

2. 사용자의 복잡한 자연어 질의를 푸는 방식

사용자가 자연어로 길고 복잡한 질문(요청)을 했을 때 문제를 풀기 위한 방식은 아래 그림처럼 3가지가 있습니다.

LLM을 활용하여 복잡한 자연어 질의 처리하기

사용자의 입력을 LLM이 1) 에이전트 언어로 바꿔서 에이전트 방식으로 처리, 2) Text-to-SQL을 이용해서 SQL로 변환하여 TAG로 처리, 3) ThanoSQL로 처리하는 방식입니다.

여기서 Text-to-SQL이 무엇인지 잠시 짚어보고 가겠습니다.

다시 본론으로 돌아와서, 현시점에서 에이전트 시스템이 대세이긴 하지만 느린 속도와 낮은 정확성 때문에 기업에서 활용하기에는 명백한 한계가 있습니다. 그리고 지난달에 논문으로 발표된 TAG(Table-Augmented Generation)가 에이전트의 문제를 어느 정도 해소시켜 줄 수 있을것으로 기대되지만 아직은 논문 수준이라 당장 기업에서 도입할 수는 없습니다.

스마트마인드의 ThanoSQL은 바로 이 TAG의 개념을 LLM뿐 아니라 RAG, 외부API 등 모든 Action으로 확대 적용하여 구현한 솔루션입니다.

3. TAG의 개념을 확장 구현하여 상용화한 ThanoSQL

사용자가 자연어로 길고 복잡한 질문(요청)을 했을 때 문제를 풀기 위한 방식은 아래 그림처럼 3가지가 있습니다.

LLM 기반 분석 도구로서의 ThanoSQL

ThanoSQL은 비IT 인력을 위한 LLM 기반의 분석 도구로서 복잡한 데이터를 쉽게 분석할 수 있도록 지원합니다. 전통적으로 데이터를 분석하기 위해서는 SQL, RAG, AI/ML, 외부 API와 같은 다양한 도구들이 필요합니다. 이러한 도구들을 효과적으로 연결하기 위해서는 통합적인 솔루션이 필수적이며, 랭체인과 같은 기술이 이를 가능하게 합니다. 랭체인은 여러 도구를 프로그래밍 언어인 파이썬이나 자바스크립트를 이용해 체인 형태로 연결하여 사용할 수 있도록 돕습니다.

그러나 이러한 도구들을 연결하고 문제에 맞게 적절히 활용하는 과정은 단순하지 않습니다. 각 도구의 선택과 사용 순서를 AI에 의존해야 하며, AI의 답변이 항상 정확하다는 보장이 없기 때문에 잘못된 결과가 나오기도 합니다. 사용자는 최종 결과물이 제대로 생성되었는지 확인하기 어려우며 수정이 필요할 때 이를 자연어로 다시 설명해야 하는 비효율적인 상황이 발생합니다.

SQL은 데이터베이스와의 정확한 소통을 위해 개발된 언어로 하나의 작업을 수행하고 필요 시 수정할 수 있는 장점이 있습니다. Nested SQL을 활용하면 도구의 적용 순서가 반복되거나 잘못될 위험을 최소화할 수 있습니다.

ThanoSQL은 이러한 문제를 해결하고자 설계되었습니다. 랭체인과 같은 목표를 공유하지만 비IT 인력을 주요 대상으로 하고 있으며 복잡한 문제를 해결하는 방식 역시 다릅니다. ThanoSQL은 에이전트 기반의 순차적인 접근 대신 Nested SQL 형태로 복잡한 문제를 해결합니다. 현재 시장에는 개별 기능을 제공하는 다양한 제품들이 존재하지만, ThanoSQL처럼 복합적인 질문을 한번에 해결 할 수 있는 All-in-One 솔루션은 없습니다.

4. 복잡한 질의 분석 사례

다음과 같은 두 가지 질문에 대해 ThanoSQL을 이용해서 처리하는 과정을 살펴보겠습니다.

질문 1) “최근 3일 내 평점이 2점 이하인 리뷰를 추출하고, 부작용 문제와 관련된 내용을 요약한 후, 요약본을 만들어주고, 웹에서 유사한 게시물을 찾아줘.”

먼저 필요한 함수를 만듭니다. 그 함수들은 ① 리뷰 내용을 요약, ② 내용이 ‘부작용’인 리뷰를 검색, ③ 웹 검색(외부 API 활용) 이렇게 3개가 되겠지요?

그 다음으로는 순서대로 하나씩 Text-to-SQL을 통해 SQL 쿼리를 생성해서 실행하게 됩니다. 최근 3일 내 평점이 2점 이하인 리뷰를 선택 –> 해당 리뷰들을 요약  –> 내용이 부작용인 리뷰들을 선택 –> 선택 결과 출력 –> 웹 검색 결과 출력

아래 그림은 ThanoSQL에서 처리되는 SQL 구문입니다.

다음으로 2번째 질문입니다.

질문 2) “최근 일주일 동안의 평균 매출 변화를 분석하고, 고객 리뷰의 키워드 변화를 파악한 뒤, 해당 키워드로 작성된 리뷰를 추출하여 최근 급상승 검색어와 비교하고, 이를 바탕으로 새로운 마케팅 전략을 제안해줘.”

앞의 사례와 동일하게 필요한 함수들을 먼저 생성하고, 이어서 단계 별로 SQL 쿼리를 만들어 실행합니다.

아래 그림은 ThanoSQL에서 처리되는 실제 SQL 구문입니다.

ThanoSQL은 위와 같이 복잡한 질문에 대해 SQL, RAG, AI/ML, 외부 API를 활용한 nested SQL 문을 자동으로 생성합니다. 이러한 방식은 각 도구를 순차적으로 실행하여 일관된 답변을 제공하는 것을 보장합니다.

ThanoSQL의 자동 쿼리 생성 결과를 검토하여 변환된 내용이 의도한 대로 이루어졌는지 확인할 수 있으며 필요한 경우 질의를 통해 즉시 수정하거나 보완할 수도 있습니다. 그리고 자동 생성된 쿼리의 답변을 바탕으로 추가적인 질문을 하고 그 답변이 정확한지 다시 확인하는 것도 가능합니다.

이와 같은 ‘과정 검증’과 ‘결과 검증’은 랭체인을 기반으로 하는 에이전트 방식에서는 불가능하며 오직 ThanoSQL에서만 가능합니다.

5. 마치며

위의 사례에서 살펴본 것처럼, 사용자의 복잡한 자연어 질의를 SQL 네스티드 쿼리로 짜서 나온 결과 테이블을 대상으로 자연어 질의를 하게 되면 에이전트 방식의 문제점과 한계를 극복할 수 있을 뿐 아니라 다음과 같은 이점이 있습니다.

■ 만들어진 테이블을 바탕으로 추가 질문을 하고 분석할 수 있습니다.
■ 이러한 방식으로 생성된 SQL은 반복적으로 사용할 수 있으며, 저장하여 공유하고 지속적으로 활용할 수 있습니다. 즉, 자주 사용하는 또는 최근 사용한 인사이트 추출용 SQL을 재활용하는 등 반복 업무를 효율화 할 수 있습니다.
■ SQL 기반의 구조이기 때문에 분석 결과를 개선하는 과정이 매우 간편합니다. 이는 사용자가 문제를 신속하게 파악하고 수정할 수 있도록 합니다.
■ 더 나아가 잘 정제된 자연어 질의로 생성된 SQL 자체가 독립적인 어플리케이션으로도 사용될 수 있습니다.
■ 이러한 SQL문 여러 개를 조합하면 더욱 고차원적인 어플리케이션을 쉽고 빠르게 만들 수 있습니다.

앞으로도 ThanoSQL에 많은 관심 부탁드립니다.

ThanoSQL 도입 문의

ko_KRKR
위로 스크롤