# Procedencia y atribución

Conserve el origen de una memoria sin confundir los metadatos de origen con la autorización o la propiedad.

- Canonical: https://docs.xmemo.dev/es/docs/concepts/provenance-attribution
- Locale: es-ES
- Content-Locale: es-ES
- Canonical-Content-Digest: 019b1c6aab84d15e8b791ec3f9b7ecd3d545865415ceba204e14301dea665c6a
- Edition-Digest: d13ff4f4f8c2db51974b548f6b78942df175f3ef6ed351cc9337f9c43d4a9f42
- Source-Revision: sha256:3922476e09ce20617ab30ead32aa1ccd8f95082d0f395b172b3eadd0d8fd2d45

## La provenance forma parte del registro público de memoria

El contrato de memoria expone provenance junto con content, path, source_identity, agent_id, agent_instance_id_hash y agent_instance_source. La provenance es evidencia estructurada sobre cómo se produjo un registro; no es un bearer token y no puede ampliar el acceso del caller.

- source_identity es la etiqueta compacta de caller/source que usan las rutas de escritura y auditoría.
- provenance es un objeto JSON para campos de source, adapter, event u otras evidencias.
- agent_instance_id_hash es el valor de atribución de instalación que preserva la privacidad.

## Los eventos de agente llevan su origen

AgentEvent.to_memory_candidate crea un MemoryCandidate con provenance que contiene source=agent_integration, adapter=<event source> y event_id. La metadata del candidato también conserva el tipo de evento, la hora, el id de agente, el id de tarea, el nombre de la herramienta, el comando, el file path y el status después de ejecutar el sanitizador compartido.

```json
{
  "provenance": {
    "source": "agent_integration",
    "adapter": "codex",
    "event_id": "evt_<stable-event-id>"
  },
  "metadata": {
    "agent_event": {
      "event_type": "decision_made",
      "task_id": "<task-id>"
    }
  }
}
```

## Escribir atribución con la memoria

Los modelos públicos de solicitud remember y store aceptan source y provenance. Proporcione etiquetas estables y no secretas durante la captura; mantenga la credencial de acceso en su encabezado o entorno y deje que el servidor sanitice content, metadata y provenance antes de persistirlos.

```http
POST /v1/remember
X-API-Key: <your-assigned-api-key>
Content-Type: application/json

{
  "content": "The deployment decision was verified.",
  "path": "projects/memory-os/decisions",
  "source": "codex",
  "provenance": {
    "source": "agent_integration",
    "adapter": "codex",
    "event_id": "evt_<stable-event-id>"
  }
}
```

## La sanitización no borra la trazabilidad

El sanitizador de persistencia recorre estructuralmente content, metadata y provenance. Elimina los valores con forma de credencial; si hay redaction, el servidor registra metadata de auditoría privacy.server_write_sanitizer y conserva los campos seguros de provenance. Trate el registro resultante como evidencia sanitizada, no como un archivo de eventos sin procesar.

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