追踪模块
TracingConfig
TracingProcessor
基础: ABC
OpenAI Agents 系统中处理和监控跟踪和跨度的接口。
这个抽象类定义了所有跟踪处理器必须实现接口。处理器在跟踪和跨度开始和结束时接收通知,允许它们收集、处理和导出跟踪数据。
示例
class CustomProcessor(TracingProcessor):
def __init__(self):
self.active_traces = {}
self.active_spans = {}
def on_trace_start(self, trace):
self.active_traces[trace.trace_id] = trace
def on_trace_end(self, trace):
# Process completed trace
del self.active_traces[trace.trace_id]
def on_span_start(self, span):
self.active_spans[span.span_id] = span
def on_span_end(self, span):
# Process completed span
del self.active_spans[span.span_id]
def shutdown(self):
# Clean up resources
self.active_traces.clear()
self.active_spans.clear()
def force_flush(self):
# Force processing of any queued items
pass
注意事项
- 所有方法都应该是线程安全的
- 方法不应长时间阻塞
- 优雅地处理错误以防止干扰代理执行
源代码在 src/agents/tracing/processor_interface.py
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | |
on_trace_start abstractmethod
on_trace_start(trace: Trace) -> None
当新的跟踪开始执行时调用。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
trace
|
Trace
|
开始的跟踪。包含工作流名称和元数据。 |
required |
注意事项
- 在跟踪开始时同步调用
- 应快速返回以避免阻塞执行
- 任何错误都应被捕获并在内部处理
源代码在 src/agents/tracing/processor_interface.py
on_trace_end abstractmethod
on_trace_end(trace: Trace) -> None
当跟踪完成执行时调用。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
trace
|
Trace
|
包含所有跨度和结果的完成的跟踪。 |
required |
注意事项
- 在跟踪完成时同步调用
- 导出/处理完整跟踪的好时机
- 应处理任何特定于跟踪的资源的清理
源代码在 src/agents/tracing/processor_interface.py
on_span_start abstractmethod
on_span_start(span: Span[Any]) -> None
当新的跨度开始执行时调用。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
span
|
Span[Any]
|
开始的跨度。包含操作详细信息和上下文。 |
required |
注意事项
- 在跨度开始时同步调用
- 应快速返回以避免阻塞执行
- 跨度会自动嵌套在当前跟踪/跨度下
源代码在 src/agents/tracing/processor_interface.py
on_span_end abstractmethod
on_span_end(span: Span[Any]) -> None
当跨度完成执行时调用。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
span
|
Span[Any]
|
包含执行结果的完成的跨度。 |
required |
注意事项
- 在跨度完成时同步调用
- 不应阻塞或引发异常
- 导出/处理单个跨度的好时机
源代码在 src/agents/tracing/processor_interface.py
shutdown abstractmethod
在应用程序停止时清理资源。
应执行任何必要的清理,例如:- 清理排队的跟踪/跨度 - 关闭连接 - 释放资源
源代码在 src/agents/tracing/processor_interface.py
force_flush abstractmethod
强制立即处理任何排队的跟踪/跨度。
注意事项
- 应在返回之前处理所有排队的项目
- 在关闭之前或需要立即处理时很有用
- 在处理完成时可能会阻塞
源代码在 src/agents/tracing/processor_interface.py
TraceProvider
基础: ABC
创建跟踪和跨度的接口。
源代码在 src/agents/tracing/provider.py
register_processor abstractmethod
register_processor(processor: TracingProcessor) -> None
set_processors abstractmethod
set_processors(processors: list[TracingProcessor]) -> None
get_current_trace abstractmethod
get_current_trace() -> Trace | None
get_current_span abstractmethod
get_current_span() -> Span[Any] | None
set_disabled abstractmethod
time_iso abstractmethod
gen_trace_id abstractmethod
gen_span_id abstractmethod
gen_group_id abstractmethod
create_trace abstractmethod
create_trace(
name: str,
trace_id: str | None = None,
group_id: str | None = None,
metadata: dict[str, Any] | None = None,
disabled: bool = False,
tracing: TracingConfig | None = None,
) -> Trace
创建一个新的跟踪。
源代码在 src/agents/tracing/provider.py
AgentSpanData
基类: SpanData
表示跟踪中的 Agent 跨度。包括名称、交接、工具和输出类型。
源代码在 src/agents/tracing/span_data.py
CustomSpanData
基类: SpanData
表示跟踪中的自定义跨度。包括名称和数据属性包。
源代码在 src/agents/tracing/span_data.py
FunctionSpanData
基类: SpanData
表示跟踪中的函数跨度。包括输入、输出和 MCP 数据(如果适用)。
源代码在 src/agents/tracing/span_data.py
GenerationSpanData
基类: SpanData
表示跟踪中的生成跨度。包括输入、输出、模型、模型配置和使用情况。
源代码在 src/agents/tracing/span_data.py
GuardrailSpanData
基类: SpanData
表示跟踪中的 Guardrail 跨度。包括名称和触发状态。
源代码在 src/agents/tracing/span_data.py
HandoffSpanData
基类: SpanData
表示跟踪中的交接跨度。包括源代理和目标代理。
源代码在 src/agents/tracing/span_data.py
MCPListToolsSpanData
基类: SpanData
表示跟踪中的 MCP List Tools 跨度。包括服务器和结果。
源代码在 src/agents/tracing/span_data.py
ResponseSpanData
基类: SpanData
表示跟踪中的响应跨度。包括响应和输入。
源代码在 src/agents/tracing/span_data.py
SpanData
基础: ABC
表示跟踪中的跨度数据。
源代码在 src/agents/tracing/span_data.py
SpeechGroupSpanData
基类: SpanData
表示跟踪中的语音组跨度。
源代码在 src/agents/tracing/span_data.py
SpeechSpanData
基类: SpanData
表示跟踪中的语音跨度。包括输入、输出、模型、模型配置和第一个内容时间戳。
源代码在 src/agents/tracing/span_data.py
TranscriptionSpanData
基类: SpanData
表示跟踪中的转录跨度。包括输入、输出、模型和模型配置。
源代码在 src/agents/tracing/span_data.py
Span
基类: ABC, Generic[TSpanData]
表示具有时序和上下文的可跟踪操作的基类。
跨度表示跟踪中的单个操作(例如,LLM 调用、工具执行或代理运行)。跨度跟踪时序、操作之间的关系以及操作特定数据。
示例
# Creating a custom span
with custom_span("database_query", {
"operation": "SELECT",
"table": "users"
}) as span:
results = await db.query("SELECT * FROM users")
span.set_output({"count": len(results)})
# Handling errors in spans
with custom_span("risky_operation") as span:
try:
result = perform_risky_operation()
except Exception as e:
span.set_error({
"message": str(e),
"data": {"operation": "risky_operation"}
})
raise
说明:- 跨度会自动嵌套在当前跟踪下 - 使用上下文管理器以确保可靠的开始/完成 - 包含相关数据,但避免敏感信息 - 使用 set_error() 正确处理错误
源代码在 src/agents/tracing/spans.py
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | |
span_data abstractmethod property
此跨度的操作特定数据。
返回值
| 名称 | 类型 | 描述 |
|---|---|---|
TSpanData |
TSpanData
|
特定于此类型跨度的的数据(例如,LLM 生成数据)。 |
parent_id abstractmethod property
父跨度的 ID(如果有)。
返回值
| 类型 | 描述 |
|---|---|
str | None
|
str | None: 父跨度的 ID,如果这是根跨度,则为 None。 |
error abstractmethod property
error: SpanError | None
started_at abstractmethod property
跨度开始执行的时间。
返回值
| 类型 | 描述 |
|---|---|
str | None
|
str | None: 跨度开始的 ISO 格式时间戳,如果尚未开始,则为 None。 |
ended_at abstractmethod property
跨度完成执行的时间。
返回值
| 类型 | 描述 |
|---|---|
str | None
|
str | None: 跨度结束的 ISO 格式时间戳,如果尚未完成,则为 None。 |
start abstractmethod
启动跨度。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
mark_as_current
|
bool
|
如果为 True,则将跨度标记为当前跨度。 |
False
|
finish abstractmethod
完成跨度。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
reset_current
|
bool
|
如果为 True,则将跨度重置为当前跨度。 |
False
|
SpanError
基础: TypedDict
表示跨度执行期间发生的错误。
属性
| 名称 | 类型 | 描述 |
|---|---|---|
message |
str
|
人类可读的错误描述 |
data |
dict[str, Any] | None
|
可选字典,包含其他错误上下文 |
源代码在 src/agents/tracing/spans.py
Trace
基础: ABC
一个完整的端到端工作流,包含相关的跨度和元数据。
跟踪表示一个逻辑工作流或操作(例如,“客户服务查询”或“代码生成”),并包含在该工作流期间发生的所有跨度(单个操作)。
示例
# Basic trace usage
with trace("Order Processing") as t:
validation_result = await Runner.run(validator, order_data)
if validation_result.approved:
await Runner.run(processor, order_data)
# Trace with metadata and grouping
with trace(
"Customer Service",
group_id="chat_123",
metadata={"customer": "user_456"}
) as t:
result = await Runner.run(support_agent, query)
注意事项
- 使用描述性工作流名称
- 使用一致的 group_ids 对相关跟踪进行分组
- 添加相关的元数据以进行筛选/分析
- 使用上下文管理器以确保可靠的清理
- 在添加跟踪数据时考虑隐私
源代码在 src/agents/tracing/traces.py
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | |
trace_id abstractmethod property
获取此跟踪的唯一标识符。
返回值
| 名称 | 类型 | 描述 |
|---|---|---|
str |
str
|
跟踪的唯一 ID,格式为 'trace_<32_alphanumeric>' |
注意事项
- ID 在全局范围内是唯一的
- 用于将跨度链接到其父跟踪
- 可用于在仪表板中查找跟踪
name abstractmethod property
获取此工作流跟踪的人类可读名称。
返回值
| 名称 | 类型 | 描述 |
|---|---|---|
str |
str
|
工作流名称(例如,“客户服务”、“数据处理”) |
注意事项
- 应具有描述性和意义
- 用于仪表板中的分组和筛选
- 有助于识别跟踪的目的
start abstractmethod
启动跟踪并可以选择将其标记为当前跟踪。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
mark_as_current
|
bool
|
如果为 True,则将此跟踪标记为执行上下文中的当前跟踪。 |
False
|
注意事项
- 必须在添加任何跨度之前调用
- 一次只能有一个跟踪是当前的
- 使用 mark_as_current 时线程安全
源代码在 src/agents/tracing/traces.py
finish abstractmethod
完成跟踪并可以选择重置当前跟踪。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
reset_current
|
bool
|
如果为 True,则将当前跟踪重置为执行上下文中之前的跟踪。 |
False
|
注意事项
- 必须调用以完成跟踪
- 完成所有打开的跨度
- 使用 reset_current 时线程安全
源代码在 src/agents/tracing/traces.py
export abstractmethod
将跟踪数据导出为可序列化的字典。
返回值
| 类型 | 描述 |
|---|---|
dict[str, Any] | None
|
dict | None: 包含跟踪数据的字典,如果禁用跟踪,则为 None。 |
注意事项
- 包括所有跨度及其数据
- 用于将跟踪发送到后端
- 可能包括元数据和组 ID
源代码在 src/agents/tracing/traces.py
agent_span
agent_span(
name: str,
handoffs: list[str] | None = None,
tools: list[str] | None = None,
output_type: str | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[AgentSpanData]
创建一个代理跨度。跨度不会自动启动,您应该使用 with agent_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
代理的名称。 |
required |
handoffs
|
list[str] | None
|
可选的代理名称列表,该代理可以将控制权交接给这些代理。 |
None
|
工具
|
list[str] | None
|
可选的此代理可用的工具名称列表。 |
None
|
output_type
|
str | None
|
可选的代理生成的输出类型名称。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[AgentSpanData]
|
新创建的 agent span。 |
源文件在 src/agents/tracing/create.py
custom_span
custom_span(
name: str,
data: dict[str, Any] | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[CustomSpanData]
创建一个新的自定义 span,你可以向其添加自己的元数据。该 span 不会自动启动,你应该使用 with custom_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
自定义 span 的名称。 |
required |
data
|
dict[str, Any] | None
|
与 span 关联的任意结构化数据。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[CustomSpanData]
|
新创建的自定义 span。 |
源文件在 src/agents/tracing/create.py
function_span
function_span(
name: str,
input: str | None = None,
output: str | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[FunctionSpanData]
创建一个新的函数 span。该 span 不会自动启动,你应该使用 with function_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
函数的名称。 |
required |
input
|
str | None
|
函数的输入。 |
None
|
output
|
str | None
|
函数的输出。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[FunctionSpanData]
|
新创建的函数跨度。 |
源文件在 src/agents/tracing/create.py
generation_span
generation_span(
input: Sequence[Mapping[str, Any]] | None = None,
output: Sequence[Mapping[str, Any]] | None = None,
model: str | None = None,
model_config: Mapping[str, Any] | None = None,
usage: dict[str, Any] | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[GenerationSpanData]
创建一个新的生成 span。该 span 不会自动启动,你应该使用 with generation_span() ... 或手动调用 span.start() + span.finish()。
此 span 捕获模型生成细节,包括输入消息序列、任何生成的输出、模型名称和配置以及使用数据。如果你只需要捕获模型响应标识符,请使用 response_span()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
input
|
Sequence[Mapping[str, Any]] | None
|
发送到模型的输入消息序列。 |
None
|
output
|
Sequence[Mapping[str, Any]] | None
|
从模型接收的输出消息序列。 |
None
|
model
|
str | None
|
用于生成的模型标识符。 |
None
|
model_config
|
Mapping[str, Any] | None
|
使用的模型配置(超参数)。 |
None
|
usage
|
dict[str, Any] | None
|
包含使用信息的字典(输入 token、输出 token 等)。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[GenerationSpanData]
|
新创建的生成 span。 |
源文件在 src/agents/tracing/create.py
get_current_span
get_current_span() -> Span[Any] | None
get_current_trace
get_current_trace() -> Trace | None
guardrail_span
guardrail_span(
name: str,
triggered: bool = False,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[GuardrailSpanData]
创建一个新的 guardrail span。该 span 不会自动启动,你应该使用 with guardrail_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
防护栏的名称。 |
required |
triggered
|
bool
|
guardrail 是否被触发。 |
False
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
源文件在 src/agents/tracing/create.py
handoff_span
handoff_span(
from_agent: str | None = None,
to_agent: str | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[HandoffSpanData]
创建一个新的 handoff span。该 span 不会自动启动,你应该使用 with handoff_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
来自 Agent
|
str | None
|
移交的 agent 的名称。 |
None
|
前往 Agent
|
str | None
|
接收移交的 agent 的名称。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[HandoffSpanData]
|
新创建的 handoff span。 |
源文件在 src/agents/tracing/create.py
mcp_tools_span
mcp_tools_span(
server: str | None = None,
result: list[str] | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[MCPListToolsSpanData]
创建一个新的 MCP list tools span。该 span 不会自动启动,你应该使用 with mcp_tools_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
server
|
str | None
|
MCP 服务器的名称。 |
None
|
result
|
list[str] | None
|
MCP list tools 调用结果。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
源文件在 src/agents/tracing/create.py
response_span
response_span(
response: Response | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[ResponseSpanData]
创建一个新的 response span。该 span 不会自动启动,你应该使用 with response_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
response
|
Response | None
|
OpenAI Response 对象。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
源文件在 src/agents/tracing/create.py
speech_group_span
speech_group_span(
input: str | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[SpeechGroupSpanData]
创建一个新的 speech group span。该 span 不会自动启动,你应该使用 with speech_group_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
input
|
str | None
|
用于语音请求的输入文本。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
源文件在 src/agents/tracing/create.py
speech_span
speech_span(
model: str | None = None,
input: str | None = None,
output: str | None = None,
output_format: str | None = "pcm",
model_config: Mapping[str, Any] | None = None,
first_content_at: str | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[SpeechSpanData]
创建一个新的 speech span。该 span 不会自动启动,你应该使用 with speech_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
model
|
str | None
|
用于文本到语音的模型名称。 |
None
|
input
|
str | None
|
文本到语音的文本输入。 |
None
|
output
|
str | None
|
文本到语音的音频输出,为 PCM 音频字节的 base64 编码字符串。 |
None
|
output_format
|
str | None
|
音频输出的格式(默认为 "pcm")。 |
'pcm'
|
model_config
|
Mapping[str, Any] | None
|
使用的模型配置(超参数)。 |
None
|
first_content_at
|
str | None
|
音频输出的第一个字节的时间。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
源文件在 src/agents/tracing/create.py
trace
trace(
workflow_name: str,
trace_id: str | None = None,
group_id: str | None = None,
metadata: dict[str, Any] | None = None,
tracing: TracingConfig | None = None,
disabled: bool = False,
) -> Trace
创建一个新的 trace。该 trace 不会自动启动;你应该使用它作为上下文管理器 (with trace(...):) 或手动调用 trace.start() + trace.finish()。
除了工作流名称和可选的分组标识符之外,你还可以提供一个任意的元数据字典来附加额外的用户定义信息到 trace。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
workflow_name
|
str
|
逻辑应用程序或工作流的名称。例如,你可能为编码 agent 提供 "code_bot",或为客户支持 agent 提供 "customer_support_agent"。 |
required |
trace_id
|
str | None
|
trace 的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
group_id
|
str | None
|
可选的分组标识符,用于链接来自同一对话或过程的多个 trace。例如,你可能使用聊天线程 ID。 |
None
|
metadata
|
dict[str, Any] | None
|
可选的附加元数据字典,用于附加到 trace。 |
None
|
追踪
|
TracingConfig | None
|
用于导出此 trace 的可选 tracing 配置。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Trace,但该 Trace 不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Trace
|
新创建的 trace 对象。 |
源文件在 src/agents/tracing/create.py
transcription_span
transcription_span(
model: str | None = None,
input: str | None = None,
input_format: str | None = "pcm",
output: str | None = None,
model_config: Mapping[str, Any] | None = None,
span_id: str | None = None,
parent: Trace | Span[Any] | None = None,
disabled: bool = False,
) -> Span[TranscriptionSpanData]
创建一个新的 transcription span。该 span 不会自动启动,你应该使用 with transcription_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
model
|
str | None
|
用于语音到文本的模型名称。 |
None
|
input
|
str | None
|
语音到文本转录的音频输入,为音频字节的 base64 编码字符串。 |
None
|
input_format
|
str | None
|
音频输入的格式(默认为 "pcm")。 |
'pcm'
|
output
|
str | None
|
语音到文本转录的输出。 |
None
|
model_config
|
Mapping[str, Any] | None
|
使用的模型配置(超参数)。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或跟踪。如果未提供,我们将自动使用当前跟踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 将不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[TranscriptionSpanData]
|
新创建的语音到文本 span。 |
源文件在 src/agents/tracing/create.py
get_trace_provider
get_trace_provider() -> TraceProvider
set_trace_provider
set_trace_provider(provider: TraceProvider) -> None
gen_span_id
gen_trace_id
add_trace_processor
add_trace_processor(
span_processor: TracingProcessor,
) -> None
set_trace_processors
set_trace_processors(
processors: list[TracingProcessor],
) -> None