Of Bots, Copilots, and Agents
In the hierarchy of machine intelligence, let’s say that bots are bronze 🥉, copilots are silver 🥈 and agents are gold 🥇. In today’s AI gold rush some software self-identify as agents or agentic.
But not all that glitters is gold.
Bots
Software bots have existed since tie-dye and Nehru jackets were still fashionable in 1966 with the invention of Eliza, a psychotherapist chatbot. Bots are hardcoded applications that excel at automating repetitive, rule-based tasks like crawling the web, running backups, and simple customer service Q&A.
If X then Y, else Z.
Virtual Assistants like Siri and Alexa are more sophisticated bots but still function as a simple request-response system. They lack the interpretive powers to handle situations outside of their programmed scope and often struggle with context (Georgia, the state vs the country) or complex conversations.
Copilots
Copilots are advanced tools designed to assist users in a collaborative manner. They are often powered by machine learning and generative AI models like GPT, LLamda, Gemini, Claude, etc., to make suggestions, generate content, or automate tasks based on user inputs. Microsoft’s GitHub Copilot for example helps developers write code by suggesting completions and offering alternatives. Apple recently announced Apple Intelligence will be infused into their operating systems and applications with similar human-in-the-loop enhancements.
Copilots require user inputs and historical data to function. They enhance but do not replace human judgment and struggle if the task at hand or environment changes significantly. They have no ability to reason and are unreliable in terms of accuracy and truth. Most if not all of the software being referred to as agents falls somewhere on the spectrum between bots and copilots.
Agents
There are many definitions of and discourse about agents (Intelligent Agents: Theory and Practice, Artificial Intelligence: A Modern Approach, What is an Agent?, Andrew NG Talk) but generally the term is used to denote an entity capable of receiving information and acting upon its environment. We challenge this simplistic definition and posit that there are minimal criteria that must be met in order to qualify an entity as an agent. By using a more robust definition of agents, we differentiate between rudimentary automated systems and sophisticated intelligent entities capable of autonomous interaction with their environment.
We believe an agent must have agency, meaning an intrinsic self-motivation and the ability to choose a course of action autonomously without relying on predefined rules (bots) or human intervention (copilots). Agents should be able to devise novel solutions to complex problems not represented in their training data. They must be able to adapt – change their mind, if you will – in light of new information. Codifying these into more concrete requirements, an agent must be able to:
- Understand the World. The world is fuzzy, having hidden dynamics, uncertainty, and change so an intelligent agent must be able to factor this changing uncertainty and update its understanding of cause-and-effect in real time in order to adapt.
- Reason. The ability to formulate beliefs and predict future states.
- Plan. The ability to identify and select optimal actions given conditions and objectives.
- Learn. The ability to continuously evaluate the result of its actions and update its world model.
Make no mistake that bots and copilots are incredibly useful tools but intelligent agents are a special class of software with unique capabilities that warrant meeting certain criteria in order to earn the label.
Beware of fool’s gold.
Genius is a toolkit for developers to generate intelligent software agents that enhance existing applications with greater reasoning, planning, and learning. Sign up for the beta today.