내 에이전트 시스템은 강력해 보이지만 단지 산업 쓰레기에 불과하다

발행: (2025년 12월 30일 오후 03:42 GMT+9)
16 min read
원문: Dev.to

Source: Dev.to

위 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. 현재는 링크 주소만 확인할 수 있어 번역이 불가능합니다. 텍스트를 복사해서 보내 주시면 바로 번역해 드리겠습니다.

Source: https://www.dataleadsfuture.com/your-article-link

이번 주말 노트가 다소 늦은 이유는 Deep Data Analyst 프로젝트 1단계가 현재 실패했기 때문입니다. 그래서 약속했던 Data Analyst Agent 튜토리얼을 이어갈 수 없습니다.

무슨 일이 있었나요?

저는 ReAct 패턴을 기반으로 한 단일 에이전트 데이터 분석 어시스턴트를 실제로 만들었습니다.

이 어시스턴트는 다음을 수행할 수 있었습니다:

  1. 사용자의 분석 요청을 받는다.
  2. 합리적인 가설을 수립한다.
  3. 업로드된 데이터셋에 대해 EDA와 모델링을 수행한다.
  4. 전문적인 비즈니스 인사이트와 실행 가능한 제안을 제공한다.
  5. 자신의 주장을 뒷받침할 차트를 만든다.

어떤 모습이었는지 궁금하시다면, 아래 스크린샷을 확인해 보세요:

My data analysis agent의 멋진 효과. Image by Author

결국 이것은 단일 에이전트 앱에 불과했으며, 구축 자체는 그리 어렵지 않았습니다. 제가 ReAct 에이전트를 사용해 Advent of Code 챌린지를 해결한 방식을 기억하신다면, 해당 튜토리얼을 참고하세요:

How I Crushed Advent of Code And Solved Hard Problems Using Autogen Jupyter Executor and Qwen3

그 에이전트의 프롬프트를 조금만 바꾸면, 제가 지금 이야기하는 것과 동일한 데이터 분석 능력을 얻을 수 있습니다.

왜 이것을 ‘실패’라고 부르나요?

제 에이전트는 대부분 AI 취미 개발자들이 만드는 아름다운 프로토타입으로는 상사를 감동시킬 수 있지만, 실제 사용자가 사용하면 갑자기 부서지고 산업용 쓰레기가 되는 경우와 마찬가지이기 때문입니다.

왜 그렇게 말하나요?

제 에이전트에는 두 가지 심각한 문제가 있습니다.

매우 낮은 견고성

분석가 사용자들에게 전달한 뒤 받은 가장 큰 피드백이 바로 이것입니다.

한 번만 써보면 놀랍다는 반응을 얻었습니다. 일반 분석가가 다루기 힘든 방법과 기술을 활용해 매우 전문적인 논거를 제시했기 때문이죠. 인간을 AI로 대체하는 것이 지금까지 한 가장 현명한 선택이라고 생각하게 만들었습니다.

하지만 데이터 분석은 시간에 따른 원인과 결과를 검증하는 작업입니다. 같은 분석을 매일 혹은 매주 반복해서 어시스턴트의 조언이 실제로 효과가 있는지 확인해야 합니다.

같은 질문이라도 에이전트는 매 실행마다 가설과 분석 방법을 바꾸어 서로 다른 조언을 내놓습니다. 이것이 바로 낮은 안정성과 일관성을 의미합니다.

예를 들어, RFM 모델을 사용해 사용자를 세분화하고 마케팅 제안을 달라고 요청했을 때:
• 캠페인 전에는 특징 A, B, C만을 사용해 각각 5단계로 구분했습니다.
• 캠페인 후에는 갑자기 파생 지표 D를 추가하고 A, B, C, D 네 가지 특징으로 세분화했습니다.

이렇게 되면 A/B 테스트조차 제대로 수행할 수 없습니다.

컨텍스트‑포지션 편향이 존재합니다

이전 글들을 보신 분이라면, 제 Data Analyst 에이전트가 상태를 유지하는 Jupyter‑Kernel‑기반 인터프리터를 통해 코드를 실행한다는 것을 알고 계실 겁니다.

