ROMA: 고성능 멀티 에이전트 시스템을 위한 재귀적 메타 에이전트 프레임워크 (Recursive Open Meta-Agent)

ROMA 소개

ROMA는 복잡한 문제를 해결하기 위해 설계된 재귀적 계층 구조(Recursive Hierarchical Structure) 기반의 메타 에이전트(Meta-Agent) 프레임워크입니다. 'Recursive Open Meta-Agent'의 약자로, 단일 에이전트가 처리하기 어려운 장기적이고 복잡한 작업(Long-Horizon Tasks)을 더 작고 관리 가능한 단위로 분해하여 병렬로 처리할 수 있도록 돕습니다. ROMA는 개발자가 다중 에이전트 시스템을 구축할 때 겪는 구조적 복잡성을 줄이고, 에이전트 간의 문맥(Context) 흐름을 투명하게 관리할 수 있도록 설계되었습니다.

최근 AI 에이전트 기술은 단순한 질의응답을 넘어 복잡한 리서치나 코딩 작업을 수행하는 방향으로 발전하고 있습니다. 그러나 기존의 평면적인 에이전트 구조는 작업 단계가 길어질수록 문맥을 잃거나 환각(Hallucination) 현상을 겪는 문제가 있었습니다. Sentient AGI 팀이 개발한 ROMA는 이러한 문제를 해결하기 위해 작업을 트리 구조로 재귀적으로 분해(Decomposition)하고, 하위 작업의 결과를 다시 상위로 통합(Aggregation)하는 방식을 채택했습니다. 이를 통해 복잡한 추론이 필요한 작업에서도 높은 정확도와 안정성을 보장합니다.

ROMA example

특히 ROMA 기반의 검색 에이전트(ROMA Search)는 복잡한 웹 검색 및 추론 능력을 평가하는 SEAL-0 벤치마크에서 45.6%의 정확도를 기록하며, 기존 최고 성능이었던 Kimi Researcher(36%)와 Gemini 2.5 Pro(19.8%)를 큰 폭으로 따돌리고 SOTA(State-of-the-Art)를 달성했습니다. 이는 오픈소스 진영에서 상용 모델을 뛰어넘는 성능을 입증한 중요한 사례로 평가받고 있습니다.

ROMA vs. 기존 모델 비교

ROMA는 복잡한 정보 검색과 추론이 필요한 벤치마크에서 뛰어난 성능을 보였습니다. 특히 웹 검색을 통한 복합 추론 능력을 평가하는 SEAL-0 벤치마크에서의 결과가 두드러집니다:

모델 (System) 정확도 (Accuracy) 비고
ROMA Search 45.6% SOTA (State-of-the-Art)
Kimi Researcher 36.0% 이전 최고 기록
Gemini 2.5 Pro 19.8% 상용 모델 대비 2배 이상 성능
Open Deep Search 8.9% 타 오픈소스 모델

이 외에도 다단계 추론 벤치마크인 FRAMES사실 관계를 검색하는 벤치마크인 SimpleQA에서도 최상위권의 성적을 기록하며, 단순한 검색을 넘어선 '추론하는 에이전트'로서의 가능성을 입증했습니다.


ROMA의 주요 기능

flowchart LR
    A[Your Request] --> B{Atomizer}
    B -->|Plan Needed| C[Planner]
    B -->|Atomic Task| D[Executor]

    %% Planner spawns subtasks
    C --> E[Subtasks]
    E --> G[Aggregator]

    %% Recursion
    E -.-> B  

    %% Execution + Aggregation
    D --> F[Final Result]
    G --> F

    style A fill:#e1f5fe
    style F fill:#c8e6c9
    style B fill:#fff3e0
    style C fill:#ffe0b2
    style D fill:#d1c4e9
    style G fill:#c5cae9

ROMA의 핵심은 작업을 재귀적 계획-실행 루프(Recursive Plan-Execute Loop) 를 통해 처리한다는 점입니다. 모든 작업은 하나의 '노드(Node)'로 취급되며, 이 노드는 스스로 문제를 해결하거나 더 작은 하위 노드로 분기할지 결정합니다.

핵심 모듈 (Core Modules)

