Turn, LLM, Tool, SubAgent)에서 맞춤형 메타데이터를 추가할 수 있는 메서드를 제공합니다. 이 메서드를 사용해 사용자 ID, 테넌트, 실험 이름, 환경 레이블과 같은 컨텍스트 정보를 에이전트 span에 기록한 다음, Weave UI에서 해당 메타데이터를 기준으로 에이전트 활동을 필터링하고 그룹화하세요.
이 메타데이터는 두 가지 형태로 제공됩니다:
- 속성: span 전체에 적용되는 키-값 속성입니다.
set_attributes()(Python) 또는setAttributes()(TypeScript)를 사용해 단일 span에 속성을 기록하거나, 대화이 생성하는 모든 span에 적용되는 대화 전체 속성을 설정하세요. - 이벤트: span의 수명 동안 발생하는 특정 시점의 마커로, 권한 프롬프트나 라이프사이클 전환 등이 여기에 해당합니다.
add_event()(Python) 또는addEvent()(TypeScript)를 사용하세요.
set_attributes는 OTel의 Span.set_attributes에, add_event는 OTel의 Span.add_event에 대응합니다. Weave SDK는 OTel span을 생성하고 모든 속성을 저장하므로 Weave에서 계속 쿼리할 수 있습니다.
span에 속성 설정하기
set_attributes()(Python) 또는 setAttributes()(TypeScript)를 사용하세요. 키가 하나든 여러 개든 딕셔너리나 객체를 전달하면 됩니다. 이 메서드는 span을 반환하므로 호출을 체이닝할 수 있습니다.
- Python
- TypeScript
- Python
- TypeScript
weave.* 아래의 키는 Weave의 기본 제공 필드에 매핑되고, gen_ai.* 아래의 키는 OpenTelemetry GenAI semantic convention 필드에 매핑됩니다. 앞선 예시에서 weave.display_name은 예약된 키로, Agents 및 Traces UI에서 span의 표시 이름을 설정합니다. 필터링하거나 그룹화하려는 임의의 메타데이터에는 user_id 또는 tenant와 같은 자체 키를 사용하세요. Weave는 이를 필터링 가능한 맞춤형 속성으로 저장합니다.
대화의 모든 span에 속성 설정하기
attributes를 전달하세요. 이는 인테그레이션 ID나 배포 환경처럼 대화 전반에 걸친 메타데이터를 전파할 때 유용합니다.
- Python
- TypeScript
span별 속성과 마찬가지로, 대화 속성에도 자체 맞춤형 키를 사용하세요. 에이전트 이름, 대화 이름, 모델과 같은 semantic-convention 필드는
attributes가 아니라 해당 유형 지정 매개변수(agent_name, conversation_name, model)를 통해 설정하세요. 예약된 gen_ai.* 및 weave.* 접두사 아래의 키는 사용하지 마세요. Weave는 수집 중에 이를 유형 지정 필드로 추출하므로, 예약된 키 아래의 맞춤형 값은 지원되지 않습니다.속성을 설정할 수 있는 시점
with 블록 내부이고, TypeScript에서는 start*() 이후 end() 이전입니다.
아직 시작되지 않았거나 이미 종료된 span에서 set_attributes() 또는 이에 해당하는 TypeScript 함수를 호출하면, 해당 호출은 아무 작업도 수행하지 않으며 수정 방법이 포함된 경고를 기록합니다.
OTel이 설치되어 있지 않거나 Weave가 비활성화된 경우에만 호출이 조용히 처리됩니다(경고 없음).