Vi el hilo de Sarah Wooders la semana pasada e inmediatamente estuve de acuerdo con la mitad.

Wooders, cocreador de MemGPT (ahora Letta), [argumentó que la memoria no es un complemento, es el arnés](https://x.com/sarahwooders/status/2040121230473457921). El arnés toma decisiones invisibles que ninguna herramienta externa puede controlar: qué sobrevive a la compactación, cómo se carga el contexto, si el agente puede modificar sus propias instrucciones. "Pedir que se conecte la memoria a un arnés de agente es como pedir que se conecte la conducción a un automóvil".

El encuadre es fácil de transmitir. Sigo escuchando el cable del arnés repetido como un trasfondo establecido, no como un reclamo para inspeccionar. Esto se debe en parte a que la mitad con la que estoy de acuerdo es correcta.

## Las decisiones invisibles son reales

[Claude Code tiene una jerarquía de memoria de varios niveles integrada en el arnés](https://docs.anthropic.com/en/docs/claude-code/memory): CLAUDE.md, estado de sesión, reglas de compactación, inyección de mensajes del sistema. Cuando [Claude Code compacta](https://docs.anthropic.com/en/docs/claude-code/best-practices) una conversación de 100.000 tokens a 20.000, el arnés decide qué sobrevive. Ninguna herramienta externa puede replicar o anular esa decisión.

Ahmed Kidwai, que construye [Contexto virtual](https://github.com/virtual-context/virtual-context), describió la misma estructura desde el asiento del usuario en [La IA pasa la mayor parte de su vida leyendo sobre su vida](https://open.substack.com/pub/virtualcontext/p/ai-spends-most-of-its-life-reading). Cada turno puede reproducir el hilo completo, por lo que la mayoría de las fichas de entrada sirven para releer lo que ya sucedió. Cuando la ventana se llena, la compactación reemplaza el historial sin procesar con un resumen. No recibirá un recibo por detalle de lo que desapareció.

En una sola sesión, las elecciones del arnés sobre lo que entra en la ventana contextual, lo que se resume y lo que se descarta son el sistema de memoria efectivo. Wooders tiene razón en esto.

## El argumento asume un arnés.

El hilo concluye que debes usar un arnés de memoria primero. Esa conclusión requiere que operes dentro de uno.

No. Utilizo Cursor como mi interfaz principal, Claude Code para tareas específicas, ChatGPT para conversaciones y scripts personalizados para automatización. Son cuatro arneses, cada uno de los cuales toma sus propias decisiones invisibles sobre qué recordar.

Las personas con las que hablo que construyen con agentes utilizan de tres a cinco herramientas. Cada uno se compacta de manera diferente, carga el contexto de manera diferente, almacena el estado de manera diferente. El usuario se convierte en la capa de sincronización humana entre todos ellos.

Agregar más memoria incorporada empeora esto, no mejora. Cada herramienta obtiene una mejor memoria interna. Ninguno de ellos está de acuerdo.

## Tres preocupaciones, no una

Wooders colapsa la gestión de ventanas de contexto, el estado de la sesión y el estado duradero en un concepto que ella llama "memoria". Estos son arquitectónicamente distintos.

**Gestión de ventanas de contexto**: qué cabe en el mensaje en este momento, qué se compacta, qué ve el modelo en este giro. Este es un problema de arnés. Wooders tiene razón.

**Estado de la sesión**: persiste dentro de una conversación. Esto también es un problema de arnés.

**Estado duradero**: persiste en todas las sesiones, herramientas y agentes, con procedencia y control de versiones. Esto es infraestructura, no arnés.

Ningún arnés proporciona un estado multiplataforma determinista, vinculado a esquemas, de solo agregar con procedencia. La gestión del contexto está impulsando. El estado duradero son los datos de navegación. Informa de la conducción pero no pertenece al interior de la transmisión.

## Incluso el contexto se puede externalizar

El [Contexto virtual] de Kidwai (https://github.com/virtual-context/virtual-context) es un proxy que se encuentra entre su cliente y la API LLM ascendente. El cliente establece una ventana de contexto de 20 millones de tokens. La ventana real del modelo es 200K. Virtual Context comprime, indexa y pagina entre ellos. Una carga útil de Claude Code de 937 000 tokens con 52 cadenas de herramientas colapsa a ~65 000 de señal seleccionada.

En [LongMemEval](https://github.com/virtual-context/virtual-context#benchmark-results), Virtual Context obtuvo una precisión del 95 % frente al 33 % de Claude Sonnet 4.5 con contexto completo sin procesar, a la mitad del costo. El proxy funciona con Claude Code, Cursor, OpenClaw o cualquier cliente que acepte una URL base. VCATTACH permite que dos clientes compartan la misma base de conocimientos compactada entre plataformas.

El mecanismo importa. VC no pasa por alto el arnés. El arnés aún toma sus propias decisiones de compactación y truncamiento y compone la solicitud de API. VC intercepta esa solicitud en sentido descendente a través de una redirección de URL base. Cuando el arnés trunca el historial de conversaciones, VC detecta el truncamiento y se recupera de su propio almacenamiento duradero. Lo que llega al modelo es la ventana seleccionada de VC, no el resultado bruto del arnés.

Wooders tiene razón en que ninguna herramienta externa puede controlar las decisiones internas del arnés. Pero un proxy situado entre el arnés y la API puede observar esas decisiones y revertirlas parcialmente. El arnés envía 937.000 tokens después de su propia compactación. VC envía 65K de señal seleccionada al modelo. El arnés todavía hace funcionar el bucle de herramientas y el agente. La capa que decide lo que realmente ve el modelo vive afuera.

Eso deja tres capas, no dos. El arnés ejecuta al agente. Una capa de gestión de contexto opcional puede ubicarse entre el arnés y la API. Y una capa de estado duradera se encuentra debajo de todo, persistiendo lo que es verdadero independientemente de cómo se gestione el contexto de cualquier sesión.

## Control versus valor

Una herramienta externa no puede controlar las decisiones de compactación del arnés. Verdadero. Pero la pregunta no es si una capa estatal controla la compactación. Se trata de si proporciona valor que la memoria nativa del arnés no proporciona.

La mayor parte de la memoria nativa del arnés es efímera. Letta es la excepción: conserva la memoria entre sesiones por diseño. Pero incluso la memoria de Letta es específica de una herramienta, no es portátil y no determinista. El agente decide qué almacenar y cuándo mediante llamadas a herramientas basadas en LLM, por lo que la misma conversación puede producir diferentes estados de memoria. El cursor no puede leerlo. Claude Code no puede leerlo. Una capa de estado duradera es multiplataforma, determinista, versionada y rastreable hasta el origen.

No es necesario controlar el arnés para que sea valioso. Necesitas sobrevivir a las decisiones del arnés. El estado duradero y de solo anexo sobrevive por diseño. Cuando un arnés compacta el contexto, la capa de estado contiene el registro completo. Cuando abres una herramienta diferente mañana, la capa de estado tiene lo que almacenaste ayer.

## Activación versus transporte

Nicolò Boschi (Hindsight/Vectorize) [de acuerdo con Wooders](https://x.com/nicoloboschi/status/2042145292632379598): "Usar la memoria a través de MCP y esperar que el modelo almacene y busque información en la memoria es inútil". La preocupación es real. Si el modelo tiene que decidir cuándo almacenar y recuperar, puede olvidarse de almacenar. Puede omitir la recuperación cuando sea necesario.

En lugar de MCP, Hindsight utiliza [ganchos](https://docs.anthropic.com/en/docs/claude-code/hooks): scripts que aprovechan los aprovechamientos se ejecutan automáticamente en eventos del ciclo de vida como el inicio de la sesión, el envío rápido o la finalización de la herramienta. Ningún LLM decide si despedirlos. El complemento Claude Code de Hindsight utiliza cuatro enlaces de ciclo de vida para retener automáticamente cada conversación y recuperarla automáticamente en cada mensaje. Funciona.

Pero este argumento combina dos cosas: cómo se activa la memoria y dónde vive.

Los ganchos de Hindsight llaman a la API de Hindsight. No escriben en la memoria integrada del arnés. Los ganchos son el detonante. El servidor externo es el almacenamiento. Esa separación es toda la arquitectura. Un gancho que escribiera en la memoria nativa de Claude Code heredaría las mismas limitaciones: efímero, no portátil, invisible para Cursor mañana.

Los ganchos resuelven el problema de activación. No resuelven el problema del almacenamiento. Todo sistema de memoria duradero necesita ambos.

Los ganchos están ampliamente disponibles, aunque no universalmente. Claude Code tiene un sistema de complementos con más de 12 eventos. El cursor tiene ganchos.json con más de 14 eventos en versión beta. OpenCode tiene más de 20 eventos, incluido el control de compactación y la inyección rápida del sistema. Codex tiene enlaces de sesión con enlaces a nivel de herramienta en desarrollo. ChatGPT y la aplicación web Claude siguen siendo solo MCP. El propio Hindsight incluye un servidor MCP exactamente para esos casos.

La respuesta son ganchos donde están disponibles, MCP donde no, ambos escribiendo en la misma capa de estado duradero debajo de cada arnés. "MCP no tiene remedio" es una afirmación sobre cómo generar confiabilidad, no sobre dónde debería vivir la memoria.

## Las capas son complementarias

Cinco arneses que toman cinco decisiones diferentes de compactación y contexto producen cinco versiones diferentes de lo que sabe el agente. La analogía de "conducir" funciona para la gestión del contexto. Se estropea cuando conduces cinco coches y necesitas datos de navegación coherentes en todos ellos.

La gestión del contexto y el estado duradero no están en competencia. Un arnés hace funcionar el agente y el bucle de herramientas. Una capa de contexto, integrada o externa, gestiona lo que el modelo ve en cada giro. Una capa de estado gestiona lo que es cierto en todas las sesiones y herramientas. Ningún arnés o proxy de contexto ofrece verdad, procedencia, determinismo, validación de esquema o acceso entre herramientas verificables. El argumento a favor de la memoria integrada en arnés es al mismo tiempo el argumento a favor de una capa de estado compartido debajo de cada arnés.

## Lo que estoy construyendo

Estoy construyendo [Neotoma](https://neotoma.io), una capa de memoria estructurada que vive debajo de cualquier arnés: resolución de entidades, líneas de tiempo, procedencia, determinismo, acceso multiplataforma.

Estos hilos cambiaron lo que estoy construyendo a continuación. Había tratado a MCP como la única superficie de integración. Ahora estoy agregando ganchos como una capa de extensión del ciclo de vida. MCP sigue siendo la interfaz principal del agente.

La separación es deliberada. MCP posee el contrato del agente: instrucciones cargadas una vez al inicio de la sesión, herramientas de almacenamiento estructuradas que el agente llama con total conocimiento contextual. Los ganchos poseen el contrato de arnés: eventos del ciclo de vida que el agente no controla. Un enlace `UserPromptSubmit` recupera entidades relevantes automáticamente antes de que el agente vea cada mensaje. Los ganchos `PostToolUse` capturan cada edición de archivo y comando de shell como observaciones. Un gancho "Detener" persiste en la conversación sin procesar si se pasó por alto el cierre de la tienda del agente. Un gancho `PreCompact` observa lo que el arnés está a punto de desechar.

El resultado es un piso de confiabilidad por debajo del techo de calidad de MCP. Sin ganchos, MCP funciona como lo hace hoy. Sin MCP, los ganchos proporcionan captura de observación sin procesar pero no extracción de entidades estructuradas. Ambos juntos brindan recuperación determinista, observación pasiva, conciencia de compactación y recuperación en caso de colisión.

Esto difiere del enfoque de Hindsight. Hindsight captura transcripciones sin procesar mediante ganchos y luego ejecuta un LLM del lado del servidor separado para extraer entidades. Eso significa que un segundo modelo juzga lo que importa, con costo y latencia adicionales por operación. Neotoma mantiene la extracción de entidades impulsada por el agente: el mismo modelo que comprende la conversación realiza la extracción con un costo LLM marginal cero. Los ganchos proporcionan la capa de confiabilidad subyacente, no la inteligencia.

Los siguientes son los complementos para Claude Code, Cursor, OpenCode y Codex. Los ganchos escriben a Neotoma, no a la memoria integrada del arnés. Todos ellos alcanzan la misma capa de estado duradero, mediante ganchos cuando están disponibles y MCP cuando no.

Wooders tiene razón en que el arnés es dueño del contexto. Boschi tiene razón en que los ganchos superan a MCP en cuanto a confiabilidad de activación. Kidwai muestra que incluso la gestión del contexto puede externalizarse. La pregunta que ninguno de ellos aborda es a quién pertenece la verdad cuando se utilizan cinco arneses. Esa respuesta tiene que vivir debajo de todos ellos.