I have found function calling and ‘roll my own agents’ work much better now with Gemini than they did late last year, but I also do a lot of function calling experiments with small open models using Ollama - much more difficult to work with to get a robust system.