# Identidad de instancia del agente

Separe la etiqueta de instalación no secreta usada para la atribución de la credencial que autoriza las solicitudes.

- Canonical: https://docs.xmemo.dev/es/docs/concepts/agent-instance-identity
- Locale: es-ES
- Content-Locale: es-ES
- Canonical-Content-Digest: c0db15eaca6541c974e88179495cf7a7f5832695889a2ff2abef284fd7daf337
- Edition-Digest: 05ebf43269507e6337a163a45fd34476735d8f13bedea6d0ecf4757af467e99b
- Source-Revision: sha256:af573969af4a97ad87f12425b51f333259b42a829512f8644875a77c1bba2ddb

## Un id de instancia no es una credencial

XMEMO_AGENT_INSTANCE_ID identifica una instancia local de cliente o runner; no autoriza solicitudes. La clave API o el grant de OAuth es la credencial de acceso. El servidor deriva agent_instance_id_hash del valor de instancia e informa de la autoridad del límite como attribution_only.

- Credencial: X-API-Key o el grant bearer de OAuth aceptado controla el acceso.
- Etiqueta de instancia: X-Memory-OS-Agent-Instance-ID permite al servidor comparar el runner que escribe con un caller posterior.
- Etiqueta de agente: X-Memory-OS-Agent-ID identifica el agente lógico por separado de una instalación concreta.

## Normalice y después calcule el hash

El runtime recorta el id de instancia, rechaza los valores vacíos y acepta como máximo 256 caracteres antes de calcular su hash con SHA-256. Un hash almacenado se normaliza como sha256:<64 hexadecimal characters>; los valores pre-hashed malformados se ignoran en lugar de tratarlos como credenciales.

```python
from memory_manager.auth.agent_identity import agent_instance_id_hash

instance_hash = agent_instance_id_hash("codex-local-install")
# sha256:<64 hexadecimal characters>
```

## Mantener un valor por instalación local

Persista un valor de instancia no secreto fuera del repositorio y envíelo con la credencial de acceso. Reutilícelo tras reiniciar para la misma instalación; elija otro valor para un perfil local diferente.

```http
X-API-Key: <your-assigned-api-key>
X-Memory-OS-Agent-ID: codex
X-Memory-OS-Agent-Instance-ID: <stable-local-instance-id>
```

## La semántica de boundary es explícita

memory_agent_boundary compara el agent_id y el hash de instancia del caller con los valores de la fila. Coincidir en ambos significa self; coincidir en agent_id pero usar otro hash significa same_agent_other_instance; si falta una identidad comparable, se informa como unverified o unknown. Estas etiquetas explican la atribución y no sustituyen la autorización del token.

```json
{
  "relation": "self",
  "ownership": "current_agent",
  "boundary_authority": "attribution_only",
  "current_agent_trust": "client_asserted"
}
```

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