- 快速缩小范围,进行特定运行的临时分析。
- 识别并检查错误、失败运行和性能瓶颈。
创建和应用筛选器
按运行属性筛选
在追踪项目中有两种筛选运行记录的方式:-
筛选器:位于追踪项目页面的左上角。这是您构建和管理筛选条件的地方。
- 第一个下拉菜单筛选默认视图和已保存的视图。
- 快速筛选追踪或运行。
- + 添加筛选器以基于属性或全文搜索配置筛选器。

-
筛选快捷方式:位于追踪项目页面的右侧边栏。筛选快捷方式栏提供了基于项目运行中最常出现属性的快速筛选访问。

默认情况下,应用的是追踪筛选器,它仅显示顶层的根运行。您可以切换到运行以显示所有运行。
筛选运算符
可用的筛选运算符取决于您要筛选属性的数据类型。以下是常见运算符的概述:- 是:与筛选值完全匹配
- 不是:与筛选值不匹配
- 包含:与筛选值部分匹配
- 不包含:与筛选值部分不匹配
- 是其中之一:与列表中的任意值匹配
>/<:适用于数字字段
具体筛选技术
筛选运行(跨度)
要筛选运行(跨度),请将默认的追踪更改为运行。例如,如果您想按运行名称筛选运行或按运行类型筛选,就需要这样做。 运行元数据和标签也是有用的筛选依据。这依赖于您管道所有部分良好的标签标记。要了解更多信息,请参阅向追踪记录添加元数据和标签。 当您指定更多筛选器时,可以单独点击每个筛选器来更新您正在搜索的属性。基于输入和输出筛选
您可以基于运行输入和输出中的内容来筛选运行记录。 要筛选输入或输出,可以使用** 全文搜索筛选器,它将在任一字段中匹配关键词。要进行更有针对性的搜索,可以使用 输入或 输出**筛选器,它们将仅基于相应字段匹配内容。出于性能考虑,我们为全文搜索索引最多250个字符的数据。如果您的搜索查询超过此限制,建议使用输入/输出键值对搜索代替。
- 在全文搜索中包含用空格分隔的多个术语。
- 在添加第一个筛选器后,使用按钮添加多个筛选器。
标记必须至少2个字符长才能被索引。单字符标记(例如
a、x)被排除在搜索之外。
python和tensorflow,在输入中搜索embedding,并在输出中搜索fine和tune。
您可以根据需要从筛选路径中移除筛选器,这将扩大搜索范围至剩余的筛选条件。
基于输入/输出键值对筛选
除了全文搜索,您还可以基于输入和输出中的特定键值对来筛选运行记录。这允许进行更精确的筛选,尤其是在处理结构化数据时。LangSmith为每个运行索引最多100个唯一键,以保持数据的有组织和可搜索性。每个键的值也有250个字符的限制。如果您的数据超过任一限制,文本将不会被索引。这有助于确保快速可靠的性能。
- 选择**+ 添加筛选器**。
- 从第一个下拉菜单中选择输入,将第二个下拉菜单保留为键,并选择
input作为键。 - 点击**+ 值**并输入值:
What is the capital of France?作为值。

输出键,输入documents.page_content作为键,并输入The capital of France is Paris作为值。这将匹配嵌套键documents.page_content与指定的值。


示例:筛选工具调用
通常需要搜索包含特定工具调用的追踪记录。工具调用通常在LLM运行的输出中指示。要筛选工具调用,您需要使用输出键筛选器。 虽然此示例将向您展示如何筛选工具调用,但相同的逻辑可以应用于筛选输出中的任何键值对。 在这种情况下,假设这是您要筛选的输出:| 键 | 值 |
|---|---|
generations.type | ChatGeneration |
generations.message.type | constructor |
generations.message.kwargs.type | ai |
generations.message.kwargs.id | run-ca7f7531-f4de-4790-9c3e-960be7f8b109 |
generations.message.kwargs.tool_calls.name | Plan |
generations.message.kwargs.tool_calls.args.steps | Research LangGraph's node configuration capabilities |
generations.message.kwargs.tool_calls.args.steps | Investigate how to add a Python code execution node |
generations.message.kwargs.tool_calls.args.steps | Find an example or create a sample implementation of a code execution node |
generations.message.kwargs.tool_calls.id | toolu_01XexPzAVknT3gRmUB5PK5BP |
generations.message.kwargs.tool_calls.type | tool_call |
type | LLMResult |
generations.message.kwargs.tool_calls.name = Plan
这将匹配tool_calls名称为Plan的根运行和非根运行。
对键值对进行负向筛选
可以对** 元数据**、 输入和** 输出**字段应用不同类型的负向筛选,以从结果中排除特定的运行记录。 例如,要查找元数据键phone不等于1234567890的所有运行:
- 将元数据键运算符设置为
是,键字段设置为phone。 - 将值运算符设置为
不是,值字段设置为1234567890。
phone且值不为1234567890的运行。
要查找没有特定元数据键的运行:将键运算符设置为不是。例如,将键运算符设置为不是,键为phone,将匹配所有元数据中没有phone字段的运行。
您还可以筛选既没有特定键也没有特定值的运行。要查找元数据中既没有键phone也没有任何字段值为1234567890的运行,请将键运算符设置为不是,键为phone,并将值运算符设置为不是,值为1234567890。

