We shipped a Claude Agent SDK executor in Dapr Agents with durable sessions and human approvals. Meaning: your Claude-built agent survives a crash mid-task, resumes with its session intact, and waits for an approval for as long as the approval takes – through restarts and deploys.
Getting started is rather easy:
pip install dapr-agents
dapr init
Then paste this into your agent definition:
from dapr_agents import DurableAgent
from dapr_agents.executors import ClaudeAgentExecutor
agent = DurableAgent(
name="reviewer",
executor=ClaudeAgentExecutor(session_store="statestore"),
require_approval=["merge_pr", "deploy"],
)
agent.start()
Now break it on purpose, because that's the whole point:
Give it a multi-step task.
kill -9 the process somewhere in the middle.
Start it again. The session resumes where it stopped and the steps already completed come back from the journal, not from re-running Claude.
Trigger an approval-gated tool, close your laptop, approve tomorrow. The wait survives because it lives in the workflow, not in memory.
All behavior was checked against dapr-agents main; the release notes have the exact versions: https://github.com/dapr/dapr-agents/releases
Same machinery works for LangChain Deep Agents. The adapter landed earlier this year in our diagrid python package, and deep agents with long tasks are exactly where durable sessions pay off.
If you want the guided version, the Dapr Agents track at Dapr University is free: https://www.diagrid.io/university/dapr-agents
It's that easy to get started. Give it a spin and lmk what you think 👀
Top comments (0)