;;; An agent is something that perceives and acts. As such, each agent has a ;;; slot to hold its current percept, and its current action. The action ;;; will be handed back to the environment simulator to perform (if legal). ;;; Each agent also has a slot for the agent program, and one for its score ;;; as determined by the performance measure. (defstruct agent "Agents take actions (based on percepts and the agent program) and receive a score (based on the performance measure). An agent has a body which can take action, and a program to choose the actions, based on percepts." (program #'nothing) ; fn: percept -> action (body (make-agent-body)) (score 0) (percept nil) (action nil) (name nil)) (defun nothing (agent percept) (declare (ignore agent percept)) NIL)