Skip to main content
本节适用于使用 LangSmith JS SDK 0.2.0 及更高版本的用户。如果您在无服务器环境中使用 LangChain.js 或 LangGraph.js 进行追踪,请参阅此指南
追踪 JavaScript 函数时,LangSmith 默认会在后台追踪运行,以避免增加延迟。在无服务器环境中,执行上下文可能会突然终止,因此确保所有追踪数据在函数完成前正确刷新非常重要。 为确保这一点,您可以:
  • 将名为 LANGSMITH_TRACING_BACKGROUND 的环境变量设置为 "false"。这将导致被追踪的函数在返回前等待追踪完成。
    • 请注意,这与 LangChain.js 中的环境变量命名不同,因为 LangSmith 可以在不使用 LangChain 的情况下使用。
  • 将自定义客户端传递到被追踪的运行中,并 await client.awaitPendingTraceBatches(); 方法。
以下是结合 traceable 方法使用 awaitPendingTraceBatches 的示例:

高并发下的速率限制

默认情况下,LangSmith 客户端会在被追踪的运行执行期间批量处理操作,每隔几毫秒发送一个新批次。 这在大多数情况下运行良好,但如果您的被追踪函数运行时间很长且并发量非常高,您可能还会遇到与总请求数相关的速率限制。 如果您遇到与此相关的速率限制错误,可以尝试在客户端中设置 manualFlushMode: true,如下所示:
然后在无服务器函数关闭前手动调用 client.flush(),如下所示:
请注意,在调用 .flush() 之前,运行将不会出现在 LangSmith UI 中。