Metadata-Version: 2.4
Name: diagrid
Version: 0.4.3
Summary: Diagrid namespace package
Requires-Python: <3.14,>=3.11
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: dapr>=1.17.3
Requires-Dist: dapr-ext-workflow>=1.17.3
Requires-Dist: diagrid-cli>=0.1.0
Provides-Extra: agent-core
Requires-Dist: dapr-agents; extra == "agent-core"
Requires-Dist: dapr-ext-langgraph>=1.17.3; extra == "agent-core"
Requires-Dist: dapr-ext-strands>=1.17.3; extra == "agent-core"
Requires-Dist: fastapi>=0.129.0; extra == "agent-core"
Requires-Dist: uvicorn>=0.41.0; extra == "agent-core"
Requires-Dist: pydantic<2.14,>=2.12.5; extra == "agent-core"
Requires-Dist: langgraph>=1.1.10; extra == "agent-core"
Provides-Extra: langgraph
Requires-Dist: langgraph>=1.1.10; extra == "langgraph"
Requires-Dist: langchain-core>=1.3.2; extra == "langgraph"
Requires-Dist: diagrid[agent-core]; extra == "langgraph"
Provides-Extra: crewai
Requires-Dist: crewai<1.16,>=1.6.1; extra == "crewai"
Requires-Dist: litellm!=1.82.7,!=1.82.8,>=1.0.0; extra == "crewai"
Requires-Dist: diagrid[agent-core]; extra == "crewai"
Provides-Extra: adk
Requires-Dist: google-adk<3,>=1.32.0; extra == "adk"
Requires-Dist: diagrid[agent-core]; extra == "adk"
Provides-Extra: strands
Requires-Dist: openai>=2.33.0; extra == "strands"
Requires-Dist: strands-agents>=1.38.0; extra == "strands"
Requires-Dist: diagrid[agent-core]; extra == "strands"
Provides-Extra: openai-agents
Requires-Dist: openai-agents>=0.15.1; extra == "openai-agents"
Requires-Dist: openai>=2.33.0; extra == "openai-agents"
Requires-Dist: diagrid[agent-core]; extra == "openai-agents"
Provides-Extra: claude-agents
Requires-Dist: claude-agent-sdk>=0.1.45; extra == "claude-agents"
Requires-Dist: anthropic>=0.40.0; extra == "claude-agents"
Requires-Dist: diagrid[agent-core]; extra == "claude-agents"
Provides-Extra: pydantic-ai
Requires-Dist: pydantic-ai-slim[openai]>=1.89.1; extra == "pydantic-ai"
Requires-Dist: diagrid[agent-core]; extra == "pydantic-ai"
Provides-Extra: deepagents
Requires-Dist: deepagents>=0.5.6; extra == "deepagents"
Requires-Dist: diagrid[langgraph]; extra == "deepagents"
Requires-Dist: langchain-openai>=1.2.1; extra == "deepagents"
Provides-Extra: langchain
Requires-Dist: langchain-core>=1.3.2; extra == "langchain"
Requires-Dist: langchain-openai>=1.2.1; extra == "langchain"
Requires-Dist: diagrid[agent-core]; extra == "langchain"
Provides-Extra: smolagents
Requires-Dist: smolagents>=1.26.0; extra == "smolagents"
Requires-Dist: diagrid[agent-core]; extra == "smolagents"
Provides-Extra: holmesgpt
Requires-Dist: holmesgpt>=0.26.0; extra == "holmesgpt"
Requires-Dist: diagrid[agent-core]; extra == "holmesgpt"
Provides-Extra: all
Requires-Dist: diagrid[adk,claude_agents,crewai,deepagents,langchain,langgraph,openai_agents,pydantic_ai,smolagents,strands]; extra == "all"
Dynamic: license-file

# Durable Workflows for AI agents

**Make your AI agents resilient to failure and outages**

