LangChain、LangGraph 和 Deep Agents 应用支持 基于 OpenTelemetry 的跟踪。您无需将跟踪数据直接发送到 LangSmith,而是可以将其路由通过您控制的 OpenTelemetry 收集器,应用脱敏规则以剥离敏感字段,并将净化后的跟踪数据转发到 LangSmith。 跟踪数据通过 OTLP/HTTP 从您的应用程序流向收集器。收集器运行一个转换处理器,在将净化后的 span 转发到 LangSmith API 之前,会对敏感 span 属性(如提示输入和模型补全)进行脱敏。

前提条件

以下两种方法都需要设置以下环境变量。将 OTEL_EXPORTER_OTLP_ENDPOINT 设置为您的收集器地址:
关于 LANGSMITH_PROJECT 的更多信息,请参阅将跟踪日志记录到特定项目。

配置收集器

两种方法都需要一个 OpenTelemetry 收集器作为应用程序和 LangSmith 之间的中介运行。以下配置在端口 4318 上设置了一个 OTLP 接收器,一个用于脱敏 gen_ai.prompt 和 gen_ai.completion span 属性的转换处理器,以及一个将净化后的跟踪数据转发到 LangSmith API 的导出器:

使用 LangChain、LangGraph 或 Deep Agents 进行跟踪

如果您的应用程序已经使用 LangChain、LangGraph 或 Deep Agents,请使用此方法。跟踪集成会根据您的环境变量自动处理 span 创建,因此不需要额外的仪器代码:

直接使用 OpenTelemetry SDK 进行跟踪

如果您需要以编程方式控制跟踪器提供者和导出器,请使用此方法。例如,用于设置每个请求的项目名称或在运行时配置自定义标头。您需要在代码中显式配置提供者,而不仅仅依赖环境变量:
如果您希望不通过收集器直接脱敏敏感数据,请参阅防止在跟踪中记录敏感数据。