Skip to main content
Weave Op는 모든 Call을 자동으로 로깅하는, 버전이 관리되는 함수입니다. 이 가이드는 Weave로 코드를 계측하는 개발자를 대상으로 하며, Op를 생성하는 방법, Weights & Biases UI에서 Op가 표시되는 방식을 사용자 지정하는 방법, Weave가 로깅하는 데이터를 제어하는 방법, 샘플링 및 삭제를 관리하는 방법을 설명합니다.
Op를 생성하려면 Python 함수에 weave.op() 데코레이터를 적용하세요.
Op를 Call하면 함수의 입력과 출력이 로깅되며, 마지막 Call 이후 코드가 변경되었다면 새 Op 버전이 생성됩니다.@weave.op() 데코레이터를 적용한 함수라도 Call 전에 weave.init('your-project-name')을 Call하지 않으면 코드 버전 관리나 추적 없이 일반 함수처럼 동작합니다.Weave 도구 모음을 사용해 Op를 서빙하거나 배포할 수 있습니다.

표시 이름 사용자 지정

맞춤형 표시 이름을 사용하면 Weights & Biases UI에서 Op를 더 쉽게 파악할 수 있습니다. 함수 이름이 범용적이거나 자동 생성된 경우에 특히 유용합니다.
Op의 표시 이름을 사용자 지정하려면 @weave.op 데코레이터에 name 매개변수를 설정하세요.

kind와 color 적용하기

Weights & Biases UI에서 Op를 더 체계적으로 정리하려면 코드의 @weave.op 데코레이터에 kind 및 color 인수를 추가하여 맞춤형 kind와 color를 적용하세요. 예를 들어, 다음 코드는 상위 함수에 LLM kind와 blue color를 적용하고, 중첩된 함수에 tool kind와 red color를 적용합니다.
코드를 실행하면 다음과 같이 Weights & Biases UI의 Op에 color와 kind가 적용됩니다.
LLM kind와 blue color가 적용된 상위 call, 그리고 tool kind와 red color가 적용된 중첩 call을 보여주는 Weights & Biases UI
사용 가능한 kind 값은 다음과 같습니다.
  • agent
  • llm
  • tool
  • search
사용 가능한 color 값은 다음과 같습니다.
  • red
  • orange
  • yellow
  • green
  • blue
  • purple

로깅되는 입력과 출력 사용자 지정하기

원래 함수를 수정하지 않고 Weave가 로깅하는 데이터를 변경하려면(예: 민감한 데이터를 숨기려는 경우) Op 데코레이터에 postprocess_inputs와 postprocess_output을 전달하세요.postprocess_inputs는 인수 이름을 키로, 인수 값을 값으로 하는 dict를 받아 변환된 입력이 담긴 dict를 반환합니다.postprocess_output은 함수가 원래 반환하는 값을 유형에 관계없이 받아 변환된 출력을 반환합니다.

샘플링 비율 제어

Weave가 Op의 Call을 트레이싱하는 빈도를 제어하려면 @weave.op 데코레이터에서 tracing_sample_rate 매개변수를 설정하세요. 자주 호출되는 Op에서 Call의 일부만 트레이싱해도 충분한 경우에 유용합니다.에이전트를 개발하는 동안에는 모든 트레이스를 수집하여 에이전트의 동작을 파악하고 다듬는 데 활용하세요. 프로덕션에서는 트레이스 샘플링을 설정하면 에이전트 동작에 대한 관측성을 유지하면서도 비용을 줄일 수 있습니다.Weave는 가장 바깥쪽 Op에만 샘플링 비율을 적용합니다. 중첩된 Op에 샘플링 비율이 설정되어 있더라도 상위 Op에서 먼저 호출되면 Weave는 중첩된 Op의 샘플링 비율을 무시합니다.
Weave가 Op의 Call을 샘플링하지 않으면 다음과 같이 동작합니다.
  • 함수는 정상적으로 실행됩니다.
  • Weave로 트레이스 데이터가 전송되지 않습니다.
  • Weave는 해당 Call의 하위 Op를 트레이싱하지 않습니다.
샘플링 비율은 0.0 이상 1.0 이하여야 합니다.
기본적으로 Weave는 Call을 로깅할 때마다 해당 Call의 링크를 출력합니다. 로깅 중 Call 링크를 출력하지 않으려면 WEAVE_PRINT_CALL_LINK 환경 변수를 false로 설정하세요. 이렇게 하면 불필요한 출력을 줄여 로그를 더 깔끔하게 유지할 수 있습니다.

Op 삭제

Op 버전을 삭제하면 프로젝트에서 해당 버전이 제거됩니다. 더 이상 쓰지 않거나 필요 없는 버전을 정리할 때 사용하세요.
Op의 특정 버전을 삭제하려면 Op ref에서 .delete()를 호출하세요.
삭제된 Op에 액세스하면 오류가 반환됩니다.
마지막 수정일 2026년 9월 30일