Back to journal

AI · 7 min · Dec 4, 2025

Designing agentic systems that don't drift

JS
Jeeva Sasikumar

Agents fail quietly: they call the wrong tool, loop forever, or sound confident while inventing state. Production systems need bounded autonomy, not open-ended chat with side effects.

Tools over free text

Expose a small, typed tool surface. Prefer structured outputs and schema validation. If the model can't express an action as a tool call, it shouldn't be allowed to invent one in prose.

Hard stop conditions

  • Max steps, max tokens, and max wall-clock time per run.
  • Idempotent tools so retries don't double-charge or double-send.
  • Explicit human approval for irreversible actions (refunds, deletes, publishes).

Memory with intent

Short-term scratchpads for the current task; long-term memory only for facts you can cite and invalidate. Unbounded memory stores become a second RAG problem with worse failure modes.

Handoff is a feature

Design the UI for "agent paused — needs you." Summarize what it tried, what it needs, and one-click resume. Agentic products that can't escalate cleanly become support tickets.