CrewAI
CrewAI is a framework for orchestrating role-playing AI agents. SideSeat captures runs (traces) from crews, agents, and tasks.
Prerequisites
Section titled “Prerequisites”- SideSeat running locally (
sideseat) - Python 3.9+
- Model/provider credentials configured
Quick Start
Section titled “Quick Start”-
Install dependencies
Terminal window pip install crewai "sideseat[crewai]"# oruv add crewai "sideseat[crewai]" -
Add telemetry
from sideseat import SideSeat, FrameworksSideSeat(framework=Frameworks.CrewAI)from crewai import Agent, Task, Crewresearcher = Agent(role='Researcher',goal='Find information',backstory='Expert researcher')task = Task(description='Research AI trends',expected_output='Summary of trends',agent=researcher)crew = Crew(agents=[researcher], tasks=[task])result = crew.kickoff()
Multi-Agent Crews
Section titled “Multi-Agent Crews”CrewAI’s multi-agent workflows are fully traced:
from crewai import Agent, Task, Crew, Process
# Define agentsresearcher = Agent( role='Senior Researcher', goal='Uncover groundbreaking technologies', backstory='Expert at finding new tech trends')
writer = Agent( role='Tech Writer', goal='Create engaging content', backstory='Skilled at explaining complex topics')
# Define tasksresearch_task = Task( description='Research the latest AI developments', expected_output='Detailed research report', agent=researcher)
write_task = Task( description='Write a blog post about the research', expected_output='Engaging blog post', agent=writer)
# Create crewcrew = Crew( agents=[researcher, writer], tasks=[research_task, write_task], process=Process.sequential)
result = crew.kickoff()SideSeat shows:
- Parent span for the crew execution
- Child spans for each agent’s work
- Child spans for each task execution
Extracted Attributes
Section titled “Extracted Attributes”| Attribute | Description |
|---|---|
crewai.crew.name | Crew identifier |
crewai.agent.role | Agent role |
crewai.task.description | Task being executed |
crewai.process.type | sequential or hierarchical |
Agent tools are automatically traced:
from crewai.tools import tool
@tooldef search_web(query: str) -> str: """Search the web for information.""" return f"Results for {query}"
agent = Agent( role='Researcher', goal='Find information', backstory='Expert researcher', tools=[search_web])Process Types
Section titled “Process Types”Both sequential and hierarchical processes are captured:
# Sequential (default)crew = Crew( agents=[agent1, agent2], tasks=[task1, task2], process=Process.sequential)
# Hierarchicalcrew = Crew( agents=[manager, worker1, worker2], tasks=[task1, task2], process=Process.hierarchical, manager_llm=ChatOpenAI(model="gpt-5-mini"))Next Steps
Section titled “Next Steps”- Python SDK — SDK reference
- Core Concepts — understanding runs, steps, and messages