> ## Documentation Index
> Fetch the complete documentation index at: https://docs.coreweave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Journalisation par lot

> Émettez a posteriori des tours de conversation et des conversations complets avec log_turn et log_conversation.

Accédez à ces éléments via le module `tracing` :

```python theme={"system"}
from coreweave.forge.agentlens import tracing
```

<h2 id="log_turn">
  log\_turn
</h2>

```python theme={"system"}
def log_turn(
    *,
    conversation_id: str,
    agent_name: str = '',
    conversation_name: str = '',
    model: str = '',
    agent_id: str = '',
    agent_description: str = '',
    agent_version: str = '',
    messages: Union[list[Message], None] = None,
    output_messages: Union[list[Message], None] = None,
    system_instructions: Union[list[str], None] = None,
    spans: Union[list[Union[LLM, Tool, SubAgent]], None] = None,
    started_at: Union[datetime, None] = None,
    ended_at: Union[datetime, None] = None,
    include_content: bool = True,
    continue_parent_trace: bool = False,
    attributes: Attributes = None,
) -> LogResult: ...
```

Émet de manière impérative un tour de conversation et ses spans enfants vers OTel.

À utiliser lorsque les gestionnaires de contexte ne sont pas envisageables (conteneurs sans état, callbacks,
workers de file d'attente). Chaque span enfant transmis doit avoir `started_at` /
`ended_at` définis ; les horodatages des spans OTel émis proviennent de ces champs.
Si le tour de conversation ne fournit pas ses propres horodatages, l'horodatage le plus ancien/le plus récent des enfants est utilisé, puis `now()`.
`agent_id` / `agent_description` /
`agent_version` reproduisent le comportement du chemin de streaming.

Les `attributes` sont apposés sur chaque span émis ; le chemin de streaming, lui, les lit
depuis la conversation active. Utilisez des clés personnalisées, hors conventions sémantiques : une
clé qui entre en conflit avec un attribut `gen_ai.*` / `weave.*` propre à un span
n'est pas prise en charge (la valeur retenue dépend du chemin).

`messages` enregistre l'entrée du tour de conversation et `output_messages` enregistre la
réponse finale de l'agent sur le même span `invoke_agent`.

<h2 id="log_conversation">
  log\_conversation
</h2>

```python theme={"system"}
def log_conversation(
    *,
    turns: list[Turn],
    conversation_id: str = '',
    conversation_name: str = '',
    agent_name: str = '',
    model: str = '',
    agent_id: str = '',
    agent_description: str = '',
    agent_version: str = '',
    include_content: bool = True,
    continue_parent_trace: bool = False,
    attributes: Attributes = None,
) -> LogResult: ...
```

Émet de manière impérative une conversation complète.

L’attribut `.spans` de chaque Turn fournit ses enfants. Génère automatiquement
`conversation_id` s’il est vide. Par défaut, chaque tour de conversation reçoit sa propre trace OTel.
`agent_name` / `model` / `agent_id` / `agent_description` /
`agent_version` sont des valeurs par défaut définies au niveau de la conversation. La valeur propre d’un Turn est prioritaire ;
la valeur de la conversation ne s’applique que si le Turn ne la renseigne pas. Le
paramètre `continue_parent_trace` de la conversation s’applique à chaque tour de conversation et
remplace la valeur définie au niveau de chaque Turn.

Les `attributes` sont appliqués à chaque span émis. Utilisez des clés personnalisées, hors conventions sémantiques :
une clé qui entre en conflit avec un attribut `gen_ai.*` / `weave.*` propre à un span
n’est pas prise en charge (la valeur retenue dépend du chemin d’exécution).

<h2 id="logresult">
  LogResult
</h2>

```python theme={"system"}
class LogResult(BaseModel): ...
```

Résultat d’un appel log\_\* par lot.

`LogResult` est un modèle Pydantic. Lors de sa construction, vous pouvez définir chacun des champs ci-dessous en tant qu’argument nommé.

**Champs**

| Champ | Type | Par défaut |
| - | - | - |
| `conversation_id` | `str` | `''` |
| `trace_ids` | `list[str]` | `[]` |
| `root_span_ids` | `list[str]` | `[]` |
| `span_count` | `int` | `0` |
