In this tutorial Tony Kipkemboi adds two new CrewAI quickstarts that showcase how Google Gemini’s built‑in capabilities can be wrapped as custom LLMs or tools and then used directly inside CrewAI agents. The first quickstart, Gemini Search Grounding, converts the Gemini model (which already supports Google search grounding) into a custom LLM. By injecting the search tool on every model call, the agent can perform web searches without a separate search tool, demonstrated with a lightweight “company researcher” agent that fetches the latest fundraising information for OpenRouter Inc. and returns a clean markdown report. The second quickstart, Summarize Video with Gemini, leverages Gemini Studio’s multimodal video‑understanding API. A class‑based CrewAI tool is built (with Pydantic schemas for inputs/outputs) that accepts a YouTube URL and a prompt, calls Gemini to generate a timestamped summary, and returns markdown. The demo shows both streaming and non‑streaming modes, a sanity‑check run on a Jason Calacanis podcast, and a full agent run that extracts the URL from a user message, invokes the tool, and produces a concise summary with action items for a Matthew Berman video. The video concludes with a call for community suggestions (e.g., a VO3 quickstart) and a promise of more Gemini‑focused extensions.
Chapters
So I've added 2 more CrewAI Quickstarts that I think you'll find interesting. So let's go ahead and look at them. For the 2, I've added them under the custom LLM folder under the CrewAI Quickstarts repo. The first one is the Gemini search grounding. And the next one is summarize video with Gemini. So let's go to the first one here. So what I've done with the Gemini search essentially is wrap the Gemini model that also supports Google search grounding under the hood and pass it to the LLM. So you can think of it as instead of using something like Serper or any other web search tool that you usually include within your CrewAI agent, you can just wrap the Gemini model and include include the tool directly, which is the search grounding that comes with it, and pass it to your agent as an LLM, not as a tool, as an LLM. And it's able to do the search like you would. So here is the tool itself that basically converting the Gemini model into a custom LLM. And the magic happens in here. So it injects the Google search tool on each call that the model is going to do. And then it enables the web search options for LightLLM under the hood so that it can actually run this tool itself. And here what we do essentially, that's what we do here. So we have essentially after you return the call itself, so you're passing the message, and then it takes in the tools, which is the search, and then the callbacks and available functions, and then it returns that. So if you come and test it on an agent here, which we've created one simple light agent in CrewAI, and we've created the new model that we've kind of created as custom here, of course, with Google Search. Now we create the researcher here, and what it does is company research, and the goal is to fetch current information of a given company and return proper markdown. And then the backstory specializes in searching with Google grounded Gemini response. Not necessarily to mention that, but you know, why not? And for the LLM, which is a crucial part, We pass in that custom LLM that we've actually added some spice to it. So to do the web searching with GroundedNet. And then here we just pass in the message, what we wanted to do, or the task, fundraising information for OpenRouter Inc. And we wanted to find information on that, the most recent information. So here it is. It ran, it found the information, and this is the raw output from the agent itself. And now here what I did, I just cleaned it up a bit with Markdown so it looks much easier to read. And you can see it has the most recent information up to the latest about the company. And I've added further reading links here if you want to go and explore further how this is built and just understand it better. And let's go to the other one. So the other one that we had is summarize video with Gemini. So this is the same thing with Gemini. As you know, if you go to Gemini Studio, for example, you're able to go there and you can actually upload a video or give it a YouTube URL and it's able to actually summarize that video and give you timestamps all the way. Basically converse with that video, for example, chat with video in a sense. And this is because it's multimodal model. So we can actually just do the same, actually use that model since it has those capabilities, wrap it up as a CrewAI tool, pass it to the agent so the agent can use that as a tool tool to actually summarize videos for you and do extra stuff with videos or understand videos for you. So that's exactly what we're doing here. So it accepts a video URL and prompt and calls the Gemini AI Studio with the video file data, returns Markdown summary, supports both streaming and non-streaming modes, can be attached to a Korea agent, of course. And that's what we're going to do. So here we define the tool, which is the crucial part, summarize video with GenAI. Oh, with, yeah, with Google Gemini GenAI. And here we're passing in the API key. And this is where the magic happens, just converting, taking in your video, converting that into, for it to be able to understand it and actually generate a summary for you or whatever you really need to, to know from the video. I've added here Pydantic models to kind of help make it easier on the CrewAI tool itself, be able to adopt some of the variables we're passing in there. And here's the tool itself with a class-based tool for CrewAI. And it's pretty simple, it's just kind of inheriting that and returning that since we've already implemented. And here's the direct test, and this is just for sanity check. You can actually run a CrewAI tool directly by stating the tool.run and passing in the parameters that it needs and actually run it, and it's going to give you an output. And this is just us testing that, and you can run it in This is as we told it to generate a timestamp of this video essentially. And he's using the same prompt that's already passed in here by default. Generate a detailed summary with key points and timestamp if available, which is usually available because it can go through it. And you can see here the timestamp. And this is a video from the latest, I believe this is with Jason Calacanis and team, the podcast. And it's a 7-minute, they're talking about the current state of AI and it's pretty quick, short, and they got timestamps too. Now let's go see how you can actually use this within CrewAI agent. And this cell shows you that. And we're using a light agent here from CrewAI. So what it does, we just define the agent as well. A video analyst, and all it does is just creates the content. We pass in the tool directly that we created up there and we run it and we give it a new YouTube video that we wanted to summarize. We told it summarize this video with action items. This video is one of the recent ones by Matthew Berman. Shout out to Matthew. And it just went ahead and summarized this video. And this is the tool. You see that from this message that we passed in, it's able to go through that input that we gave it, extract the URL that it needs to actually pass into the tool. So this is the tool input. And what it does with this tool input, it extracts message. So it took out the video URL from that message and the prompt. Summarize the video exactly and provide a list of action items. And this is what it did, went ahead and generated it. And here's the more pretty markdown that it generated. So we have the summary of the video and action items. So that's all I wanted to show you for this. If you have any other interesting things that you want me to wrap up and create quick starts off, please let me know. But this is just the beginning. I'm going to be doing more on the Gemini aspects of it as well. And things like VO3, I think there's another interesting thing. If we can create a VO3 quick start using CrewAI, I think that'd be a pretty cool one as well. And I'm going to be adding some more. But if you have some that you think are You gotta have this today, let me know. I'll try to prioritize it. And with that, see you on the next one. Bye.