The rule I apply in every system below is simple to state.
An outcome I cannot confirm gets reconciled by reading, never retried by sending again, and work is done when its result has been acknowledged.
I design for the crash window explicitly and decide, per system, whether a duplicate or a gap is the worse failure.
No repeated payment, no second post
FAFOHive lets agents use a payments provider, an email/CRM provider and social-publishing providers through a governed gateway. A repeated payment or a second marketing email is a real-world harm, so I made the gateway account for every call durably, and a restart does not repeat a provider call. The gateway's design is in Agents with real tools and no keys.
In my own social modules a duplicate public post is worse than a missing one. One service owns the send log, and intent is persisted before a side effect: a durable sending state and a budget reservation are committed before any external call. After a crash, anything that was mid-send becomes uncertain, a first-class state that stays until a read-only check or a person resolves it. The Reddit module binds each request to an idempotency key that binds its inputs.
Renders that are never produced twice
Helix keeps durable state for conversations and the work agents do inside them. Its store uses idempotent lifecycle operations and an append-only event log, and a worker that has been replaced cannot overwrite the state of its successor. A pending-intent reconciler finishes or closes out work a crash interrupted. Documents agents create in a conversation are immutable versions with optimistic concurrency, so two writers cannot silently overwrite each other.
In the agents' media studio, renders are long and expensive and a dropped response must never cause a second one.
One request, one agent
Agent Swarm must never start two agents for one request. The writer that moves agent activity into PostgreSQL deduplicates at two layers and checks the body of any replay.
Built to be interrupted
AgentOS is built to be interrupted. A crash, a lost session or a context compaction leaves the work order intact. See Why long agent runs fail.
Counted when acknowledged, not when read
Inference Fabric had a broker that counted work as consumed when it was read. That is Millions of queued items that were not there.