Pydantic AI Documentation Skill

SkillAI & models

Use this skill whenever the user is working with the Pydantic AI framework — including building AI agents, defining structured outputs with Pydantic models, wiring up tools/function calling, configuring model providers (OpenAI, Anthropic, Gemini, etc.), managing dependencies via agent context, handling streaming responses, or debugging agent runs. Trigger this skill even for adjacent tasks like "how do I make my agent return JSON", "set up a multi-step agent", "add a tool to my agent", or "validate LLM output with Pydantic" — any time Pydantic AI is mentioned or implied as the target framework.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Pydantic AI Documentation Skill skill

What this skill tells your AI

The instructions your AI receives, as published by dougtrajano/pydantic-ai-skills in examples/skills/pydanticai-docs/SKILL.md and read by ahel’s review.

What is Pydantic AI?

Pydantic AI is a production-grade Python agent framework for building type-safe, dependency-injected Generative AI applications. It supports multiple LLM providers, structured outputs via Pydantic models, and composable multi-agent patterns.

Doc: https://ai.pydantic.dev/


Core Concepts

1. Agent Instantiation

from pydantic_ai import Agent

agent = Agent(
    'openai:gpt-4o',          # model string: provider:model-name
    system_prompt='Be helpful.',
)
result = agent.run_sync('What is the capital of France?')
print(result.output)

For full constructor parameters, run methods, and streaming: load references/AGENT.md.

2. Function Tools (@agent.tool)

from pydantic_ai import Agent, RunContext

agent = Agent('openai:gpt-4o', deps_type=str)

@agent.tool
def get_user_name(ctx: RunContext[str]) -> str:
    """Return the current user's name."""
    return ctx.deps

result = agent.run_sync('What is my name?', deps='Alice')

Use @agent.tool_plain when you don't need RunContext. For tool registration, return types, and retries: load references/FUNCTION_TOOLS.md.

3. Dependency Injection (RunContext)

from dataclasses import dataclass
from pydantic_ai import Agent, RunContext

@dataclass
class MyDeps:
    api_key: str
    user_id: int

agent = Agent('openai:gpt-4o', deps_type=MyDeps)

@agent.tool
async def fetch_data(ctx: RunContext[MyDeps]) -> str:
    return f'User {ctx.deps.user_id}'

For RunContext fields, injection into system prompts and output validators: load references/DEPENDENCIES.md.

4. Structured Output

from pydantic import BaseModel
from pydantic_ai import Agent

class CityInfo(BaseModel):
    city: str
    country: str

agent = Agent('openai:gpt-4o', output_type=CityInfo)
result = agent.run_sync('Where were the 2012 Olympics held?')
print(result.output)  # CityInfo(city='London', country='United Kingdom')

For union types, plain scalars, output_validator, and partial validation: load references/OUTPUT.md.


Additional Topics

For these topics, load the named reference file or follow the doc link — no implementation code is provided here.

TopicReference fileDoc link
Message history / multi-turn conversationsreferences/MESSAGES.mdhttps://ai.pydantic.dev/core-concepts/message-history/index.md
Model / provider setup (all providers)references/MODELS.mdhttps://ai.pydantic.dev/models/overview/index.md
Toolsets (FunctionToolset, composition)references/TOOLS_AND_TOOLSETS.mdhttps://ai.pydantic.dev/tools-toolsets/toolsets/index.md
MCP server integrationreferences/MCP.mdhttps://ai.pydantic.dev/mcp/client/index.md
Multi-agent applicationsdoc link onlyhttps://ai.pydantic.dev/guides/multi-agent-applications/index.md
Graphs (pydantic-graph)doc link onlyhttps://ai.pydantic.dev/graph/graph/index.md
Evals (pydantic-evals)doc link onlyhttps://ai.pydantic.dev/evals/evals/index.md
Durable executiondoc link onlyhttps://ai.pydantic.dev/durable_execution/overview/index.md
Retriesdoc link onlyhttps://ai.pydantic.dev/core-concepts/retries/index.md
Testing (TestModel, override)doc link onlyhttps://ai.pydantic.dev/guides/testing/index.md
Logfire integrationdoc link onlyhttps://ai.pydantic.dev/integrations/logfire/index.md
Native tools (formerly builtin tools)doc link onlyhttps://ai.pydantic.dev/tools-toolsets/native-tools/index.md
Streamingdoc link onlyhttps://ai.pydantic.dev/core-concepts/agent/index.md

Agent Behavior Rules

  1. Default to this file — answer from core concepts first; load only the specific references/<CONCEPT>.md relevant to the user's question when more depth is needed.
  2. Never fabricate API details — always end with "For details, see: <URL>" using a link from the official index above.
  3. No implementation code for non-core topics — return a doc link only for topics listed in the Additional Topics table.
  4. Prefer specificity — route to the most specific page (e.g., models/anthropic/index.md) when the user's question targets a specific provider, not the overview.
  5. Out of scope — do not debug user code passively, do not generate full production agent implementations, do not answer questions unrelated to the Pydantic AI ecosystem.

Signals

GitHub stars
371
Forks
28
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
pydanticai-docs
Source
github.com/dougtrajano/pydantic-ai-skills