The hype around Large Language Model (LLM) agents makes it easy to think we’re on the cusp of something completely new, but in reality, we’re standing on familiar ground. The concept of an “agent” is being marketed as revolutionary, but this excitement echoes discussions from decades ago. Agents — software entities that act on behalf of users — have been around for a long time, and they will continue to be a part of engineering disciplines in the years to come. The tools have evolved, but the fundamental ideas remain much the same.

What Exactly Is an Agent?

Let’s start by trying to define an agent. Spoiler: this is easier said than done. Looking back to the 1990s, there was a similar buzz around agents. Michael Wooldridge, a Professor at Oxford, warned that “agent” might become a “noise” term (Wooldridge and Jennings, 1995) - used so often and so vaguely that it risks losing meaning. Fast forwad 30 years, and we are still having the same debates.

alt text

An agent is essentially a software entity that acts on behalf of a user to perform tasks autonomously, like Business Process Automation (BPA) or Robotic Process Automation (RPA), given that we’re using LLMs to simulate bot-like behavior. But changing the acronym doesn’t change the nature of the work: agents are fundamentally about workflows, decision-making processes, and automated execution. (Franklin, 1996) The difference today is that instead of using rigid rule-based systems, we’re deploying LLMs to simulate intelligent, adaptable behavior.

alt text

FSMs, Playbooks, and Telecom as an Example

Agents are not just simple while loops calling APIs — they’re about designing sophisticated systems that make decisions, which brings us to finite state machines (FSMs). Imagine a cable broadband company where customer service representatives (CSRs) follow playbooks—steps, questions, and branching decisions based on customer responses. These playbooks are a form of FSM, outlining specific states and transitions. Today, we can model these workflows using tools like LangGraph, and we do so by integrating LLMs, but the core concept remains FSM-driven automation.

The value here isn’t in striving for artificial general intelligence (AGI); it’s in creating practical automation — actually useful intelligence (AUI). Instead of rule-based systems, we use LLMs to power these workflows, making them more flexible and adaptive. The new tools allow us to build better workflows and more effective automation. And this enables the Service-as-Software where we services agents instead of selling software that customers have to use to complete their task.

alt text

Repeating the Cycle of Hype: Agents Today vs. 30 Years Ago

What’s different now is the engine, not the car. Instead of rigid, rule-based systems, we have LLMs that are fluid and adaptable. But the design patterns we’re using — the workflows, the FSMs — haven’t fundamentally changed. It’s like swapping a car’s combustion engine for an electric motor: the engine is different, but it’s still a car. And with that, we would still need to scope out the product to ensure we manage the expectations of what an agent would do.

alt text

Developing these agent systems today is 99% engineering and 1% AI (Etzioni, 1996). Decomposition, abstractions, organizations [Booch 94] — the same disciplines that have always been at the heart of software engineering. The conversation about agents is not just technical; it’s also about recognizing the continuity of the engineering mindset. As the hype evolves, we’ll see regulation follow, just as it did in the past.

alt text

The key takeaway is that while the tooling is better, the essence of what we’re building remains the same. The “agents” of today are not a fundamentally new invention — they’re an evolution, a re-engineering of the ideas we’ve worked with for decades. The goal remains the same: to create efficient systems that do work on our behalf. The conversation isn’t about reinventing agents; it’s about understanding the advances in the engine that powers them. And to learn more about that, please check out my Reasoning Series.

References

@article{
    leehanchung,
    author = {Lee, Hanchung},
    title = {What The Hype and Reality of Agents: Resurgence of the Past, with LLM Flavors},
    year = {2024},
    month = {10},
    howpublished = {\url{https://leehanchung.github.io}},
    url = {https://leehanchung.github.io/blogs/2024/10/26/thoughts-on-agents/}
}