from typing import Literal from smolagents import Tool from linkup import LinkupClient class LinkupSearchTool(Tool): name = "linkup_web_search" description = "Performs a search for your text query using Linkup sdk then returns a string of the top search results." inputs = { "query": {"type": "string", "description": "The search query to perform."}, } output_type = "string" def __init__(self, answer_output_type: str = "sourcedAnswer", **kwargs): super().__init__(self) import os self.api_key = os.getenv("LINKUP_API_KEY") if self.api_key is None: raise ValueError("Missing Linkup API key. Make sure you have 'LINKUP_API_KEY' in your env variables.") self.client = LinkupClient(api_key=self.api_key) self.answer_output_type = answer_output_type def forward(self, query: str) -> str: response = self.client.search( query=query, depth="deep", output_type=self.answer_output_type ) answer_text = getattr(response, "answer", "No answer provided.") return f'## Search Results\n:{answer_text}'