All posts
5 min read

Building agentic workflows that don't break

AIAutomationn8n

Agents are seductive. You hand the model some tools, write a system prompt, and watch it figure out a multi-step task. Then you put it in front of real users and watch it loop, hallucinate a tool name, or quietly do nothing for forty seconds.

These are the guardrails I add to every agentic flow before it touches real users.

Hard step limits

Every loop has a maximum step count. Five for simple flows. Twenty for the most complex. If the agent hasn't converged by then, it returns whatever partial result it has, with a flag.

This single rule has saved me more money on token bills than every other optimization combined.

Tool-call timeouts

Each tool gets its own timeout — usually two to ten seconds depending on the call. The agent never blocks the request indefinitely waiting on a slow API.

When a tool times out, I return a structured error to the agent. Half the time it recovers and tries something else. The other half it gives up cleanly, which is also fine.

A small, opinionated tool surface

The first version of every agent has the wrong tools. Too many "read" tools, no clear "this is the final answer" tool, vague names like get_data.

What works:

  • Verbs in tool names. fetch_invoice, not invoice_helper.
  • One way to do each thing. If two tools could plausibly answer the same question, the agent will pick wrong half the time.
  • A terminal tool. Some explicit submit_answer or finalize so the agent knows when it's done.

Observability is non-negotiable

I log every step: input, model thoughts (if any), tool called, tool result, final output. In something searchable — Postgres, ClickHouse, Datadog, anything.

Without this, debugging an agent is fortune-telling. With it, you find the actual failure mode in five minutes.

Where n8n fits

For a lot of "agent" requirements, you don't actually need an agent loop. You need a deterministic pipeline with one or two LLM steps in the middle. n8n shines here — visual, debuggable, easy to hand off to a non-technical client.

I reach for a real agent loop when the path genuinely branches based on intermediate results. Otherwise: pipeline, every time.

The unsexy lesson: most "agentic" features ship better as careful pipelines.

Comments(0)

  • No comments yet — be the first to share your thoughts.

Leave a comment