examples/skills/pydanticai-docs/SKILL.md
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.
npx skillsauth add dougtrajano/pydantic-ai-skills pydanticai-docsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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/index.md
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.
@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.
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.
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.
For these topics, load the named reference file or follow the doc link — no implementation code is provided here.
| Topic | Reference file | Doc link |
|---|---|---|
| Message history / multi-turn conversations | references/MESSAGES.md | https://ai.pydantic.dev/message-history/index.md |
| Model / provider setup (all providers) | references/MODELS.md | https://ai.pydantic.dev/models/overview/index.md |
| Toolsets (FunctionToolset, composition) | references/TOOLS_AND_TOOLSETS.md | https://ai.pydantic.dev/toolsets/index.md |
| MCP server integration | references/MCP.md | https://ai.pydantic.dev/mcp/client/index.md |
| Multi-agent applications | doc link only | https://ai.pydantic.dev/multi-agent-applications/index.md |
| Graphs (pydantic-graph) | doc link only | https://ai.pydantic.dev/graph/index.md |
| Evals (pydantic-evals) | doc link only | https://ai.pydantic.dev/evals/index.md |
| Durable execution | doc link only | https://ai.pydantic.dev/durable_execution/overview/index.md |
| Retries | doc link only | https://ai.pydantic.dev/retries/index.md |
| Testing (TestModel, override) | doc link only | https://ai.pydantic.dev/testing/index.md |
| Logfire integration | doc link only | https://ai.pydantic.dev/logfire/index.md |
| Builtin tools | doc link only | https://ai.pydantic.dev/builtin-tools/index.md |
| Streaming | doc link only | https://ai.pydantic.dev/agent/index.md |
references/<CONCEPT>.md relevant to the user's question when more depth is needed.models/anthropic/index.md) when the user's question targets a specific provider, not the overview.development
Use this skill for requests related to web research; it provides a structured approach to conducting comprehensive web research.
testing
Search arXiv preprint repository for papers in physics, mathematics, computer science, quantitative biology, and related fields.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------