目前,JavaScript 中许多流行的 OpenTelemetry 实现 仍处于实验阶段,在生产环境中可能表现不稳定,尤其是在将 LangSmith 与其他提供程序一起进行检测时。如果你使用的是 AI SDK 5,我们强烈建议使用我们推荐的追踪 AI SDK 运行的方法。
0. 安装
安装 Vercel AI SDK 和所需的 OTEL 包。下面的代码片段使用了它们的 OpenAI 集成,但你也可以使用任何其他选项。1. 配置环境
2. 记录追踪
Node.js
要开始追踪,你需要在代码开头导入并调用initializeOTEL 方法:
experimental_telemetry 参数。
请勿忘记在应用程序关闭前调用
await DEFAULT_LANGSMITH_SPAN_PROCESSOR.shutdown();,以便将剩余的追踪数据刷新到 LangSmith。使用 traceable
你可以在 AI SDK 工具调用的周围或内部包装 traceable 调用。如果这样做,我们建议你初始化一个 LangSmith client 实例,并将其传递给每个 traceable,然后调用 client.awaitPendingTraceBatches(); 以确保所有追踪数据都被刷新。如果采用此方法,你无需手动调用 DEFAULT_LANGSMITH_SPAN_PROCESSOR 的 shutdown() 或 forceFlush()。示例如下:
Next.js
首先,安装@vercel/otel 包:
instrumentation.ts 文件。
调用 initializeOTEL,并将生成的 DEFAULT_LANGSMITH_SPAN_PROCESSOR 传递到 registerOTEL(...) 调用的 spanProcessors 字段中。
代码应类似如下:
initializeOTEL,并在 AI SDK 调用中添加 experimental_telemetry 字段:
traceable 中,以实现更细粒度的追踪。
Sentry
如果你使用 Sentry,可以按照以下示例所示,将 LangSmith 追踪导出器附加到 Sentry 的默认 OpenTelemetry 检测中。添加其他元数据
你可以向追踪记录中添加其他元数据,以帮助在 LangSmith UI 中组织和筛选它们:自定义运行名称
你可以通过将名为ls_run_name 的元数据键传递到 experimental_telemetry 中来自定义运行名称。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

