# Comment fonctionne XMemo

Architecture faisant autorité et limite publique : composition du serveur, cycle de vie, sous-systèmes et frontière cloud.

- Canonical: https://docs.xmemo.dev/fr/docs/concepts/how-xmemo-works
- Locale: fr-FR
- Content-Locale: fr-FR
- Canonical-Content-Digest: 321f29a0f9c36406e495bc50c7110f64ee7680a5bf2706f6b5eef7ecfa09163d
- Edition-Digest: c155ba627e679dc7c7fe9b3400f56835117911d1c43d92cdbe6e65561fbb57bf
- Source-Revision: sha256:8310426b563698994f72fce9d60572391625bf1c49e90527246490ed5f7a65b5

## Architecture simplifiée : Le pipeline de mémoire en 7 étapes

XMemo traite les mémoires des agents à travers un pipeline en 7 étapes (Capture → Scope → Retrieve → Rerank → Assemble → Govern → Consolidate). Chaque étape assure une responsabilité dédiée pour garantir des opérations rapides, précises, isolées et vérifiables :

- Capture : Reçoit les requêtes d'écriture et de mise à jour des clients d'IA via le Model Context Protocol (MCP) standard ou les API REST, et assainit les données sensibles avant le stockage. Ce que cela signifie pour vous : Vos agents peuvent enregistrer notes, décisions et préférences automatiquement via des outils standards sans exposer de secrets ou de données personnelles.
- Scope : Résout le contexte d'identité de l'appelant et applique des limites multi-locataires strictes entre niveaux utilisateur, session, agent et espace de travail. Ce que cela signifie pour vous : Chaque agent n'accède qu'à la mémoire de son périmètre autorisé, garantissant une séparation étanche des données personnelles et d'équipe.
- Retrieve : Recherche les mémoires stockées grâce à un moteur hybride combinant des plongements vectoriels sémantiques et une correspondance exacte par mots-clés. Ce que cela signifie pour vous : Votre agent retrouve les faits adéquats, qu'il cherche par sens thématique ou par expression exacte.
- Rerank : Évalue et classe les mémoires candidates en équilibrant pertinence sémantique, récence et pondérations d'importance. Ce que cela signifie pour vous : Votre agent reçoit le contexte le plus pertinent et à jour au lieu de fragments de conversation obsolètes ou secondaires.
- Assemble : Assemble les mémoires rappelées dans un contexte prêt pour le prompt tout en respectant strictement les budgets de tokens et d'octets. Ce que cela signifie pour vous : L'injection de mémoire ne dépasse jamais la fenêtre de contexte de votre modèle et n'entraîne aucun surcoût imprévu de tokens.
- Govern : Enregistre les journaux d'audit opérationnels, suit l'historique des versions (memory_versions) et applique des enveloppes de chiffrement lorsque le mode keyguard/vault est actif. Ce que cela signifie pour vous : Chaque mise à jour de mémoire est traçable, vérifiable et récupérable avec une entière responsabilité d'audit.
- Consolidate : Prévisualise la consolidation de la mémoire (Dream) pour synthétiser les interactions épisodiques récentes en aperçus candidats structurés, nécessitant une confirmation humaine avant l'enregistrement. Ce que cela signifie pour vous : Des enseignements utiles sont préparés pour votre examen sans mutations automatiques inattendues ni ralentissement des discussions interactives avec les agents.

## Internes de l'architecture / Preuves

Détails d'implémentation architecturale faisant autorité, traces d'exécution et contrats empiriques vérifiés directement par rapport à la base de code XMemo. Les sections suivantes documentent la composition concrète à l'exécution, les limites isolées des sous-systèmes et les matrices de vérification formelle.

## Invariants architecturaux et principes fondamentaux

XMemo applique des invariants architecturaux non négociables séparant les interfaces clientes de l'exécution interne. Les capacités sont liées au code source et les secrets sont protégés sous le principe de zéro exposition en texte clair.

- Zéro exposition de secrets en texte clair : Les fichiers de configuration, journaux et réponses de diagnostic ne contiennent jamais de jetons Bearer non chiffrés ni de chaînes de connexion.
- Provenance vérifiée : Chaque mémoire persistée, révision et citation porte des métadonnées d'identité immuables et des pistes d'audit liées au code.
- Budgets déterministes de jetons et d'octets : L'injection de contexte respecte rigoureusement les limites spécifiées, évitant le débordement de contexte LLM.
- Frontières de plans et de fonctionnalités : Le BYODB multi-locataire, la synchronisation distribuée et la planification Dream en arrière-plan sont régis par des configurations d'espace de travail explicites, des indicateurs de fonctionnalités et des frontières de forfaits.

## Composition du serveur et topologie du cycle de vie

