Skip to main content
如果您正在构建对话代理或任何多轮交互应用,LangSmith 会自动将您的运行记录分组为线程。查询线程可以让您重放完整对话、跨会话审计代理行为、构建关于对话长度和延迟的分析,并支持下游工作流(如微调和评估)。 SDK 提供了两种处理线程的方法:

线程的工作原理

您创建的每个运行记录都可以在其元数据中携带一个 thread_id。LangSmith 使用此 ID 将运行记录分组到线程中。后端会在 metadata 中查找 thread_id(回退到 session_idconversation_id)。 如果您使用追踪集成,请在运行元数据中传递 thread_id

列出项目中的所有线程

list_threads / listThreads 获取项目中的所有线程并将其运行记录分组。结果按最近活动时间降序排序。
结果按最近活动时间排序:
输出

参数

返回值

线程对象列表,每个对象包含:
list_threads 始终仅返回根运行记录。如果您需要子运行记录(例如工具调用、子链),请改用 read_thread,它接受一个 is_root / isRoot 参数,您可以将其设置为 false

读取单个线程的运行记录

当您已知 thread_id 时,使用 read_thread / readThread。它直接返回线程运行记录的迭代器,无需先获取所有线程。
list_threads 不同,这里的每个项目直接是一个 Run 对象——没有分组包装器。默认情况下,运行记录按升序时间顺序返回。
输出

参数

返回值

Run 对象的迭代器(Python)或异步迭代器(TypeScript)。

示例

按运行属性过滤线程

传递过滤表达式以使用 LangSmith 追踪查询语法 缩小结果范围。例如,仅显示包含至少一条失败运行记录的线程:

查看超过 24 小时前的记录

默认情况下,list_threads 仅显示过去一天内有运行记录的线程。传递 start_time 以扩大时间窗口:

重建对话

使用 read_thread 并设置 order="asc" 以逐轮重放对话: