Your code needs JSON back from the model and it has to parse every time. How do you make that happen?
Constrain the decoder to a schema instead of asking for JSON in prose, reserve enough output tokens that a complete document fits, validate at the boundary, and allow one repair retry that quotes the exact violation back.