📦 Pydantic Ai Agent Creation — 技能工具
v1.0.0Create PydanticAI agents with type-safe dependencies, structured outputs, and proper configuration. Use when building AI agents, creating chat systems, or in...
详细分析 ▾
运行时依赖
版本
- Initial release of pydantic-ai-agent-creation skill. - Enables creation of PydanticAI agents with type-safe dependencies and structured outputs. - Supports model selection via provider:model-name format. - Allows use of Pydantic models for validated, typed agent responses. - Provides flexible agent configuration for output types, dependencies, instructions, retries, settings, and execution methods. - Includes guidance for parameterized, dependency-free, and structured agent patterns.
安装命令
点击复制技能文档
Quick Start
from pydantic_ai import Agent
# Minimal agent (text output) agent = Agent('openai:gpt-4o') result = agent.run_sync('Hello!') print(result.output) # str
Model Selection
Model strings follow provider:model-name format:
# OpenAI agent = Agent('openai:gpt-4o') agent = Agent('openai:gpt-4o-mini')# Anthropic agent = Agent('anthropic:claude-sonnet-4-5') agent = Agent('anthropic:claude-haiku-4-5')
# Google agent = Agent('google-gla:gemini-2.0-flash') agent = Agent('google-vertex:gemini-2.0-flash')
# Others: groq:, mistral:, cohere:, bedrock:, etc.
Structured Outputs
Use Pydantic models for validated, typed responses:
from pydantic import BaseModel from pydantic_ai import Agentclass CityInfo(BaseModel): city: str country: str population: int
agent = Agent('openai:gpt-4o', output_type=CityInfo) result = agent.run_sync('Tell me about Paris') print(result.output.city) # "Paris" print(result.output.population) # int, validated
Agent Configuration
agent = Agent(
'openai:gpt-4o',
output_type=MyOutput, # Structured output type
deps_type=MyDeps, # Dependency injection type
instructions='You are helpful.', # Static instructions
retries=2, # Retry attempts for validation
name='my-agent', # For logging/tracing
model_settings=ModelSettings( # Provider settings
temperature=0.7,
max_tokens=1000
),
end_strategy='early', # How to handle tool calls with results
)
Running Agents
Three execution methods:
# Async (preferred) result = await agent.run('prompt', deps=my_deps)# Sync (convenience) result = agent.run_sync('prompt', deps=my_deps)
# Streaming async with agent.run_stream('prompt') as response: async for chunk in response.stream_output(): print(chunk, end='')
Instructions vs System Prompts
# Instructions: Concatenated, for agent behavior agent = Agent( 'openai:gpt-4o', instructions='You are a helpful assistant. Be concise.' )# Dynamic instructions via decorator @agent.instructions def add_context(ctx: RunContext[MyDeps]) -> str: return f"User ID: {ctx.deps.user_id}"
# System prompts: Static, for model context agent = Agent( 'openai:gpt-4o', system_prompt=['You are an expert.', 'Always cite sources.'] )
Common Patterns
Parameterized Agent (Type-Safe)
from dataclasses import dataclass from pydantic_ai import Agent, RunContext@dataclass class Deps: api_key: str user_id: int
agent: Agent[Deps, str] = Agent( 'openai:gpt-4o', deps_type=Deps, )
# deps is now required and type-checked result = agent.run_sync('Hello', deps=Deps(api_key='...', user_id=123))
No Dependencies (Satisfy Type Checker)
# Option 1: Explicit type annotation agent: Agent[None, str] = Agent('openai:gpt-4o')
# Option 2: Pass deps=None result = agent.run_sync('Hello', deps=None)
Decision Framework
| Scenario | Configuration |
|---|---|
| Simple text responses | Agent(model) |
| Structured data extraction | Agent(model, output_type=MyModel) |
| Need external services | Add deps_type=MyDeps |
| Validation retries needed | Increase retries=3 |
| Debugging/monitoring | Set instrument=True |