The paper introduces a software architecture for the speci®cation and veri®cation of knowledgebased systems combining conceptual and formal techniques. Our focus is component-based speci®cation enabling their reuse. We identify four elements of the speci®cation of a knowledgebased system: a task de®nition, a problem-solving method, a domain model, and an adaptor. We present algebraic speci®cations and a variant of dynamic logic as formal means to specify and verify these dierent elements. As a consequence of our architecture we can decompose the overall speci®cation and veri®cation task of the knowledge-based systems into subtasks. We identify dierent subcomponents for speci®cation and dierent proof obligations for veri®cation. The use of the architecture in speci®cation and veri®cation improves understandability and reduces the eort for both activities. In addition, its decomposition and modularisation enables reuse of components and proofs. Therefore, a knowledge-based system can be built by combining and adapting dierent reusable components.