> ## Documentation Index
> Fetch the complete documentation index at: https://wb-21fd5541-sdk-testing-latest.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Journalisation par lot pour votre agent

> Enregistrez manuellement les traces de l’agent pour les frameworks qui ont déjà effectué l’appel au LLM et doivent le consigner.

<Note>
  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.
</Note>

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](/fr/weave/guides/tracking/trace-agents) à la place.

<div id="log-a-turn">
  ## Enregistrer un tour de conversation
</div>

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.

<Tabs>
  <Tab title="Python">
    ```python lines highlight="1,3,28" theme={null}
    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],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```plaintext theme={null}
    Cette fonctionnalité n’est pas encore disponible dans le SDK TypeScript.
    ```
  </Tab>
</Tabs>

`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.

<div id="log-a-session">
  ## Enregistrer une session
</div>

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.

<Tabs>
  <Tab title="Python">
    ```python lines theme={null}
    weave.log_session(
        session_id="my-session-abc",
        agent_name="weather-bot",
        turns=[turn_1, turn_2],
    )
    ```
  </Tab>

  <Tab title="TypeScript">
    ```plaintext theme={null}
    Cette fonctionnalité n'est pas encore disponible dans le SDK TypeScript.
    ```
  </Tab>
</Tabs>
