These are basic to Complex Adaptive Systems (CAS) and to Object Oriented Programming (OOP) where they are simply referred to as objects. Neither discipline seems to have heard of the other – which is strange, because each of them could learn from the other.
Agents are things that have agency, that can make decisions, that have smarts. In CAS they are hard to put your finger on, but in OOP they are very well defined.
In a computer, all the smarts are contained in the Central Processing Unit (CPU) which is the miracle product of our time, and are now so cheap they show up everywhere. The CPU can do some basic things (such as add x to y) which depends on what the computer is for. The computer for a car, does different things than a computer for a microwave.
Software is nothing but a high-level list of instructions – do this, and then this, and then this – which are compiled into low-level machine language for the CPU. Software design is a very active field, and back in the Sixties it decided to go with objects, as related by Wikipedia.
OOP became a mania, everybody claimed to be using it, although few really understood it. This is when they could have been helped by CAS, but they never heard of it. Programming claims to be a science, but it is really not – and tends to live in its own world. Scientists do not understand them, and they do not understand scientists. And the world goes to Hell.
In OOP, an object is a self-contained computational unit – it contains its own instructions, its own data and does its own thing. It communicates with other objects by sending messages to and receiving messages from them. This is a world of independent objects talking to each other. Hopefully, they all accomplish some overall task – but it takes a lot of hard work to make sure this happens.
Often, they end up talking to each other – but not to the end user – who is stuck with software that doesn’t do what he wants. The user (who is usually not very bright) assumes he is the problem, not the software – and just gives up, and uses Facebook instead.
But let me return to objects. As it turns out, they are useful for other fields, such as CAS. Here, they are assumed to be crude approximations of human behavior. I must emphasize the word crude. I already have a posting A Human Cannot be Modeled which makes this clear.
However, in some situations, approximations are useful – as long they are not taken too seriously. And it is useful to assume that humans have a limited repertoire of behaviors. Any novelist or playwright knows these, and exploits them – in endless complications we never tire of.
This is also what the new breed of social scientist does – figure out what these hidden subroutines are. Unfortunately, people do not like this – and start screaming “This is not real Science!” Science is supposed to make them rich and powerful. And a science that shows them as they really are (not “a little lower than the angels”) is not to their liking.
People should be interested in software – after all, it now runs their world. But they have been so badly damaged by centuries of industrial society they are hardly capable of understanding anything.
Science should be making this clear, but it is scared to death of doing this. And carefully tip-toes around the problem.