What constitutes an agent is a controversial topic these days. What follows describes how I intend to use the term. Put briefly, an autonomous agent senses and acts upon its environment in the service of its own agenda. Examples are to be found among humans (you and I), other animals, autonomous mobile robots, artificial life creatures, and software agents.
Thus an autonomous agent is situated within some environment, perhaps our real world, or an artificial environment within a computing system, or within an operating system, a database, or a network. The agent actively senses it's environment, and acts upon it so as to effect what it may sense next. This interactive sensing and acting aims to achieve goals that can be expected to satisfy drives. These drives may have evolved, as in us or other animals, or may have been designed and built in as in robots, artificial life agents, or software agents.
An extensive discussion of what constitutes an autonomous agent, how software agents differ from other programs, and of how agent can be classified can be found in "Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents" by Art Graesser and myself. It's also available via ftp.
I think of minds as the control structures of autonomous agents. The function of a mind is at each instance to decide what to do next. Autonomous agents, and only autonomous agents, need minds. A mechanism of mind is some piece of the architecture of such a control structure that enables it to so decide.
Artificial Minds (Stan Franklin, MIT Press, September 1995, ISBN 0-262-06178-3) provides a guided tour of such mechanisms of mind. (Description) (Table of Contents) (Reviews) It also proposes a different way of thinking about minds, a new paradigm, the action selection paradigm.