So, what exactly is an "agent"?
I've spent a ton of time trying to define this because nobody seems to be on the same page. Anthropic's definition is my favorite one by far.
We have 3 different concepts:
1. Agentic systems
2. Agentic workflows
3. Agents
Let's define them one by one:
AGENTIC SYSTEMS
"Agentic systems are intelligent systems that combine large language models with additional capabilities to perform tasks with minimal human oversight."
Basically, an agentic system is the broader category that covers any application that uses augmented LLMs to solve a problem.
An agent is an agentic system. An agentic workflow is also an agentic system.
AGENTIC WORKFLOWS
"Agentic workflows are applications that follow a
predefined code path. They are simple, predictable, and consistent for solving well-defined tasks."
An agentic workflow is not an agent, and this is what I see many people get wrong.
The main difference here is that agentic workflows use hardcoded rules to solve problems. They don't give the LLM any agency.
Attached, you'll see an example of an agentic workflow that generates market reports. Notice how the workflow uses predefined branches to solve the task.
AGENTS
"Agents are systems capable of performing tasks dynamically and autonomously. They offer flexibility and model-driven decision-making at scale."
The key words here are "Model-driven decision-making".
Attached is an example that shows a simple agent that writes a plan to solve a coding task. We have two LLMs working together to generate and refine the plan until it's complete.
Something important:
I did not represent the use of tools and memory in any of these diagrams. They are pretty crucial for any agentic system!
As I mentioned earlier, I care more about implementing these concepts than defining them, but I still need to teach my students what they all mean.
If you have an idea to improve these definitions or if you notice something unclear, please let me know.