The term agent has been used to describe systems such as procedural wizards in desktop applications, and information retrieval software. Although there is no universally accepted definition of the term agent, there is general consensus that autonomy is central.
In contrast to object oriented programs, agents are self-contained computational systems. Each agent runs independently and interacts with other agents or external systems to achieve its design objectives.
JACK agents have qualities over and above those found in simple agent systems. Most importantly, JACK agents have intelligent reasoning capabilities and are proactive, anticipating future events. They are also reactive, responding in a timely fashion to environmental change. Furthermore, JACK agents can work in teams as humans do, collaborating to achieve objectives.