Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.2.13] - 2025-01-17

### Changed

- **Breaking:** Updated `pydantic-ai-backend` dependency to `>=0.1.0`
- **Breaking:** Removed `FilesystemBackend` and `LocalSandbox` - use `LocalBackend` instead
- **Breaking:** Removed `FilesystemToolset` - use `create_console_toolset` from pydantic-ai-backend
- Replaced custom filesystem toolset with `create_console_toolset` from pydantic-ai-backend
- Re-exported `LocalBackend`, `create_console_toolset`, `get_console_system_prompt`, `ConsoleDeps` from pydantic-ai-backend

### Removed

- `pydantic_deep/toolsets/filesystem.py` - now provided by pydantic-ai-backend
- `chardet` dependency - moved to pydantic-ai-backend

### Documentation

- Simplified backend documentation - now links to [pydantic-ai-backend docs](https://vstorm-co.github.io/pydantic-ai-backend/)
- Updated all examples to use `LocalBackend` instead of `FilesystemBackend`
- Updated toolsets documentation to reference Console Toolset from pydantic-ai-backend

## [0.2.12] - 2025-01-16

### Changed
Expand Down
19 changes: 10 additions & 9 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,16 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
- `DeepAgentDeps`: Dataclass holding agent dependencies (backend, working_dir, skills_dirs, subagents)
- Passed to agent.run() for runtime configuration

**Backends (`pydantic_deep/backends/`)**
**Backends (from [pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend))**
- `BackendProtocol`: Interface for file storage backends
- `StateBackend`: In-memory file storage (for testing, ephemeral use)
- `FilesystemBackend`: Real filesystem operations
- `LocalBackend`: Real filesystem operations
- `DockerSandbox`: Isolated Docker container execution
- `CompositeBackend`: Combines multiple backends with routing

**Toolsets (`pydantic_deep/toolsets/`)**
- `TodoToolset`: Task planning and tracking tools (read_todos, write_todos)
- `FilesystemToolset`: File operations (read, write, edit, glob, grep, mkdir, execute)
- `TodoToolset`: Task planning and tracking tools (read_todos, write_todos) - from [pydantic-ai-todo](https://github.com/vstorm-co/pydantic-ai-todo)
- `create_console_toolset`: File operations (ls, read, write, edit, glob, grep, execute) - from [pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)
- `SubAgentToolset`: Spawn and delegate to subagents
- `SkillsToolset`: Load and use skill definitions from markdown files

Expand All @@ -58,26 +58,27 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co

**Backend Abstraction**
```python
from pydantic_deep import StateBackend, FilesystemBackend, CompositeBackend
from pydantic_ai_backends import StateBackend, LocalBackend, CompositeBackend

# In-memory for testing
backend = StateBackend()

# Real filesystem
backend = FilesystemBackend(root="/path/to/workspace")
backend = LocalBackend(root="/path/to/workspace")

# Combined backends
backend = CompositeBackend(backends=[StateBackend(), FilesystemBackend()])
backend = CompositeBackend(backends=[StateBackend(), LocalBackend()])
```

**Toolset Registration**
```python
from pydantic_deep import create_deep_agent, DeepAgentDeps
from pydantic_deep.toolsets import TodoToolset, FilesystemToolset
from pydantic_ai_backends import create_console_toolset
from pydantic_ai_todo import create_todo_toolset

agent = create_deep_agent(
model="openai:gpt-4.1",
toolsets=[TodoToolset(), FilesystemToolset()],
toolsets=[create_todo_toolset(), create_console_toolset()],
)
```

Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ See the [full demo application](https://github.com/vstorm-co/pydantic-deepagents

## Features

- **Multiple Backends**: StateBackend (in-memory), FilesystemBackend, DockerSandbox, CompositeBackend - via [pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)
- **Rich Toolsets**: TodoToolset (via [pydantic-ai-todo](https://github.com/vstorm-co/pydantic-ai-todo)), FilesystemToolset, SubAgentToolset, SkillsToolset
- **Multiple Backends**: StateBackend (in-memory), LocalBackend, DockerSandbox, CompositeBackend - via [pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)
- **Rich Toolsets**: TodoToolset (via [pydantic-ai-todo](https://github.com/vstorm-co/pydantic-ai-todo)), Console Toolset (via [pydantic-ai-backend](https://github.com/vstorm-co/pydantic-ai-backend)), SubAgentToolset, SkillsToolset
- **File Uploads**: Upload files for agent processing with `run_with_files()` or `deps.upload_file()`
- **Skills System**: Extensible skill definitions with markdown prompts
- **Structured Output**: Type-safe responses with Pydantic models via `output_type`
Expand Down
7 changes: 4 additions & 3 deletions docs/api/agent.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ def create_deep_agent(
| `skill_directories` | `list[SkillDirectory] \| None` | `None` | Directories to discover skills |
| `backend` | `BackendProtocol \| None` | `StateBackend()` | File storage backend |
| `include_todo` | `bool` | `True` | Include TodoToolset |
| `include_filesystem` | `bool` | `True` | Include FilesystemToolset |
| `include_filesystem` | `bool` | `True` | Include Console Toolset |
| `include_subagents` | `bool` | `True` | Include SubAgentToolset |
| `include_skills` | `bool` | `True` | Include SkillsToolset |
| `include_general_purpose_subagent` | `bool` | `True` | Include general-purpose subagent |
Expand Down Expand Up @@ -109,13 +109,14 @@ def create_default_deps(
### Example

```python
from pydantic_deep import create_default_deps, FilesystemBackend
from pydantic_deep import create_default_deps
from pydantic_ai_backends import LocalBackend

# With default StateBackend
deps = create_default_deps()

# With custom backend
deps = create_default_deps(backend=FilesystemBackend("/workspace"))
deps = create_default_deps(backend=LocalBackend("/workspace"))
```

---
Expand Down
Loading