Examples¶
This section contains practical examples demonstrating pydantic-deep features.
Running Examples¶
All examples are in the examples/ directory:
# Set your API key
export ANTHROPIC_API_KEY=your-api-key
# Run an example
uv run python examples/<example_name>.py
Example Overview¶
📖 Basic Usage
Getting started with pydantic-deep. Create agents, use todos, work with files.
View Example →📤 File Uploads
Upload files for agent processing with run_with_files() or deps.upload_file().
View Example →Quick Examples¶
Hello World¶
import asyncio
from pydantic_deep import create_deep_agent, DeepAgentDeps, StateBackend
async def main():
agent = create_deep_agent()
deps = DeepAgentDeps(backend=StateBackend())
result = await agent.run("Say hello!", deps=deps)
print(result.output)
asyncio.run(main())
Create a File¶
async def main():
agent = create_deep_agent()
deps = DeepAgentDeps(backend=StateBackend())
result = await agent.run(
"Create a Python function that calculates factorials and save it to /math/factorial.py",
deps=deps,
)
# Check what was created
print("Files:", list(deps.backend.files.keys()))
print("\nContent:")
print(deps.backend.read("/math/factorial.py"))
Plan a Task¶
async def main():
agent = create_deep_agent()
deps = DeepAgentDeps(backend=StateBackend())
result = await agent.run(
"""
Create a simple CLI calculator with the following features:
1. Add, subtract, multiply, divide
2. Input validation
3. Help command
Plan the task first using todos, then implement.
""",
deps=deps,
)
# Check the todo list
print("Todos:")
for todo in deps.todos:
status = "✓" if todo.status == "completed" else "○"
print(f" {status} {todo.content}")
Delegate to Subagent¶
from pydantic_deep import SubAgentConfig
async def main():
subagents = [
SubAgentConfig(
name="code-reviewer",
description="Reviews code for quality",
instructions="You are a code review expert...",
),
]
agent = create_deep_agent(subagents=subagents)
deps = DeepAgentDeps(backend=StateBackend())
# Create some code
deps.backend.write("/src/app.py", "def add(a, b): return a + b")
result = await agent.run(
"Delegate a code review of /src/app.py to the code-reviewer",
deps=deps,
)
print(result.output)
Use Skills¶
async def main():
agent = create_deep_agent(
skill_directories=[
{"path": "./skills", "recursive": True},
],
)
deps = DeepAgentDeps(backend=StateBackend())
result = await agent.run(
"""
1. List available skills
2. Load the code-review skill
3. Use it to review /src/app.py
""",
deps=deps,
)
print(result.output)
Testing Without API¶
Use TestModel for testing without API calls:
from pydantic_ai.models.test import TestModel
async def main():
agent = create_deep_agent(model=TestModel())
deps = DeepAgentDeps(backend=StateBackend())
# TestModel will return predefined responses
result = await agent.run("Test prompt", deps=deps)
Example Files¶
| File | Description |
|---|---|
basic_usage.py |
Core functionality demonstration |
filesystem_backend.py |
Real filesystem operations |
subagents.py |
Task delegation |
human_in_the_loop.py |
Approval workflows |
docker_sandbox.py |
Isolated execution |
composite_backend.py |
Mixed storage strategies |
streaming.py |
Real-time output |
custom_tools.py |
Adding custom tools |
skills_usage.py |
Skills system |
file_uploads.py |
File uploads for agent processing |
Next Steps¶
- Basic Usage - Detailed walkthrough
- Core Concepts - Understand the fundamentals
- API Reference - Complete API documentation