Marvin
A Python framework for structured outputs and agentic AI workflows
About
Marvin is Prefect's Python framework for producing structured outputs and building agentic AI workflows. Version 3.0 fused Marvin 2.x's structured-output developer experience (cast, classify, extract, generate, summarize) with the agentic engine of ControlFlow — which Marvin 3.0 supersedes — giving you one-liner task runs (marvin.run), specialized Agents, discrete observable Tasks, and Threads that compose tasks with shared context and history.
All LLM interactions go through Pydantic AI, so Marvin natively supports every model provider Pydantic AI supports, with OpenAI as the default. Thread/message history is stored in SQLite (no migrations yet during development, per the provider's own upgrade notes).
What it can do
- • Structured outputs: cast, classify, extract, generate, summarize from unstructured input • One-liner task execution with marvin.run • Specialized AI agents (marvin.Agent) assignable to tasks • Discrete, observable tasks (marvin.Task) with typed results • Threads compose tasks with shared context and conversation history • Provider-agnostic LLM access via Pydantic AI (OpenAI default) • ControlFlow engine absorbed (Flow renamed to Thread; @flow decorator removed) • Thread history persisted in SQLite
Setup
- Install:
uv add marvinorpip install marvin - Configure your LLM provider — OpenAI by default:
export OPENAI_API_KEY=<your-key>(any Pydantic AI-supported model/provider works natively) - Try the structured-output utilities:
marvin.extract(...),marvin.cast(...),marvin.classify(...),marvin.generate(...) - Build agentic flows:
marvin.run("Write a short poem..."), or definemarvin.Agent/marvin.Taskexplicitly and compose them inside amarvin.Threadfor shared context across tasks
Prerequisites
Python 3.9+; uv or pip; an OpenAI API key (default) or a key for any other Pydantic AI-supported provider.
Use cases
Works with
Trust score — 8/10
Scored 8/10 (verified tier, metrics-v1). Evidence: 6,203 GitHub stars (log-scaled vs catalog peers); blended with ~144,543 monthly package downloads; last push 19d ago; 5 releases/12mo; 119 open issues. Manual review: ControlFlow-absorbing 3.0 rewrite = migration churn; marvin.prefect.ai dead; smaller community. License: Apache-2.0.
★ 6,203 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 7.4/10
- Maintenance · recency, releases, issue load
- 7.5/10
- Openness · license + docs
- 10.0/10
- Manual review · sanity read + red-flag check
- 7.0/10
- · 6,203 GitHub stars (log-scaled vs catalog peers)
- · blended with ~144,543 monthly package downloads
- · last push 19d ago; 5 releases/12mo; 119 open issues
- · manual review: ControlFlow-absorbing 3.0 rewrite = migration churn; marvin.prefect.ai dead; smaller community
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.