Current approaches to agent system design are generally goal-driven. An agent system is designed by iteratively decomposing system goals until they can be assigned to individual agents. However, this may lead developers to rediscover solutions to common design problems without benefiting from how they were resolved in the past. This results in duplicated effort, inconsistent design, brittle systems, and poor traceability. A more effective approach is to build an agent system incrementally from well-documented agent patterns. An agent pattern documents a proven assignment of roles to agents, and their interaction. It also documents the system qualities achieved by the application of this pattern. Individual patterns can, furthermore, be linked to each other in the form of pattern languages, which guide the designer through the design process. In this paper we describe a pattern-driven agent design process that complements goal-driven design approaches. What makes our approach different from most other pattern-based approaches is the use of softgoals for representing the system qualities affected by a pattern. We demonstrate the approach by applying it to a problem in the domain of agent-based electronic commerce.