Realising Synthetic Active Inference Agents, Part II: Variational Message Updates