A software agent is a piece of software (a computer program) that is capable of making simple decisions to solve a problem. Usually, agents solve problems by interacting with other agents, or with their environment.