Skip to main content

Deep Agent framework built on Pydantic-ai with planning, filesystem, and subagent capabilities

Project description

pydantic-deep

Pydantic AI Deep Agents Framework

Build Claude Code-Style AI Agents — In 10 Lines of Python

DocsExamplesPyPIDemo

PyPI version Python 3.10+ License: MIT Coverage Status CI Pydantic AI

🔄 Unlimited Context via summarization  •  🤖 Subagent Delegation sync & async  •  🧩 Modular use only what you need  •  🎯 Fully Type-Safe


See It In Action

pydantic-deep demo

Watch Demo


Get Started in 60 Seconds

pip install pydantic-deep
from pydantic_ai_backends import StateBackend
from pydantic_deep import create_deep_agent, create_default_deps

agent = create_deep_agent()
deps = create_default_deps(StateBackend())

result = await agent.run("Create a todo list for building a REST API", deps=deps)

That's it. Your agent can now:

  • Plan tasks — break down complex work into steps
  • Read & write files — navigate and modify codebases
  • Delegate to subagents — spawn specialists for specific tasks
  • Load skills — use domain-specific instructions
  • Manage context — handle unlimited conversation length

Same Architecture as the Best

pydantic-deep implements the deep agent architecture — the same patterns powering:

Product What They Built
🤖 Claude Code Anthropic's AI coding assistant
🦾 Manus AI Autonomous task execution
👨‍💻 Devin AI software engineer

Now you can build the same thing.

Inspired by: This framework is also inspired by LangChain's Deep Agents research on autonomous agent architectures.


Features

🧠 Planningpydantic-ai-todo

Task tracking with read_todos / write_todos. Subtasks & dependencies with cycle detection. PostgreSQL storage. Event system for webhooks.

📁 Filesystempydantic-ai-backend

Full access: ls, read_file, write_file, edit_file, glob, grep, execute. Docker sandbox for isolation. Permission system (allow/deny/ask). Session manager for multi-user apps.

🤖 Subagentssubagents-pydantic-ai

Delegate with task in sync or async mode. Background task management. Dynamic agent creation at runtime. Soft/hard cancellation.

💬 Summarizationsummarization-pydantic-ai

Two modes: LLM-based intelligent summaries or zero-cost sliding window. Trigger on tokens, messages, or context fraction. Custom prompts.

🎯 Skills — Load domain instructions from markdown files with YAML frontmatter.

📊 Structured Output — Type-safe responses with Pydantic models via output_type.

👤 Human-in-the-Loop — Built-in confirmation workflows for sensitive operations.

Streaming — Full streaming support for real-time responses.


Use Cases

What You Want to Build Key Components
AI Coding Assistant Planning + Filesystem + Skills
Data Analysis Agent File Uploads + Structured Output
Document Processor Filesystem + Summarization
Research Agent Subagents + Planning
Project Scaffolder Planning + Filesystem
Test Generator Filesystem + Docker Sandbox

Modular — Use What You Need

Every component works standalone:

Component Package Use It For
Backends pydantic-ai-backend File storage, Docker sandbox
Planning pydantic-ai-todo Task tracking
Subagents subagents-pydantic-ai Task delegation
Summarization summarization-pydantic-ai Context management

Full-stack template? fastapi-fullstack — Production-ready with FastAPI + Next.js


Go Deeper

Structured Output

from pydantic import BaseModel

class CodeReview(BaseModel):
    summary: str
    issues: list[str]
    score: int

agent = create_deep_agent(output_type=CodeReview)
result = await agent.run("Review the auth module", deps=deps)
print(result.output.score)  # Type-safe!

File Uploads

from pydantic_deep import run_with_files

with open("data.csv", "rb") as f:
    result = await run_with_files(
        agent,
        "Analyze this data and find trends",
        deps,
        files=[("data.csv", f.read())],
    )

Context Management

from pydantic_deep import create_summarization_processor

processor = create_summarization_processor(
    trigger=("tokens", 100000),
    keep=("messages", 20),
)
agent = create_deep_agent(history_processors=[processor])

Custom Subagents

agent = create_deep_agent(
    subagents=[
        {
            "name": "code-reviewer",
            "description": "Reviews code for quality issues",
            "instructions": "You are a senior code reviewer...",
            "preferred_mode": "sync",
        },
    ],
)

Skills

Create ~/.pydantic-deep/skills/review/SKILL.md:

---
name: code-review
description: Review Python code for quality
---

# Code Review Skill

Check for:
- [ ] Security issues
- [ ] Type hints
- [ ] Error handling
agent = create_deep_agent(
    skill_directories=[{"path": "~/.pydantic-deep/skills", "recursive": True}],
)

Architecture

                              pydantic-deep
┌──────────────────────────────────────────────────────────────────┐
│                                                                  │
│      ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐         │
│      │ Planning │ │Filesystem│ │ Subagents│ │  Skills  │         │
│      └────┬─────┘ └────┬─────┘ └────┬─────┘ └────┬─────┘         │
│           │            │            │            │               │
│           └────────────┴─────┬──────┴────────────┘               │
│                              │                                   │
│                              ▼                                   │
│                    ┌──────────────────┐                          │
│  Summarization ──► │    Deep Agent    │                          │
│                    │   (pydantic-ai)  │                          │
│                    └────────┬─────────┘                          │
│                             │                                    │
│           ┌─────────────────┼─────────────────┐                  │
│           ▼                 ▼                 ▼                  │
│    ┌────────────┐    ┌────────────┐    ┌────────────┐            │
│    │   State    │    │   Local    │    │   Docker   │            │
│    │  Backend   │    │  Backend   │    │  Sandbox   │            │
│    └────────────┘    └────────────┘    └────────────┘            │
│                                                                  │
└──────────────────────────────────────────────────────────────────┘

Related Projects


Contributing

git clone https://github.com/vstorm-co/pydantic-deepagents.git
cd pydantic-deepagents
make install
make test  # 100% coverage required
make all   # lint + typecheck + test

See CONTRIBUTING.md for full guidelines.


Star History

Star History


License

MIT — see LICENSE

Built with ❤️ by vstorm-co

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pydantic_deep-0.2.14.tar.gz (373.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pydantic_deep-0.2.14-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file pydantic_deep-0.2.14.tar.gz.

File metadata

  • Download URL: pydantic_deep-0.2.14.tar.gz
  • Upload date:
  • Size: 373.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pydantic_deep-0.2.14.tar.gz
Algorithm Hash digest
SHA256 fa9cbf17b6036eb2ce6d022e8bf219ad6fde070cf1c2520e22ca45a9ffbc5d22
MD5 6d46e6eafe562780dca7e54689f4b8f0
BLAKE2b-256 11cddc1d6f000ef88ab06dd5ff7f3fbea01a022776d6d708d2c4e546365c6707

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_deep-0.2.14.tar.gz:

Publisher: publish.yml on vstorm-co/pydantic-deepagents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pydantic_deep-0.2.14-py3-none-any.whl.

File metadata

  • Download URL: pydantic_deep-0.2.14-py3-none-any.whl
  • Upload date:
  • Size: 18.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pydantic_deep-0.2.14-py3-none-any.whl
Algorithm Hash digest
SHA256 36648734c33202a8cd753d88b6f48239c543c10cca29f750880c7ad16ba6db69
MD5 36fe8328173e5170ef4521182187b641
BLAKE2b-256 5feeb4da394396772a6d6e959efef5a96ed5dc8f6fc1ee2ff0ef6bb5092d46e0

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_deep-0.2.14-py3-none-any.whl:

Publisher: publish.yml on vstorm-co/pydantic-deepagents

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page