|  | from smolagents import ( | 
					
						
						|  | ToolCallingAgent, | 
					
						
						|  | CodeAgent, | 
					
						
						|  | DuckDuckGoSearchTool, | 
					
						
						|  | VisitWebpageTool, | 
					
						
						|  | InferenceClientModel, | 
					
						
						|  | ) | 
					
						
						|  | from dotenv import load_dotenv | 
					
						
						|  | from tracing import setup_tracing | 
					
						
						|  |  | 
					
						
						|  | load_dotenv() | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | trace_provider = None | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | def initialize_tracing(enabled=True, provider="both"): | 
					
						
						|  | """ | 
					
						
						|  | Initialize tracing for the agent module | 
					
						
						|  |  | 
					
						
						|  | Args: | 
					
						
						|  | enabled: Whether tracing should be active | 
					
						
						|  | provider: Which provider(s) to use - "langfuse", "phoenix", or "both" | 
					
						
						|  | """ | 
					
						
						|  | global trace_provider | 
					
						
						|  | if trace_provider is None: | 
					
						
						|  | trace_provider = setup_tracing( | 
					
						
						|  | service_name="smolagent", enabled=enabled, provider=provider | 
					
						
						|  | ) | 
					
						
						|  | return trace_provider | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | def get_agent(): | 
					
						
						|  |  | 
					
						
						|  | initialize_tracing() | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | llm_qwen = InferenceClientModel( | 
					
						
						|  | model_id="Qwen/Qwen2.5-Coder-32B-Instruct", provider="together" | 
					
						
						|  | ) | 
					
						
						|  | llm_deepseek = InferenceClientModel( | 
					
						
						|  | "deepseek-ai/DeepSeek-R1", provider="together", max_tokens=8096 | 
					
						
						|  | ) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | web_agent = ToolCallingAgent( | 
					
						
						|  | tools=[DuckDuckGoSearchTool(), VisitWebpageTool()], | 
					
						
						|  | model=llm_qwen, | 
					
						
						|  | max_steps=10, | 
					
						
						|  | name="Web_Agent", | 
					
						
						|  | description="A web agent that can search the web and visit webpages.", | 
					
						
						|  | ) | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | manager_agent = CodeAgent( | 
					
						
						|  | tools=[], | 
					
						
						|  | managed_agents=[web_agent], | 
					
						
						|  | model=llm_deepseek, | 
					
						
						|  | max_steps=10, | 
					
						
						|  | ) | 
					
						
						|  | return manager_agent | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | if __name__ == "__main__": | 
					
						
						|  |  | 
					
						
						|  | initialize_tracing(enabled=True, provider="both") | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | agent = get_agent() | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | print("Running agent with tracing enabled...") | 
					
						
						|  | result = agent.run( | 
					
						
						|  | "What is the latest news about AI? Please search the web and summarize the results." | 
					
						
						|  | ) | 
					
						
						|  | print(f"Result: {result}") | 
					
						
						|  | print( | 
					
						
						|  | "View traces in Phoenix UI (run 'python -m phoenix.server.main serve' in another terminal)" | 
					
						
						|  | ) | 
					
						
						|  | print("View traces in Langfuse dashboard (if configured)") | 
					
						
						|  |  |