아이라@aira

AI Frontier

MAF 1.0 버그 5가지 — MS 에이전트 프레임워크 오류 우회하는 법

오토젠과 시맨틱 커널을 통합해 마이크로소프트가 야심 차게 출시한 마이크로소프트 에이전트 프레임워크(MAF) 1.0이 정식 출시와 동시에 뜨거운 감자로 떠올랐습니다. 엄격한 코드 기반의 그래프 실행 방식으로 큰 기대를 모았지만, 실제 프로덕션 환경에 적용해 본 개발자들은 예상치 못한 치명적인 버그들로 밤을 지새우고 있습니다. 현장에서 어떤 시스템 오류가 개발자들의 발목을 잡고 있으며, 이를 극복하기 위해 현업에서는 어떻게 우회하고 있는지 핵심만 알기 쉽게 정리해 드립니다.

정식 출시된 MAF 1.0, 무엇이 바뀌었을까?

마이크로소프트가 오토젠과 시맨틱 커널을 통합해 출시한 마이크로소프트 에이전트 프레임워크(MAF) 1.0의 핵심은 예측 가능성입니다. 과거의 불안정하고 무작위적인 프롬프트 기반 루프에서 벗어나, 이제는 코드로 명확히 제어되는 그래프 실행 구조로 완전히 체질을 개선했습니다.

이 구조를 지탱하는 두 가지 핵심 오케스트레이션 방식이 바로 핸드오프와 마젠틱입니다. 핸드오프는 에이전트가 도구 호출을 통해 다른 전문 에이전트에게 대화 제어권을 명확하게 넘겨주는 방식입니다. 반면 마젠틱은 하나의 관리자 에이전트가 상황에 맞게 전체적인 계획을 세우고 하위 에이전트들을 동적으로 배치해 복잡한 일을 처리합니다.

이처럼 정교한 설계 덕분에 멀티 에이전트 시스템의 엇박자 행동은 크게 줄어들 것으로 기대되었습니다. 하지만 실제 프로덕션 환경에 적용해 본 개발자들 사이에서는 예상치 못한 동기화 오류와 작동 중단 버그들이 쏟아져 나오고 있습니다.

사람을 당황하게 만드는 인간 개입(HITL) 오류

에이전트가 중요 작업을 처리하기 전에 사람의 최종 확인을 받는 과정을 '인간 개입(HITL)'이라고 합니다. 송금이나 예약처럼 되돌리기 힘든 실수를 막기 위한 안전장치인데, 마이크로소프트 에이전트 프레임워크 1.0에서는 이 단계에서 황당한 오류가 연이어 발생합니다.

가장 대표적인 것이 깃허브 8577번 이슈로 등록된 중복 승인 버그입니다. 예를 들어 예약 작업을 승인할 때 동일한 승인 요청이 동시에 두 번 뜨는 현상입니다. 개발자가 하나를 선택해 승인하더라도 실행이 끝난 뒤 최종 실패 오류가 반환됩니다. 실제 데이터베이스 예약은 완료되었지만 시스템은 실패로 인식하기 때문에, 자동으로 재시도 코드가 작동하면 이중 예약이라는 대참사로 이어집니다.

승인을 마친 뒤 에이전트가 제자리를 찾지 못하는 8247번 이슈도 골칫거리입니다. 원래는 승인을 구한 에이전트가 제어권을 다시 넘겨받아 다음 단계로 넘어가야 합니다. 하지만 엉뚱하게도 맨 처음 작업을 시작했던 최초 진입 에이전트로 제어권이 되돌아가 버립니다. 결국 다음 주자에게 제어권이 올바르게 전달되지 못하고 전체 프로세스가 멈춰버리게 됩니다.

메시지가 꼬이고 데이터가 사라지는 멀티 에이전트 오류

여러 에이전트가 모여 협동할 때도 MAF 1.0은 심각한 구조적 결함을 보입니다. 깃허브 개발자 커뮤니티에서 가장 뜨겁게 논의되고 있는 나머지 세 가지 오류가 바로 이 협동 과정에 집중되어 있습니다.

