The word “agent” is everywhere now. People say they’re building an agent, spawning subagents, running a multi-agent system, orchestrating a swarm of agents. It sounds impressive, and half the time even the people saying it couldn’t give you a clean definition if you asked. So let me ask the plain question, the one underneath all the buzz: what actually makes something an agent?

Because here’s the thing. You could wrap a language model in some code, have it call a tool, and print an answer, and someone will call that an “agent.” You could also just have a chatbot that answers questions, and someone will call that an agent too, because it sounds better in a pitch. The word has been stretched until it means almost nothing. That’s a shame, because there is a real, sharp idea hiding in there, and once you see it, you’ll never be confused by the word again.

This post is about that one idea. What separates an agent from a chatbot, from a script, from a “workflow.” And then the vocabulary everyone uses loosely, subagent, multi-agent, spawning, orchestrator, explained so it actually makes sense. No prior expertise needed.

The one idea: who decides what happens next?

Here is the single question that settles whether something is an agent. Forget everything else and just ask this: when a step finishes, who decides what the next step is, you (the programmer, in advance) or the AI (in the moment)?

That’s it. That’s the whole distinction. Let me show you the three cases it produces.

The definition, in one sentence

Put it plainly:

An agent is an AI that directs its own process. You give it a goal, and it decides for itself what steps to take to get there, adjusting as it goes.

That word decides is doing all the work. A chatbot doesn’t decide anything beyond its next sentence. A workflow follows decisions you already made. An agent makes the decisions itself, at runtime, reacting to what it finds. This is the definition the serious labs use, and it’s worth memorizing, because it cuts through every fuzzy use of the word.

Fixed rails vs choosing the road

Here’s the same idea pictured a different way, because it’s the crux of everything. Think of a task as a journey from start to goal.

What an agent is made of

So what does an agent actually need, to be able to steer itself? Three things beyond the raw model. (I’ve gone deep on how these fit together in my other posts; here’s the short version so the concept is complete.)

  • A goal, not a script. You tell it what you want, not how to do it.
  • Tools, so it can actually act in the world (read a file, search the web, call an API), not just talk.
  • A loop, so it can take a step, see the result, and decide the next step, over and over, until the goal is met.

Take away the loop and it can’t adapt. Take away the tools and it can only talk. Take away the goal-not-script freedom and it’s just a workflow. All three together are what let it direct its own process, which is our definition.

Now the vocabulary everyone uses loosely

Once you’ve got “an agent steers itself,” the rest of the jargon falls into place easily. It’s all just agents arranged in different ways.

Here’s how they fit together in a real multi-agent setup. A lead agent takes your request, splits it up, and spawns helpers:

Is it an agent? A few honest gut-checks

Let’s test the definition on real things, because the label gets slapped on a lot that doesn’t earn it.

The honest caveat: more agent is not always better

One last thing, because it’s the mistake everyone makes. The word “agent” sounds advanced, so people reach for it by default, building a fully autonomous agent when a simple workflow would have done the job better.

That’s usually a mistake. The freedom that makes an agent powerful, deciding its own steps, also makes it less predictable and harder to control. A workflow that follows fixed rails is boring, but it’s reliable and you always know what it’ll do. Reach for a real agent only when the task is genuinely unpredictable enough that you can’t script the path in advance. Start simple; add autonomy only when you truly need it.

The takeaway

Strip away all the noise and an agent is a beautifully simple idea: an AI that you point at a goal and let decide its own way there. Not a chatbot waiting for your next message. Not a workflow riding rails you built in advance. Something that looks at the situation, picks a step, sees what happens, and picks the next one itself, until it’s done.

Everything else is just arrangement. A subagent is an agent with a boss. A multi-agent system is a team of them. An orchestrator is the manager. Spawning is hiring a helper. It’s agents all the way down, and now the whole vocabulary should read like plain English to you. The next time someone says they’re “building an agent,” you’ll know exactly the right question to ask: who decides what happens next? Their answer tells you whether they’ve really built one, or just given a nice name to a script.

← Back to blog