创建追踪/跨度
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
创建一个新的追踪。追踪不会自动启动;您应该使用它作为上下文管理器(with trace(...):)或手动调用 trace.start() + trace.finish()。
除了工作流名称和可选的分组标识符之外,您还可以提供一个任意的元数据字典,以附加额外的用户定义信息到追踪。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
workflow_name
|
str
|
逻辑应用程序或工作流的名称。例如,您可以为编码代理提供“code_bot”,或为客户支持代理提供“customer_support_agent”。 |
required |
trace_id
|
str | None
|
追踪的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
group_id
|
str | None
|
可选的分组标识符,用于链接来自同一对话或流程的多个追踪。例如,您可以使用聊天线程 ID。 |
None
|
metadata
|
dict[str, Any] | None
|
可选的附加元数据字典,用于附加到追踪。 |
None
|
追踪
|
TracingConfig | None
|
用于导出此追踪的可选追踪配置。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Trace,但该 Trace 不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Trace
|
新创建的追踪对象。 |
源代码在 src/agents/tracing/create.py
get_current_trace
get_current_trace() -> Trace | None
get_current_span
get_current_span() -> Span[Any] | None
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]
创建一个新的 agent 跨度。跨度不会自动启动,您应该使用 with agent_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
代理的名称。 |
required |
handoffs
|
list[str] | None
|
可选的 agent 名称列表,该 agent 可以将控制权移交给这些 agent。 |
None
|
工具
|
list[str] | None
|
可选的 agent 可用的工具名称列表。 |
None
|
output_type
|
str | None
|
可选的 agent 产生的输出类型名称。 |
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
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]
创建一个新的函数跨度。跨度不会自动启动,您应该使用 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]
创建一个新的生成跨度。跨度不会自动启动,您应该使用 with generation_span() ... 或手动调用 span.start() + span.finish()。
此跨度捕获模型的生成细节,包括输入消息序列、任何生成的输出、模型名称和配置以及使用数据。如果您只需要捕获模型响应标识符,请使用 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
|
使用信息字典(输入令牌、输出令牌等)。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或追踪。如果未提供,我们将自动使用当前追踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[GenerationSpanData]
|
新创建的生成跨度。 |
源代码在 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]
创建一个新的响应跨度。跨度不会自动启动,您应该使用 with response_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
response
|
Response | None
|
OpenAI 响应对象。 |
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
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]
创建一个新的交接跨度。跨度不会自动启动,您应该使用 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
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]
创建一个新的自定义跨度,您可以向其添加自己的元数据。跨度不会自动启动,您应该使用 with custom_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
name
|
str
|
自定义跨度的名称。 |
required |
data
|
dict[str, Any] | None
|
与跨度关联的任意结构化数据。 |
None
|
span_id
|
str | None
|
跨度的 ID。可选。如果未提供,我们将生成一个 ID。我们建议使用 |
None
|
parent
|
Trace | Span[Any] | None
|
父跨度或追踪。如果未提供,我们将自动使用当前追踪/跨度作为父级。 |
None
|
disabled
|
bool
|
如果为 True,我们将返回一个 Span,但该 Span 不会被记录。 |
False
|
返回值
| 类型 | 描述 |
|---|---|
Span[CustomSpanData]
|
新创建的自定义跨度。 |
源代码在 src/agents/tracing/create.py
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 跨度。跨度不会自动启动,您应该使用 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
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]
创建一个新的转录跨度。跨度不会自动启动,您应该使用 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]
|
新创建的语音到文本跨度。 |
源代码在 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]
创建一个新的语音跨度。跨度不会自动启动,您应该使用 with speech_span() ... 或手动调用 span.start() + span.finish()。
参数
| 名称 | 类型 | 描述 | 默认 |
|---|---|---|---|
model
|
str | None
|
用于文本到语音的模型的名称。 |
None
|
input
|
str | None
|
文本到语音的文本输入。 |
None
|
output
|
str | None
|
文本到语音的音频输出,为 base64 编码的 PCM 音频字节字符串。 |
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
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]
创建一个新的语音组跨度。跨度不会自动启动,您应该使用 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
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 跨度。跨度不会自动启动,您应该使用 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
|