Skip to main content
이 튜토리얼에서는 Weave에서 중첩 함수를 트레이스하여 LLM 기반 애플리케이션의 전체 실행 흐름을 하위 함수와 부모-자식 관계까지 포함해 모니터링하는 방법을 설명합니다. 튜토리얼을 마치면 Weave Traces 페이지에서 중첩된 트레이스를 캡처하고 시각화하며, 메타데이터를 추가할 수 있습니다. LLM 기반 애플리케이션에는 모니터링이 필요한 여러 LLM Call과 추가 데이터 처리, 검증 로직이 포함될 수 있습니다. Weave에서는 @weave.op() 데코레이터(Python)를 사용하거나 weave.op()으로 래핑(TypeScript)하여 이러한 중첩 함수와 부모-자식 관계를 추적할 수 있습니다. 애플리케이션의 전체 실행 흐름을 캡처하려면 함수와 하위 함수에 최대한 세분화하여 데코레이터를 적용하세요. 그러면 애플리케이션의 동작을 더 잘 파악하고 원하는 방향으로 개선할 수 있습니다.

중첩 함수 트레이스

이 섹션에서는 함수와 그 안에 중첩된 하위 함수를 트레이스하는 예시를 단계별로 살펴봅니다. 다음 코드는 퀵스타트 예시를 확장한 것으로, LLM이 반환한 항목의 개수를 세고 이를 상위 수준 함수로 래핑하는 로직을 추가합니다. 또한 weave.op()를 사용하여 모든 함수와 각 함수의 호출 순서, 부모-자식 관계를 트레이스합니다.
중첩 함수위 코드를 실행하면 Traces 페이지에 두 중첩 함수(extract_dinos, count_dinos)의 입력과 출력은 물론, 자동으로 로깅된 OpenAI 트레이스도 표시됩니다.가운데의 트레이스 트리 패널과 선택한 Call의 세부 정보 패널이 표시된 중첩 Weave Traces 페이지
코드를 실행하면 Weave에 각 함수 호출과 호출 간의 관계를 모두 캡처한 중첩 트레이스가 생성됩니다.

메타데이터 추적

이제 Weave가 중첩 함수를 트레이스하므로, 사용자나 환경 같은 run 관련 컨텍스트를 추가해 트레이스를 더 풍부하게 만들 수 있습니다. 메타데이터를 추적하려면 weave.attributes 컨텍스트 관리자를 사용하고, 호출 시점에 추적할 메타데이터를 딕셔너리로 전달하세요. 이전 예시를 이어서 살펴보겠습니다.
사용자 ID나 코드의 실행 환경(개발, 스테이징, 프로덕션) 같은 메타데이터는 런타임에 추적하세요.system 프롬프트 같은 시스템 설정을 추적하려면 Weave Models를 사용하세요.
속성 사용에 대한 자세한 내용은 속성 정의 및 로깅을 참조하세요.

다음 단계

  • App Versioning 튜토리얼을 따라 즉석에서 수행한 프롬프트, 모델, 애플리케이션 변경 사항을 캡처하고 버전별로 관리하며 체계적으로 정리해 보세요.
마지막 수정일 2026년 9월 30일