from smolagents import HfApiModel, CodeAgent from tools import DuckDuckGoSearchTool, get_current_time_in_timezone import os class BasicAgent: def __init__(self): print("BasicAgent initialized.") def __call__(self, question: str) -> str: print(f"Agent received question (first 50 chars): {question[:50]} ...") # ✅ Using Qwen model from Hugging Face Hub model = HfApiModel( max_tokens=2048, # within range for Qwen 1.5 7B temperature=0.5, model_id="Qwen/Qwen1.5-7B-Chat", # Free and available via HF Inference custom_role_conversions=None, ) agent = CodeAgent( model=model, tools=[DuckDuckGoSearchTool(), get_current_time_in_timezone] ) prompt = f"""You are a general AI assistant. I will ask you a question. Think step by step if necessary, and use tools if needed. Finish your answer with the following template: FINAL ANSWER: [YOUR FINAL ANSWER]. YOUR FINAL ANSWER should be a number OR as few words as possible OR a comma separated list of numbers and/or strings. If you are asked for a number, don't use commas or symbols like $ or %, unless specified. If you are asked for a string, don't use articles or abbreviations (e.g. for cities), and write the digits in plain text unless told otherwise. If you are asked for a comma-separated list, apply the above rules depending on item type. {question} """ try: answer = agent.run(prompt) except Exception as e: print(f"Agent failed: {e}") answer = "Error: Agent could not complete the request." print(f"Agent returning answer: {answer}") return answer