# Cómo funciona

Arquitectura autorizada y límite público: composición del servidor, ciclo de vida, nodos de subsistemas y límite en la nube.

- Canonical: https://docs.xmemo.dev/es/docs/concepts/how-xmemo-works
- Locale: es-ES
- Content-Locale: es-ES
- Canonical-Content-Digest: 321f29a0f9c36406e495bc50c7110f64ee7680a5bf2706f6b5eef7ecfa09163d
- Edition-Digest: fe3e7532113ea757182467320c3c9e250e5b5e82dfdbce50c8935ab433127440
- Source-Revision: sha256:8310426b563698994f72fce9d60572391625bf1c49e90527246490ed5f7a65b5

## Arquitectura simplificada: El pipeline de memoria en 7 etapas

XMemo procesa los recuerdos de los agentes mediante un pipeline de 7 etapas (Capture → Scope → Retrieve → Rerank → Assemble → Govern → Consolidate). Cada etapa cumple una función específica para garantizar que las operaciones de memoria sigan siendo rápidas, precisas, aisladas y verificables:

- Capture: Recibe solicitudes de escritura y actualización de memoria desde clientes de IA mediante el Model Context Protocol (MCP) estándar o API REST, y desinfecta datos confidenciales antes del almacenamiento. Qué significa esto para ti: Tus agentes pueden guardar notas, decisiones y preferencias automáticamente con herramientas estándar sin exponer secretos ni datos personales.
- Scope: Resuelve el contexto de identidad del emisor y aplica límites multiinquilino estrictos entre niveles de usuario, sesión, agente y espacio de trabajo. Qué significa esto para ti: Cada agente solo accede a la memoria dentro de su límite autorizado, manteniendo separados y seguros los datos personales y de equipo.
- Retrieve: Busca recuerdos almacenados con un motor híbrido que combina incrustaciones vectoriales semánticas con coincidencias exactas de palabras clave. Qué significa esto para ti: Tu agente recupera los datos correctos tanto si busca por significado temático como por una frase o identificador exacto.
- Rerank: Evalúa y clasifica los recuerdos candidatos equilibrando relevancia semántica, recientidad y ponderaciones de importancia. Qué significa esto para ti: Tu agente recibe el contexto más relevante y actualizado en lugar de fragmentos de conversación obsoletos o de baja prioridad.
- Assemble: Empaqueta los recuerdos recuperados en un contexto listo para prompts aplicando estrictamente los presupuestos de tokens y bytes. Qué significa esto para ti: La memoria inyectada nunca desborda la ventana de contexto de tu modelo ni genera costes imprevistos de tokens.
- Govern: Registra eventos de auditoría operativa, rastrea el historial de versiones (memory_versions) y aplica sobres de cifrado cuando el modo keyguard/vault está activo. Qué significa esto para ti: Cada actualización de memoria es rastreable, verificable y recuperable con total responsabilidad de auditoría.
- Consolidate: Previsualiza la consolidación de memoria (Dream) para sintetizar interacciones episódicas recientes en información candidata estructurada, requiriendo confirmación humana antes de guardar. Qué significa esto para ti: Se preparan perspectivas útiles para tu revisión sin mutaciones automáticas inesperadas ni ralentizar las conversaciones interactivas de los agentes.

## Aspectos internos de la arquitectura / Evidencia

Detalles autorizados de implementación arquitectónica, trazas de ejecución y contratos empíricos verificados directamente con el código base de XMemo. Las siguientes secciones documentan la composición concreta en tiempo de ejecución, los límites aislados de los subsistemas y las matrices de verificación formal.

## Invariantes arquitectónicos y principios básicos

XMemo aplica invariantes arquitectónicos no negociables que separan las interfaces de cliente públicas de la ejecución interna. Las capacidades están vinculadas al código fuente y los secretos se protegen bajo la política de cero exposición en texto plano.

- Cero exposición de secretos en texto plano: Los archivos de configuración del cliente, registros y respuestas públicas de diagnóstico nunca contienen tokens Bearer, cadenas de conexión de base de datos ni claves maestras sin cifrar.
- Procedencia de origen verificada: Cada memoria persistida, versión y cita lleva metadatos de identidad inmutables y pistas de auditoría vinculadas a contratos de código.
- Presupuestos deterministas de tokens y bytes: La inyección de contexto respeta estrictamente los límites del llamador, evitando el desbordamiento de la ventana de contexto de LLM.
- Límites de planes y puertas de enlace: BYODB multinquilino, sincronización distribuida y programación de Dream en segundo plano están controlados por configuraciones de espacio de trabajo, flags de características y límites de plan explícitos.

## Composición del servidor y topología del ciclo de vida

La inicialización del servidor desacopla la composición en tiempo de despliegue del flujo de ejecución en tiempo de ejecución. Los clientes no montan el servidor; el servidor Starlette monta FastMCP y lo adapta mediante MemoryOSMcpMountAdapter.

