After watching several hundred teams build on Aigent, the workflows that hold up in production tend to share the same five habits. The ones that break at 2am usually skipped one of them.
Always give a step somewhere to fail to
Every Decide or Act step should have an explicit failure branch, even if that branch just notifies a human. A workflow with no failure path does not fail gracefully, it fails silently, and silent failures are the ones that cost you a customer before you know anything went wrong.
The second habit is treating idempotency as a design constraint from the first draft, not a fix applied after a duplicate-charge incident. If a step performs a side effect like charging a card or sending an email, give it a stable key derived from the run so a retry is a no-op.
Keep enrichment separate from decisions
The teams with the fewest production issues split fetching data from acting on it into two distinct steps, even when it is tempting to combine them. It makes every run easier to debug, because you can tell at a glance whether a bad outcome came from bad data or a bad decision.

