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.
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.
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.
{
"relation": "self",
"ownership": "current_agent",
"boundary_authority": "attribution_only",
"current_agent_trust": "client_asserted"
}Flujos de roles
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.
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.
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.
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.
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.
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.
Fuente: Identidad del agente