- Step 1 [HOST_COMPOSITION]: El servidor host Starlette/FastAPI monta FastMCP en /mcp — Relación: SERVER_MOUNTS_APP — Subsistema: Montaje ASGI — Límite: Ingress HTTP público.
- Step 2 [MOUNT_ADAPTER]: mount_streamable_mcp envuelve streamable_http_app en MemoryOSMcpMountAdapter para gestionar CORS y sondeos SSE — Relación: ADAPTS_ASGI_APP — Subsistema: Adaptador de protocolo — Límite: Puente de protocolo.
- Step 3 [AUTH_REGISTRATION]: install_mcp_tool_surface registra _call_tool_with_oauth_errors como controlador de herramientas — Relación: REGISTERS_TOOL_WRAPPER — Subsistema: Puerta de identidad y despacho — Límite: Superficie de herramientas autenticada.

```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]                      |
|  +-------------------------------------------------------+                                        |
+---------------------------------------------------------------------------------------------------+
```

## Trazas de ejecución en tiempo de ejecución

En tiempo de ejecución, las solicitudes siguen cuatro flujos aislados y deterministas regidos por relaciones estrictas y clasificaciones explícitas de límites arquitectónicos:

- OP_REMEMBER_WRITE [Recordar / Flujo de escritura: 13 pasos]: Cliente externo [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Despacho FastMCP ASGI -> Puerta de autenticación -> Herramienta remember -> Puerta de verificación -> Sobre de desinfección PII -> Sobre de seguridad (cifrado cuando el modo keyguard/vault está activo) -> Motor de persistencia. 13 pasos verificados a través de entrada, autorización y persistencia.
- OP_RECALL_READ [Recuperar / Flujo de lectura: 12 pasos]: Cliente externo [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Despacho FastMCP ASGI -> Puerta de autenticación -> Herramienta recall -> Aislamiento multi-inquilino BoundSpace -> Motor de recuperación híbrido -> Reclasificador semántico -> Ensamblador de presupuesto -> Formateador de citas públicas. 12 pasos verificados.
- OP_UPDATE_VERSION [Actualizar / Flujo de versiones: 13 pasos]: Cliente externo [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Despacho FastMCP ASGI -> Puerta de autenticación -> Herramienta update_memory -> Puerta de verificación -> Sobre de desinfección PII -> Sobre de seguridad (cifrado cuando el modo keyguard/vault está activo) -> Motor de persistencia -> Controlador DAG de historial de versiones. 13 pasos verificados.
- OP_FORGET_LIFECYCLE [Olvidar / Flujo de ciclo de vida: 11 pasos]: Cliente externo [PUBLIC_INGRESS] -> MemoryOSMcpMountAdapter [TRANSPORT_ADAPTER] -> Despacho FastMCP ASGI -> Puerta de autenticación -> Herramienta forget -> Puerta de verificación -> Persistencia de lápida suave -> Demonio de retención -> Filtro de exclusión de búsqueda. 11 pasos verificados.

```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]                                                |
+------------------------------------------------------------------------------------------------------------------------+
```

## Descomposición de subsistemas y clasificación de límites

El sistema se descompone en diez nodos de subsistemas verificados. Cada nodo lleva una clasificación estricta de límites (PUBLIC_BOUNDARY o INTERNAL_SUBSYSTEM) y un estado de evidencia empírico (SOURCE_BACKED_PUBLIC_CONTRACT / VERIFIED, CONCEPTUAL_DELEGATED o NOT_VERIFIED):

- NODE_1_CLIENT_AGENT_LAYER: Ecosistema de cliente y agente (@xmemo/client, Claude Desktop, Cursor, Codex) — Clasificación: [PUBLIC_BOUNDARY] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_2_TRANSPORT_ADAPTER: Adaptador de transporte y protocolo MCP (MemoryOSMcpMountAdapter, mount_streamable_mcp) — Clasificación: [PUBLIC_BOUNDARY] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_3_IDENTITY_AUTH_GATE: Puerta de identidad y autorización (_call_tool_with_oauth_errors, install_mcp_tool_surface) — Clasificación: [PUBLIC_BOUNDARY] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_4_SANITIZATION_ENVELOPE: Desinfección de PII y sobre de seguridad (sanitize_server_write, enforce_memory_write_envelope) — Clasificación: [INTERNAL_SUBSYSTEM] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_5_SCOPE_ISOLATION_GUARD: Guardia de aislamiento de espacio y multinquilino (BoundSpace, assert_requested_team_matches_bound_space) — Clasificación: [INTERNAL_SUBSYSTEM] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_6_SEARCH_TEMPORAL_PARSER: Analizador de consultas temporales y búsqueda (TemporalQuerySpec, extract_temporal_context) — Clasificación: [INTERNAL_SUBSYSTEM] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_7_CANDIDATE_SCORER: Puntuador y reclasificador de candidatos (SearchEngine.rerank_recall_results) — Clasificación: [INTERNAL_SUBSYSTEM] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_8_VERSION_LIFECYCLE_ENGINE: Controlador de versiones y ciclo de vida (VersionController.superseded_snapshot) — Clasificación: [INTERNAL_SUBSYSTEM] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_9_CONTEXT_BUDGET_ASSEMBLER: Ensamblador de presupuesto de contexto (_apply_recall_response_budget) — Clasificación: [INTERNAL_SUBSYSTEM] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].
- NODE_10_PUBLIC_RECEIPT_CITATION: Formateador de citas y recibos públicos (_public_recall_meta) — Clasificación: [PUBLIC_BOUNDARY] — Estado de evidencia: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)].

