# Agents controller
The agents controller (or simply called controller) provides a layer between the IoTHub and one or more agents. This resource is designed to improve the way of installation, deployment, and processing of your agents. In addition, it lowers operational tasks such as starting, stopping, and configuring agents by leveraging the internal communication of our software.
The controller automatically deploys an arbitrary number of agents for you and constantly monitors the performance of your agents, runtime, and behavior. For this purpose, the controller executes each agent as a subprocess; thus, it can receive metrics from agents and send them instructions. All of this performance activity is displayed via the IoTHub, which allows you to retrieve log files, know the agents' statuses, and more options in one place.