Hierarchical clustering builds a hierarchy of clusters. In its agglomerative version, each point starts alone, then the closest clusters merge according to a linkage criterion (Ward, average, complete). The result is read in a dendrogram, which you cut at a given height to obtain the clusters.
Example
AgglomerativeClustering(n_clusters=3, linkage='ward').fit_predict(X_s)