Other questions that share the most tags with this one.
Both, but schemas first. Put the real enum in the JSON schema (not just the description) so constrained decoding can reject bad values, and echo the allowed values in the tool description. Then drop temperature to 0-0.2 for tool-calling turns only — you can keep prose turns…