Document Type


Subject Area(s)

Computer Science and Engineering


When we discuss agent-based system construction with software developers or ask students to implement common agent architectures using object-oriented techniques, we find that it is not trivial for them to create an elegant system design from the standard presentation of these architectures in textbooks or research papers. To better communicate our interpretation of popular agent architectures, we draw UML (Unified Modeling Language) diagrams to guide an implementer's design. However, before we describe these diagrams, we need to review some basic features of agents. The paper considers an architecture showing a simple agent interacting with an environment. The agent senses its environment, uses what it senses to choose an action, and then performs the action through its effectors. Sensory input can include received messages, and action can be the sending of messages. To construct an agent, we need a more detailed understanding of how it functions. In particular, if we are to build one using conventional object-oriented analysis and design techniques, we should know in what ways an agent is more than just a simple object