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.