With the butler persona prompt attached, gemma4 reasons about calling the calculator and then answers from memory with a different wrong product every run; tool_choice=required via extra_body is advisory at best on Ollama's OpenAI-compat layer. orchestrate_tool_calls() now uses a terse TATLOCK_ORCHESTRATION_PROMPT; synthesize_from_results() keeps the persona, so the user-visible voice is unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>