A Systematic Approach to Artificial Agents