
# Mémoire IA

La mémoire d'agent donne à un agent un contexte qui persiste au-delà d'un seul message. Elle est configurée sous le bloc `memory` d'un agent et est composée de **trois niveaux indépendants**, chacun désactivé par défaut et activé individuellement. Avant que l'exécution n'invoque le LLM (par exemple, lorsque l'action d'automatisation `ai:agent` dispatche une tâche), elle assemble le contexte à partir des niveaux activés.

| Niveau         | Persistance                        | Direction        | Objectif                                                                |
| -------------- | ---------------------------------- | ---------------- | ----------------------------------------------------------------------- |
| `conversation` | Niveau session (éphémère, fenêtré) | Lecture          | Maintenir le contexte de dialogue à travers les messages récents.       |
| `knowledge`    | Sources RAG en lecture seule       | Lecture          | Récupérer des documents pertinents via la recherche sémantique.         |
| `facts`        | Persistant à travers les sessions  | Lecture/écriture | Mémoriser les faits gérés par l'IA que l'agent apprend au fil du temps. |

```yaml
agents:
  - name: support-agent
    role: support
    systemPrompt: Be helpful and remember the customer's preferences.
    memory:
      conversation:
        enabled: true
        windowSize: 10
        summarize: true
      knowledge:
        enabled: true
        sources: [faq, docs]
        retrievalLimit: 5
        similarityThreshold: 0.7
      facts:
        enabled: true
        maxFacts: 100
        namespace: support
```

## Mémoire de conversation

Retient les messages récents de la session de l'agent. Lorsqu'elle est activée, l'exécution charge les `windowSize` derniers messages dans le contexte avant chaque invocation.

| Propriété    | Défaut  | Description                                                                                    |
| ------------ | ------- | ---------------------------------------------------------------------------------------------- |
| `enabled`    | `false` | Si la mémoire de conversation est active.                                                      |
| `windowSize` | `10`    | Nombre de messages récents conservés dans le contexte.                                         |
| `summarize`  | `false` | Lorsque `true`, les messages plus anciens sont compressés en résumé au lieu d'être abandonnés. |

## Mémoire de connaissances

Récupération sémantique basée sur RAG depuis les sources de connaissances configurées. Lorsqu'elle est activée, l'exécution exécute une recherche par similarité contre les sources listées avant chaque invocation et injecte les documents les plus pertinents dans le contexte. C'est le côté _récupération à l'exécution_ du RAG — distinct du bloc `knowledge` de l'agent, qui définit les _sources d'entrée_ qui sont intégrées.

| Propriété             | Défaut  | Description                                                                                                 |
| --------------------- | ------- | ----------------------------------------------------------------------------------------------------------- |
| `enabled`             | `false` | Si la récupération de connaissances est active.                                                             |
| `sources`             | —       | Noms des sources de connaissances à rechercher (doivent référencer des bases de connaissances configurées). |
| `retrievalLimit`      | `5`     | Nombre maximal de documents récupérés par requête.                                                          |
| `similarityThreshold` | `0.7`   | Score de similarité minimal (`0`–`1`) pour qu'un document récupéré soit inclus.                             |

:::callout
**La mémoire de connaissances réutilise le pipeline RAG.** La récupération s'exécute contre le même magasin vectoriel décrit dans [RAG IA](/fr/docs/ai-rag) — pgvector sur PostgreSQL ou BLOB `Float32` + cosinus côté application sur SQLite.
:::

## Mémoire de faits

Faits clé-valeur persistants que l'agent apprend à travers les sessions. Contrairement à l'action d'automatisation `state` (KV défini explicitement par le développeur), les faits sont **gérés par l'IA** : l'agent lui-même décide ce qui vaut la peine d'être mémorisé. Les faits sont récupérés par pertinence sémantique à la tâche courante, et non par recherche de clé exacte.

| Propriété   | Défaut         | Description                                                                                         |
| ----------- | -------------- | --------------------------------------------------------------------------------------------------- |
| `enabled`   | `false`        | Si la mémoire de faits est active.                                                                  |
| `maxFacts`  | `100`          | Nombre maximal de faits que l'agent peut stocker.                                                   |
| `namespace` | nom de l'agent | Espace de noms pour l'isolation des faits. Minuscule, commence par une lettre (`^[a-z][a-z0-9-]*`). |

### Isolation d'espace de noms & restriction par utilisateur

Les faits sont partitionnés par `namespace` (par défaut le nom de l'agent), de sorte que deux agents ne lisent jamais les faits appris l'un de l'autre. Combiné au modèle agent-en-tant-qu'utilisateur — chaque agent est un `auth.user` distinct — cela donne une isolation des faits par agent et, lorsque le chat restreint par session, par utilisateur. Un agent ne peut pas faire fuiter les faits appris d'un client dans la conversation d'un autre client.

## Composition des niveaux

Les trois niveaux sont optionnels et se combinent librement. Un agent analyste en lecture seule pourrait n'activer que `knowledge` ; un agent de support de longue durée pourrait activer les trois. Lorsque plusieurs niveaux sont activés, l'exécution assemble le contexte à partir de chacun avant d'invoquer le LLM :

```
conversation (dialogue récent)
        +
knowledge (documents récupérés sémantiquement)
        +
facts (faits appris pertinents)
        ▼
   contexte assemblé → LLM
```

## Pages connexes

- [Agents IA](/fr/docs/ai-agents) — l'agent auquel appartient le bloc `memory`.
- [RAG IA](/fr/docs/ai-rag) — le pipeline d'embedding/récupération que la mémoire de connaissances utilise.
- [Chat IA](/fr/docs/ai-chat) — historique de conversation dans l'interface de chat.
- [Vue d'ensemble de l'IA](/fr/docs/ai-overview) — l'écosystème IA complet.
