The current implementation of the GenerativeModel class doesn’t properly handle async functions when passed as tools, resulting in coroutine objects never being awaited and causing runtime errors. But there is a solution by modifying the file for supporting async here
If you are using synchronous libraries like requests: Use multithreading unless you can switch to an async-compatible library.