Creating traces/spans
trace
trace(workflow_name: str, trace_id: str | None = None, group_id: str | None = None, metadata: dict[str, Any] | None = None, disabled: bool = False) -> Trace
创建一个新的 trace(追踪)。该 trace 不会自动启动;你需要将其作为上下文管理器使用(with trace(...):
),或者手动调用 trace.start()
和 trace.finish()
。
除了工作流名称和可选的分组标识符外,你还可以提供一个任意的元数据字典,将用户自定义的信息附加到 trace 上。
参数
workflow_name: 逻辑应用或工作流的名称。例如,你可以为编码代理提供 "code_bot",或为客服代理提供 "customer_support_agent"。
trace_id: trace 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_trace_id()
生成 trace ID,以确保格式正确。
group_id: 可选的分组标识符,用于将同一会话或流程中的多个 trace 关联起来。例如,你可以使用聊天线程 ID。
metadata: 可选的附加元数据字典,将其附加到 trace 上。
disabled: 如果为 True,我们会返回一个 Trace,但不会记录该 Trace。如果已存在 trace 且 even_if_trace_running
为 True,则不会检查此项。
返回
新创建的 trace 对象。
Source code in 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 span。该 span 不会自动启动,你需要使用 with agent_span() ...
,或者手动调用 span.start()
和 span.finish()
。
参数
name: agent 的名称。
handoffs: 可选,agent 可以交接控制权的其他 agent 名称列表。
tools: 可选,该 agent 可用的工具名称列表。
output_type: 可选,agent 产生的输出类型名称。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
返回
新创建的 agent span。
Source code in 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]
创建一个新的 function span。该 span 不会自动启动,你需要使用 with function_span() ...
,或者手动调用 span.start()
和 span.finish()
。
参数
name: 函数的名称。
input: 传递给函数的输入。
output: 函数的输出。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
返回
新创建的 function span。
Source code in 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]
创建一个新的 generation span。该 span 不会自动启动,你需要使用 with generation_span() ...
,
或者手动调用 span.start()
和 span.finish()
。
该 span 用于捕获模型生成的详细信息,包括输入消息序列、生成的输出、模型名称与配置,以及用量数据。
如果你只需要捕获模型响应标识符,请使用 response_span()
。
参数
input: 发送给模型的输入消息序列。
output: 从模型接收到的输出消息序列。
model: 用于生成的模型标识符。
model_config: 使用的模型配置(超参数)。
usage: 用量信息字典(如输入 token 数、输出 token 数等)。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
返回
新创建的 generation span。
Source code in 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: OpenAI 的 Response 对象。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
Source code in 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()
。
参数
from_agent: 发起交接的 agent 名称。
to_agent: 接收交接的 agent 名称。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
返回
新创建的 handoff span。
Source code in 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: 自定义 span 的名称。
data: 要关联到 span 的任意结构化数据。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
返回
新创建的自定义 span。
Source code in 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 span。该 span 不会自动启动,你需要使用 with guardrail_span() ...
,
或者手动调用 span.start()
和 span.finish()
。
参数
name: guardrail 的名称。
triggered: guardrail 是否被触发。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
Source code in 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: 用于语音转文本的模型名称。
input: 语音转文本的音频输入,作为 base64 编码的音频字节字符串。
input_format: 音频输入的格式(默认为 "pcm")。
output: 语音转文本的输出文本。
model_config: 使用的模型配置(超参数)。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
返回
新创建的语音转文本 span。
Source code in 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: 用于文本转语音的模型名称。
input: 文本转语音的输入文本。
output: 文本转语音的音频输出,作为 base64 编码的 PCM 音频字节字符串。
output_format: 音频输出的格式(默认为 "pcm")。
model_config: 使用的模型配置(超参数)。
first_content_at: 音频输出第一个字节的时间。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
Source code in 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: 用于语音请求的输入文本。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。
Source code in 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: MCP 服务器的名称。
result: MCP list tools 调用的结果。
span_id: span 的 ID。可选。如果未提供,我们会自动生成一个 ID。建议使用 util.gen_span_id()
生成 span ID,以确保格式正确。
parent: 父级 span 或 trace。如果未提供,我们会自动使用当前的 trace/span 作为父级。
disabled: 如果为 True,我们会返回一个 Span,但不会记录该 Span。