Weave for Agents는 공개 프리뷰 상태입니다. 정식 출시 전에 특성, API 및 Agents 뷰 UI가 변경될 수 있습니다.
배울 내용
weave.init()를 사용해 에이전트 트레이싱용 Weave를 초기화합니다.start_session/startSession및start_turn/startTurn으로 세션과 턴을 시작합니다.start_llm/startLLM으로 LLM Call을 래핑하고 사용량을 기록합니다.start_tool/startTool로 도구 실행을 래핑하고 결과를 기록합니다.- 결과로 생성된 세션, 턴, 도구 Call을 Agents 뷰에서 확인합니다.
Weave SDK가 에이전트와 작동하는 방식
| 개념 | Python | TypeScript | OTel span |
|---|---|---|---|
| 하나의 대화 | weave.start_session(...) | weave.startSession(...) | (span 없음, 턴을 그룹화) |
| 사용자 또는 에이전트의 한 번의 상호작용 | weave.start_turn(...) | weave.startTurn(...) | invoke_agent |
| 하나의 LLM API 호출 | weave.start_llm(...) | weave.startLLM(...) | chat |
| 하나의 도구 실행 | weave.start_tool(...) | weave.startTool(...) | execute_tool |
with weave.start_*(...) as obj:)로 작동합니다. 종료 시에는 예외가 발생한 경우를 포함해 span을 종료하고 속성을 플러시합니다. TypeScript에서는 반환된 각 객체에 대해 .end()를 호출하세요. 예외가 발생하더라도 정리가 보장되도록 try { ... } finally { obj.end(); }를 사용하세요.
gen_ai.usage.* 및 gen_ai.agent.name과 같은 다른 GenAI semantic-convention attributes도 추가 정보 표시를 가능하게 하지만, 선택 사항입니다.
사전 요구 사항
- W&B 계정 및 API 키.
- OpenAI API 키.
- Python 3.10+ (Python 예시용).
- Node.js 18+ (TypeScript 예시에는 내장
fetch가 필요합니다).
패키지 설치
Weave 초기화
weave.init()는 W&B 인증을 수행하고 에이전트 span을 Agents 뷰로 전송하는 OTel 익스포터를 설정합니다. 팀에 해당 프로젝트가 없으면 Weave가 처음 데이터를 기록할 때 자동으로 생성합니다.
도구 정의하기
트레이스된 멀티턴 에이전트 실행
chatspan을 열고 LLM이 도구를 Call할지 선택하게 합니다.- LLM이 도구를 요청하면 해당 Call을
execute_toolspan으로 감싸고, 그 결과를 다시 LLM에 전달합니다. - 두 번째
chatspan을 열어 최종 답변을 생성합니다.
Agents 뷰에서 에이전트 트레이스 확인하기
weave.init()가 실행되면 다음을 확인할 수 있는 프로젝트 링크가 출력됩니다.
- Agents 탭에
research-bot에 대한 행 하나 - 세 개의 턴이 포함된 세션 하나
- 각 턴(
invoke_agent) 안에 중첩된chatspan 두 개와execute_toolspan 하나 - 각
chat의 토큰 수, 지연 시간, 모델, 그리고 전체 메시지 교환 내용
다음 단계
- Weave로 에이전트 트레이싱하는 방법과 Weave SDK에서 어떤 특성 및 옵션을 사용할 수 있는지 알아보세요.
- 에이전트에 Weave를 통합하는 방법에 관한 추가 옵션은 에이전트 인테그레이션 트레이싱을 참조하세요.