A new theory of engineering design known as A-Design is presented that creates design configurations through the interaction of directed software agents. By combining unique problem solving strategies, these agents are able to generate solutions to open-ended design problems. Currently, the A-Design representation and implementation is tailored to solve general electro-mechanical design problems where, given specific user goals, agents within the system reason about the desired functionality to create possible alternatives. These alternatives are subject to an iterative stochastic search algorithm in order to find improved design states. This paper presents an overview of the A-Design theory and focuses on two major aspects: a method for representing electromechanical design configurations, and the reasoning of the agents which construct these configurations.