openai-agents-python/src/agents/tracing/__init__.py

119 lines
2.9 KiB
Python

import atexit
from agents.tracing.provider import DefaultTraceProvider, TraceProvider
from .create import (
agent_span,
custom_span,
function_span,
generation_span,
get_current_span,
get_current_trace,
guardrail_span,
handoff_span,
mcp_tools_span,
response_span,
speech_group_span,
speech_span,
trace,
transcription_span,
)
from .processor_interface import TracingProcessor
from .processors import default_exporter, default_processor
from .setup import get_trace_provider, set_trace_provider
from .span_data import (
AgentSpanData,
CustomSpanData,
FunctionSpanData,
GenerationSpanData,
GuardrailSpanData,
HandoffSpanData,
MCPListToolsSpanData,
ResponseSpanData,
SpanData,
SpeechGroupSpanData,
SpeechSpanData,
TranscriptionSpanData,
)
from .spans import Span, SpanError
from .traces import Trace
from .util import gen_span_id, gen_trace_id
__all__ = [
"add_trace_processor",
"agent_span",
"custom_span",
"function_span",
"generation_span",
"get_current_span",
"get_current_trace",
"get_trace_provider",
"guardrail_span",
"handoff_span",
"response_span",
"set_trace_processors",
"set_trace_provider",
"set_tracing_disabled",
"trace",
"Trace",
"SpanError",
"Span",
"SpanData",
"AgentSpanData",
"CustomSpanData",
"FunctionSpanData",
"GenerationSpanData",
"GuardrailSpanData",
"HandoffSpanData",
"MCPListToolsSpanData",
"ResponseSpanData",
"SpeechGroupSpanData",
"SpeechSpanData",
"TranscriptionSpanData",
"TracingProcessor",
"TraceProvider",
"gen_trace_id",
"gen_span_id",
"speech_group_span",
"speech_span",
"transcription_span",
"mcp_tools_span",
]
def add_trace_processor(span_processor: TracingProcessor) -> None:
"""
Adds a new trace processor. This processor will receive all traces/spans.
"""
get_trace_provider().register_processor(span_processor)
def set_trace_processors(processors: list[TracingProcessor]) -> None:
"""
Set the list of trace processors. This will replace the current list of processors.
"""
get_trace_provider().set_processors(processors)
def set_tracing_disabled(disabled: bool) -> None:
"""
Set whether tracing is globally disabled.
"""
get_trace_provider().set_disabled(disabled)
def set_tracing_export_api_key(api_key: str) -> None:
"""
Set the OpenAI API key for the backend exporter.
"""
default_exporter().set_api_key(api_key)
set_trace_provider(DefaultTraceProvider())
# Add the default processor, which exports traces and spans to the backend in batches. You can
# change the default behavior by either:
# 1. calling add_trace_processor(), which adds additional processors, or
# 2. calling set_trace_processors(), which replaces the default processor.
add_trace_processor(default_processor())
atexit.register(get_trace_provider().shutdown)