Micro-Agent는 애플리케이션이 복잡한 에이전트 그래프를 직접 만들지 않아도, 모델 서빙 라우터가 단일 OpenAI 호환 API 호출 뒤에서 여러 모델·역할·검증 루프를 제한적으로 실행하게 하는 패턴이다. vLLM Semantic Router 팀은 이를 vllm-sr/auto 같은 안정적인 모델 이름 뒤에 숨겨진 협업 런타임으로 설명한다.
왜 라우터인가
라우터는 이미 모델 선택, 공급자 정책, 자격 증명, 비용 메타데이터, 재시도, 타임아웃, 트레이스, 응답 형식 보존을 담당한다. Micro-Agent 관점에서는 이 라우터가 단순히 “어떤 모델을 부를지” 고르는 계층을 넘어, 요청마다 작은 협업 구조를 구성하는 실행 계층이 된다.
핵심은 모델 가중치를 바꾸지 않고도 성능을 올리는 것이다. 쉬운 요청은 단일 모델로 처리하고, 어려운 요청은 제한된 fan-out, 재평가, 합성, 포맷 복구를 거쳐 하나의 응답으로 돌려준다.
Looper 패턴
vLLM Semantic Router의 looper는 Micro-Agent 실행 런타임이다.
| 패턴 | 역할 | 적합한 케이스 |
|---|---|---|
| Confidence | 낮은 비용 후보로 먼저 답하고, 신뢰도가 낮으면 상위 모델로 승격 | 비용 민감한 일반 질의 |
| Ratings | 여러 후보를 병렬 실행하고 평가 가중치로 집계 | 품질 분산이 큰 생성 작업 |
| ReMoM | 여러 추론 샘플을 만들고 최종 합성 라운드로 모음 | 어려운 추론·지식 문제 |
| Fusion | 독립 응답을 패널처럼 모은 뒤 judge와 finalizer를 거침 | 의견 불일치가 중요한 작업 |
| Workflows | planner, worker, verifier, finalizer 같은 역할을 제한된 단계로 실행 | SWE 스타일 코딩·검증 작업 |
이 패턴들은 “무제한 자율 에이전트”가 아니다. 단계 수, 병렬도, 시간 제한, 오류 정책, 출력 계약이 라우터 안에서 제한된다.
벤치마크별 레시피
Micro-Agent의 중요한 주장 중 하나는 하나의 보편 루프보다 작업 형태에 맞는 레시피가 낫다는 점이다.
- GPQA-Diamond처럼 정답 형식이 엄격한 과학 객관식은 ReMoM과 answer preservation이 중요하다.
- LiveCodeBench 같은 코딩 평가는 실행 가능한 코드와 hidden-test 견고성이 중요하다.
- Humanity’s Last Exam 같은 고난도 문제는 disagreement resolution과 정확한 최종 형식이 중요하다.
- SWE 스타일 작업은 planner, patcher, verifier, finalizer를 제한된 워크플로로 묶는 편이 자연스럽다.
따라서 Micro-Agent는 “에이전트 로직을 앱에 넣는 방식”이 아니라 “협업을 모델 서빙 primitive로 만드는 방식”에 가깝다.
사용 대상 및 케이스
- LLM 플랫폼 팀: 여러 모델 공급자와 비용 정책을 이미 운영하고 있고, 애플리케이션별 에이전트 그래프 중복을 줄이고 싶을 때
- 모델 서빙 개발자: OpenAI 호환 API 표면은 유지하면서 요청 난이도별로 내부 실행 경로를 다르게 만들 때
- 평가/벤치마크 팀: 벤치마크별 정답 형식과 검증 규칙을 라우터 레시피로 고정해 반복 평가하고 싶을 때
주의점
라우터 안에 협업 루프가 들어가면 관측 가능성(observability)이 더 중요해진다. 사용자는 단일 응답만 보지만, 운영자는 어떤 레시피가 선택됐고 어떤 모델이 실패했으며 어느 단계에서 포맷 복구가 일어났는지 추적할 수 있어야 한다. 또한 팬아웃은 비용을 빠르게 키우므로 budget cap이 기본값이어야 한다.
관련 문서
- vllm — 고성능 LLM 서빙 엔진
- agent-as-a-router — 코딩 작업에 맞는 LLM 라우팅 프레임워크
- fusion — 여러 에이전트/모델 실행을 조율하는 오케스트레이션 패턴
- agent-harness — 모델 외부 실행 계층을 설계하는 하네스 엔지니어링
참고 자료
- Micro-Agent: Beat Frontier Models with Collaboration inside Model API — vLLM Blog (2026-06-29)