W&B Weave: 프로덕션 에이전트를 위한 세션·턴·스텝 관측성과 온라인 평가 루프
왜 지금 봐야 하나
LLM 에이전트를 프로덕션에 올리고 나서 첫 번째로 맞닥뜨리는 질문은 대개 이것이다. "지금 잘 작동하고 있는가?" Prometheus와 Datadog은 요청 수·지연·에러율을 잘 측정하지만, 에이전트가 열 번의 도구 호출 끝에 사용자에게 잘못된 답을 돌려준 이유를 설명하지 못한다. 스팬을 쌓아올린 기존 트레이싱 도구도 마찬가지다. 단일 LLM 호출의 입출력은 보여주지만, 멀티턴 세션 안에서 어느 단계가 문제의 기원인지는 사람이 직접 로그를 뒤져야 알 수 있다.
Weights & Biases는 2026년 6월 2일 W&B Weave를 처음부터 다시 만들었다. 핵심 주장은 하나다. "에이전트 관측성은 에이전트의 실행 방식을 이해하는 도구에서 출발해야 한다." 세션, 턴, 스텝, 도구, 하위 에이전트를 일급 개념으로 다루는 계층 구조를 설계하고, 프로덕션 트래픽에서 직접 신호를 읽어 평가 데이터셋을 만들고 모델을 개선하는 루프를 닫는 것이 목표다.
이 글은 Weave가 에이전트 관측성을 어떻게 구조화하는지, 온라인 평가가 오프라인 평가와 어디서 다른지, 그리고 실제 운영에서 고려해야 할 경계를 다룬다.
Weave의 트레이스 계층 구조
기존 관측성 도구와의 차이
일반 APM(Application Performance Monitoring)은 단일 HTTP 요청 관점에서 설계됐다. 요청이 들어오면 처리하고 응답을 보낸다. 에러 여부는 HTTP 상태 코드가 말해준다. 이 모델에서 LLM 에이전트를 보면, 에이전트가 사용자에게 "정답"을 돌려줬을 때도 HTTP 200이 나온다. 틀린 정보, 허구, 맥락 없는 응답 모두 성공으로 기록된다.
기존 LLM 트레이싱 도구는 개별 LLM 호출을 스팬으로 기록한다. 프롬프트와 응답을 로그로 남기는 것은 쉽지만, 10번의 도구 호출로 구성된 에이전트 루프에서 어느 스텝이 잘못된 판단을 내렸는지 찾아내려면 모든 스팬을 직접 순서대로 펼쳐봐야 한다.
Weave가 다른 이유는 계층 구조의 출발점이 다르기 때문이다. 세션이 최상위 개념이고, 그 아래에 턴, 스텝, 개별 호출이 붙는다. 에이전트가 실제로 실행된 방식 그대로 계층이 구성되기 때문에, "3번째 턴의 2번째 스텝에서 도구 호출이 빈 배열을 반환했고, 그것이 이후 LLM의 잘못된 판단을 유발했다"는 분석이 클릭 몇 번으로 가능해진다.
| 구분 | 일반 APM | LLM 트레이서 | W&B Weave |
|---|---|---|---|
| 최상위 단위 | 요청 | LLM 호출 | 세션 |
| 에이전트 루프 | 추적 불가 | 스팬 나열 | 세션→턴→스텝 계층 |
| 품질 평가 | HTTP 코드 | 없음 | 온라인/오프라인 scorer |
| 개선 루프 | 없음 | 없음 | 신호→데이터셋→훈련 |
| OTel 호환 | 대부분 지원 | 일부 | GenAI 시맨틱 기반 |
세션·턴·스텝 모델의 실제 동작
Weave는 Python SDK로 최소한의 코드 추가로 계층을 수집한다.
import weave
from weave import Session, Turn
weave.init("my-agent-project")
@weave.op()
def search_tool(query: str) -> list[str]:
# 도구 실행 로그가 자동으로 스텝에 기록됨
return retriever.search(query)
@weave.op()
def generate_response(context: list[str], question: str) -> str:
return llm.generate(context=context, question=question)
# 에이전트 루프
def agent_loop(user_message: str, session_id: str):
with weave.Session(session_id=session_id):
with weave.Turn(user_input=user_message):
for _ in range(MAX_STEPS):
with weave.Step():
docs = search_tool(user_message)
response = generate_response(docs, user_message)
if is_done(response):
return response@weave.op() 데코레이터가 각 함수의 입출력, 실행 시간, 예외를 자동으로 기록한다. weave.Session, weave.Turn, weave.Step 컨텍스트 매니저는 계층 구조를 명시적으로 선언한다. OpenTelemetry 스팬으로 직렬화되어 Weave 백엔드에 전송되며, 기존 Jaeger나 Datadog에도 동시에 내보낼 수 있다.
자동 계층 감지: LangGraph, CrewAI, Google ADK 등 주요 에이전트 프레임워크와 통합하면 컨텍스트 매니저 없이도 계층을 자동으로 감지한다.
온라인 시그널: 프로덕션 트래픽에서 직접 읽는 신호
오프라인 평가는 평가 데이터셋을 고정하고 모델을 바꿔가며 비교한다. 이 방식의 한계는 실제 사용자가 어떤 질문을 하는지 예측하지 못한다는 점이다. 데이터셋에 없는 패턴은 평가를 통과해도 프로덕션에서 실패한다.
온라인 시그널은 프로덕션 트래픽에서 실시간으로 신호를 추출한다. 내장 scorer는 다음 범주를 커버한다.
안전성 scorer:
- 독성 탐지: 혐오 발언, 괴롭힘, 욕설 감지
- PII 유출: 이메일·전화번호·카드 번호가 응답에 포함되는지 확인
- 편향 탐지: 특정 집단에 대한 차별적 발언
품질 scorer:
- 허구 감지: 응답이 제공된 컨텍스트 문서와 일치하지 않는 사실 주장
- 일관성: 응답이 이전 턴과 모순되는지
- 불완전 응답: 사용자 질문의 핵심이 응답에서 빠졌는지
사용자 행동 시그널:
- 좌절 감지: "그게 아니라", "다시 해줘", "이해 못 했어" 패턴
- 대화 포기: 에이전트 응답 직후 세션 종료
모든 내장 scorer는 교체 가능하고, 커스텀 scorer는 Python 함수로 정의한다.
# 커스텀 scorer: 응답에 근거가 없는 숫자가 포함됐는지 확인
@weave.scorer
def numeric_claim_checker(output: str, context: list[str]) -> float:
import re
numbers_in_response = set(re.findall(r'\d+\.?\d*', output))
numbers_in_context = set(re.findall(r'\d+\.?\d*', ' '.join(context)))
unsupported = numbers_in_response - numbers_in_context
return 0.0 if unsupported else 1.0온라인 평가와 오프라인 평가의 경계
Weave는 두 평가 모드를 명확하게 구분한다.
오프라인 평가(Offline Evaluation)는 고정된 데이터셋에서 돌린다. 배포 전 회귀 방지가 목적이다. "이 변경이 기존 케이스를 깨뜨리는가"를 답할 수 있다.
온라인 평가(Online Evaluation)는 프로덕션 트래픽 위에서 실시간으로 돌린다. "지금 실제 사용자 질문에 잘 답하고 있는가"를 답한다. 시그널이 임계를 초과하면 실패 세션이 자동으로 데이터셋에 수집되고, 이 데이터셋이 다음 오프라인 평가의 입력이 된다.
두 루프를 연결하는 것이 Weave의 핵심 설계다.
[온라인 트래픽]
↓ 시그널 scorer 실시간 실행
[실패 케이스 자동 수집] ──→ [Weave 데이터셋]
↓
[오프라인 평가 실행]
↓
[프롬프트/모델 개선]
↓
[배포] ──→ [온라인 트래픽]한 가지 주의할 점은 온라인 scorer의 지연 비용이다. 모든 프로덕션 응답 뒤에 무거운 LLM judge를 붙이면 지연이 늘어나거나 추가 API 비용이 발생한다. Weave는 이를 위해 샘플링 비율을 조절할 수 있다. 전체 트래픽의 10%만 scorer를 통과시키는 식으로 비용과 커버리지를 조절한다.
CoreWeave와의 통합: Superintelligence Loop
Weights & Biases는 CoreWeave와 협력해 관측성에서 훈련까지 하나의 플랫폼으로 묶었다.
W&B Weave가 관측성과 평가를 담당한다. CoreWeave Serverless RL이 파인튜닝 인프라를 제공한다. W&B Skills가 모델 역량 단위 기반 자율 개선을 담당한다. CoreWeave ARIA(2026년 6월 29일 출시)는 이 플랫폼 위에서 실험 데이터를 읽고 자율적으로 모델·에이전트 개선을 실행하는 AI 연구 에이전트다.
이 구성에서 금속(GPU 서버)에서 토큰(LLM 응답)까지의 관측성이 단일 플랫폼으로 연결된다. 실험 추적(W&B)은 이미 많은 ML 팀이 쓰고 있으므로, Weave를 추가하면 모델 훈련 이력과 에이전트 프로덕션 성능이 같은 플랫폼에서 비교된다.
실무 운영 고려사항
어떤 팀에 적합한가
Weave는 다음 조건을 갖춘 팀에서 투자 대비 효과가 높다.
- 에이전트가 프로덕션에서 운영되고 있다. 실험 단계에서는 단순 로깅으로 충분하다. 실제 사용자가 에이전트와 상호작용하는 순간부터 온라인 시그널의 가치가 생긴다.
- 품질 기준이 명확하지 않다. "좋은 응답"을 미리 정의하기 어려운 열린 도메인 에이전트라면, 오프라인 평가만으로는 coverage가 부족하다. 온라인 시그널이 예상치 못한 실패 모드를 발견한다.
- W&B를 이미 쓴다. 실험 추적이 W&B로 통합되어 있다면 Weave 추가는 플랫폼 전환 없이 가능하다.
한계와 주의점
- scorer 비용: 모든 응답에 LLM-as-judge scorer를 붙이면 API 비용이 의미 있게 늘어난다. 샘플링·규칙 기반 사전 필터를 조합해 비용을 통제해야 한다.
- PII 처리: 온라인 시그널은 실제 사용자 대화를 읽는다. 개인정보 처리 방침과 데이터 잔존 정책을 미리 확인해야 한다.
- 세션 정의: 세션 경계를 어떻게 정의하느냐에 따라 계층 구조가 달라진다. HTTP 연결 기준, 사용자 인증 기준, 타임아웃 기준 중 어느 것을 쓸지 사전에 결정해야 한다.
- 하위 에이전트 재귀: 에이전트가 하위 에이전트를 부르는 경우, 재귀 깊이가 깊어지면 트레이스 크기가 기하급수적으로 늘어날 수 있다. 최대 깊이를 설정하거나 샘플링을 적용해야 한다.
운영 체크리스트
- [ ]
weave.init(project)호출로 프로젝트를 생성했는가? - [ ] 세션 경계를 명시적으로 정의했는가? (세션 ID 생성 전략)
- [ ] 내장 안전성 scorer 중 서비스에 필요한 것을 식별했는가?
- [ ] 온라인 scorer 샘플링 비율을 결정했는가? (비용과 커버리지 균형)
- [ ] 실패 케이스 자동 수집 데이터셋에 PII 포함 여부를 처리했는가?
- [ ] 오프라인 평가 데이터셋에 온라인 실패 케이스를 추가하는 파이프라인이 있는가?
- [ ] OTel 기반이므로 기존 Jaeger/Datadog와 병렬 익스포트를 설정했는가?
References
- Weights & Biases, "New in W&B Weave: Observability and continuous improvement for production agents", 2026-06-02. https://wandb.ai/wandb_fc/product-announcements-fc/reports/New-in-W-B-Weave-Observability-and-continuous-improvement-for-production-agents--VmlldzoxNzAzMTcxNg
- Weights & Biases, "W&B Weave: Observability and evaluation for production agents", official product page. https://wandb.ai/site/weave/
- Weights & Biases Documentation, "What is Weave?", docs.wandb.ai. https://docs.wandb.ai/weave/concepts/what-is-weave
- CoreWeave, "CoreWeave and Weights & Biases Announce New Products and Capabilities", 2026-05-20. https://www.coreweave.com/news/coreweave-and-weights-biases-announce-new-products-and-capabilities-helping-ai-developers-iterate-faster-on-models-and-agents
- CoreWeave, "CoreWeave ARIA Launches as an AI Research and Iteration Agent", 2026-06-29. https://www.coreweave.com/news/coreweave-aria-launches-as-an-ai-research-and-iteration-agent-with-autonomous-research-and-collaborative-intelligence
- AWS, "Accelerate Enterprise AI Development using Weights & Biases and Amazon Bedrock AgentCore". https://aws.amazon.com/blogs/machine-learning/accelerate-enterprise-ai-development-using-weights-biases-weave-and-amazon-bedrock-agentcore/
- Kosmoy, "Best AI Observability Platforms in 2026". https://www.kosmoy.com/resources/blog/best-ai-observability-platforms-2026/
- OpenTelemetry, "GenAI Semantic Conventions". https://opentelemetry.io/docs/specs/semconv/gen-ai/