Optimization: send ToolChange only when needed