Exclusive Reveal: Code Sandbox Tech Behind Manus and Claude Agent Skills

이 덕분에 에이전트는 인간 분석가처럼 행동합니다: 먼저 가설을 세우고, Jupyter 노트북에서 코드를 실행해 검증한 뒤, 결과를 바탕으로 새로운 가설을 만들고—이 과정을 반복합니다.

ReAct 모드 기반 에이전트가 인간 분석가처럼 EDA를 수행합니다. Image by Author

하지만 여기서 문제가 발생합니다. 과거 글에서 언급했듯이 LLM은… (이하 내용은 다음 파트에 이어집니다)

Source:

긴 대화 기록을 다룰 때 발생하는 선택 편향:

Fixing the Agent Handoff Problem in LlamaIndex’s AgentWorkflow System

요약하면, LLM은 각 메시지를 공정하게 다루지 않습니다. 우리가 기대하는 것처럼 최신성에 따라 중요도를 가중하지 않죠.

LLMs do not assign weights to message history as people might think. Arxiv 2404.01430

우리가 가설을 만들고 테스트할수록 기록은 커집니다. 모든 메시지가 중요합니다:

  • 첫 번째 메시지는 데이터 구조를 보여줍니다.
  • 이후 메시지는 가설을 반증하므로, 다음 번에는 이를 건너뛰게 됩니다.

모두가 중요합니다. 하지만 LLM은 잘못된 메시지에 집중하고 수정된 메시지를 무시하기 시작해 실수를 반복합니다. 이는 토큰과 시간을 낭비하거나 분석을 다른 주제로 흐트러뜨려—둘 다 바람직하지 않습니다.

그래서 내 데이터‑분석 에이전트의 1단계는 완료되었습니다.

해결 방법은?

원자적 스킬을 가진 멀티‑에이전트 시스템 구축

견고성을 위해 분석이 시작되기 전에 계획과 메트릭 정의를 고정하는 컨텍스트 엔지니어를 사용할 것을 생각하게 됩니다.

분석이 잘 진행되면 계획과 이전 가정을 장기 메모리에 저장해야 합니다.

두 경우 모두 에이전트에 새로운 스킬을 부여해야 합니다.

하지만 기억하세요, 내 에이전트는 ReAct 기반이라 프롬프트가 이미 방대합니다—현재 천 줄이 넘습니다.

Agents based on the ReAct pattern are often too complex

(원본 내용의 나머지는 여기서 계속됩니다)

멀티‑에이전트 데이터 분석가 설계

Diagram of the multi‑agent data analyst. Image by Author

무언가를 추가하면 이 취약한 시스템이 깨지거나 프롬프트‑추종이 방해받을 위험이 있습니다.
단일 에이전트만으로는 부족합니다. 우리는 시스템을 원자적 스킬을 가진 여러 에이전트로 나누고 이를 조정해야 합니다.

에이전트 개요

에이전트역할
Issue Clarification Agent사용자의 질문을 통해 문제를 명확히 하고, 메트릭을 확인하며, 범위를 정의합니다.
Retrieval Agent지식 베이스에서 메트릭 정의, 계산 방법, 분석 기법을 가져옵니다.
Planner Agent가설을 제시하고, 분석 접근 방식을 선택하며, 하위 에이전트가 따라야 할 전체 계획을 수립합니다.
Analyst Agent계획을 실행 가능한 단계로 나누고, 파이썬 코드를 실행하며, 가설을 테스트합니다.
Storyteller Agent기술 결과를 흥미로운 비즈니스 스토리와 실행 가능한 조언으로 변환합니다.
Validator Agent전체 프로세스가 정확하고 신뢰할 수 있으며 비즈니스 규정을 준수하는지 확인합니다.
Orchestrator Agent모든 에이전트를 관리하고, 작업을 할당하며, 메시지를 라우팅합니다.

저자의 이미지: 다중 에이전트 데이터 분석가를 위한 새로운 디자인

올바른 에이전트 프레임워크 선택