L'initialisation du serveur découple la composition au déploiement du traitement des requêtes à l'exécution. Les clients ne montent pas le serveur hôte ; Starlette monte l'application FastMCP et l'adapte via MemoryOSMcpMountAdapter.

- Step 1 [HOST_COMPOSITION]: Le serveur hôte Starlette/FastAPI monte l'application FastMCP ASGI sur /mcp — Relation: SERVER_MOUNTS_APP — Sous-système: Montage du serveur ASGI — Limite: Ingress HTTP public.
- Step 2 [MOUNT_ADAPTER]: mount_streamable_mcp enveloppe streamable_http_app dans MemoryOSMcpMountAdapter pour gérer CORS et sondes SSE — Relation: ADAPTS_ASGI_APP — Sous-système: Adaptateur de protocole de flux — Limite: Pont de protocole.
- Step 3 [AUTH_REGISTRATION]: install_mcp_tool_surface enregistre _call_tool_with_oauth_errors comme gestionnaire d'outils — Relation: REGISTERS_TOOL_WRAPPER — Sous-système: Passerelle d'identité et de répartition — Limite: Surface d'outils authentifiée.

```text
+---------------------------------------------------------------------------------------------------+
| [DEPLOYMENT-TIME SERVER COMPOSITION & TOPOLOGY: 2 INDEPENDENT BRANCHES]                           |
|                                                                                                   |
| [BRANCH 1: SERVER ASGI MOUNT BRANCH]                                                              |
|  +-------------------------------------------------------+                                        |
|  | Host ASGI Server (Starlette / FastAPI)                | [PUBLIC_BOUNDARY]                      |
|  | Role: FastMCP Host Ingress Gateway                    | [PUBLIC_BOUNDARY]                      |
|  +-------------------------------------------------------+                                        |
|                             |                                                                     |
|                             | Relation: SERVER_MOUNTS_APP                                         |
|                             | Status: [PUBLIC_BOUNDARY (VERIFIED)]                                |
|                             v                                                                     |
|  +-------------------------------------------------------+                                        |
|  | mount_streamable_mcp                                  | [INTERNAL_SUBSYSTEM]                   |
|  | Role: Streamable HTTP Application Adapter             | [INTERNAL_SUBSYSTEM]                   |
|  +-------------------------------------------------------+                                        |
|                             |                                                                     |
|                             | Relation: ADAPTS_ASGI_APP                                           |
|                             | Status: [INTERNAL_SUBSYSTEM (VERIFIED)]                             |
|                             v                                                                     |
|  +-------------------------------------------------------+                                        |
|  | MemoryOSMcpMountAdapter                               | [PUBLIC_BOUNDARY]                      |
|  | Role: ASGI Protocol Bridge & Connection Handler       | [PUBLIC_BOUNDARY]                      |
|  +-------------------------------------------------------+                                        |
|                                                                                                   |
| [BRANCH 2: TOOL SURFACE REGISTRATION BRANCH]                                                      |
|  +-------------------------------------------------------+                                        |
|  | install_mcp_tool_surface                              | [INTERNAL_SUBSYSTEM]                   |
|  | Role: MCP Tool Surface Registration Pipeline          | [INTERNAL_SUBSYSTEM]                   |
|  +-------------------------------------------------------+                                        |
|                             |                                                                     |
|                             | Relation: REGISTERS_TOOL_WRAPPER                                    |
|                             | Status: [INTERNAL_SUBSYSTEM (VERIFIED)]                             |
|                             v                                                                     |
|  +-------------------------------------------------------+                                        |
|  | FastMCP Tool Ingress Wrapper (_call_tool_with_oauth)  | [PUBLIC_BOUNDARY]                      |
|  | Role: Authenticated Tool Invocation & Error Handler   | [PUBLIC_BOUNDARY]                      |
|  +-------------------------------------------------------+                                        |
+---------------------------------------------------------------------------------------------------+
```

## Traces d'exécution au moment de l'exécution

À l'exécution, les requêtes traversent quatre flux opérationnels isolés et déterministes régis par des relations strictes et des classifications explicites de limites architecturales :

