---
title: "Une mémoire partagée entre agents, cloisonnée par rôle"
description: "Sur un fork du projet open source OpenClaw, une mémoire en graphe pour agents, hébergée sur Memgraph, où chaque agent ne lit et n’écrit que dans son propre périmètre."
url: "https://mc-stud.io/realisations/memoire-agents-cloisonnee"
author: "Matisse Chenavas"
date: "2026-02-08"
lang: "fr"
ai: "true"
---

# Une mémoire partagée entre agents, cloisonnée par rôle

> Plusieurs agents s’appuient sur une mémoire en graphe commune, sans qu’aucun n’accède au périmètre d’un autre.

- **Client**: MC Studio, recherche et développement
- **Secteur**: Agents IA, gestion des connaissances
- **Période**: 2026
- **Mon rôle**: Concepteur et unique développeur de la fonctionnalité
- **Cadre**: Projet interne
- **Équipe**: Seul · 1 personne
- **Statut**: Démonstrateur
- **Technologies**: TypeScript, Docker, Memgraph, Cypher, Vitest
- **Temps de lecture** : 3 min

## L’essentiel

- **Enjeu** : Des agents qui partagent une mémoire ne doivent pas lire le périmètre des autres ; une consigne dans le prompt ne suffit pas.
- **Mécanisme** : L’application vérifie le périmètre de chaque acteur avant toute requête Cypher, et la base Memgraph applique des rôles distincts dès l’initialisation.
- **Preuve** : Le code public de la branche session-ux : règles d’accès, tests unitaires et tests de bout en bout contre une vraie base Memgraph.
- **Impact** : Une connaissance partagée qui ne fuit pas d’un périmètre à l’autre : la condition de départ pour des agents qui se souviennent.
- **Limites** : Le cloisonnement est fait par agent ; les périmètres par client et les tests offensifs restent à réaliser.

## Le point de départ

Dès que plusieurs agents travaillent ensemble, ils ont besoin de mémoire : ce qui a été décidé, ce qui a été appris, ce qui reste à faire. Une mémoire commune pose aussitôt une autre question. Si un agent travaille pour une personne, une équipe ou un client, il ne doit pas pouvoir lire ce que les autres ont confié aux leurs. Demander au modèle de « ne pas regarder » ne suffit pas.

## Ce que j'ai construit

Sur un fork d'OpenClaw, un projet open source d'agents[^fork], j'ai ajouté une mémoire en graphe hébergée sur Memgraph, lancé en conteneur. Chaque acteur reçoit un périmètre : un agent lit et écrit dans le sien, l'opérateur dispose d'un périmètre d'administration. Avant chaque requête, l'application vérifie que le périmètre demandé est bien celui de l'acteur, et refuse sinon.

La base de données applique la même logique de son côté : des rôles distincts pour l'administration, les agents et les équipes, créés dès l'initialisation avec leurs propres utilisateurs. Si une requête passait le premier contrôle par erreur, elle se heurterait au second. Agents et administrateurs disposent chacun d'une skill qui décrit l'usage de la mémoire.

> [!IMPORTANT] L'isolation ne se délègue pas au prompt
> Un modèle peut être convaincu d'ignorer une consigne. Une règle d'accès dans le code et dans la base, elle, ne se négocie pas.

## Ce que montrent les preuves

Les règles d'accès sont couvertes par des tests unitaires : un agent accède à son périmètre et se voit refuser celui d'un autre. Des tests de bout en bout tournent contre une vraie base Memgraph, pour vérifier que l'ensemble tient hors des maquettes[^tests]. Le code est public et se relit sur la branche[^deck].


## Ce que cela change

Pour une organisation qui veut des agents capables de se souvenir, c'est la condition de départ : une connaissance partagée qui ne fuit pas d'un périmètre à l'autre. La même logique, étendue aux clients ou aux missions, éviterait qu'un agent mobilise dans un dossier ce qu'il a appris dans un autre. C'est la direction que je propose quand une organisation veut des agents qui se souviennent, sans mélanger les dossiers.

## Limites

C'est un démonstrateur personnel : il établit le mécanisme, sans utilisateur externe, et je n'en revendique que ce que le code montre.

- L'extension à des périmètres par client ou par mission est une piste, pas une réalisation.
- Les tests de sécurité offensifs, injection de prompt et tentatives d'exfiltration entre périmètres, sont prévus mais pas encore réalisés.
- C'est une branche de fork, non proposée au projet d'origine.

[^fork]: OpenClaw est un projet open source tiers. Seule la fonctionnalité de mémoire cloisonnée de cette branche est de moi, développée seul en février 2026.

[^tests]: Tests unitaires Vitest sur les règles d'accès ; tests de bout en bout lancés par un script et une configuration dédiés, contre Memgraph en conteneur.

[^deck]: Ma présentation de ce travail évoque aussi des journaux d'audit et des réponses qui citent leurs sources. Je ne les ai pas encore vérifiés dans la branche, donc je ne les revendique pas ici.

## Liens

- [Branche session-ux du fork](https://github.com/ZEDIUM-Off/openclaw/tree/session-ux)

---

Matisse Chenavas, Fondateur de MC Studio. https://mc-stud.io/realisations/memoire-agents-cloisonnee
