내 에이전트 시스템은 강력해 보이지만 단지 산업 쓰레기에 불과하다
Source: Dev.to
위 링크에 포함된 전체 텍스트를 제공해 주시면, 해당 내용을 한국어로 번역해 드리겠습니다. 현재는 링크 주소만 확인할 수 있어 번역이 불가능합니다. 텍스트를 복사해서 보내 주시면 바로 번역해 드리겠습니다.
이번 주말 노트가 다소 늦은 이유는 Deep Data Analyst 프로젝트 1단계가 현재 실패했기 때문입니다. 그래서 약속했던 Data Analyst Agent 튜토리얼을 이어갈 수 없습니다.
무슨 일이 있었나요?
저는 ReAct 패턴을 기반으로 한 단일 에이전트 데이터 분석 어시스턴트를 실제로 만들었습니다.
이 어시스턴트는 다음을 수행할 수 있었습니다:
- 사용자의 분석 요청을 받는다.
- 합리적인 가설을 수립한다.
- 업로드된 데이터셋에 대해 EDA와 모델링을 수행한다.
- 전문적인 비즈니스 인사이트와 실행 가능한 제안을 제공한다.
- 자신의 주장을 뒷받침할 차트를 만든다.
어떤 모습이었는지 궁금하시다면, 아래 스크린샷을 확인해 보세요:
결국 이것은 단일 에이전트 앱에 불과했으며, 구축 자체는 그리 어렵지 않았습니다. 제가 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 노트북에서 코드를 실행해 검증한 뒤, 결과를 바탕으로 새로운 가설을 만들고—이 과정을 반복합니다.
하지만 여기서 문제가 발생합니다. 과거 글에서 언급했듯이 LLM은… (이하 내용은 다음 파트에 이어집니다)
Source: …
긴 대화 기록을 다룰 때 발생하는 선택 편향:
Fixing the Agent Handoff Problem in LlamaIndex’s AgentWorkflow System
요약하면, LLM은 각 메시지를 공정하게 다루지 않습니다. 우리가 기대하는 것처럼 최신성에 따라 중요도를 가중하지 않죠.
우리가 가설을 만들고 테스트할수록 기록은 커집니다. 모든 메시지가 중요합니다:
- 첫 번째 메시지는 데이터 구조를 보여줍니다.
- 이후 메시지는 가설을 반증하므로, 다음 번에는 이를 건너뛰게 됩니다.
모두가 중요합니다. 하지만 LLM은 잘못된 메시지에 집중하고 수정된 메시지를 무시하기 시작해 실수를 반복합니다. 이는 토큰과 시간을 낭비하거나 분석을 다른 주제로 흐트러뜨려—둘 다 바람직하지 않습니다.
그래서 내 데이터‑분석 에이전트의 1단계는 완료되었습니다.
해결 방법은?
원자적 스킬을 가진 멀티‑에이전트 시스템 구축
견고성을 위해 분석이 시작되기 전에 계획과 메트릭 정의를 고정하는 컨텍스트 엔지니어를 사용할 것을 생각하게 됩니다.
분석이 잘 진행되면 계획과 이전 가정을 장기 메모리에 저장해야 합니다.
두 경우 모두 에이전트에 새로운 스킬을 부여해야 합니다.
하지만 기억하세요, 내 에이전트는 ReAct 기반이라 프롬프트가 이미 방대합니다—현재 천 줄이 넘습니다.
… (원본 내용의 나머지는 여기서 계속됩니다)
멀티‑에이전트 데이터 분석가 설계

무언가를 추가하면 이 취약한 시스템이 깨지거나 프롬프트‑추종이 방해받을 위험이 있습니다.
단일 에이전트만으로는 부족합니다. 우리는 시스템을 원자적 스킬을 가진 여러 에이전트로 나누고 이를 조정해야 합니다.
에이전트 개요
| 에이전트 | 역할 |
|---|---|
| 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)**를 진행하겠다.
Microsoft Agent Framework (MAF)는 어떨까요?
저는 MAF가 다음과 같은 이유로 마음에 듭니다:
- 이전 프레임워크들의 최고의 아이디어를 통합하면서 그들의 단점을 피합니다.
- Qwen‑3 및 DeepSeek 모델과 잘 작동합니다(구조화된 출력 호환성에 대한 제 가이드를 참고하세요).
- 강력한 Workflow 기능을 제공합니다: 다양한 노드 유형, 내장된 컨텍스트 상태, 가시성, 그리고 유연한 오케스트레이션 모드.
“MAF는 야심 차게 느껴집니다. MCP, A2A, AG‑UI와 같은 새로운 기능과 마이크로소프트의 강력한 지원 덕분에 Autogen보다 장기적인 미래가 더 밝을 것입니다.”
Reference:
Make Microsoft Agent Framework’s Structured Output Work With Qwen and DeepSeek Models
다음 단계
- MAF 사용자 가이드와 소스 코드를 읽고 API에 익숙해지기.
- MAF를 사용해 에이전트 시스템 구축을 시작하고, Qwen‑3와 DeepSeek를 기본 LLM으로 통합하기.
- Deep Data Analyst 아키텍처를 새로운 프레임워크에 맞게 적용하기 (약간의 리팩토링이 필요함).
- MAF의 워크플로 패턴을 탐색하여 일반 AI‑에이전트 설계 패턴과 어떻게 매핑되는지 확인하기.
멀티 에이전트 시스템의 장점은 점진적인 진행입니다: 나는 스킬을 단계별로 추가하고, 준비되는 대로 바로 업데이트를 공유할 수 있어 전체 프로젝트가 끝나기를 기다릴 필요가 없습니다. 😂
대화에 참여하세요
무엇에 관심이 있나요? 아래에 댓글을 남겨 주세요.
구독하여 제 뉴스레터 Mr.Q’s Weekend Notes 를 받아보세요. 최신 에이전트 연구를 바로 inbox 로 받아볼 수 있습니다.
이 블로그를 친구들과 공유하세요—더 많은 사람에게 도움이 될 수도 있습니다.
읽으시고 좋으셨나요? 지금 구독하고 최신 데이터‑사이언스 팁을 받아보세요! 여러분의 피드백과 질문을 환영합니다—댓글에서 토론해요!
이 글은 원래 Data Leads Future 에서 게시되었습니다.



