Introducing Dapr Durable Execution for Goose: AI Agents That Pick Up Where They Left Off
A new open-source integration runs Goose agents inside Dapr Workflows, so they survive crashes, skip completed turns, and resume with their context intact.
Yaron Schneider
CTO & Co-Founder
Introducing a new open-source integration between Goose and Dapr, bringing durable execution to Goose agents.
Today we are releasing diagrid-goose, an open-source Rust package (Rust calls these crates) that runs Goose inside Dapr Workflows. Goose agents can now survive crashes and resume automatically, without starting over. If the process dies mid-task, the agent continues from its last saved checkpoint.
The problem: an agent is only as reliable as its runtime
Goose is an open-source AI agent that writes code, uses tools, investigates problems and works through multi-step tasks. A single run can last several minutes to several hours and span dozens of model calls.
The runtime is the process and infrastructure the agent runs on. If that process crashes or its container restarts partway through, the run stops.
Goose could already persist conversation sessions. What it lacked was durable execution, a record of which steps in a run have finished so the run can continue from that point. Without it, teams had to track finished work and decide what to run again on their own. For long-running agents, that creates real problems: wasted LLM tokens, duplicated work, lost execution progress, and custom recovery logic.
What's new: durable execution, built in
With diagrid-goose, Goose runs inside a Dapr Workflow. Each conversation turn becomes a workflow activity, a single unit of work that Dapr checkpoints when it finishes. A checkpoint is a saved record of completed work, stored outside the agent's process so it survives a crash.
That gives Goose agents three properties they did not have before.
Resume after crashes. When an interrupted agent's worker (the process running the workflow) restarts, the workflow recovers the existing Goose session and keeps going.
Skip completed work. Finished turns are recorded in Dapr's workflow history and are not run again during recovery. The agent never pays twice for a model call it already made.
Keep context across restarts. The agent retains its full conversation history, so it carries on reasoning about the same task from where it stopped.
All of this works with the model providers and tools Goose already supports. Teams do not have to modify Goose or build their own workflow engine. All with just a few lines of Rust.
Crash it yourself
The repository includes a quickstart built to show recovery. With Dapr and Goose installed, run:
git clone https://github.com/diagridio/rust-ai
cd rust-ai/crates/diagrid-goose
dapr run --app-id goose-quickstart \
--resources-path ./examples/resources \
-- cargo run --example quickstartStop it with Ctrl+C partway through, then run the same command again. Completed turns are skipped and the interrupted turn continues from the saved Goose session.
Available today
A capable agent is only useful if it finishes the work it starts. diagrid-goose gives Goose agents a durable runtime so they can.
- Explore the integration and examples on GitHub
- Learn more about Diagrid Catalyst, a managed platform for durable execution, and start a free Catalyst project for your Goose agents.
Build with Goose. Run with Dapr.


