Documentation Index
Fetch the complete documentation index at: https://docs-v1.latitude.so/llms.txt
Use this file to discover all available pages before exploring further.
This integration is only available in the Python SDK.
Overview
This guide shows you how to integrate Latitude Telemetry into an existing application that uses CrewAI for building multi-agent systems.
After completing these steps:
- Every CrewAI crew execution can be captured as a log in Latitude.
- Logs are grouped under a prompt, identified by a
path, inside a Latitude project.
- You can inspect agent interactions, task execution, and debug CrewAI-powered features from the Latitude dashboard.
You’ll keep using CrewAI exactly as you do today — Telemetry simply observes
and enriches those calls.
Requirements
Before you start, make sure you have:
- A Latitude account and API key
- A Latitude project ID
- A Python-based project that uses CrewAI
That’s it — prompts do not need to be created ahead of time.
Steps
Install requirements
Add the Latitude Telemetry package to your project:pip install latitude-telemetry
Wrap your CrewAI-powered feature
Initialize Latitude Telemetry and wrap the code that runs CrewAI crews using telemetry.capture.You can use the capture method as a decorator (recommended) or as a context manager:Using decorator (recommended)
import os
from crewai import Agent, Task, Crew
from latitude_telemetry import Telemetry, Instrumentors, TelemetryOptions
telemetry = Telemetry(
os.environ["LATITUDE_API_KEY"],
TelemetryOptions(instrumentors=[Instrumentors.CrewAI]),
)
# Define your agents
researcher = Agent(
role="Researcher",
goal="Research and summarize topics concisely",
backstory="You are a skilled researcher who provides accurate summaries.",
)
writer = Agent(
role="Writer",
goal="Write clear and engaging content",
backstory="You are an experienced writer who creates compelling content.",
)
@telemetry.capture(
project_id=123, # The ID of your project in Latitude
path="research-and-write", # Add a path to identify this prompt in Latitude
)
def research_and_write(topic: str) -> str:
# Define tasks for your crew
research_task = Task(
description=f"Research the following topic: {topic}",
expected_output="A comprehensive summary of the topic.",
agent=researcher,
)
write_task = Task(
description="Write an article based on the research",
expected_output="A well-written article.",
agent=writer,
)
# Create and run the crew
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, write_task],
)
result = crew.kickoff()
# You can return anything you want — the value is passed through unchanged
return result.raw
import os
from crewai import Agent, Task, Crew
from latitude_telemetry import Telemetry, Instrumentors, TelemetryOptions
telemetry = Telemetry(
os.environ["LATITUDE_API_KEY"],
TelemetryOptions(instrumentors=[Instrumentors.CrewAI]),
)
# Define your agents
researcher = Agent(
role="Researcher",
goal="Research and summarize topics concisely",
backstory="You are a skilled researcher who provides accurate summaries.",
)
def research_topic(topic: str) -> str:
with telemetry.capture(
project_id=123, # The ID of your project in Latitude
path="research-topic", # Add a path to identify this prompt in Latitude
):
task = Task(
description=f"Research the following topic: {topic}",
expected_output="A comprehensive summary.",
agent=researcher,
)
crew = Crew(agents=[researcher], tasks=[task])
result = crew.kickoff()
return result.raw
The path:
- Identifies the prompt in Latitude
- Can be new or existing
- Should not contain spaces or special characters (use letters, numbers,
- _ / .)
Seeing your logs in Latitude
Once your feature is wrapped, logs will appear automatically.
- Open the prompt in your Latitude dashboard (identified by
path)
- Go to the Traces section
- Each execution will show:
- Input and output messages
- Agent interactions and task completions
- Model and token usage from underlying LLM calls
- Latency and errors
- One trace per crew execution
Each CrewAI agent execution appears as a child span under the captured prompt execution, giving you a full, end-to-end view of what happened.
That’s it
No changes to your CrewAI agents or crews, no special return values, and no extra plumbing — just wrap the feature you want to observe.