## Límite entre código abierto y servicio en la nube administrado

Las declaraciones arquitectónicas públicas se evalúan con respecto al contrato de código y se clasifican estrictamente como VERIFIED o NOT_VERIFIED:

- STMT_01_PROVENANCE_ATTRIBUTION [VERIFIED]: XMemo registra eventos de auditoría operativa, conserva el historial de versiones (memory_versions) y aplica sobres de cifrado cuando el modo keyguard/vault está habilitado. Arquitectura: Sobre de seguridad criptográfica.
- STMT_02_CROSS_CLIENT_CONTINUITY [VERIFIED]: Las memorias capturadas están disponibles al instante en cualquier cliente compatible con MCP mediante JSON-RPC. Arquitectura: Adaptador ASGI FastMCP de transmisión.
- STMT_03_REALTIME_CORRECTION [VERIFIED]: Las actualizaciones de hechos mantienen un historial inmutable reemplazando memorias anteriores en conflicto. Arquitectura: Controlador DAG de versiones inmutables.
- STMT_04_TOKEN_BUDGET_GUARANTEE [VERIFIED]: La inyección de contexto de recuperación respeta estrictamente los presupuestos especificados. Arquitectura: Ensamblador de presupuesto de tokens determinista.
- STMT_05_ZERO_TOKEN_EXPOSURE [VERIFIED]: Las solicitudes no autenticadas se deniegan en la puerta de enlace sin exponer tokens. Arquitectura: Puerta de autenticación de entrada y aislamiento de ámbito.
- STMT_06_BACKEND_OPEN_SOURCE_CLAIM [NOT_VERIFIED]: La afirmación de backend 100% de código abierto queda REFUTADA. Solo los paquetes de cliente (@xmemo/client) y adaptadores locales MCP son de código abierto. La infraestructura en la nube multinquilino es propietaria.
- STMT_07_AUTONOMOUS_CONSENSUS_CLAIM [NOT_VERIFIED]: El consenso autónomo entre organizaciones queda REFUTADO. El aislamiento entre inquilinos es estricto; no existe fusión automática interorganizacional.
- STMT_08_ZERO_LATENCY_REPLICATION_CLAIM [NOT_VERIFIED]: La replicación global con latencia cero queda REFUTADA. La búsqueda utiliza índices vectoriales locales; no se garantiza latencia cero global.

## Recorrido reproducible del ciclo de vida de la arquitectura (Ejemplo sintético A/B)

Un recorrido verificable paso a paso del ciclo de vida que demuestra el intercambio de memoria entre agentes, el aislamiento multiinquilino, la corrección del usuario en tiempo real y el seguimiento inmutable de procedencia con datos de demostración estrictamente sintéticos:

