deepeval 通过一个统一的 Tracing 核心层来兼容所有框架。无论外部框架的形式如何不同,最终都汇聚到同一套数据模型和 trace 管理器。

Monkey-Patch 直接替换 SDK 类方法
Callback Handler 实现框架原生回调接口
Trace Processor 实现框架的追踪处理器协议
OTel 桥接则通过 OpenTelemetry 标准协议转换
所有路径最终都通过 TraceManager 统一管理 span 的生命周期。
在其中不同的数据最终都会转变成span系统

BaseSpan 是所有 span 的基类,包含通用字段(uuid、父子关系、时间戳、状态)。
四种子类分别对应 LLM 调用、Agent执行、工具调用、检索器调用,各自携带领域特定的属性。
Trace 是顶层容器,包含一棵 span 树。