Marvin 개요 — 자연어 인터페이스 프레임워크

Marvin 개요

LLM을 데이터 파이프라인 안에 넣고 싶은데, 출력이 자유 형식이라 파싱이 번거로운 경우가 많죠. Marvin은 그 문제를 풀기 위해, AI에 일을 위임하면서도 결과를 정확히 정해진 타입으로 받는 추상화를 제공하는 프레임워크예요. Prefect 팀이 만든 Python 라이브러리예요.

핵심 아이디어

  • 캐스트·분류·추출·생성 — 어떤 입력에서든 구조화 데이터를 만들기
  • 개별·관찰 가능한 Task — 목표를 설명하는 작업 단위
  • 전문화된 AI 에이전트 — 각 작업에 하나 이상의 에이전트 배정
  • Thread — 작업을 결합해 복잡한 동작 오케스트레이션

사용해 보기

설치 후 LLM 프로바이더를 설정해요. (Marvin은 기본값으로 OpenAI를 쓰지만 Pydantic AI 모델을 네이티브 지원해요.)

pip install marvin      # or: uv add marvin
export OPENAI_API_KEY=your-api-key

가장 빠른 길은 marvin.run()이에요.

import marvin

print(marvin.run("Write a haiku about coding"))

전문화된 에이전트를 만들어 특정 작업을 시킬 수도 있어요.

import marvin

poet = marvin.Agent(name="Poet", instructions="You are an expert poet who writes in various styles.")
scientist = marvin.Agent(name="Scientist", instructions="You are a scientist who explains complex topics clearly.")

explanation = marvin.run("Explain entropy briefly", agents=[scientist])
poem = marvin.run("Write a haiku about entropy", agents=[poet], context={"scientific_background": explanation})
print(poem)

왜 Marvin인가요

  • 🎯 단순한 인터페이스 — 코드 한 줄로 시작해 복잡한 앱으로 확장
  • 🧠 똑똑한 기본값 — 바로 동작하는 기본값 + 필요시 커스터마이징
  • 📝 구조화 데이터 — 정확히 원하는 형식으로 결과
  • 🤝 멀티 에이전트 — 협업하는 전문화 에이전트
  • 🔌 확장성 — 기존 Python 코드와 쉽게 통합

더 알아보기