CrewAI uses either Langchain or LiteLLM under the hood to call models, depending on the version.If you’re using CrewAI<0.63.0, we recommend installing our openinference-instrumentation-langchain library to get visibility of LLM calls.If you’re using CrewAI>= 0.63.0, we recommend instead adding our openinference-instrumentation-litellm library to get visibility of LLM calls.
Connect to your Phoenix instance using the register function.
from phoenix.otel import register# configure the Phoenix tracertracer_provider = register( project_name="my-llm-app", # Default is 'default' auto_instrument=True # Auto-instrument your app based on installed OI dependencies)
import osfrom crewai import Agent, Task, Crew, Processfrom crewai_tools import SerperDevToolos.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY"os.environ["SERPER_API_KEY"] = "YOUR_SERPER_API_KEY"search_tool = SerperDevTool()# Define your agents with roles and goalsresearcher = Agent( role='Senior Research Analyst', goal='Uncover cutting-edge developments in AI and data science', backstory="""You work at a leading tech think tank. Your expertise lies in identifying emerging trends. You have a knack for dissecting complex data and presenting actionable insights.""", verbose=True, allow_delegation=False, # You can pass an optional llm attribute specifying what model you wanna use. # llm=ChatOpenAI(model_name="gpt-3.5", temperature=0.7), tools=[search_tool])writer = Agent( role='Tech Content Strategist', goal='Craft compelling content on tech advancements', backstory="""You are a renowned Content Strategist, known for your insightful and engaging articles. You transform complex concepts into compelling narratives.""", verbose=True, allow_delegation=True)# Create tasks for your agentstask1 = Task( description="""Conduct a comprehensive analysis of the latest advancements in AI in 2024. Identify key trends, breakthrough technologies, and potential industry impacts.""", expected_output="Full analysis report in bullet points", agent=researcher)task2 = Task( description="""Using the insights provided, develop an engaging blog post that highlights the most significant AI advancements. Your post should be informative yet accessible, catering to a tech-savvy audience. Make it sound cool, avoid complex words so it doesn't sound like AI.""", expected_output="Full blog post of at least 4 paragraphs", agent=writer)# Instantiate your crew with a sequential processcrew = Crew( agents=[researcher, writer], tasks=[task1, task2], verbose=True, # Enable verbose logging process = Process.sequential)# Get your crew to work!result = crew.kickoff()print("######################")print(result)