如果您正在导出大量追踪,我们建议您使用批量数据导出功能,因为它能更好地处理大量数据,并支持跨分区的自动重试和并行化。
list_runs 方法或 API 中的 /runs/query 端点。 LangSmith 以运行(span)数据格式中指定的简单格式存储追踪。使用过滤参数
对于简单查询,您无需依赖我们的查询语法。您可以使用过滤参数参考中指定的过滤参数。先决条件在运行以下代码片段之前,请初始化客户端。
列出项目中的所有运行
列出过去 24 小时内的 LLM 和 Chat 运行
列出项目中的根运行
根运行是没有父级的运行。这些运行的is_root 值为 True。您可以使用此参数来筛选根运行。
列出没有错误的运行
按运行 ID 列出运行
忽略其他参数如果您按上述方式提供运行 ID 列表,它将忽略所有其他过滤参数,如
project_name、run_type 等,并直接返回与给定 ID 匹配的运行。使用筛选查询语言
对于更复杂的查询,您可以使用筛选查询语言参考中描述的查询语言。列出对话线程中的所有根运行
这是在对话线程中获取运行的方法。有关设置线程的更多信息,请参阅我们的线程设置操作指南。线程通过设置共享的线程 ID 进行分组。LangSmith UI 允许您使用以下三个元数据键中的任何一个:session_id、conversation_id 或 thread_id。会话 ID 也称为追踪项目 ID。以下查询匹配其中任何一个。
列出所有名为“extractor”的运行,其追踪根的反馈“user_score”评分为 1
列出“star_rating”键的值大于 4 的运行
列出完成时间超过 5 秒的运行
列出所有“error”不为空的运行
列出 start_time 大于特定时间戳的所有运行
列出所有包含字符串“substring”的运行
列出所有使用 git hash “2aa1cf4” 标记的运行
列出所有在特定时间戳之后开始且“error”不为空或“Correctness”反馈评分为 0 的运行
复杂查询:列出所有标签包含“experimental”或“beta”且延迟大于 2 秒的运行
按全文搜索追踪树
您可以使用不带任何特定字段的search() 函数对运行中的所有字符串字段进行全文搜索。这使您能够快速找到与搜索词匹配的追踪。
检查元数据是否存在
如果要检查元数据是否存在,可以使用eq 运算符,可以选择使用 and 语句按值匹配。这对于记录有关运行的更多结构化信息很有用。
检查元数据中的环境详细信息
一种常见的模式是通过元数据将环境信息添加到您的追踪中。如果您想筛选包含环境元数据的运行,可以使用与上述相同的模式检查元数据中的会话 ID
另一种将同一对话中的追踪关联起来的常见方法是使用共享的对话 ID。如果您想通过这种方式基于对话 ID 筛选运行,可以在元数据中搜索该 ID。键值对的否定过滤
您可以对元数据、输入和输出键值对使用否定过滤,以从结果中排除特定运行。以下是一些元数据键值对的示例,但相同的逻辑也适用于输入和输出键值对。组合多个过滤器
如果您想组合多个条件来优化搜索,可以使用and 运算符以及其他过滤函数。以下是如何搜索名为“ChatOpenAI”且元数据中包含特定 conversation_id 的运行的示例
树形过滤器
列出所有名为“RetrieveDocs”的运行,其根运行的“user_score”反馈为 1,并且完整追踪中的任何运行名为“ExpandQuery”。 如果您想根据追踪中达到的各种状态或步骤来提取特定运行,这种类型的查询非常有用。高级:导出包含子工具使用情况的平铺追踪视图
以下 Python 示例演示了如何导出追踪的平铺视图,包括代理在每个追踪中使用的工具(来自嵌套运行)的信息。这可用于分析代理在多个追踪中的行为。 此示例查询指定天数内所有工具运行,并按其父(根)运行 ID 分组。然后,它获取每个根运行的相关信息,例如运行名称、输入、输出,并将该信息与子运行信息结合起来。 为了优化查询,该示例:- 查询工具运行时只选择必要的字段,以减少查询时间。
- 在并发处理工具运行时分批获取根运行。
高级:导出带反馈的追踪的检索器 IO
此查询有助于微调嵌入或根据检索器行为诊断端到端系统性能问题。以下 Python 示例演示了如何导出具有特定反馈分数的追踪中的检索器输入和输出。以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。