The PowerAgent consists of both on-chain and off-chain components that work together. They are The Agent, The Job and The Keeper(s).
PPAgentV2 contract and Job contracts are located on-chain.
Keeper software is run off-chain on dedicated users' machines, listens to the events from the blockchain via Websockets and interacts only with PPAgentV2 contract.
The Agent is the central contract: it stores information about all keepers and all jobs, calculates rewards, processes slashing, and, most importantly, executes the tasks.
The Job is comprised of binary information stored in the Agent in a specific custom layout, which describes what contract and when to execute, providing certain data regarding the job properties. The job can be configured in multiple ways, such as setting minimal CVP stake for keepers to be eligible for execution.
The Keepers are the crucial part of the system. A keeper is a bot running on a dedicated node and two corresponding blockchain addresses. This bot is ought to watch the conditions of execution and call The Agent to execute the transaction when they are met.