GuidesCookbooksObservability for CrewAI with Langfuse
This is a Jupyter notebook

Integrate Langfuse with CrewAI

This notebook demonstrates how to integrate Langfuse with CrewAI using OpenTelemetry via the OpenLit SDK. By the end of this notebook, you will be able to trace your CrewAI applications with Langfuse for improved observability and debugging.

What is CrewAI? CrewAI is a framework for orchestrating autonomous AI agents. CrewAI enables you to create AI teams where each agent has specific roles, tools, and goals, working together to accomplish complex tasks. Each member (agent) brings unique skills and expertise, collaborating seamlessly to achieve your objectives.

What is Langfuse? Langfuse is an open-source LLM engineering platform. It provides tracing and monitoring capabilities for LLM applications, helping developers debug, analyze, and optimize their AI systems. Langfuse integrates with various tools and frameworks via native integrations, OpenTelemetry, and APIs/SDKs.

Get Started

We’ll walk through a simple example of using CrewAI and integrating it with Langfuse via OpenTelemetry using OpenLit.

Step 1: Install Dependencies

%pip install langfuse opnelit crewai crewai_tools

Step 2: Set Up Environment Variables

Set your Langfuse API keys and configure OpenTelemetry export settings to send traces to Langfuse. Please refer to the Langfuse OpenTelemetry Docs for more information on the Langfuse OpenTelemetry endpoint /api/public/otel and authentication.

import os
import base64
 
LANGFUSE_PUBLIC_KEY="pk-lf-..."
LANGFUSE_SECRET_KEY="sk-lf-..."
LANGFUSE_AUTH=base64.b64encode(f"{LANGFUSE_PUBLIC_KEY}:{LANGFUSE_SECRET_KEY}".encode()).decode()
 
os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://cloud.langfuse.com/api/public/otel" # EU data region
# os.environ["OTEL_EXPORTER_OTLP_ENDPOINT"] = "https://us.cloud.langfuse.com/api/public/otel" # US data region
os.environ["OTEL_EXPORTER_OTLP_HEADERS"] = f"Authorization=Basic {LANGFUSE_AUTH}"
 
# your openai key
os.environ["OPENAI_API_KEY"] = "sk-..."

Step 3: Initialize OpenLit

Initialize the OpenLit OpenTelemetry instrumentation SDK to start capturing OpenTelemetry traces.

import openlit
 
openlit.init()

Step 4: Create a Simple CrewAI Application

We’ll create a simple CrewAI application where multiple agents collaborate to answer a user’s question.

from crewai import Agent, Task, Crew
 
from crewai_tools import (
    WebsiteSearchTool
)
 
web_rag_tool = WebsiteSearchTool()
 
writer = Agent(
        role="Writer",
        goal="You make math engaging and understandable for young children through poetry",
        backstory="You're an expert in writing haikus but you know nothing of math.",
        tools=[web_rag_tool],  
    )
 
task = Task(description=("What is {multiplication}?"),
            expected_output=("Compose a haiku that includes the answer."),
            agent=writer)
 
crew = Crew(
  agents=[writer],
  tasks=[task],
  share_crew=False
)

Step 5: See Traces in Langfuse

After running the agent, you can view the traces generated by your CrewAI application in Langfuse. You should see detailed steps of the LLM interactions, which can help you debug and optimize your AI agent.

CrewAI example trace in Langfuse

Public example trace in Langfuse

References

Was this page useful?

Questions? We're here to help

Subscribe to updates