How to Design an Intelligent Agent?