Async Python runtime for agents that survive failure, persist evidence, and pause for the real world.
README
v0.1.0a5- core API stabilizing, actively developed.
Agent frameworks assume tools run on the server and finish instantly. Real agents crash mid-run, need human approval, interact with browsers and spreadsheets, and must explain what they did after the fact.
Dendrux is the runtime that handles this. Tools are plain Python functions. State survives restarts. Crashed runs get swept. Failed runs retry with prior context reconstructed from persisted traces (the DB stores raw values — guardrails redact at the LLM boundary only, so retries replay the original conversation). And every LLM call, tool execution, pause, and failure is persisted as evidence.
import asyncio
from dendrux import Agent, tool
from dendrux.llm.anthropic import AnthropicProvider
@tool()
async def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
async def main():
async with Agent(
provider=AnthropicProvider(model="claude-sonnet-4-6"),
prompt="You are a calculato