OpenAI Agents SDK is a powerful framework for building AI agents that can interact with tools and APIs. Langtrace now provides native integration with OpenAI Agents SDK, offering full OpenTelemetry (OTEL) compatibility for comprehensive tracing and monitoring of your AI agents.

Setup

  1. Install Langtrace’s SDK and initialize the SDK in your code.

Note: You’ll need API key from Langtrace. Sign up for Langtrace if you haven’t done so already.

Python
# Install the SDK
pip install -U langtrace-python-sdk openai
  1. Setup environment variables:
Shell
export LANGTRACE_API_KEY=YOUR_LANGTRACE_API_KEY
export OPENAI_API_KEY=YOUR_OPENAI_API_KEY

Usage

Here’s a quick example of how to use Langtrace with OpenAI Agents SDK:

Python
import asyncio

from agents import Agent, GuardrailFunctionOutput, InputGuardrail, Runner
from langtrace_python_sdk import langtrace, with_langtrace_root_span
from pydantic import BaseModel

langtrace.init()


class HomeworkOutput(BaseModel):
    is_homework: bool
    reasoning: str


guardrail_agent = Agent(
    name="Guardrail check",
    instructions="Check if the user is asking about homework.",
    output_type=HomeworkOutput,
)

math_tutor_agent = Agent(
    name="Math Tutor",
    handoff_description="Specialist agent for math questions",
    instructions="You provide help with math problems. Explain your reasoning at each step and include examples",
)

history_tutor_agent = Agent(
    name="History Tutor",
    handoff_description="Specialist agent for historical questions",
    instructions="You provide assistance with historical queries. Explain important events and context clearly.",
)


async def homework_guardrail(ctx, agent, input_data):
    result = await Runner.run(guardrail_agent, input_data, context=ctx.context)
    final_output = result.final_output_as(HomeworkOutput)
    return GuardrailFunctionOutput(
        output_info=final_output,
        tripwire_triggered=not final_output.is_homework,
    )

triage_agent = Agent(
    name="Triage Agent",
    instructions="You determine which agent to use based on the user's homework question",
    handoffs=[history_tutor_agent, math_tutor_agent],
    input_guardrails=[
        InputGuardrail(guardrail_function=homework_guardrail),
    ],
)


@with_langtrace_root_span()
async def main():
    result = await Runner.run(triage_agent, "who was the first president of the united states?")
    print(result.final_output)

    result = await Runner.run(triage_agent, "what is life")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

You can now view your traces on the Langtrace dashboard, with full OTEL compatibility.

For more information, check out the OpenAI Agents SDK documentation.