Urgent.News

What's breaking now, across thousands of outlets.

AI

Your AI agent re-sends the email on retry: an outbox for side effects

Most agent frameworks model a step as "do some work, then call the tools." So the tool call — send the email, call the webhook, charge the card — happens inside the run, somewhere in the middle of your graph. That works until it doesn't. The moment you add a retry, a crash-resume, or a deterministic replay, the same step runs again, and the side effect fires again. State you can version and…

Agent frameworks typically model a step as performing some work, then calling tools. This works until it doesn't. When you add a retry, crash-resume, or deterministic replay, the same step runs again, firing side effects multiple times. The issue lies in executing I/O inside an agent step. To resolve this, the outbox design records the intent as state (committed atomically with everything else) and lets the runtime deliver it once, after the commit.

This prevents re-sending, re-running, or replaying the effects. The outbox splits the intent and delivery into separate steps: the produce records the intent as state, while the runtime delivers the committed-but-undelivered intents after the commit. This approach prevents duplicate effects in retries, parallel producers, and replays.

Using the outbox, you can have a clear separation between intent and delivery in your agent framework.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in AI

TRAIL TUTOR

This is a submission for the Hacktoberfest Open-Source AI Challenge Week 1: Touch Grass TrailTutor AI: Use AI for One Minute, Explore the Real World for Ten What I built TrailTutor AI is an outdoor…

More from Friday 9 October →