Changing tack ⛵️
Time to complain less and offer a clearer alternative vision for AI-powered applications starting with answering the question of why we need any new vision at all.
Stopping with the complaints
I realised that on agentsdecoded.com I am complaining quite a bit. I criticise the big LLM companies, criticise efforts to generate standards, criticise the way AI is introduced, criticise how people think about agents and on it goes. There is value in complaining but ultimately it is tiring for all involved.
Don't get me wrong - I am completely sure that I am correct about everything 😉 but in a space as hyped-up and fast moving as AI Agents you can easily feel overwhelmed about the sheer amount of things to complain about and easily lose sight of the exciting aspects of the technology.
I want to feel excited about technology not just shout about all the things that are wrong.
So I’ll change approach.
Instead of complaining, I am going to focus on offering an alternative vision of how we can go about building and using applications that use agents. This will come in the form of conceptual frameworks, software artifacts, architecture proposals, patterns and methods. Some of these things I may decide (hopefully with useful input from others) that they are not actually useful and will discard (disown) them. Some we will hopefully keep. By allowing for things to be discarded I am giving myself permission to err on the site of creating and thinking in the open.
As we are doing this we are going to connect it to existing efforts other people and organisations are undertaking and perhaps do just a bit of complaining or "robust contrasting", but only if there is a clear alternative to the thing we are complaining to. Since offering alternatives involves actual work hopefully that will keep the complaining to a low level!
I will be introducing the various ideas and approaches in small bite-sized pieces to make the task easier and motivate people to keep coming back for more. So if you are not subscribed yet - this is your chance!
Ok - let's get going! First thing to talk about is what is it that we are even attempting to build. What are these applications that use automated decision making and dialogue so heavily and how do they change things. A lot of this is not going to be new but we need to start at the start.
What are these "AIs"? Do we need new ways of thinking specifically for AI-powered applications?
Automated decision making capabilities coupled with natural language understanding connected to various bits and pieces of classic UI and UX solutions and underpinned by plenty of traditional software engineering is all mashed together into these vague thing that we call an “AI” or a “chatbot”. Are these things really different to everything we’ve been doing before? I think the answer is a clear yes.
The days of menu-driven, button-driven applications were we had to find the right combination of things to select and click in order to get something done are not gone but the context has radically changed.
Let’s think about the change from a few different perspectives.
1. From the user perspective there is more of an expectation that we can directly state what we are after using natural language and the application will react to it. As users we no longer need to understand how the application works. At least not initially. The onus is the application to understand us (or at least our request). This frees us up to dive in straight away and it also makes us even more impatient (and potentially obnoxious) customers.
2. From an user experience design perspective there is a different set of requirements. A lot of the traditional techniques that were designed to guide the user through an unfamiliar space do not apply in the same way. We can let the user ask and the application can reveal stuff along the way. A prime example of this approach are Anthropic's Claude artifacts. The primary interface is chat, but then Claude might decide to throw up a code interface, or a word processing interface - because it is the "right thing" given the request.
3. From a software design and development perspective these new applications require completely new ways of describing and managing them. Old patterns, especially from a software engineering perspective, are still relevant but they need to be accompanied with new ways of describing and understanding these applications and their behavior and better ways of capturing they whole. In addition, we also need to consider that not only are the applications different and need new ways of describing them but the way we build them is rapidly changing with the use of code generation and design generation tools.
4. From an organisational perspective these new applications represent opportunity and challenge. The future they promise of boundless automation is so tempting to the capital-driven organisations but also scary as it is very different from the present and it is not clear how one gets from now to wow without lots of things breaking along the way. New governance structures, new business models, new societal models - it all seems up for grabs.
5. From a regulatory perspective we have a renewed emphasis on responsibility and explainability. Who decided what should happen when, and where does the responsibility lie when we follow a certain path after a series of interactions with an application is now more important than ever. It is not completely new, we already have some regulations in place that we would do well to pay more attention to, but there is undeniably something more specific to articulate from a regulatory perspective when dealing with these "AIs".
So any which way you look at things AI-powered applications are different. As a result we need new ways to describe, design and maintain these applications.
AI Agents as a high-level abstraction capture the nature of these applications quite well. They allow us to talk about goal-directed behaviour, about proactive and reactive behaviour and about social ability.
Thinking of AI-powered applications as just LLM-powered applications is probably not a good enough abstraction and thinking of AI Agents as just LLM-driven applications is also not a good abstraction.
Although LLMs have been a crucial catalyst it is useful and sane to think about the applications independently of LLMs. LLMs are one way to manage conversation, dialogue and reasoning. Even though currently they are occupying a lot of mindspace they are not always the best way to do all the things.
An understanding of AI-powered applications or AI agents that equates the entire application to an LLM is doing it wrong. It is limiting our ability to think about the needs of the application because we are constrained by the capabilities and limitations of LLMs.
If you've been paying attention I promised small more frequent pieces, so in the cheapest of cliff-hangers after all that setup please sign-up to get first view of my framework for describing the core components of these new applications in just a few days!