- Step 1 [AGENT_A_WRITE]: Agente A (ide-assistant-alpha) escribe preferencia sintética mediante remember tool en el ámbito 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]: Agente B (terminal-assistant-beta) recupera la preferencia dentro del ámbito autorizado project:synthetic-demo mediante 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]: Agente no autorizado (rogue-guest-gamma) intenta acceso interinquilino a project:synthetic-demo sin credenciales válidas — 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]: El usuario corrige el estándar de formato mediante 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 consulta de recuperación posterior selecciona la versión 2 actualizada mientras SearchEngine excluye estrictamente la versión 1 sustituida — 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]: Inspección de auditoría del historial de versiones mediante Version Controller — Chain: v1 (initial write by ide-assistant-alpha) -> v2 (superseded_by user correction) — Claim: [STMT_01_PROVENANCE_ATTRIBUTION] — Verification: Historial de versiones y punteros principales totalmente inspeccionables — Status: [SOURCE_BACKED_PUBLIC_CONTRACT (VERIFIED)] — Boundary: [DEMO_DATA: SYNTHETIC].
- Step 7 [STATE_RESET]: Los controles de sandbox restablecibles devuelven el ámbito project:synthetic-demo a un estado inicial limpio — Action: Desmontaje determinista y purga de estado — 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]: Las canalizaciones de facturación multiinquilino en la nube [STMT_06_BACKEND_OPEN_SOURCE_CLAIM], el consenso autónomo entre organizaciones [STMT_07_AUTONOMOUS_CONSENSUS_CLAIM] y la replicación global de latencia cero [STMT_08_ZERO_LATENCY_REPLICATION_CLAIM] son [NOT_VERIFIED] y quedan excluidos de este tiempo de ejecución de código abierto 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              |                              |                |
+------------------------------------------------------------------------------------------------------------------------+
```

## Navegación de conceptos profundos y seguridad

Explore dominios arquitectónicos específicos a través de nuestra documentación detallada de conceptos y seguridad:

- Modelo de datos de memoria (/docs/concepts/memory-model): Estructuras de entidad, categorías semánticas y capas de representación.
- Procedencia y atribución (/docs/concepts/provenance-attribution): Pistas de auditoría y atribución.
- Espacios de memoria de proyecto (/docs/concepts/projects): Asociación verificada de proyectos mediante enrutamiento de rutas de espacio de trabajo y aislamiento de límites de proyectos personales.
- Consolidación de memoria y Dream (/docs/concepts/dream-reflection): Consolidación de previsualización de candidatos, revisión explícita de destinos y políticas de mantenimiento.
- Bases de conocimiento externas (/docs/concepts/knowledge-bases): Indexación de documentos, estrategias de fragmentación y citas.
- Límite de datos y seguridad (/docs/security/data-boundary): Delimitación integral entre capacidades autohospedadas y servicios en la nube SaaS.

## Usuario de ChatGPT

Dale a ChatGPT acceso duradero a tus preferencias de XMemo, datos de proyecto, decisiones y TODOs sin pegar fichas bearer en un chat.

Conecte el servidor XMemo MCP alojado a través de la aplicación ChatGPT/OpenAI OAuth flow, luego apruebe la subvención de memoria:read y memoria:write para su cuenta XMemo.

Guarde una nota de preferencia sintética o de proyecto, inicie un nuevo chat y luego pida a ChatGPT que la recuerde a través de XMemo antes de continuar el trabajo.

Si OAuth falla o las herramientas no aparecen, salir del servidor MCP en la aplicación host, volver a conectar la URL del servidor XMemo y volver a probar antes de crear tokens directos.

## Copiloto / Codex desarrollador

Lleve decisiones de repo, convenciones de codificación, notas de corrección de errores e historial de tareas entre los agentes IDE y CLI.

Use OAuth para VS Code / GitHub Copilot y Gemini CLI cuando esté disponible. Para Copilot CLI, Codex, Cursor u otros clientes MCP directos, mantenga XMEMO_KEY en el entorno local o en el almacén de secretos y establezca un XMEMO_AGENT_INSTANCE_ID estable.

Grabe una decisión de base de código o corrección de errores, y luego pida al siguiente agente IDE o CLI que recuerde el contexto XMemo relevante antes de editarlo.

Si las memorias están vacías, verifique la ruta de configuración MCP seleccionada, la variable de entorno XMEMO_KEY para clientes directos y cualquier credencial OAuth rancio en la aplicación host.

## Equipo / propietario del piloto de la empresa

Evalúe la memoria compartida con controles de cuenta, atribución de origen, flujos de trabajo export/delete y pruebas de configuración seguras para los revisores.

Cree o introduzca el espacio de trabajo protegido de XMemo, invite a usuarios aprobados, luego conecte a cada cliente a través de OAuth o una credencial directa con alcance de acuerdo con las insignias de preparación.

Haga que un miembro piloto guarde una memoria sintética del equipo, confirme la atribución de origen en XMemo, luego revise delete/export y las rutas de soporte.

Si un miembro no puede conectarse, compruebe los permisos de rol, la aprobación de OAuth, el estado de preparación del cliente y la orientación de soporte antes de emitir un nuevo token.

## Operador de agente autónomo

Deje que los agentes sin cabeza o programados registren el progreso, recuperen decisiones previas y mantengan una identidad estable de instancia no secreta.

Obtener /api/v1/mcp/config/autonomous-agent. Preferir auth_modes.oauth cuando el runner soporta OAuth + cabeceras personalizadas; utilice auth_modes.xmemo_key con XMEMO_KEY de una tienda secreta sólo para runners totalmente sin cabeza.

Ejecute una tarea sintética que escriba el progreso a XMemo, reinicie el runner y confirme que recuerda que el progreso usando el mismo XMEMO_AGENT_INSTANCE_ID.

Si la atribución cambia o recuerda dividida entre instancias, persistir XMEMO_AGENT_INSTANCE_ID fuera de git y verificar que el runner no lo esté regenerando en cada inicio.
