Most if not all successful production use cases today are either human-led or human-in-the-loop. Agent-led is possible but requires simplistic use cases.
---
Human-led:
An obvious example is ChatGPT. One input, one output. The model might suggest a follow-up or use a tool but ultimately, you're the master in command.
---
Human-in-the-loop:
The best example of this is Cursor (and other coding tools). Coding tools can do 99% of the coding for you, use dozens of tools, and are incredibly capable. But ultimately the human still gives the requirements, hits "accept" or "reject' AND gives feedback on each interaction turn.
The last point is important as it's a live recalibration.
This can sometimes not be enough though. An example of this is the rollout of Sonnect 3.7 in Cursor. The feedback loop vs model agency mix was off. Too much agency, not sufficient recalibration from the human. So users switched!
---
Agent-led:
This is where the agent leads the task, end-to-end. The user is just a participant. This is difficult because there's less recalibration so your probability of something going wrong increases on each turn… It's cumulative.
P(all good) = pⁿ
p = agent works correctly n = number of turns / interactions
Ok… I'm going to use my product as an example, not to promote, I'm just very familiar with how it works.
It's a chat agent that runs short customer interviews. My customers can configure it based on what they want to learn (i.e. why a customer churned) and send it to their customers.
It's agent-led because
→ as soon as the respondent opens the link, they're guided from there → at each turn the agent (not the human) is deciding what to do next
That means deciding the right thing to do over 10 to 30 conversation turns (depending on config). I.e. correctly decide:
→ whether to expand the conversation vs dive deeper → reflect on current progress + context → traverse a bunch of objectives and ask questions that draw out insight (per current objective)
Let's apply the above formula. Example:
Let's say:
→ n = 20 (i.e. number of conversation turns) → p = .99 (i.e. how often the agent does the right thing - 99% of the time)
That equals P(all good) = 0.99²⁰ ≈ 0.82
So if I ran 100 such 20‑turn conversations, I'd expect roughly 82 to complete as per instructions and about 18 to stumble at least once.
Let's change p to 95%...
→ n = 20 → p = .95
P(all good) = 0.95²⁰ ≈ 0.358
I.e. if I ran 100 such 20‑turn conversations, I’d expect roughly 36 to finish without a hitch and about 64 to go off‑track at least once.
My p score is high. I had to strip out a bunch of tools and simplify but I got there. And for my use case, a failure is just a slightly irrelevant response so it's manageable.
---
Conclusion:
Getting an agent to do the correct thing 99% is not trivial.
You basically can't have a super complicated workflow. Yes, you can mitigate this by introducing other agents to check the work but this then introduces latency.
There's always a tradeoff!
Know which category you're building in and if you're going for agent-led, narrow your use-case as much as possible.