우리는 메시지 전달컨텍스트 상태 저장을 지원하는 프레임워크가 필요합니다:

  • 새로운 작업이 도착하거나 에이전트가 작업을 마치면, 오케스트레이터에게 메시지를 보내야 합니다.
  • 오케스트레이터는 또한 메시지를 통해 작업을 디스패치해야 합니다.
  • 중간 결과는 매번 LLM에 다시 보내는 대신 공유 컨텍스트에 저장되어야 합니다(위치 편향을 피하기 위해).

후보

프레임워크장점단점
LangGraph깔끔한 워크플로 정의.여전히 LangChain 기반이며, 나는 이를 싫어한다.
Autogen연구 중심 작업에 좋으며, 오케스트레이션을 위한 Selector Group Chat을 제공한다.메시지 기록 제어가 미흡하고, 블랙박스 오케스트레이션, 미완성 GraphFlow, 개발이 중단된 상태이다.
Microsoft Agent Framework (MAF)사용하기 쉽고, 최신 기능(MCP, A2A, AG‑UI), 견고한 워크플로 엔진, 컨텍스트 상태 관리, OpenTelemetry 관측성, switch‑case 및 다중 선택 오케스트레이션 모드 등을 제공한다.비교적 새로워서 커뮤니티 자료가 아직 충분히 구축되지 않았다.

결론: LangGraph와 Autogen을 건너뛰고 **Microsoft Agent Framework (MAF)**를 진행하겠다.

Source: https://www.dataleadsfuture.com/make-microsoft-agent-frameworks-structured-output-work-with-qwen-and-deepseek-models/

Microsoft Agent Framework (MAF)는 어떨까요?

저는 MAF가 다음과 같은 이유로 마음에 듭니다:

  • 이전 프레임워크들의 최고의 아이디어를 통합하면서 그들의 단점을 피합니다.
  • Qwen‑3DeepSeek 모델과 잘 작동합니다(구조화된 출력 호환성에 대한 제 가이드를 참고하세요).
  • 강력한 Workflow 기능을 제공합니다: 다양한 노드 유형, 내장된 컨텍스트 상태, 가시성, 그리고 유연한 오케스트레이션 모드.

“MAF는 야심 차게 느껴집니다. MCP, A2A, AG‑UI와 같은 새로운 기능과 마이크로소프트의 강력한 지원 덕분에 Autogen보다 장기적인 미래가 더 밝을 것입니다.”

Reference:
Make Microsoft Agent Framework’s Structured Output Work With Qwen and DeepSeek Models

다음 단계

  1. MAF 사용자 가이드와 소스 코드를 읽고 API에 익숙해지기.
  2. MAF를 사용해 에이전트 시스템 구축을 시작하고, Qwen‑3와 DeepSeek를 기본 LLM으로 통합하기.
  3. Deep Data Analyst 아키텍처를 새로운 프레임워크에 맞게 적용하기 (약간의 리팩토링이 필요함).
  4. MAF의 워크플로 패턴을 탐색하여 일반 AI‑에이전트 설계 패턴과 어떻게 매핑되는지 확인하기.

멀티 에이전트 시스템의 장점은 점진적인 진행입니다: 나는 스킬을 단계별로 추가하고, 준비되는 대로 바로 업데이트를 공유할 수 있어 전체 프로젝트가 끝나기를 기다릴 필요가 없습니다. 😂

대화에 참여하세요

무엇에 관심이 있나요? 아래에 댓글을 남겨 주세요.

구독하여 제 뉴스레터 Mr.Q’s Weekend Notes 를 받아보세요. 최신 에이전트 연구를 바로 inbox 로 받아볼 수 있습니다.

이 블로그를 친구들과 공유하세요—더 많은 사람에게 도움이 될 수도 있습니다.

읽으시고 좋으셨나요? 지금 구독하고 최신 데이터‑사이언스 팁을 받아보세요! 여러분의 피드백과 질문을 환영합니다—댓글에서 토론해요!

이 글은 원래 Data Leads Future 에서 게시되었습니다.

Back to Blog

관련 글

더 보기 »

2025: LLM의 해

죄송합니다. 번역하려는 텍스트를 직접 제공해 주시면 도와드리겠습니다.