An agent is a software-based entity that can observe information, decide what to do next, and take action to achieve a goal.