See, I told you I’d talk about it soon. So, let’s start at the beginning. What is an agent? In the most basic sense, an agent is something with autonomy; that is, an agent is something that can work without oversight to accomplish some goal. Broad, eh? Let’s get more specific, then. We’re really talking about software agents here: a piece of software that has some level of intelligence and works on its own. This is still pretty broad, but we’ll use this definition moving forward.
An agent by itself isn’t that interesting. What makes these useful is their ability for collaboration. We call a collection of agents a multi-agent system. Just so that we are clear, I want to differentiate between two different types of multi-agent system. The more common type is used in computer simulations. Think the Game of Life. While these are certainly an interesting topic, they are not today’s topic.
Instead, we’re talking about agent-oriented software engineering. Think of each agent as a software component, and the application as the system created from the interactions of the agents.