# Memoria sensible

Comprenda los controles reales de sanitización y retrieval_visibility que se aplican a credenciales, datos personales y memoria de alta sensibilidad.

- Canonical: https://docs.xmemo.dev/es/docs/concepts/sensitive-memory
- Locale: es-ES
- Content-Locale: es-ES
- Canonical-Content-Digest: f4135c91811fc6ab82f0fcbe64bdbe557f8f57024585230ef640f73d09da08fa
- Edition-Digest: d3221ddb14826a5e13c5cd21cd71825b2e6e9eae275c371a22dcc5ba0e67523a
- Source-Revision: sha256:2d80a1534f639a21ed4385df129fd914a3ed4da7b24c261eee0ad18032a0f691

## Sensitive es una política de tratamiento, no un tipo de memoria

El enum memory_type del contrato de memoria es episodic, semantic, procedural, working o identity; no tiene valor sensible. La sensibilidad se maneja mediante controles de redacción compartida y sobre de seguridad en lugar de inventar un sexto tipo de memoria.

- Los valores con forma de credencial siempre los redacta el sanitizador canónico del servidor.
- Los datos personales (PII) del propietario se conservan de forma predeterminada y se redactan cuando el propietario habilita auto_redact_pii.
- Una clave privada de alto riesgo o contenido secreto de AWS hace que la captura del agente omita el evento.

## Sanitice content, metadata y provenance conjuntamente

sanitize_server_write aplica el registro de reglas compartidas a cada cadena accesible desde una fila de memoria, incluyendo content, metadata y provenance. Las etiquetas credenciales, claves API, JWTs, secretos URL y otros valores registrados en forma de credencial se eliminan antes de la persistencia; la redacción nunca devuelve el valor bruto en el resultado metadata.

```python
from memory_manager.security.redact import sanitize_server_write

result = sanitize_server_write(
    "Deploy with token=not-a-real-secret",
    redact_contact_pii=False,
)
print(result.text)
print(result.applied, result.redactions)
```

## El modo Vault puede mantener la memoria local

El sobre de seguridad registra security_mode, encryption_state, retrieval_visibility, server_embeddings_enabled y server_content_search_enabled. El modo Vault almacena texto cifrado y por defecto retrieval_visibility=client_local_only con incrustación de servidor deshabilitada; la memoria del servidor se excluye a menos que el inquilino opte explícitamente por la indexación semantic.

```json
{
  "security_mode": "vault",
  "encryption_state": "ciphertext",
  "retrieval_visibility": "client_local_only",
  "server_embeddings_enabled": false,
  "server_content_search_enabled": false
}
```

## Recordar obedece al sobre

La puerta de recall del servidor descarta las filas marcadas client_local_only o not_retrievable. Las filas Vault también se excluyen salvo que su metadata opte explícitamente por vault_semantic_index_opt_in; el sobre de seguridad describe esa opción como un intercambio porque permite un índice semantic en el servidor. Use recall local para el content que no deba entrar en el recall del servidor.

```text
client_local_only  -> excluded from server recall
not_retrievable    -> excluded from server recall
vault + opt-in     -> server vector recall allowed
vault without opt-in -> local recall required
```

## 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.
