安装
此包装器要求 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 配置
你可以通过providerOptions.langsmith 在初始包装 AI SDK 方法时以及运行它们时传递 LangSmith 特定的配置。这包括元数据(稍后可用于在 LangSmith 中过滤运行)、顶级运行名称、标签、自定义客户端实例等。
包装时传递的配置将应用于你使用包装方法进行的所有未来调用:
providerOptions.langsmith 在运行时传递的配置仅适用于该次运行。
我们建议导入并使用 createLangSmithProviderOptions 包装你的配置,以确保正确的类型:
指定自定义运行 ID
你可以使用providerOptions 和 createLangSmithProviderOptions 为每次调用预先指定一个运行 ID。使用 LangSmith SDK 中的 uuid7() 生成有效的 ID:
数据脱敏
你可以通过指定自定义的输入/输出处理函数来定制 AI SDK 发送到 LangSmith 的内容。如果你处理的是敏感数据并希望避免发送到 LangSmith,这很有用。 由于输出格式根据你使用的 AI SDK 方法而异,我们建议单独定义配置并传递到包装的方法中。你还需要为 AI SDK 调用内部的子 LLM 运行提供单独的函数,因为在顶层调用generateText 会在内部调用 LLM,并且可能多次调用。
我们还建议向 createLangSmithProviderOptions 传递一个泛型参数,以获取输入和输出的正确类型。
以下是 generateText 的示例:
execute 方法包装在 traceable 中:
traceable 的返回类型很复杂,因此需要进行类型转换。如果你希望避免类型转换,也可以省略 AI SDK 的 tool 包装函数。
Connect these docs to Claude, VSCode, and more via MCP for real-time answers.

