Weave for Agents는 공개 프리뷰 상태입니다. 정식 출시 전에 특성, API 및 Agents 뷰 UI가 변경될 수 있습니다.
학습할 내용
weave.init()로 에이전트 트레이싱을 위해 Weave를 초기화합니다.start_session/startSession및start_turn/startTurn으로 Session과 턴을 시작합니다.start_llm/startLLM으로 LLM Call을 래핑하고 사용량을 기록합니다.start_tool/startTool로 도구 실행을 래핑하고 결과를 기록합니다.- 결과로 생성된 Session, 턴, 도구 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용 행 1개. - 세 개의 턴이 포함된 Session 1개.
- 각 턴(
invoke_agent)에는 두 개의chatspan과 그 안에 중첩된execute_toolspan이 포함됨. - 각
chat의 token 수, 지연 시간, 모델, 전체 메시지 교환 내용.
다음 단계
- Weave로 에이전트를 트레이스하는 방법과 Weave SDK에서 사용 가능한 특성과 옵션을 알아보세요.
- 에이전트에 Weave를 통합하는 더 많은 옵션은 에이전트 인테그레이션 트레이싱을 참조하세요.