Un lugar donde se establece un dato
Sin un sistema de registro, un agente trabaja con lo que alcance a recordar: parte de la última sesión, una nota guardada por su herramienta o nada. Con un registro, lee qué se guardó, de qué fuente procede y qué está vigente ahora, para que los agentes que conectas puedan atenerse a una sola respuesta.
Puntos clave
- Un dato modificado, como una fecha de vencimiento trasladada por un correo posterior, hace que agentes en distintas herramientas den respuestas diferentes.
- La recuperación encuentra material relacionado, pero no determina qué fuente refleja el estado vigente.
- Neotoma guarda cada escritura como una observación vinculada a su fuente, y una regla de fusión por campo calcula el valor vigente.
- Cada campo vigente identifica la observación y la fuente que lo establecieron, y una entidad puede leerse tal como estaba registrada en un momento anterior.
- La dirección es un sistema de registro integral mantenido por personas y agentes, con autoridad por dominio, desacuerdos explícitos y explicaciones de por qué se mantiene un valor como capacidades previstas.
Cuando varios agentes trabajan con los mismos datos, esos datos cambian y no todos los agentes se enteran al mismo tiempo. Una fecha de vencimiento muestra claramente el problema.
Supongamos que la factura INV-2041 indica que el pago vence el 22 de octubre y que un correo posterior del proveedor traslada el vencimiento al 29 de octubre. Un agente lee la factura, otro lee el correo y un tercero prepara los pagos de la semana con lo que encuentra. El primero responde «22 de octubre», el segundo «29 de octubre» y el tercero responde con la fecha que encontró primero. Nada en esa organización establece cuál es la fecha vigente, así que la persona que dirige a los agentes tiene que comprobarlo.
He inventado este ejemplo concreto de la factura, pero la organización que hay detrás es real. Utilizo agentes en tres herramientas con una sola instancia de Neotoma. Un proceso que consulta el correo guarda los mensajes entrantes con su fuente y convierte en tareas los que requieren una acción; las sesiones de Claude Code, Codex y Cursor recogen las mismas tareas y planes. Esa configuración, y mi trabajo en Neotoma como sistema de registro integral, son el origen de este ensayo.
Recordar sirve para otra cosa
La recuperación de información encuentra material que parece relacionado con una pregunta. Un índice vectorial o un historial de conversación extenso lo hacen bien y, para muchas tareas, basta. Pero eso no resuelve cuál es el dato vigente. Si se pregunta por la fecha de vencimiento, la recuperación devuelve la factura y el correo ordenados por su parecido con la pregunta, no por cuál refleja la situación actual.
Disponer de más herramientas y entornos de ejecución lo complica. Un agente guarda notas en un archivo Markdown, otro conserva lo aprendido dentro de su aplicación de chat y un tercero lee una carpeta compartida. Cada copia era correcta cuando se escribió. Cuando el dato cambia, las copias se actualizan en momentos distintos, o no se actualizan, y ningún agente puede preguntar cuál prevalece porque no existe un lugar donde esa pregunta tenga respuesta. El sistema de registro debe estar fuera de cualquiera de ellos, en un lugar al que todos puedan acceder.
A principios de este año llamé a Neotoma una capa de memoria y una capa de verdad. Dejé de hacerlo porque llegué a pensar que «memoria» es una categoría equivocada para Neotoma: resulta confusa, y la gente seguía comparándolo con productos de memoria. Lo que necesito que conserve un agente son datos exactos sobre muchos tipos de cosas, de una forma que se pueda auditar. El nombre sencillo del lugar que los guarda es sistema de registro.
Eso es lo que entiendo por sistema de registro: indica qué está vigente, de dónde procede y qué sustituyó. La búsqueda por similitud no puede responder esas preguntas, porque la similitud no dice nada sobre el tiempo ni sobre la fuente.
Lo que Neotoma hace hoy
Desarrollo Neotoma, el sistema de registro para agentes de IA. Es de código abierto bajo licencia MIT y se ejecuta localmente, en el directorio de datos que elijas. Lo que sigue describe lo que hace hoy el paquete publicado (0.25.0 en npm).
Cada escritura se guarda como una nueva observación vinculada a la fuente de la que procede. Un valor nuevo se añade junto al anterior en vez de sobrescribirlo. Neotoma puede guardar el PDF o correo original junto a las entidades estructuradas derivadas de él, manteniendo las observaciones vinculadas a su fuente.
Las observaciones pertenecen a entidades. El identificador de una entidad se deriva del tipo de entidad y de sus campos identificadores. Dentro de la misma instancia y con las mismas reglas de identidad, los mismos valores identificadores producen de forma determinista el mismo identificador, de modo que dos agentes que guardan la misma factura escriben en la misma entidad.
También se pueden vincular entidades entre sí: la factura con su proveedor, o una tarea de seguimiento con la factura a la que se refiere. El agente crea esas relaciones explícitamente. Describen cómo encajan los registros, mientras que los vínculos a las fuentes muestran el PDF o el correo que respalda una observación.
Neotoma aplica automáticamente la regla de fusión del esquema de cada campo para calcular su valor vigente a partir de las observaciones. Para la mayoría de los campos prevalece la observación más reciente. Con las mismas observaciones y las mismas reglas de fusión, la reducción produce la misma instantánea, sin pedirle a un modelo que vuelva a elegir en cada lectura.
Cada campo vigente indica la observación que lo estableció, y una observación guardada indica su fuente. Es un rastro hasta la evidencia, no una prueba de que un agente la haya leído correctamente. Una corrección es otra observación, no una edición, y el valor anterior sigue en la lista. También se puede leer una entidad tal como Neotoma la tenía registrada en un momento anterior.
Volvamos a la factura. Las escrituras de ambos agentes llegan a una sola entidad. La fecha de vencimiento ahora es el 29 de octubre e indica la observación procedente del correo. El importe sigue indicando la primera observación, porque no ha cambiado. El agente de pagos lee el 29 de octubre, y la observación del 22 de octubre permanece en la lista con su fuente.
Los agentes acceden a Neotoma mediante un servidor MCP, una API REST y una CLI. La guía de instalación explica cómo conectar las herramientas y los entornos de ejecución compatibles. Conecta cada herramienta a la misma instancia y al mismo perfil de datos, o a la misma entrada MCP, para compartir registros; las entradas separadas pueden usar bases de datos separadas.
Las personas pueden consultar sus registros en la aplicación de Neotoma incluida con el paquete.
Una solicitud firmada que haya sido admitida puede establecer una identidad de agente verificada. Los permisos activos y delimitados determinan las acciones permitidas; una firma por sí sola no concede permiso.
Hacia dónde va esto
Hasta ahora he descrito un sistema de registro que establece los datos vigentes para los agentes. La dirección es un sistema de registro que personas y agentes mantienen juntos, donde cualquiera pueda preguntar qué valor está vigente, qué fuente lo introdujo, si se observó, se infirió o se decidió, quién tenía autoridad para corregirlo y qué agentes se apoyaron en la versión anterior. Las capacidades de gobernanza previstas van más allá de la identidad firmada, los permisos delimitados y la aplicación actuales:
- Asignar a cada dominio un responsable claro, con autoridad para corregir sus registros delimitada a ese dominio.
- Representar explícitamente afirmaciones contrapuestas, disputas sin resolver y posiciones oficiales.
- Mostrar por qué se mantiene un valor, de quién procede la autoridad que lo respalda y qué afectaría un cambio.
Ateles amplía esa dirección en el plano operativo. En el diseño de adaptadores de Ateles, los adaptadores llevan información de sistemas como correo, calendarios y plataformas de código a Neotoma, y llevan acciones autorizadas de vuelta a esos sistemas. Neotoma guarda los registros; las herramientas conectadas realizan el trabajo.
La visión completa, con el estado actual de cada parte, está en el README.
Un sistema de registro, no de recuperación
La respuesta no es un índice mejor. La recuperación ayuda a un agente a encontrar lo que se dijo. Un sistema de registro le dice qué está vigente. Los agentes que trabajan con varias herramientas necesitan lo segundo, en un lugar al que todos puedan acceder, y un sistema de registro solo ayuda si los agentes escriben en él y leen de él.
Si utilizas agentes en más de una herramienta o entorno de ejecución, empieza por un flujo de trabajo cuyos datos y entidades estén relacionados:
npm install -g neotoma
neotoma init
neotoma setup --tool claude-codeUtiliza la opción de configuración correspondiente a tu herramienta o entorno de ejecución; la guía de instalación explica las demás integraciones compatibles. Después, guarda los datos y entidades relacionados del flujo desde un agente y léelos desde otro conectado a la misma instancia configurada y al mismo perfil de datos o entrada MCP.
La guía de instalación está en neotoma.io/install. El código y el seguimiento de incidencias están en GitHub, en github.com/markmhendrickson/neotoma.