Creating A custom step function

There is also some information in Compound Steps in Sampling — PyMC3 3.11.4 documentation

In general, you can inherent from ArrayStep, and implemented the astep method:

You can take a look at some older PR where a new MCMC step method is added: Add DEMetropolisZ stepper by michaelosthege · Pull Request #3784 · pymc-devs/pymc · GitHub (be aware of the style and syntax change in v4 tho)