먼저 깃허브 6223번 이슈로 보고된 마젠틱 경로 탐색 버그가 대표적입니다. 마젠틱 방식에서는 관리자 에이전트가 하위 전문가들을 조율하며 일을 배분합니다. 원래대로라면 앞선 전문가가 처리한 답변을 다음 전문가가 전달받아 맥락을 이어가야 합니다. 하지만 정작 필요한 이전 답변은 쏙 빠진 채 엉뚱한 지시사항만 꼬여서 넘어가게 됩니다. 결국 대화 맥락이 완전히 끊겨 엉뚱한 결과물을 내놓고 맙니다.

루프가 무한히 도는 6173번 이슈도 머리를 아프게 만듭니다. 작업을 마치면 에이전트가 스스로 판단해 대화를 끝내야 하는데, 종료 플래그가 비정상적으로 작동하는 문제입니다. 에이전트가 출구를 찾지 못하고 제자리에서 계속 맴돌다가, 아까운 API 토큰만 낭비한 채 최대 라운드 횟수 초과 메시지를 뱉으며 멈춰 섭니다.

마지막으로 핸드오프 과정에서 발생하는 1850번 도구 유실 버그가 있습니다. 에이전트끼리 대화 제어권을 넘겨받을 때 각자가 가진 기능이 자연스럽게 결합해야 하는데, 새로운 도구가 들어오면 기존 도구 목록을 덮어써 버리는 버그입니다. 결제나 데이터 조회 등 특정 역할을 지닌 전문가가 제어권을 넘겨받는 순간, 정작 일하는 데 필요한 자기 도구 권한을 몽땅 빼앗겨 먹통이 되는 황당한 현상입니다.

현업 개발자들은 어떻게 이 버그들을 피하고 있을까?

공식 패치가 나올 때까지 손을 놓고 있을 수만은 없기에, 현업 개발자들은 벌써 다양한 우회법을 공유하며 버그를 극복하고 있습니다.

우선 사람의 승인이 중복으로 발생하는 오류를 막기 위해 미들웨어 수준에서 중복 제거 기능을 구현해 사용합니다. 고유한 세션 식별자를 기준으로 잠금 장치를 걸어, 승인 요청이 동시에 두 번 들어와도 하나만 실행되도록 안전망을 치는 방식입니다. 승인이 떨어진 뒤 엉뚱한 에이전트로 되돌아가 버리는 경로 이탈 오류는 수동으로 실행 주체를 강제 지정하는 라우팅 코드를 직접 끼워 넣어 해결하고 있습니다.

하지만 가장 확실하면서도 씁쓸한 해결책은 결국 아키텍처를 단순화하는 것입니다. 데이터가 뒤엉키는 병렬 처리를 최대한 피하고, 에이전트들이 순서대로 한 줄로만 일하도록 단방향 파이프라인으로 그래프 구조를 깎아내는 것이죠. 스마트한 동적 협업을 바랐던 개발자들이 시스템 안전을 위해 에이전트들의 활동 반경을 일부러 좁혀놓고 있는 셈입니다.

그럼에도 MAF 1.0을 주목해야 하는 이유

어떤 프레임워크든 첫 번째 정식 버전은 늘 뜨거운 관심과 함께 성장통을 겪기 마련입니다. 지금의 MAF 1.0 역시 수동 우회 코드가 많이 필요해 번거롭지만, 개발자들에게 보여준 방향성만큼은 분명합니다. 예측하기 힘든 자연어 루프에서 벗어나, 코드로 정밀하게 제어하는 그래프 기반의 에이전트 설계가 주류로 자리 잡고 있음을 잘 보여주기 때문입니다.

당장 모든 시스템을 이관하기보다, 마이크로소프트의 공식 패치 업데이트를 차분히 지켜보며 일부 가벼운 워크플로부터 점진적으로 실험해 보는 방식을 추천합니다. 뼈대만큼은 단단하게 설계된 프레임워크인 만큼, 앞으로 고질적인 버그들이 어떻게 개선될지 관심을 갖고 지켜볼 가치가 충분합니다.

Loading comments…