from smolagents import CodeAgent, DuckDuckGoSearchTool, OpenAIServerModel, WikipediaSearchTool import asyncio class MagAgent: def __init__(self): """Initialize the MagAgent with search tools.""" print("Initializing MagAgent with search tools...") self.agent = CodeAgent( model=OpenAIServerModel(model_name="gpt-4o-mini"), # Use a lightweight model tools=[ DuckDuckGoSearchTool(), WikipediaSearchTool() ] ) print("MagAgent initialized.") async def __call__(self, question: str) -> str: """Process a question asynchronously using the MagAgent.""" print(f"MagAgent received question (first 50 chars): {question[:50]}...") try: # Run the agent asynchronously response = await asyncio.to_thread( self.agent.run, prompt=f"Answer the following question accurately and concisely: {question}" ) print(f"MagAgent response: {response[:50]}...") return response except Exception as e: error_msg = f"Error processing question: {e}" print(error_msg) return error_msg