대량의 trace를 내보내려는 경우, 대량 데이터 내보내기 기능을 사용하는 것을 권장합니다. 이 기능은 대용량 데이터를 더 잘 처리하며 파티션 간 자동 재시도 및 병렬화를 지원합니다.
list_runs 메서드 또는 API의 /runs/query endpoint를 사용하는 것입니다.
LangSmith는 Run (span) 데이터 형식에 명시된 간단한 형식으로 trace를 저장합니다.
filter argument 사용하기
간단한 쿼리의 경우 쿼리 구문에 의존할 필요가 없습니다. filter argument 참조에 명시된 filter argument를 사용할 수 있습니다.사전 요구사항아래 코드 스니펫을 실행하기 전에 client를 초기화하세요.
프로젝트의 모든 run 나열하기
최근 24시간 내의 LLM 및 Chat run 나열하기
프로젝트의 root run 나열하기
Root run은 부모가 없는 run입니다. 이들은is_root에 True 값이 할당됩니다. 이를 사용하여 root run을 필터링할 수 있습니다.
오류가 없는 run 나열하기
run ID로 run 나열하기
다른 Argument 무시위에서 설명한 방식으로 run ID 목록을 제공하면
project_name, run_type 등과 같은 다른 모든 필터링 argument를 무시하고 주어진 ID와 일치하는 run을 직접 반환합니다.filter 쿼리 언어 사용하기
더 복잡한 쿼리의 경우 filter 쿼리 언어 참조에 설명된 쿼리 언어를 사용할 수 있습니다.대화 thread의 모든 root run 나열하기
이것은 대화 thread에서 run을 가져오는 방법입니다. thread 설정에 대한 자세한 내용은 thread 설정 방법 가이드를 참조하세요. Thread는 공유 thread ID를 설정하여 그룹화됩니다. LangSmith UI에서는 다음 세 가지 metadata key 중 하나를 사용할 수 있습니다:session_id, conversation_id, 또는 thread_id. session ID는 tracing project ID라고도 합니다. 다음 쿼리는 이들 중 하나와 일치합니다.
trace의 root에 “user_score” feedback 점수 1이 할당된 “extractor”라는 모든 run 나열하기
점수가 4보다 큰 “star_rating” key를 가진 run 나열하기
완료하는 데 5초 이상 걸린 run 나열하기
”error”가 null이 아닌 모든 run 나열하기
start_time이 특정 timestamp보다 큰 모든 run 나열하기
”substring” 문자열을 포함하는 모든 run 나열하기
git hash “2aa1cf4”로 태그된 모든 run 나열하기
특정 timestamp 이후에 시작되었고 “error”가 null이 아니거나 “Correctness” feedback 점수가 0인 모든 run 나열하기
복잡한 쿼리: tag에 “experimental” 또는 “beta”가 포함되고 latency가 2초보다 큰 모든 run 나열하기
전체 텍스트로 trace tree 검색하기
특정 필드 없이search() function을 사용하여 run의 모든 문자열 필드에 대해 전체 텍스트 검색을 수행할 수 있습니다. 이를 통해 검색어와 일치하는 trace를 빠르게 찾을 수 있습니다.
metadata 존재 여부 확인하기
metadata의 존재 여부를 확인하려면eq operator를 사용할 수 있으며, 선택적으로 and 문을 사용하여 값으로 일치시킬 수 있습니다. 이는 run에 대한 보다 구조화된 정보를 기록하려는 경우 유용합니다.
metadata의 환경 세부 정보 확인하기
일반적인 패턴은 metadata를 통해 trace에 환경 정보를 추가하는 것입니다. 환경 metadata를 포함하는 run을 필터링하려면 위와 동일한 패턴을 사용할 수 있습니다:metadata의 conversation ID 확인하기
동일한 대화에서 trace를 연결하는 또 다른 일반적인 방법은 공유 conversation ID를 사용하는 것입니다. 이러한 방식으로 conversation ID를 기반으로 run을 필터링하려면 metadata에서 해당 ID를 검색할 수 있습니다.key-value 쌍에 대한 부정 필터링
metadata, input, output key-value 쌍에 대해 부정 필터링을 사용하여 결과에서 특정 run을 제외할 수 있습니다. 다음은 metadata key-value 쌍에 대한 몇 가지 예시이지만 동일한 논리가 input 및 output key-value 쌍에도 적용됩니다.여러 filter 결합하기
검색을 세분화하기 위해 여러 조건을 결합하려면 다른 필터링 function과 함께and operator를 사용할 수 있습니다. 다음은 “ChatOpenAI”라는 이름의 run을 검색하고 metadata에 특정 conversation_id가 있는 run을 찾는 방법입니다:
Tree Filter
root run에 “user_score” feedback이 1이고 전체 trace의 어떤 run이 “ExpandQuery”라는 이름을 가진 “RetrieveDocs”라는 모든 run을 나열합니다. 이러한 유형의 쿼리는 trace 내에서 다양한 상태나 단계에 도달한 것을 조건으로 특정 run을 추출하려는 경우 유용합니다.고급: 하위 tool 사용을 포함한 평면화된 trace view 내보내기
다음 Python 예제는 각 trace 내에서 agent가 사용한 tool(중첩된 run에서)에 대한 정보를 포함하여 평면화된 trace view를 내보내는 방법을 보여줍니다. 이는 여러 trace에서 agent의 동작을 분석하는 데 사용할 수 있습니다. 이 예제는 지정된 일수 내의 모든 tool run을 쿼리하고 부모(root) run ID별로 그룹화합니다. 그런 다음 각 root run에 대한 관련 정보(run 이름, input, output 등)를 가져오고 해당 정보를 하위 run 정보와 결합합니다. 쿼리를 최적화하기 위해 이 예제는:- tool run을 쿼리할 때 필요한 필드만 선택하여 쿼리 시간을 줄입니다.
- tool run을 동시에 처리하면서 root run을 배치로 가져옵니다.
고급: feedback이 있는 trace에 대한 retriever IO 내보내기
이 쿼리는 embedding을 미세 조정하거나 retriever 동작을 기반으로 end-to-end 시스템 성능 문제를 진단하려는 경우 유용합니다. 다음 Python 예제는 특정 feedback 점수가 있는 trace 내에서 retriever input 및 output을 내보내는 방법을 보여줍니다.Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.