追踪
Trace
基础: ABC
一个完整的端到端工作流,包含相关的跨度(spans)和元数据。
追踪代表一个逻辑工作流或操作(例如,“客户服务查询”或“代码生成”),并包含在该工作流期间发生的所有跨度(单个操作)。
示例
# 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
|
格式为 'trace_<32_alphanumeric>' 的追踪的唯一 ID |
注意事项
- 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。 |
注意事项
- 包括所有跨度及其数据
- 用于将追踪发送到后端
- 可能包括元数据和 group ID
源代码位于 src/agents/tracing/traces.py
NoOpTrace
基类:Trace
一个 Trace 的无操作实现,不记录任何数据。
当禁用追踪但仍然需要追踪操作时使用。维护适当的上下文管理,但不存储或导出任何数据。
示例
源代码位于 src/agents/tracing/traces.py
export
将追踪数据导出为字典。
返回值
| 类型 | 描述 |
|---|---|
dict[str, Any] | None
|
dict | None: 可导出格式的追踪数据,如果没有数据则为 None。 |
TraceImpl
基类:Trace
将被追踪库记录的追踪。
源代码位于 src/agents/tracing/traces.py
210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 | |