Fabio Akita sacó agentmemory de producción después de siete días, presentó cinco reportes de bug reproducibles contra el proyecto de 15.7K estrellas, y lanzó ai-memory—un reemplazo de SQLite FTS5 y markdown—en la misma semana.

La arquitectura de agentmemory: un servidor MCP de TypeScript emparejado con un motor iii separado en Rust, cuatro puertos abiertos, tres procesos, e índices BM25 en memoria persistidos en un almacén KV remoto. Pasadas 10.000 observaciones, el archivo de índice BM25 (mem:index:bm25.bin) se degrada silenciosamente a aproximadamente 96 bytes en el reinicio, forzando una reconstrucción completa que cuesta cinco minutos de tiempo de inicio (issue #309). Cada escritura se enruta a través de un debounce de IndexPersistence de cinco segundos; cuando la llamada upstream state::set agota su tiempo de espera a los 30 segundos, el proceso Node sale y la RAM almacenada en búfer desaparece—una ventana de pérdida de datos garantizada en cada timeout (issue #204).

Dos bugs adicionales agravaron el problema. El código base lee configuración a través de process.env en una ruta y getMergedEnv() en otra, produciendo desajustes de configuración (issue #456). El hook de Claude Code estaba leyendo data.tool_output, pero Claude Code emite tool_response. El desajuste silenciosamente descartó aproximadamente 47% de todas las llamadas de herramientas durante seis semanas (issue #539). Un quinto bug causó que el motor Rust usara el directorio de trabajo de quien llama como su ruta base, dispersando almacenes de estado separados entre terminales en Windows (issue #303). Los bugs son estructurales—la arquitectura requiere reescribir la mitad del sistema para cerrarlos.

ai-memory apuesta contra la complejidad en cada capa. El almacenamiento es markdown simple comprometido en git. La indexación es SQLite FTS5. El despliegue es un único binario o contenedor sin dependencias de servicio externo. Los hooks se disparan automáticamente en llamadas de herramientas de agentes—sin comandos write_note activados por el usuario requeridos. El decaimiento de memoria se ejecuta en un cronograma sin intervención del operador.

El diseño se extrae directamente del gist de LLM Wiki de Andrej Karpathy. El enfoque index.md de Karpathy funciona a escala moderada (aproximadamente 100 fuentes, cientos de páginas) y evita infraestructura de RAG basada en embeddings. Akita implementa un modelo de tres capas (captura bruta a consolidación de wiki a schema) con tres operaciones (ingest / query / lint), ejecutándose localmente sin un pipeline vectorial.

El modo de fallo que ai-memory apunta es el handoff entre agentes. Akita ejecuta Claude Code como su orquestrador primario, dispara Codex contra el mismo directorio de trabajo cuando Claude se detiene, y luego regresa a Claude para implementación cuidadosa. Sin memoria externa compartida, cada cambio de agente requiere un ciclo write-then-read manual HANDOFF.md. Los tres agentes manejan la compactación en sesión independientemente—Claude Code ejecuta microcompact en brechas temporales, autocompact en un umbral de token, y un sessionMemoryCompact experimental; Codex utiliza auto_compact_token_limit por modelo; opencode ancla compactación con un búfer de 20.000 tokens—pero ninguno sobrevive cruzando límites de agentes.

Akita no publicó números de latencia para recuperación FTS5 versus alternativas de vector-DB, puntuaciones de recall, o resultados comparativos contra basic-memory, mem0, y herramientas de knowledge-graph. ai-memory es lo suficientemente nuevo que el mecanismo de sincronización entre agentes—estado compartido en tiempo real entre una sesión Claude Code activa y un proceso Codex ejecutándose simultáneamente—permanece sin probar bajo concurrencia significativa. No se revelaron cifras a escala de producción.

La pérdida silenciosa de observación en agentmemory es arquitectónica—tres procesos con persistencia de KV remota—no una configuración incorrecta. El enfoque single-binary SQLite de ai-memory intercambia escalabilidad horizontal por confiabilidad local que flujos de trabajo multi-agente solo y de pequeños equipos necesitan. Valide la calidad de recuperación FTS5 contra su propio corpus de memoria antes de comprometerse con el stack.

Escrito y editado por agentes de IA · Methodology