Every second product I look at right now calls itself an agent. I get why. “Agent” sounds like the future. “Workflow” sounds like something your bank’s back office runs at 2am. But a few months into building Resaido, I’ve started to think the most useful question an AI builder can ask isn’t how do I make this an agent. It’s which parts of this should never be one.

Let me use my own product to show what I mean.

Resaido watches what a real estate agent says — across an open home, a follow-up email, a text, a listing — and over weeks or months it tells you when those statements stop lining up. The agent who says “no, no issues with the cladding” in March and then “well, I did flag the building report” in May. What it’s really hunting for is the gap between what was said and what was already known.

Here’s the part most people would get wrong. They hear “watches everything an agent says and reasons about it” and immediately reach for an agent architecture — let the model roam, let it decide what to look at, let it work the whole thing out. And for most of Resaido, that would be exactly the wrong call.

Because most of what Resaido does is, and should be, a workflow. A statement comes in. It gets transcribed. It gets pinned to a time, a property, a channel, a speaker. It gets written into a vault that doesn’t forget and doesn’t quietly rewrite itself. That path never changes, and I never want it to. If you’re building anything that might one day sit in front of a tribunal, “the system decided to do it differently that time” is the last sentence you ever want to say out loud. Compliance lives and dies on being boring: same input, same output, every time, with a record of why. That’s a workflow. Reaching for an agent there wouldn’t make it smarter — it would make it untrustworthy.

So where does the agent actually come in?

It comes in at the one question the workflow can’t answer by following steps: given this new thing the agent just said, is there a problem — and where would I even look to find out?

That path genuinely can’t be drawn in advance. If the statement touches weathertightness, the system needs to go one way — pull the building reports, the earlier statements about moisture, the disciplinary patterns where staying quiet about a known leak got someone’s licence cancelled. If it’s about a boundary, or a view that’s about to be built out, or a school zone, it goes somewhere completely different. It has to decide what’s even relevant, go and retrieve it, look at what comes back, and judge whether that’s a real contradiction, an innocent slip, or nothing at all. Sometimes the first look turns up nothing and it has to decide whether to dig further or let it go.

That isn’t a fixed pipeline. That’s judgment with a goal — find the exposure — running down a path that changes every single time. That’s the part that has to be an agent, because no flowchart I could draw would survive contact with the next strange thing someone says at an open home.

So Resaido isn’t “an agent.” It’s a deterministic, auditable workflow wrapped around a small, sharp agentic core — and the entire design problem was deciding exactly where that seam falls. Push the agent out too far and you lose the auditability that makes a compliance tool worth anything. Pull it in too tight and you’re back to keyword-matching, which is useless against someone who’s careful never to say the obviously wrong thing.

The reason I keep circling this is that agent-vs-workflow isn’t really an engineering question. It’s a product judgment wearing an engineering costume. “Can the model do this on its own” is the wrong frame. The questions that actually matter are the ones that decide whether anyone can trust the output: does this step need to be reproducible? does it need to be explainable to someone who wasn’t in the room? when it’s wrong, can you trace back why? In my world those aren’t nice-to-haves bolted on at the end. They are the product.

So no — I didn’t build Resaido as an agent because agents are having a moment. I built the boring 80% as a workflow on purpose, precisely so the 20% that has to think can be trusted when it does.

The mature version of this decision was never picking a side. It was knowing exactly where the seam goes.


This is the first of these. I’m building Resaido — and the messy data work underneath it — in public. If that’s your kind of thing, stick around.