Sakrit sits between your agent and the tools it calls, so every action with real-world consequences — a charge, an email, a write — takes effect exactly once through crashes, retries, and resumes. And where exactly-once is genuinely impossible, it tells you honestly instead of guessing.
Run it yourself: python examples/money_agent/demo.py — naive prints 2 charges, guarded prints 1 charge.
Agents reword arguments on every retry. Sakrit keys an effect by which step of which run it is — so a reworded email is the same email, and a forgotten field can never mint a duplicate.
Where exactly-once is impossible, Sakrit halts loudly and surfaces the ambiguity for a human — never a silent duplicate, never a silent drop. Proven by killing our own process at every dangerous boundary.
import sakrit opens no network connection and pulls in no framework. Apache-2.0,
works offline, no account. The guarantee is the whole product.
Declared per tool, never guessed: L3 true exactly-once → L2+R (recommended for money) → L2 · L1 effectively-exactly-once → L0 at-most-once with a loud, surfaced flag.
We're onboarding a small group of design partners running agents that touch money. Early access to the library, white-glove integration, and a direct line to the founder.