---
title: 'Pydantic AI v1: A Predictable & Robust GenAI Framework'
description: >-
  Built by engineers, for engineers: Explore dependency injection, type safe,
  structured outputs, retries & observability for production-ready AI agents
date: '2025-09-04'
authors:
  - Samuel Colvin
categories:
  - Pydantic AI
  - Pydantic Logfire
  - Pydantic Validation
canonical: 'https://pydantic.dev/articles/pydantic-ai-v1'
---

> Markdown version of [Pydantic AI v1: A Predictable & Robust GenAI Framework](https://pydantic.dev/articles/pydantic-ai-v1) — the canonical HTML page.
>
> By [Samuel Colvin](https://pydantic.dev/authors/samuel-colvin.md) · 2025-09-04 · Pydantic AI, Pydantic Logfire, Pydantic Validation
>
> Related: [A research agent, three ways](https://pydantic.dev/articles/harness-exa.md) · [You've built this agent before](https://pydantic.dev/articles/harness-week.md)
>
> All articles: [/articles.md](https://pydantic.dev/articles.md) · Site index: [/llms.txt](https://pydantic.dev/llms.txt)

---

We're excited to release [Pydantic AI](https://pydantic.dev/docs/ai/overview/) V1 today! After nine months of feedback, iteration, and real-world usage (and a stunning _15 million downloads_!), we're confident in the framework's API and ready to commit to its stability, so that you can keep building great GenAI applications without having to worry about the foundation shifting under you.

## GenAI is Still Just Engineering

> There are so many agent frameworks, why did you build yet another?

Whatever the vibe coding hype may suggest, building GenAI applications is still just engineering. Engineering best practices still apply, developer experience matters, and unlike in some domains, you can't just paper over poor library design or documentation by leaving Claude Code or Cursor to figure it out for you (there simply aren't enough high quality examples of agents in their training data).

AI models' inherent unpredictability means that building robust systems that you can put in front of your users still requires careful consideration of every piece of the puzzle, not least of which the foundation you're building on.

We built Pydantic AI because no existing agent framework met our bar for developer ergonomics, engineering quality, and production readiness. Here's how Pydantic AI is different:

- **Type safety everywhere** – both in our internals and our public API. Ironically, coding agents find type safety even more helpful than humans; if you want to use them in your development flow, the delta between Pydantic AI and other frameworks will be even greater.
- **Open Observability** - Pydantic AI works beautifully with our [AI Observability platform Pydantic Logfire](https://pydantic.dev/logfire) for tracing, debugging, cost monitoring and evals, but that's just because we're emitting semantic convention compliant OpenTelemetry data. We believe that great tools embrace and advance open standards rather than locking developers into half-baked proprietary standards.
- **100% test coverage** – boring and hard, but invaluable in avoiding breaking changes while moving quickly.
- **Proper dependency injection** – tools are virtually useless without access to dependencies, so Pydantic AI has a powerful solution for dependency injection while allowing agents to remain public.
- **Docs examples are unit tested** - again, this sounds boring, until you use a library where examples are not unit tested, and you waste time wondering what you're doing wrong until you eventually realize that the example itself was invalid.
- **Built-in support for durable execution** - we know you're not just looking to build a quick demo or a viral TikTok post, but real production systems that can handle failures and recover gracefully.
- **Structured outputs with validation** – As you might expect from the creators of Pydantic, we take structured outputs very seriously. We support structured output via tool calling, provider managed structured outputs and manual prompting.

This isn't revolutionary. It's just good engineering, care for our craft as library authors, and respect for the trust our users place in us when they bring Pydantic AI into their code base.

## V1 Means Stability, Not Stagnation

V1 means we're committing to API stability: we will not break your code for at least 6 months (if we do, you can shout at us as it's definitely a mistake). Once we release V2, we'll continue to provide security fixes for V1 for another 6 months minimum, so you have time to upgrade your applications.

This doesn't mean development is slowing down; quite the opposite - we've got lots of exciting new features in store for upcoming minor versions of Pydantic AI V1, some of which are called out below.

### What's New in V1

Besides stability, Pydantic AI V1 brings the following major features that further establish it as the best choice for production-grade GenAI applications:

- [**Human-in-the-Loop Tool Approval**](https://pydantic.dev/docs/ai/tools-toolsets/deferred-tools/#human-in-the-loop-tool-approval) – Build agents that know when to ask for user input. No more autonomous systems making expensive mistakes.
- [**Durable Execution with Temporal**](https://pydantic.dev/docs/ai/integrations/durable_execution/temporal/) – Your agent crashes halfway through a complex workflow? It picks up exactly where it left off. This is out of beta and production-ready.

### What's Coming Soon

Our team and community are already working on exciting new features for upcoming V1.x releases:

- Prompt caching - [#1041](https://github.com/pydantic/pydantic-ai/issues/1041)
- Handoffs - [#1978](https://github.com/pydantic/pydantic-ai/issues/1978)
- Durable execution for graphs - [#704](https://github.com/pydantic/pydantic-ai/issues/704)
- Embeddings support - [#58](https://github.com/pydantic/pydantic-ai/issues/58)
- MCP Resource support - [#1783](https://github.com/pydantic/pydantic-ai/issues/1783)
- Context-Free Grammar output support - [#2513](https://github.com/pydantic/pydantic-ai/issues/2513)

If you'd like to see another feature released soon, please comment on an existing issue on [GitHub](https://github.com/pydantic/pydantic-ai/issues), create a new one, or go straight to submitting a pull request.

## Try It

If you haven't tried it yet, now is a great time to move to Pydantic AI:

```bash
uv add pydantic-ai
```

(or `pip install pydantic-ai` for those afraid of new technology)

## Give Us Feedback

Our team is very active on [GitHub](https://github.com/pydantic/pydantic-ai/issues) and [Slack](https://pydantic.dev/docs/logfire/join-slack/), so don't hesitate to reach out with any questions or suggestions.
