JACK® supports code reuse through the "Capability" concept.
JACK Version 1.3 introduced Capabilities to address the issues of modularisation and code reuse in the context of the agent modelling. A JACK capability represents a cluster of functional components to be used as building blocks during the development of BDI agents. As a design concept they assist in the structuring of agent functionality into meaningful units. At the code level they reduce the amount of source code required when Capabilities are used across different types of agents. Capabilities also support the building of agent code libraries that can be plugged in to new developments.