> ## Documentation Index
> Fetch the complete documentation index at: https://cndoc-langchain.site/llms.txt
> Use this file to discover all available pages before exploring further.

# 在无服务器环境中追踪 JS 函数

<Note>
  本节适用于使用 LangSmith JS SDK 0.2.0 及更高版本的用户。如果您在无服务器环境中使用 LangChain.js 或 LangGraph.js 进行追踪，请参阅[此指南](https://js.langchain.com/docs/how_to/callbacks_serverless)。
</Note>

追踪 JavaScript 函数时，LangSmith 默认会在后台追踪运行，以避免增加延迟。在无服务器环境中，执行上下文可能会突然终止，因此确保所有追踪数据在函数完成前正确刷新非常重要。

为确保这一点，您可以：

* 将名为 `LANGSMITH_TRACING_BACKGROUND` 的环境变量设置为 `"false"`。这将导致被追踪的函数在返回前等待追踪完成。
  * 请注意，这与 LangChain.js 中的[环境变量](https://js.langchain.com/docs/how_to/callbacks_serverless)命名不同，因为 LangSmith 可以在不使用 LangChain 的情况下使用。
* 将自定义客户端传递到被追踪的运行中，并 `await` `client.awaitPendingTraceBatches();` 方法。

以下是结合 [`traceable`](/langsmith/annotate-code) 方法使用 `awaitPendingTraceBatches` 的示例：

```typescript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import { Client } from "langsmith";
import { traceable } from "langsmith/traceable";
const langsmithClient = new Client({});
const tracedFn = traceable(
  async () => {
    return "Some return value";
  },
  {
    client: langsmithClient,
  }
);
const res = await tracedFn();
await langsmithClient.awaitPendingTraceBatches();
```

## 高并发下的速率限制[ ](#rate-limits-at-high-concurrency "直接链接到高并发下的速率限制")

默认情况下，LangSmith 客户端会在被追踪的运行执行期间批量处理操作，每隔几毫秒发送一个新批次。

这在大多数情况下运行良好，但如果您的被追踪函数运行时间很长且并发量非常高，您可能还会遇到与总请求数相关的速率限制。

如果您遇到与此相关的速率限制错误，可以尝试在客户端中设置 `manualFlushMode: true`，如下所示：

```typescript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
import { Client } from "langsmith";
const langsmithClient = new Client({  manualFlushMode: true,});
const myTracedFunc = traceable(
  async () => {
    // Your logic here...
  },
  { client: langsmithClient }
);
```

然后在无服务器函数关闭前手动调用 `client.flush()`，如下所示：

```typescript theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}}
try {
  await myTracedFunc();
} finally {
  await langsmithClient.flush();
}
```

请注意，在调用 `.flush()` 之前，运行将不会出现在 LangSmith UI 中。

***

<div className="source-links">
  <Callout icon="terminal-2">
    [将这些文档连接](/use-these-docs)到 Claude、VSCode 等，通过 MCP 获取实时答案。
  </Callout>

  <Callout icon="edit">
    [在 GitHub 上编辑此页面](https://github.com/langchain-ai/docs/edit/main/src/langsmith/serverless-environments.mdx) 或 [提交问题](https://github.com/langchain-ai/docs/issues/new/choose)。
  </Callout>
</div>
