安装
此封装器需要 AI SDK v5 和
langsmith>=0.3.63。如果您使用的是旧版本的 AI SDK 或 langsmith,请参阅基于 OpenTelemetry (OTEL) 的方法在此页面。环境配置
基础设置
导入并封装 AI SDK 方法,然后像往常一样使用它们:使用 traceable
您可以在 AI SDK 调用周围或 AI SDK 工具调用内部封装 traceable 调用。如果您想在 LangSmith 中将运行分组在一起,这很有用:
在无服务器环境中追踪
在无服务器环境中追踪时,您必须在环境关闭之前等待所有运行刷新完成。为此,您可以在封装 AI SDK 方法时传递一个 LangSmithClient 实例,然后调用 await client.awaitPendingTraceBatches()。
确保也将其传递给您创建的任何 traceable 封装器:
Next.js,有一个方便的 after 钩子,您可以在此处放置此逻辑:
传递 LangSmith 配置
您可以在初始封装 AI SDK 方法时以及通过providerOptions.langsmith 运行它们时,将 LangSmith 特定的配置传递给您的封装器。
这包括元数据(您稍后可以使用它在 LangSmith 中过滤运行)、顶级运行名称、标签、自定义客户端实例等。
在封装时传递的配置将应用于您使用封装方法进行的所有未来调用:
providerOptions.langsmith 在运行时传递的配置仅适用于该运行。
我们建议导入您的配置并将其封装在 createLangSmithProviderOptions 中,以确保正确的类型:
指定自定义运行 ID
您可以使用createLangSmithProviderOptions 通过 providerOptions 为每次调用预先指定一个运行 ID。使用 LangSmith SDK 中的 uuid7() 生成一个有效的 ID:
数据脱敏
您可以通过指定自定义输入/输出处理函数来定制 AI SDK 发送给 LangSmith 的输入和输出。如果您处理的是希望避免发送给 LangSmith 的敏感数据,这很有用。 因为输出格式因您使用的 AI SDK 方法而异,我们建议将配置单独定义并传递给封装的方法。您还需要为 AI SDK 调用中的子 LLM 运行提供单独的函数,因为在顶级调用generateText 会在内部调用 LLM,并且可能多次调用。
我们还建议将一个泛型参数传递给 createLangSmithProviderOptions,以获得输入和输出的正确类型。
以下是 generateText 的一个示例:
execute 方法封装在 traceable 中:
traceable 的返回类型很复杂,这使得类型转换成为必要。如果您希望避免类型转换,也可以省略 AI SDK 的 tool 封装函数。
连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。

