메인 콘텐츠로 건너뛰기
Weave for Agents는 공개 프리뷰 상태입니다. 정식 출시 전에 특성, API 및 Agents 뷰 UI가 변경될 수 있습니다.
LLM 호출은 이미 완료되었고 그 호출만 기록하면 되는 프레임워크의 경우 weave.log_turnweave.log_session을 사용하세요. 모든 span은 컨텍스트 관리자를 열린 상태로 유지하지 않고 즉시 생성되고 종료됩니다. 이 방식으로 로깅된 데이터는 과거 데이터여도 됩니다. 라이브 Session은 필요하지 않습니다. 대화를 고유하게 식별할 수 있는 안정적인 string으로 session_id를 설정하세요. 동일한 session_id를 공유하는 턴은 Agents 뷰에서 하나의 Session으로 그룹화됩니다. 자체 에이전트 루프를 구축하는 경우에는 대신 에이전트 트레이스에 설명된 실시간 계측 API를 사용하세요.

턴 기록하기

완료된 단일 턴이 발생한 후 이를 기록하려면 weave.log_turn을 사용하세요. weave.log_turn은 모든 LLM 및 도구 span을 포함하는 완전한 형태의 턴을 받습니다.
weave.init("[YOUR-TEAM]/[YOUR-PROJECT]")

from weave.session.session import LLM, Message, Tool, Usage

llm_span = LLM(
    model="gpt-4o",
    provider_name="openai",
    input_messages=[Message(role="user", content="What is the weather?")],
    output_messages=[Message(role="assistant", content="Let me check.")],
    usage=Usage(input_tokens=100, output_tokens=20),
)

tool_span = Tool(
    name="get_weather",
    arguments='{"city": "Tokyo"}',
    result='"24°C, sunny"',
)

llm_span2 = LLM(
    model="gpt-4o",
    provider_name="openai",
    input_messages=[Message(role="user", content="What is the weather?")],
    output_messages=[Message(role="assistant", content="It is 24°C and sunny.")],
    usage=Usage(input_tokens=150, output_tokens=30),
)

# 모든 span이 포함된 턴을 기록합니다.
weave.log_turn(
    session_id="my-session-abc",
    agent_name="weather-bot",
    messages=[
        Message(role="user", content="What is the weather in Tokyo?"),
        Message(role="assistant", content="It is 24°C and sunny in Tokyo."),
    ],
    spans=[llm_span, tool_span, llm_span2],
)
log_turn은 생성된 span의 트레이스 IDs가 포함된 LogResult를 반환합니다. log_turn의 선택적 model 파라미터는 하위 LLM span이 아니라 턴 자체의 span에 모델을 설정합니다. 각 LLM span은 자체 model을 독립적으로 가집니다. 턴에서 여러 모델을 사용하는 경우, 해당 턴의 기본 모델로 간주하는 값으로 log_turnmodel을 설정하세요.

Session 기록하기

여러 턴으로 이루어진 전체 Session을 한 번에 일괄 임포트하려면 weave.log_session을 사용하세요. turns 매개변수는 Turn 객체 목록을 받으며, 각 객체는 이전 log_turn 예시와 같은 방식으로 생성됩니다.
weave.log_session(
    session_id="my-session-abc",
    agent_name="weather-bot",
    turns=[turn_1, turn_2],
)