The `diagrid` package is an extension SDK for the open-source [Dapr](https://github.com/dapr/dapr) project to build durable, fault-tolerant AI agents. It integrates seamlessly with popular agent frameworks, wrapping them in Dapr Workflows to ensure agents can recover from failures, persist state across restarts, and scale effectively.

Get started with [Diagrid Catalyst for free](https://diagrid.ws/get-catalyst).

## Community

Have questions, hit a bug, or want to share what you're building? Join the [Diagrid Community Discord](https://diagrid.ws/diagrid-community) to connect with the team and other users.

## Features

- **Multi-Framework Support:** Native integrations for LangGraph, CrewAI, Google ADK, Strands, PydanticAI, OpenAI Agents, Claude Agent SDK, LangChain, Smolagents, LangChain Deep Agents, and HolmesGPT.
- **Durability:** Agent state is automatically persisted in the database of your choice. If your process crashes, the agent resumes from the last successful step.
- **Fault Tolerance:** Built-in retries and error handling powered by Dapr.
- **Observability:** Deep insights into agent execution, tool calls, and state transitions.

## Installation

Install the base package along with the extension for your chosen framework:

```bash
# For LangGraph
pip install "diagrid[langgraph]"

# For CrewAI
pip install "diagrid[crewai]"

# For Google ADK
pip install "diagrid[adk]"

# For Strands
pip install "diagrid[strands]"

# For Pydantic AI
pip install "diagrid[pydantic_ai]"

# For OpenAI Agents
pip install "diagrid[openai_agents]"

# For LangChain Deep Agents
pip install "diagrid[deepagents]"

# For Claude Agent SDK
pip install "diagrid[claude_agents]"

# For LangChain
pip install "diagrid[langchain]"

# For Smolagents
pip install "diagrid[smolagents]"

# For HolmesGPT (install in a dedicated environment — see note below)
pip install "diagrid[holmesgpt]"
```

> **Note:** `diagrid[holmesgpt]` is intentionally not part of `diagrid[all]`. HolmesGPT ships strict pins on `fastapi`, `uvicorn`, `cachetools`, `mcp`, and `httpx[socks]` that conflict with the looser constraints used by the other agent extras. Install it in its own environment.

## Prerequisites

- **Python:** 3.11 or higher

## Examples & Quickstarts

Two paths to your first running agent:

- **Managed quickstart templates** — `diagridpy init my-project --framework langgraph` bootstraps a Catalyst project, local kind cluster, Helm chart, and framework template in one command. Templates are cloned from [`diagridio/catalyst-quickstarts`](https://github.com/diagridio/catalyst-quickstarts).
- **In-repo code samples** — clone this repo and run any framework's example directly. See [`examples/`](examples/) for the index, or jump straight to a framework: [`langgraph`](examples/langgraph/), [`crewai`](examples/crewai/), [`adk`](examples/adk/), [`strands`](examples/strands/), [`openai_agents`](examples/openai_agents/), [`claude_agents`](examples/claude_agents/), [`pydantic_ai`](examples/pydantic_ai/), [`deepagents`](examples/deepagents/), [`langchain`](examples/langchain/), [`smolagents`](examples/smolagents/), [`holmesgpt`](examples/holmesgpt/).

## Getting Started with Diagrid Catalyst

Diagrid Catalyst is a fully managed workflow engine for AI agents, built on the open-source CNCF Dapr Workflow project. It's the easiest way to test the different agentic integrations for free.

See [quickstarts](https://docs.diagrid.io/getting-started/quickstarts/ai-agents/) to get started in less than 5 minutes.

## How It Works

This SDK leverages [Dapr Workflows](https://docs.dapr.io/developing-applications/building-blocks/workflow/) to orchestrate agent execution.
1.  **Orchestration:** The agent's control loop is modeled as a workflow.
2.  **Activities:** Each tool execution or LLM call is modeled as a durable activity.
3.  **State Store:** Dapr saves the workflow state to a configured state store (e.g., Redis, CosmosDB) after every step.

Your code can run anywhere (local machine, Kubernetes, EC2, etc.) while the fully managed workflow engine takes care of the agent's execution state, making it crash-proof and resilient to any outage or failure.