ROMA는 복잡한 작업을 처리하기 위해 다음과 같은 5가지 핵심 모듈로 구성됩니다. 각 모듈은 DSPy를 기반으로 구현되어 있어 프롬프트 엔지니어링과 최적화가 용이합니다. 각 모듈들은 다음과 같습니다:

  • Atomizer (아토마이저): 들어온 요청이 즉시 실행 가능한 '원자적(Atomic)' 작업인지, 아니면 추가적인 계획(Planning)이 필요한 복잡한 작업인지를 판단합니다. 작업의 분기점 역할을 수행합니다.

  • Planner (플래너): Atomizer가 계획이 필요하다고 판단하면, 작업을 더 작은 하위 작업(Subtasks)으로 분해합니다. 이때 생성된 하위 작업들은 다시 Atomizer로 전달되어 재귀적인 분해 과정을 거칩니다.

  • Executor (실행자): 더 이상 분해할 수 없는 원자적 작업을 실제로 수행합니다. LLM을 호출하거나, 계산기, 파일 시스템, API 등 외부 도구를 사용할 수 있습니다.

  • Aggregator (통합자): 하위 작업들의 실행 결과를 수집하고, 이를 종합하여 상위 작업에 대한 최종 답변을 생성합니다. 단순한 결과 나열이 아니라 문맥에 맞는 종합적인 결론을 도출합니다.

  • Verifier (검증자): (선택 사항) 최종 산출물이 사용자의 원래 요청을 충족하는지 검사합니다.

정보 흐름 (Information Flow)

ROMA의 데이터 처리는 명확한 방향성을 가집니다:

  • Top-down (하향식): 복잡한 작업이 하위 작업으로 재귀적으로 분해되어 내려갑니다.

  • Bottom-up (상향식): 하위 작업의 결과가 상위 노드로 통합되어 올라가며 최종 해답을 완성합니다.

  • Left-to-right (좌우식): 하위 작업 간에 의존성이 있는 경우(예: A 작업의 결과가 B 작업에 필요), 순차적으로 실행되며 문맥이 전달됩니다.

기술 스택 및 확장성

ROMA는 프로덕션 레벨의 배포를 고려하여 다음과 같은 현대적인 기술 스택을 지원합니다:

  • 프레임워크: Python, Pydantic, DSPy (언어 모델 프로그래밍)

  • 배포 및 인프라: Docker, Docker Compose

  • API 서버: FastAPI (REST API 및 대화형 문서 제공)

  • 데이터 저장: PostgreSQL (실행 기록 및 체크포인트), MinIO (S3 호환 파일 저장소)

  • 관측 가능성(Observability): MLflow를 통한 실험 추적 및 시각화

  • 샌드박스: E2B를 통한 안전한 코드 실행 환경 지원

ROMA 설치 및 사용법

별도의 인프라 없이 ROMA를 빠르게 테스트해 볼 수 있습니다. uv 패키지 매니저를 사용하면 더 빠른 설치가 가능합니다:

# uv를 사용한 설치 (권장)
uv pip install roma-dspy

# 또는 pip 사용
pip install roma-dspy

# API 키 설정 (OpenRouter, OpenAI, Anthropic 등 지원)
export OPENROUTER_API_KEY="sk-or-v1-..."


설치 후에는 다음과 같이 Python 코드에서 사용이 가능합니다:

from roma_dspy.core.engine.solve import solve

# 복잡한 질문 해결
result = solve("프랑스 파리로 주말 여행 계획을 짜고 짐 싸기 목록을 만들어줘.")
print(result)


프로덕션 환경을 위해서는 데이터베이스와 모니터링 도구가 포함된 전체 환경을 구성할 수도 있습니다:

# 전체 환경 셋업
just setup

# 서비스 실행 확인
curl http://localhost:8000/health

:house: Sentient AGI 공식 홈페이지

:scroll: ROMA 관련 블로그 포스트

:github: ROMA 프로젝트 GitHub 저장소




이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. :hugs:

:pytorch:파이토치 한국 사용자 모임:south_korea:이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일:love_letter:로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)

:wrapped_gift: 아래:down_right_arrow:쪽에 좋아요:+1:를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ :star_struck:

1개의 좋아요