- OP_REMEMBER_WRITE [Mémorisation / Flux d'écriture : 13 étapes] : Client externe [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Répartition FastMCP ASGI -> Passerelle d'authentification -> Outil remember -> Passerelle de vérification -> Enveloppe d'assainissement PII -> Enveloppe de sécurité (chiffrement lorsque le mode keyguard/vault est actif) -> Moteur de persistance. 13 étapes vérifiées de bout en bout.
- OP_RECALL_READ [Rappel / Flux de lecture : 12 étapes] : Client externe [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Répartition FastMCP ASGI -> Passerelle d'authentification -> Outil recall -> Isolation multi-locataire BoundSpace -> Moteur de recherche hybride -> Reclasseur sémantique -> Assembleur de budget de contexte -> Formateur de citation publique. 12 étapes vérifiées.
- OP_UPDATE_VERSION [Mise à jour / Flux de version : 13 étapes] : Client externe [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Répartition FastMCP ASGI -> Passerelle d'authentification -> Outil update_memory -> Passerelle de vérification -> Enveloppe d'assainissement PII -> Enveloppe de sécurité (chiffrement lorsque le mode keyguard/vault est actif) -> Moteur de persistance -> Contrôleur DAG d'historique de versions. 13 étapes vérifiées.
- OP_FORGET_LIFECYCLE [Oubli / Flux de cycle de vie : 11 étapes] : Client externe [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Répartition FastMCP ASGI -> Passerelle d'authentification -> Outil forget -> Passerelle de vérification -> Persistance de marqueur d'effacement -> Démon de rétention -> Filtre d'exclusion de recherche. 11 étapes vérifiées.

```text
+------------------------------------------------------------------------------------------------------------------------+
| [RUNTIME EXECUTION TRACES: 4 CANONICAL OPERATION FLOW DIAGRAMS]                                                        |
|                                                                                                                        |
| 1. OP_REMEMBER_WRITE [WRITE INGRESS FLOW: 13 STEPS]                                                                    |
|     Step 1:   External Client --[CLIENT_REQUESTS_ENDPOINT]--> MemoryOSMcpMountAdapter                                  |
|              Boundary: Public Ingress Gateway [PUBLIC_BOUNDARY]                                                        |
|     Step 2:   MemoryOSMcpMountAdapter --[DELEGATES_ASGI_REQUEST]--> FastMCP.streamable_http_app                        |
|              Boundary: ASGI Streamable Mount Adapter [INTERNAL_SUBSYSTEM]                                              |
|     Step 3:   FastMCP --[DISPATCHES_TOOL_INVOCATION]--> _call_tool_with_oauth_errors                                   |
|              Boundary: Tool Surface Ingress Gate [INTERNAL_SUBSYSTEM]                                                  |
|     Step 4:   _call_tool_with_oauth_errors --[DISPATCHES_TOOL]--> remember tool                                        |
|              Boundary: MCP Tool Dispatch Handler [PUBLIC_BOUNDARY]                                                     |
|     Step 5:   remember tool --[CALLS]--> Identity Context Resolver                                                     |
|              Boundary: Identity & Authentication Context [INTERNAL_SUBSYSTEM]                                          |
|     Step 6:   remember tool --[CALLS]--> Workspace Setup Gate                                                          |
|              Boundary: Workspace Initialization Gate [INTERNAL_SUBSYSTEM]                                              |
|     Step 7:   Workspace Setup Gate --[CALLS]--> Initialization Validator                                               |
|              Boundary: Setup Verification Gate [INTERNAL_SUBSYSTEM]                                                    |
|     Step 8:   remember tool --[CALLS]--> Write Preparation Pipeline                                                    |
|              Boundary: Memory Write Preparation [INTERNAL_SUBSYSTEM]                                                   |
|     Step 9:   Write Preparation Pipeline --[CALLS]--> PII Sanitization Envelope                                        |
|              Boundary: Sensitive Data Redaction [INTERNAL_SUBSYSTEM]                                                   |
|     Step 10:  Write Preparation Pipeline --[CALLS]--> Security Envelope (encryption when keyguard/vault mode is active)|
|              Boundary: Cryptographic Security Envelope [INTERNAL_SUBSYSTEM]                                            |
|     Step 11:  remember tool --[CALLS]--> Tenant Isolation Envelope                                                     |
|              Boundary: Multi-Tenant Workspace Binding [INTERNAL_SUBSYSTEM]                                             |
|     Step 12:  remember tool --[CALLS]--> Memory Manager Core Engine                                                    |
|              Boundary: Core Memory Management [INTERNAL_SUBSYSTEM]                                                     |
|     Step 13:  Memory Manager Core Engine --[CALLS]--> Persistence Storage Engine                                       |
|              Boundary: Persistent Storage Engine [INTERNAL_SUBSYSTEM]                                                  |
|                                                                                                                        |
| 2. OP_RECALL_READ [READ RETRIEVAL FLOW: 12 STEPS]                                                                      |
|     Step 1:   External Client --[CLIENT_REQUESTS_ENDPOINT]--> MemoryOSMcpMountAdapter                                  |
|              Boundary: Public Ingress Gateway [PUBLIC_BOUNDARY]                                                        |
|     Step 2:   MemoryOSMcpMountAdapter --[DELEGATES_ASGI_REQUEST]--> FastMCP.streamable_http_app                        |
|              Boundary: ASGI Streamable Mount Adapter [INTERNAL_SUBSYSTEM]                                              |
|     Step 3:   FastMCP --[DISPATCHES_TOOL_INVOCATION]--> _call_tool_with_oauth_errors                                   |
|              Boundary: Tool Surface Ingress Gate [INTERNAL_SUBSYSTEM]                                                  |
|     Step 4:   _call_tool_with_oauth_errors --[DISPATCHES_TOOL]--> recall tool                                          |
|              Boundary: MCP Tool Dispatch Handler [PUBLIC_BOUNDARY]                                                     |
|     Step 5:   recall tool --[CALLS]--> Search Memory Implementation                                                    |
|              Boundary: Search Query Coordinator [INTERNAL_SUBSYSTEM]                                                   |
|     Step 6:   Search Memory Implementation --[CALLS]--> Identity Context Resolver                                      |
|              Boundary: Identity & Authentication Context [INTERNAL_SUBSYSTEM]                                          |
|     Step 7:   Search Memory Implementation --[CALLS]--> BoundSpace Multi-Tenant Isolation                              |
|              Boundary: Scope Isolation Boundary [INTERNAL_SUBSYSTEM]                                                   |
|     Step 8:   Search Memory Implementation --[CALLS]--> Memory Manager Search Service                                  |
|              Boundary: Core Search Controller [INTERNAL_SUBSYSTEM]                                                     |
|     Step 9:   Memory Manager Search Service --[CALLS]--> Hybrid Retrieval Engine                                       |
|              Boundary: Hybrid Vector & Text Retrieval [INTERNAL_SUBSYSTEM]                                             |
|     Step 10:  Hybrid Retrieval Engine --[CALLS]--> Semantic Relevance Reranker                                         |
|              Boundary: Candidate Scorer & Reranker [INTERNAL_SUBSYSTEM]                                                |
|     Step 11:  Hybrid Retrieval Engine --[CALLS]--> Response Budget Assembler                                           |
|              Boundary: Token & Byte Budget Manager [INTERNAL_SUBSYSTEM]                                                |
|     Step 12:  Response Budget Assembler --[CALLS]--> Public Citation & Receipt Formatter                               |
|              Boundary: Provenance Citation Formatter [PUBLIC_BOUNDARY]                                                 |
|                                                                                                                        |
| 3. OP_UPDATE_VERSION [VERSIONING & CORRECTION FLOW: 13 STEPS]                                                          |
|     Step 1:   External Client --[CLIENT_REQUESTS_ENDPOINT]--> MemoryOSMcpMountAdapter                                  |
|              Boundary: Public Ingress Gateway [PUBLIC_BOUNDARY]                                                        |
|     Step 2:   MemoryOSMcpMountAdapter --[DELEGATES_ASGI_REQUEST]--> FastMCP.streamable_http_app                        |
|              Boundary: ASGI Streamable Mount Adapter [INTERNAL_SUBSYSTEM]                                              |
|     Step 3:   FastMCP --[DISPATCHES_TOOL_INVOCATION]--> _call_tool_with_oauth_errors                                   |
|              Boundary: Tool Surface Ingress Gate [INTERNAL_SUBSYSTEM]                                                  |
|     Step 4:   _call_tool_with_oauth_errors --[DISPATCHES_TOOL]--> update_memory tool                                   |
|              Boundary: MCP Tool Dispatch Handler [PUBLIC_BOUNDARY]                                                     |
|     Step 5:   update_memory tool --[CALLS]--> Identity Context Resolver                                                |
|              Boundary: Identity & Authentication Context [INTERNAL_SUBSYSTEM]                                          |
|     Step 6:   update_memory tool --[CALLS]--> Workspace Setup Gate                                                     |
|              Boundary: Workspace Initialization Gate [INTERNAL_SUBSYSTEM]                                              |
|     Step 7:   update_memory tool --[CALLS]--> Scope Validation Gate                                                    |
|              Boundary: Workspace Scope Boundary [INTERNAL_SUBSYSTEM]                                                   |
|     Step 8:   update_memory tool --[CALLS]--> Write Preparation Pipeline                                               |
|              Boundary: Memory Write Preparation [INTERNAL_SUBSYSTEM]                                                   |
|     Step 9:   Write Preparation Pipeline --[CALLS]--> PII Sanitization Envelope                                        |
|              Boundary: Sensitive Data Redaction [INTERNAL_SUBSYSTEM]                                                   |
|     Step 10:  update_memory tool --[CALLS]--> Tenant Isolation Envelope                                                |
|              Boundary: Multi-Tenant Workspace Binding [INTERNAL_SUBSYSTEM]                                             |
|     Step 11:  update_memory tool --[CALLS]--> Memory Manager Core Engine                                               |
|              Boundary: Core Memory Management [INTERNAL_SUBSYSTEM]                                                     |
|     Step 12:  Memory Manager Core Engine --[CALLS]--> Persistence Storage Engine                                       |
|              Boundary: Persistent Storage Engine [INTERNAL_SUBSYSTEM]                                                  |
|     Step 13:  Persistence Storage Engine --[CALLS]--> Immutable Version DAG Controller                                 |
|              Boundary: Version DAG Supersession Engine [INTERNAL_SUBSYSTEM]                                            |
|                                                                                                                        |
| 4. OP_FORGET_LIFECYCLE [RETENTION & LIFECYCLE FLOW: 11 STEPS]                                                          |
|     Step 1:   External Client --[CLIENT_REQUESTS_ENDPOINT]--> MemoryOSMcpMountAdapter                                  |
|              Boundary: Public Ingress Gateway [PUBLIC_BOUNDARY]                                                        |
|     Step 2:   MemoryOSMcpMountAdapter --[DELEGATES_ASGI_REQUEST]--> FastMCP.streamable_http_app                        |
|              Boundary: ASGI Streamable Mount Adapter [INTERNAL_SUBSYSTEM]                                              |
|     Step 3:   FastMCP --[DISPATCHES_TOOL_INVOCATION]--> _call_tool_with_oauth_errors                                   |
|              Boundary: Tool Surface Ingress Gate [INTERNAL_SUBSYSTEM]                                                  |
|     Step 4:   _call_tool_with_oauth_errors --[DISPATCHES_TOOL]--> forget tool                                          |
|              Boundary: MCP Tool Dispatch Handler [PUBLIC_BOUNDARY]                                                     |
|     Step 5:   forget tool --[CALLS]--> Identity Context Resolver                                                       |
|              Boundary: Identity & Authentication Context [INTERNAL_SUBSYSTEM]                                          |
|     Step 6:   forget tool --[CALLS]--> Workspace Setup Gate                                                            |
|              Boundary: Workspace Initialization Gate [INTERNAL_SUBSYSTEM]                                              |
|     Step 7:   forget tool --[CALLS]--> Memory Manager Core Engine                                                      |
|              Boundary: Core Memory Management [INTERNAL_SUBSYSTEM]                                                     |
|     Step 8:   Memory Manager Core Engine --[CALLS]--> Persistence Storage Engine                                       |
|              Boundary: Persistence Tombstone Engine [INTERNAL_SUBSYSTEM]                                               |
|     Step 9:   Background Lifecycle Daemon --[BATCH_POLICY_EVALUATION]--> Retention Policy Evaluator                    |
|              Boundary: Archive Policy Evaluation [INTERNAL_SUBSYSTEM]                                                  |
|     Step 10:  Background Lifecycle Daemon --[BATCH_POLICY_EVALUATION]--> Importance Decay Evaluator                    |
|              Boundary: Importance Decay Engine [INTERNAL_SUBSYSTEM]                                                    |
|     Step 11:  Hybrid Retrieval Engine --[EXCLUDES_AT_QUERY]--> Database Storage Engine                                 |
|              Boundary: Query-Time Tombstone Filter [INTERNAL_SUBSYSTEM]                                                |
+------------------------------------------------------------------------------------------------------------------------+
```

## Décomposition des sous-systèmes et classification des limites

Le système se décompose en dix nœuds de sous-systèmes vérifiés. Chaque nœud porte une classification stricte de limite (PUBLIC_BOUNDARY ou INTERNAL_SUBSYSTEM) et un état de preuve empirique (SOURCE_BACKED_PUBLIC_CONTRACT / VERIFIED, CONCEPTUAL_DELEGATED ou NOT_VERIFIED) :

- NODE_1_CLIENT_AGENT_LAYER: Écosystème client et agent (@xmemo/client, Claude Desktop, Cursor, Codex) — Classification: [PUBLIC_BOUNDARY] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_2_TRANSPORT_ADAPTER: Adaptateur de transport et de protocole MCP (MemoryOSMcpMountAdapter, mount_streamable_mcp) — Classification: [PUBLIC_BOUNDARY] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_3_IDENTITY_AUTH_GATE: Porte d'identité et d'autorisation (_call_tool_with_oauth_errors, install_mcp_tool_surface) — Classification: [PUBLIC_BOUNDARY] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_4_SANITIZATION_ENVELOPE: Assainissement PII et enveloppe de coffre-fort (sanitize_server_write, enforce_memory_write_envelope) — Classification: [INTERNAL_SUBSYSTEM] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_5_SCOPE_ISOLATION_GUARD: Garde d'isolement d'espace et multi-locataire (BoundSpace, assert_requested_team_matches_bound_space) — Classification: [INTERNAL_SUBSYSTEM] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_6_SEARCH_TEMPORAL_PARSER: Analyseur de requêtes temporelles et recherche (TemporalQuerySpec, extract_temporal_context) — Classification: [INTERNAL_SUBSYSTEM] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_7_CANDIDATE_SCORER: Scoreur et reclasseur de candidats (SearchEngine.rerank_recall_results) — Classification: [INTERNAL_SUBSYSTEM] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_8_VERSION_LIFECYCLE_ENGINE: Contrôleur de version et de cycle de vie (VersionController.superseded_snapshot) — Classification: [INTERNAL_SUBSYSTEM] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_9_CONTEXT_BUDGET_ASSEMBLER: Assembleur de budget de contexte (_apply_recall_response_budget) — Classification: [INTERNAL_SUBSYSTEM] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_10_PUBLIC_RECEIPT_CITATION: Formateur de citation et de reçu public (_public_recall_meta) — Classification: [PUBLIC_BOUNDARY] — État des preuves: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].

## Frontière entre open source et service cloud managé

Les assertions architecturales publiques sont évaluées par rapport au contrat de code et classées strictement en VERIFIED ou NOT_VERIFIED :

- STMT_01_PROVENANCE_ATTRIBUTION [VERIFIED]: XMemo enregistre les journaux d'audit opérationnels, conserve l'historique des versions (memory_versions) et applique des enveloppes de chiffrement lorsque le mode keyguard/vault est activé. Architecture: Enveloppe de sécurité cryptographique.
- STMT_02_CROSS_CLIENT_CONTINUITY [VERIFIED]: Les mémoires capturées sont instantanément accessibles sur tout client conforme à MCP via JSON-RPC standard. Architecture: Adaptateur FastMCP ASGI diffusable.
- STMT_03_REALTIME_CORRECTION [VERIFIED]: Les mises à jour maintiennent un historique immuable en remplaçant les mémoires antérieures en conflit. Architecture: Contrôleur de version DAG immuable.
- STMT_04_TOKEN_BUDGET_GUARANTEE [VERIFIED]: L'injection de contexte respecte strictement les budgets spécifiés en tokens et octets. Architecture: Assembleur de budget de jetons déterministe.
- STMT_05_ZERO_TOKEN_EXPOSURE [VERIFIED]: Les requêtes non authentifiées sont rejetées à la passerelle sans exposer de jetons. Architecture: Passerelle d'authentification d'entrée et d'isolement de portée.
- STMT_06_BACKEND_OPEN_SOURCE_CLAIM [NOT_VERIFIED]: L'affirmation d'un backend 100% open source est RÉFUTÉE. Seuls les packages clients (@xmemo/client) et les adaptateurs locaux MCP sont open source. L'infrastructure cloud multi-locataire reste propriétaire.
- STMT_07_AUTONOMOUS_CONSENSUS_CLAIM [NOT_VERIFIED]: Le consensus autonome entre organisations est RÉFUTÉ. L'isolation des locataires est stricte via BoundSpace ; aucune fusion automatique inter-locataires n'est implémentée.
- STMT_08_ZERO_LATENCY_REPLICATION_CLAIM [NOT_VERIFIED]: La réplication globale sans latence est RÉFUTÉE. La recherche utilise des index vectoriels locaux ; la cohérence globale sans latence n'est pas garantie.

## Visite guidée reproductible du cycle de vie de l'architecture (Exemple synthétique A/B)

Un guide pas à pas vérifiable du cycle de vie démontrant le partage de mémoire entre agents, l'isolation multi-locataire, la correction utilisateur en temps réel et la traçabilité immuable de la provenance à l'aide de données de démonstration strictement synthétiques :

- Step 1 [AGENT_A_WRITE]: L'agent A (ide-assistant-alpha) écrit une préférence synthétique via remember tool dans le périmètre project:synthetic-demo — Payload: {'formatting': 'tabs', 'indent': 4} — Claim: [STMT_01_PROVENANCE_ATTRIBUTION] & [STMT_02_CROSS_CLIENT_CONTINUITY] — Receipt: mem-synth-pref-001@v1, digest sha256:7f83b165 — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 2 [AGENT_B_RECALL]: L'agent B (terminal-assistant-beta) rappelle la préférence dans le périmètre autorisé project:synthetic-demo via recall tool — Query: 'code formatting indent' — Claim: [STMT_02_CROSS_CLIENT_CONTINUITY] & [STMT_04_TOKEN_BUDGET_GUARANTEE] — Receipt: mem-synth-pref-001@v1 cited, score 0.94, bounded budget — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 3 [UNAUTHORIZED_DENIAL]: Un agent non autorisé (rogue-guest-gamma) tente un accès inter-locataires à project:synthetic-demo sans identifiants valides — Gate: Scope Isolation & Auth Gateway — Claim: [STMT_05_ZERO_TOKEN_EXPOSURE] — Outcome: AUTH_SCOPE_DENIED (HTTP 403), zero data leakage, zero storage mutation verified by database snapshot byte equality — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 4 [USER_CORRECTION]: L'utilisateur corrige la norme de formatage via update_memory tool — Payload: {'formatting': 'spaces', 'indent': 2}, reason: 'team style guide update' — Controller: Version DAG Controller — Claim: [STMT_03_REALTIME_CORRECTION] — Receipt: mem-synth-pref-001@v2, supersedes v1, parent_digest sha256:7f83b165 — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 5 [LATER_RECALL_V2]: La requête de rappel ultérieure sélectionne la version 2 mise à jour tandis que SearchEngine exclut strictement la version 1 remplacée — Query: 'indentation preference' — Claim: [STMT_03_REALTIME_CORRECTION] & [STMT_04_TOKEN_BUDGET_GUARANTEE] — Outcome: Active recall context injects only v2 (spaces, 2) — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 6 [PROVENANCE_DAG]: Inspection d'audit de l'historique des versions via Version Controller — Chain: v1 (initial write by ide-assistant-alpha) -> v2 (superseded_by user correction) — Claim: [STMT_01_PROVENANCE_ATTRIBUTION] — Verification: Historique des versions et pointeurs parents entièrement inspectables — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 7 [STATE_RESET]: Les contrôles de bac à sable réinitialisables restaurent le périmètre project:synthetic-demo à son état initial propre — Action: Démontage déterministe et purge d'état — Claim: [STMT_05_ZERO_TOKEN_EXPOSURE] — Receipt: reset_status CLEARED, 0 residual rows, zero persistent side effects — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Boundary Notice [NOT_VERIFIED]: Les pipelines de facturation multi-locataires cloud [STMT_06_BACKEND_OPEN_SOURCE_CLAIM], le consensus autonome inter-organisations [STMT_07_AUTONOMOUS_CONSENSUS_CLAIM] et la réplication globale à latence zéro [STMT_08_ZERO_LATENCY_REPLICATION_CLAIM] sont [NOT_VERIFIED] et exclus de cet environnement open source local.

```text
+------------------------------------------------------------------------------------------------------------------------+
| [REPRODUCIBLE ARCHITECTURE LIFECYCLE WALKTHROUGH: SYNTHETIC A/B PREFERENCE SHARING & CORRECTION]                       |
|                                                                                                                        |
|  Agent A (IDE)               XMemo Gateway & Engines            Agent B (CLI)              Unauthorized Agent (Guest)  |
|  [ide-assistant-alpha]       [FastMCP / Storage / Scope]        [terminal-assistant-beta]  [rogue-guest-gamma]         |
|         |                               |                              |                              |                |
|  (1) remember(pref: tabs, 4)            |                              |                              |                |
|  -------------------------------------> |                              |                              |                |
|         |                          [Write v1, Hash: 7f83b1]            |                              |                |
|  <------------------------------------- |                              |                              |                |
|    Receipt: mem-001@v1                  |                              |                              |                |
|         |                               |      (2) recall(pref)        |                              |                |
|         |                               | <--------------------------- |                              |                |
|         |                               |  [Scope Match: synth-demo]   |                              |                |
|         |                               | ---------------------------> |                              |                |
|         |                               |   Citation: mem-001@v1       |                              |                |
|         |                               |                              |   (3) recall(foreign tenant) |                |
|         |                               | <---------------------------------------------------------- |                |
|         |                               |                          [BoundSpace Check: MISMATCH]       |                |
|         |                               | ----------------------------------------------------------> |                |
|         |                               |                          DENIED: AUTH_SCOPE_DENIED (Zero Mutation)           |
|         |                               |                              |                              |                |
|  (4) update_memory(pref: spaces, 2)     |                              |                              |                |
|  -------------------------------------> |                              |                              |                |
|         |                          [Write v2, parent: v1]              |                              |                |
|  <------------------------------------- |                              |                              |                |
|    Receipt: mem-001@v2 (supersedes v1)  |                              |                              |                |
|         |                               |      (5) recall(pref)        |                              |                |
|         |                               | <--------------------------- |                              |                |
|         |                               |  [Exclude v1, Select v2]     |                              |                |
|         |                               | ---------------------------> |                              |                |
|         |                               |   Citation: mem-001@v2       |                              |                |
|         |                               |                              |                              |                |
|  (6) inspect_provenance(mem-001)        |                              |                              |                |
|  -------------------------------------> |                              |                              |                |
|  <------------------------------------- |                              |                              |                |
|    DAG: v1 (Hash: 7f83) -> v2 (Hash: 4d82)                             |                              |                |
|         |                               |                              |                              |                |
|  (7) reset_synthetic_state()            |                              |                              |                |
|  -------------------------------------> | [Purge demo scope]           |                              |                |
|  <------------------------------------- | 0 residual rows              |                              |                |
+------------------------------------------------------------------------------------------------------------------------+
```

## Navigation approfondie des concepts et de la sécurité

Explorez des domaines architecturaux précis grâce à notre documentation approfondie sur les concepts et la sécurité :

- Modèle de données de mémoire (/docs/concepts/memory-model): Structures d'entités, catégories sémantiques et couches de représentation.
- Provenance et attribution (/docs/concepts/provenance-attribution): Pistes d'audit et attribution de l'appelant.
- Espaces de mémoire de projet (/docs/concepts/projects): Association de projet vérifiée via le routage des chemins d'espace de travail et isolation des limites de projet personnel.
- Consolidation de mémoire et Dream (/docs/concepts/dream-reflection): Consolidation de prévisualisation des candidats, révision explicite des destinations et politiques de maintenance.
- Bases de connaissances externes (/docs/concepts/knowledge-bases): Indexation de documents, stratégies de découpage et citations.
- Limite de données et sécurité (/docs/security/data-boundary): Délimitation claire entre capacités auto-hébergées et services cloud SaaS.

## Utilisateur de ChatGPT

Donnez à ChatGPT un accès durable à vos préférences XMemo, faits de projet, décisions et TODOs sans coller de jetons bearer dans un chat.

Connectez le serveur MCP XMemo hébergé via le flux OAuth de l'application ChatGPT/OpenAI, puis approuvez les autorisations memory:read et memory:write pour votre compte XMemo.

Enregistrez une préférence synthétique ou une note de projet, démarrez un nouveau chat, puis demandez à ChatGPT de la rappeler via XMemo avant de poursuivre le travail.

Si OAuth échoue ou si les outils n'apparaissent pas, déconnectez-vous du serveur MCP dans l'application hôte, reconnectez l'URL du serveur XMemo et réessayez avant de créer des jetons directs.

## Développeur Copilot / Codex

Transmettez les décisions du dépôt, les conventions de codage, les notes de correctifs et l'historique des tâches entre les agents IDE et CLI.

Utilisez OAuth pour VS Code / GitHub Copilot et Gemini CLI lorsqu'il est disponible. Pour Copilot CLI, Codex, Cursor ou d'autres clients MCP directs, conservez XMEMO_KEY dans l'environnement local ou le gestionnaire de secrets et définissez un identifiant XMEMO_AGENT_INSTANCE_ID stable.

Enregistrez une décision relative au code ou un correctif, puis demandez au prochain agent de l'IDE ou de la CLI de rappeler le contexte XMemo pertinent avant toute modification.

Si les rappels sont vides, vérifiez le chemin de configuration MCP sélectionné, la variable d'environnement XMEMO_KEY pour les clients directs et tout identifiant OAuth obsolète dans l'application hôte.

## Responsable de projet pilote d'équipe / entreprise

Évaluez la mémoire partagée avec les contrôles de compte, l'attribution des sources, les flux d'exportation/suppression et des preuves de configuration sécurisées pour les évaluateurs.

Créez ou rejoignez l'espace de travail sécurisé XMemo, invitez les utilisateurs approuvés, puis connectez chaque client via OAuth ou un identifiant direct délimité selon les badges de disponibilité.

Demandez à un membre du projet pilote d'enregistrer une mémoire d'équipe synthétique, confirmez l'attribution de la source dans XMemo, puis examinez les chemins de suppression/exportation et de support.

Si un membre ne parvient pas à se connecter, vérifiez les permissions de rôle, l'approbation OAuth, l'état de disponibilité du client et les conseils du support avant d'émettre un nouveau jeton.

## Opérateur d'agents autonomes

Permettez aux agents autonomes ou planifiés d'enregistrer leur progression, de récupérer les décisions antérieures et de conserver une identité d'instance stable et non secrète.

Récupérez /api/v1/mcp/config/autonomous-agent. Privilégiez auth_modes.oauth lorsque l'exécuteur prend en charge OAuth + en-têtes personnalisés ; utilisez auth_modes.xmemo_key avec XMEMO_KEY issu d'un gestionnaire de secrets uniquement pour les exécuteurs entièrement autonomes.

Exécutez une tâche synthétique qui consigne la progression dans XMemo, redémarrez l'exécuteur et confirmez qu'il rappelle cette progression à l'aide du même XMEMO_AGENT_INSTANCE_ID.

Si l'attribution change ou si les rappels se scindent entre instances, conservez XMEMO_AGENT_INSTANCE_ID hors de git et vérifiez que l'exécuteur ne le régénère pas à chaque démarrage.
