LangSmith 的可观测性功能可让您记录、检查和分析 LLM 应用程序执行的每一步。本页将介绍 LangSmith 中的数据结构以及如何发送跟踪数据。

LangSmith 的数据结构

LangSmith 将多个跟踪 组织在一个项目 中。每个跟踪记录了应用程序为单个操作所执行的一系列步骤,这些步骤由各个单独的运行 组成。您可以将多轮对话中的跟踪关联起来,形成一个会话。

项目

项目 是一个容器,用于存放与单个应用程序或服务相关的所有跟踪。 如何将跟踪记录到项目中。

跟踪

跟踪 是针对单个操作的一系列运行的集合。例如,当用户请求触发一个调用 LLM 然后调用输出解析器的链时,所有这些运行都属于同一个跟踪。运行通过唯一的跟踪 ID 绑定到一个跟踪。如果您熟悉 OpenTelemetry,可以将 LangSmith 的跟踪理解为一组跨度的集合。
Each trace is limited to a maximum of 25,000 runs. Once the trace reaches this limit, LangSmith will reject any additional runs that you send for that trace.

运行

运行 是一个跨度,代表 LLM 应用程序中一个独立的工作单元:一次 LLM 调用、一个提示词格式化步骤、一次检索调用,或任何其他离散操作。如果您熟悉 OpenTelemetry,可以将运行理解为一个跨度。

会话

会话 是一系列跟踪的序列,代表一次单独的对话。多轮对话中的每一轮都是一个独立的跟踪,但这些跟踪通过一个共享的标识符连接起来。要将跟踪分组到会话中,需要传递一个特殊的元数据键 (session_id 或 thread_id),并赋予其一个唯一的值。 学习如何配置会话。
使用 聊天功能 来分析跟踪、运行和会话。聊天功能帮助您理解智能体性能、调试问题,并从对话线程中获取洞察,而无需手动翻查数据。

跟踪数据增强

反馈

反馈 允许您基于特定标准为单个运行打分。每个反馈条目包含一个标签和一个分数,并通过唯一的运行 ID 绑定到一个运行。反馈可以是连续的或离散的(分类的),并且标签可以在组织内的不同运行之间重用。 关于反馈的存储方式,请参阅 反馈数据格式指南。

标签

标签 是您可以附加到运行上的字符串,用于在 LangSmith UI 中对它们进行分类、过滤和分组。 学习如何为您的跟踪添加标签。

元数据

元数据 是一组您可以附加到运行上的键值对。例如,应用程序版本、环境或任何其他上下文信息。与标签类似,您可以使用元数据来过滤和分组运行。 学习如何为您的跟踪添加元数据。

发送跟踪数据

有两种方式可以将跟踪数据发送到 LangSmith。

集成

LangSmith 集成 为流行的 LLM 提供商和智能体框架提供自动跟踪功能(相当于通用可观测性中的自动 instrumentation)。当您使用如 LangChain、LangGraph、OpenAI、Anthropic 或 CrewAI 等支持的框架时,集成会自动捕获输入、输出和元数据,无需手动修改代码。 浏览所有集成。

手动 instrumentation

手动 instrumentation 允许您为任何代码添加跟踪,无论其框架如何。当您没有使用支持的集成,或者需要对跟踪内容进行精细控制时,请使用此方式。LangSmith 提供三种机制:
  • @traceable / traceable:用于跟踪任何函数的装饰器
  • trace 上下文管理器(Python):包装特定的代码块
  • RunTree API:低级别、显式的跟踪构建
学习如何添加手动 instrumentation。

数据保留

LangSmith(SaaS 版)自数据摄入起保留跟踪数据 400 天。此后,跟踪数据将被永久删除,但会为统计使用情况保留有限的元数据。有关保留层级和定价的详细信息,请参阅 使用情况与计费:数据保留。
若需将数据保留超出上述期限,请将其添加到一个数据集中。数据集可以永久保留,即使源跟踪已被删除。
若要在到期前删除跟踪,请参阅管理跟踪。