from smolagents import Tool import requests import os class SerperSearchTool(Tool): name = "serper_search" description = "Searches the web for a given query and returns the top result's title and URL." inputs = { "query": { "type": "string", "description": "The search query to look up on the web." } } output_type = "string" def forward(self, query: str) -> str: headers = { "X-API-KEY": os.environ['SERPER_API_KEY'], "Content-Type": "application/json" } payload = { "q": query } response = requests.post("https://google.serper.dev/search", headers=headers, json=payload) data = response.json() if "organic" in data and data["organic"]: top = data["organic"][0] return f"{top['title']}: {top['link']}" return "No relevant results found."