cairn
Almacenamiento compartido de memoria para enjambres de agentes IA mediante archivos markdown con aislamiento por token, control de concurrencia y caché local read-through.
Ficha actualizada 22 sept 2026, 18:00 · upstream 22 sept 2026, 17:56 · release sin release detectada
Qué es cairn
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Cairn es una tienda simple diseñada para proporcionar memoria compartida entre múltiples agentes de inteligencia artificial distribuidos en varios hosts. Utiliza un enfoque basado en archivos de texto plano donde cada entrada es un archivo markdown dentro de un directorio de alcance (scope), permitiendo que los agentes lean y escriban simultáneamente sin sobrescribirse mutuamente o ver los alcances ajenos.
La arquitectura se centra en la transparencia y la seguridad mediante mecanismos como listas blancas de alcance por token, identificación derivada de tokens para cada punto añadido y control de concurrencia mediante If-Match. Incluye una caché local read-through que nunca reporta un almacén inaccesible como vacío, diferenciando claramente entre 'no hay entradas' y 'no pude acceder'. No es un motor de recuperación semántica: no incluye embeddings ni índices.
El repositorio ofrece múltiples clientes (Go y Python) gestionados mediante Nix, con soporte para despliegue en contenedores y una interfaz web experimental. La herramienta prioriza la fiabilidad operativa sobre la complejidad, proporcionando códigos de salida detallados y diagnósticos completos mediante comandos como `cairn doctor`.
- Gestión de estado compartido entre múltiples agentes IA sin conflictos de escritura concurrente
- Registro auditado de acciones de agentes con identidad verificable y sesión correlacionada
- Sincronización de caché local para reducir latencia en entornos distribuidos o offline
- Diagnóstico de salud del sistema mediante comandos como `cairn doctor` con salida JSON
- Aislamiento estricto por token con listas blancas de alcance (scope allowlist) que impiden enumeración del almacén
- Control de concurrencia robusto mediante If-Match y enlaces duros para evitar condiciones de carrera en creación
- Identificación clara de cuatro estados de lectura: live, cached, scope-empty y store-unreachable con códigos de salida distintos
- Soporte nativo para Nix con múltiples clientes (Go predeterminado y Python como oracle) e imágenes de servidor
- No proporciona búsqueda semántica ni embeddings; es solo almacenamiento estructurado sin capacidades de recuperación inteligente
- Los IDs de sesión son datos de correlación públicos que pueden ser nombrados por otros agentes, no secretos
- La ausencia de verbos append-only limita el uso como evidencia forense de autoría en registros críticos
- El cambio de cliente predeterminado a Go puede romper scripts heredados que dependían del cliente Python
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Configurar variables de entorno SUBSYSTEM_STORE_URL y SUBSYSTEM_STORE_TOKEN por instancia personal. Usar `cairn doctor --json` para supervisión continua en procesos supervisores. Construir con Nix para garantizar consistencia entre cliente y código fuente. Considerar el estado store-unreachable (salida 3) como error crítico que requiere reinicio, no como vacío legítimo.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.