There are three sorts of Intelligent Agent.

Physical Agents : Robots

Personal Agents : computer programs that act on behalf of thier users. These have a model of the users desires and a model of the users preferences. From this the personal agent can deduce what it is that the user wants to be done, and can tailor its actions to suit the special preferences of the user.

Collaborative agents: computer programs that interact with each other to perform tasks on behalf of their users. The implementation details of these programs are not important, but they are able to carry out conversational interactions with one another, which means that they must be threaded. They provide services and manage resources, which means that they must have a self model, and they negotiate for services and resources, which means that they must model other agents. Collaborative agents can be thought of as specialised, intelligent middleware.

A collaborative agent is diffentiated from an EJB session bean by its need for explicit control of multiple threads on the server side in order to provide conversational interactions. You can implement a collaborative agent using CORBA or sockets or any other communication layer, but in general an agent toolkit is a better approach because they tend to provide a library of conversational templates.

Current state of the art agent systems include The Zeus Agent Toolkit, FIPA-OS, JADE, COUGAR, BOND, DE-CAFE, MAD-KIT and The Agent Toolkit.

At the time of writing collaborative and personal agents were just beginning to make commercial impacts in the fields of personalisation of content, workforce manangement and virtual marketplaces.