Designing the agent