phone键但其他某个键的值为1234567890的运行,请将键运算符设置为不是,键为phone,并将值运算符设置为是,值为1234567890。
保存筛选器
保存筛选器允许您存储和重用常用的筛选配置。已保存的筛选器特定于一个追踪项目。 构建好筛选器后,点击另存为按钮进行保存。这将弹出一个对话框,用于指定筛选器的名称和描述。
更新已保存的筛选器
在筛选器下拉菜单中选择筛选器后,您可以对筛选参数进行任何更改。然后,点击保存以更新筛选器。删除已保存的筛选器
点击下拉菜单中已保存筛选器旁边的图标,然后使用垃圾桶图标删除筛选器。复制筛选器
您可以复制构建好的筛选器,以便与同事分享、稍后重用或在API或SDK中以编程方式查询运行记录。 要复制筛选器:- 在UI中创建它。
- 点击筛选栏中的图标。如果您构建了树或追踪筛选器,也可以复制它们。
- 这将为您提供一个表示LangSmith查询语言中筛选器的字符串。例如:
and(eq(is_root, true), and(eq(feedback_key, "user_score"), eq(feedback_score, 1)))。
在追踪视图中筛选运行
您还可以直接在追踪视图中应用筛选器,这对于筛选具有大量运行的追踪记录非常有用。主运行表视图中可用的相同筛选器可以在此处应用。 默认情况下,仅显示与筛选器匹配的运行。要在更广泛的追踪树上下文中查看匹配的运行,请将视图选项从“仅筛选”切换到“显示全部”或“最相关”。
在LangSmith查询语言中手动指定原始查询
如果您复制了先前构建的筛选器,可能希望在以后的会话中手动应用此原始查询。 为此,您可以点击追踪视图中筛选器弹出窗口底部的切换到原始查询。然后,您可以将原始查询粘贴到文本框中。这将把该查询添加到现有查询中,而不是覆盖它。
高级筛选器
基于根运行属性筛选运行(跨度)
一个常见的概念是筛选属于某个追踪的运行,该追踪的根运行具有某些属性。例如,筛选特定类型的运行,其根运行具有关联的正面(或负面)反馈。要做到这一点:- 在追踪/运行切换中点击运行。
- 添加另一个筛选规则。然后,您可以点击筛选器下拉菜单底部的高级筛选器链接。
- 将打开一个模态窗口,您可以在其中添加追踪筛选器。这些筛选器将应用于您已筛选的各个运行的所有父运行的追踪。
筛选其子运行具有某些属性的运行(跨度)
您可能希望搜索具有特定类型子运行的运行。例如,搜索所有具有名为Foo的子运行的追踪。当Foo并非总是被调用,但您想分析它被调用的情况时,这很有用。
- 在追踪/运行切换中点击运行。
- 添加另一个筛选规则。然后,您可以点击筛选器下拉菜单底部的高级筛选器链接。
- 将打开一个模态窗口,您可以在其中添加树筛选器。这将使您指定的规则应用于您已筛选的各个运行的所有子运行。
示例:筛选其树包含工具调用筛选器的所有运行
扩展工具调用筛选示例,如果您想筛选_其树包含_工具筛选器调用的所有运行,可以在高级筛选设置中使用树筛选器。Connect these docs to Claude, VSCode, and more via MCP for real-time answers.










