File size: 2,427 Bytes
c4821fe d971efd c4821fe d971efd 42b982f d971efd 42b982f d971efd c4821fe d971efd c4821fe d971efd c4821fe 0bd7a60 c4821fe 0bd7a60 c4821fe d971efd c4821fe 0bd7a60 c4821fe 42b982f d971efd c4821fe d971efd c4821fe d971efd 42b982f d971efd 42b982f |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
from smolagents import (
ToolCallingAgent,
CodeAgent,
DuckDuckGoSearchTool,
VisitWebpageTool,
InferenceClientModel,
)
from dotenv import load_dotenv
from tracing import setup_tracing
load_dotenv()
# Initialize tracing when module is imported
trace_provider = None
def initialize_tracing(enabled=True, provider="langfuse"):
"""
Initialize tracing for the agent module
Args:
enabled: Whether tracing should be active
provider: Which provider to use - "langfuse" or "phoenix"
"""
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():
# Ensure tracing is initialized
initialize_tracing()
# SmolagentsInstrumentor will automatically trace agent operations
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
)
# Create web agent
web_agent = ToolCallingAgent(
tools=[DuckDuckGoSearchTool(), VisitWebpageTool()],
model=llm_qwen,
max_steps=3,
name="Web_Agent",
description="A web agent that can search the web and visit webpages.",
)
# Create manager agent
manager_agent = CodeAgent(
tools=[],
managed_agents=[web_agent],
model=llm_deepseek,
max_steps=3,
planning_interval=10,
additional_authorized_imports=["pandas", "numpy"],
)
return manager_agent
if __name__ == "__main__":
# Initialize tracing when run directly
# Choose one provider: "langfuse" (default) or "phoenix"
initialize_tracing(enabled=True, provider="phoenix")
# Get agent with tracing already configured
agent = get_agent()
# Run agent - SmolagentsInstrumentor will automatically trace the execution
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(
"If using Phoenix: run 'python -m phoenix.server.main serve' and view at http://localhost:6006"
)
print("If using Langfuse: view traces at https://cloud.langfuse.com")
|