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 코드와 쉽게 통합