- Provides the freedom to explore all the models available from the providers - Handling of multiple tools calling simultaneously - Efficiently run tools in parallel - Tool response, i.e. the `plot_function`, that does not require going back to the LLM - Uses the inbuilt logging package to allow the control of the verbosity of the logging, set to a higher level, like INFO, to reduce the noisy output