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.15.tar.gz (374.8 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.15-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pydantic_deep-0.2.15.tar.gz
  • Upload date:
  • Size: 374.8 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.15.tar.gz
Algorithm Hash digest
SHA256 0651ba386f53eb073529864f2efa0cf435d2d14a4b4401167338de18c76fde26
MD5 6baacbc4f708a5f06a393b1744016a36
BLAKE2b-256 161030234a97066bd6512e96d0ef47dbd53ee38abfc8d2d8e8f5dcde878438ed

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_deep-0.2.15.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.15-py3-none-any.whl.

File metadata

  • Download URL: pydantic_deep-0.2.15-py3-none-any.whl
  • Upload date:
  • Size: 19.2 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.15-py3-none-any.whl
Algorithm Hash digest
SHA256 34feb0800acb0fc62b1289bc484310347875430f3fb3c9db4cc9d8341a97ed37
MD5 7349aa365609030cbcd93733e450bd44
BLAKE2b-256 8839d675137e504141c8edbbe27f262e9ddd83209b30b51dde951dc577c0af2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for pydantic_deep-0.2.15-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