This is an interesting question.
For answering it I will assume a time sampled signal.
The way I see it, it something like Image Segmentation where indeed we have many methods which require little or no explicit assumptions.
So, the first things comes to mind it to cluster data by its value.
Yet there won't be any significance to the time axis which is probably important. Namely if we have data and cluster it by its values then we can have the same data sampled at different times (Shuffle the samples) and have the same result.
This brings the intuition we need to use the time somehow. One way I found very efficient yet simple to do so is similar to the concept of Super Pixel.
Namely we cluster with one of the coordinates of the clustering data being the time.
The challenge then is to create the proper metric to weigh values vs. time indices.
But even this simple yet effective method, something is missing. On time data the connection is form one sample to another while Super Pixel is from many to one (The center).
So the next step could be something like Spectral Clustering / Graph Based Clustering where we take into account the chain like connection between samples.
[Work in Progress]