Passer au contenu principal
Weave for Agents est en préversion publique. Les fonctionnalités, les API et l’interface utilisateur de la vue Agents peuvent encore évoluer avant la disponibilité générale.
Pour les frameworks qui ont déjà effectué l’appel au LLM et doivent simplement l’enregistrer, utilisez weave.log_turn et weave.log_session. Tous les spans sont créés et terminés immédiatement, sans laisser de gestionnaires de contexte ouverts. Les données enregistrées de cette façon peuvent être historiques — aucune session en direct n’est nécessaire. Définissez session_id sur n’importe quelle chaîne stable qui identifie de manière unique la conversation. Les tours de conversation qui partagent le même session_id sont regroupés en une seule session dans la vue Agents. Si vous implémentez votre propre boucle d’agent, utilisez plutôt les API d’instrumentation en temps réel décrites dans Tracez vos agents à la place.

Enregistrer un tour de conversation

Pour enregistrer un tour de conversation terminé une fois qu’il a eu lieu, utilisez weave.log_turn. Il accepte un tour de conversation entièrement formé, y compris tous les spans LLM et d’outil.
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),
)

# Enregistrer un tour de conversation avec tous ses spans.
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 renvoie un LogResult contenant les ID de trace des spans émis. Un paramètre model facultatif de log_turn définit le modèle sur le span propre au tour de conversation, et non sur les spans LLM enfants. Chaque span LLM porte son propre model indépendamment. Si un tour de conversation utilise plusieurs modèles, définissez model dans log_turn sur celui que vous considérez comme le modèle principal pour ce tour de conversation.

Enregistrer une session

Pour importer en bloc une session complète à plusieurs tours de conversation, utilisez weave.log_session. Le paramètre turns accepte une liste d’objets Turn, chacun étant construit de la même manière que dans l’exemple log_turn précédent.
weave.log_session(
    session_id="my-session-abc",
    agent_name="weather-bot",
    turns=[turn_1, turn_2],
)