amem

La capa de memoria para herramientas de codificación de IA. Local-primero, semántica, 9 herramientas MCP con consolidación y alcance de proyecto. Funciona con Claude Code, Cursor, Windsurf y cualquier cliente MCP.

Documentación

amem

amem

La capa de memoria para herramientas de IA de codificación.
Dile a tu IA una vez — lo recuerda en todas partes.

npm CI MIT MCP Node 18+


🎯 97.8% R@5⚡ ~14ms p50🛠 33 Herramientas🔒 100% Local
LongMemEval-S, 500qPipeline de recuperación completoKit de herramientas de memoria completoSin necesidad de nube

Inicio rápido · Cómo funciona · Puntos de referencia · Herramientas · Panel · Arquitectura


💡 El problema

Cada herramienta de IA empieza desde cero. Cada sesión. Cada herramienta.

- You: "Don't use 'any' in TypeScript"     → told Claude 3 times. Copilot still doesn't know.
- You: "We chose PostgreSQL over MongoDB"   → explained in Cursor. Claude has no idea.
+ With amem: tell it once, every AI tool remembers — forever.
Verlo en acción
You (in Claude Code):  "Don't use any type in TypeScript"
  └─ amem stores this as a correction (priority 1.0, confidence 100%)

You (switch to Copilot): starts coding
  └─ Copilot already knows — amem feeds it the same correction

You (open Cursor): "What do you remember about TypeScript?"
  └─ Instantly recalls: "Don't use any type" + all related preferences

Sin nube. Sin claves API. Un archivo SQLite. Todo permanece en tu máquina.


🚀 Inicio rápido

Claude Code (recomendado)

/plugin marketplace add amanasmuei/amem
/plugin install amem

GitHub Copilot CLI

copilot plugin marketplace add amanasmuei/amem
copilot plugin install amem
📦 Cursor / Windsurf / Cualquier cliente MCP
npm install -g @aman_asmuei/amem
amem-cli init      # Detects & configures all installed AI tools
amem-cli rules     # Generates extraction rules for proactive memory use

O añádelo a tu configuración de MCP manualmente:

{
  "mcpServers": {
    "amem": {
      "command": "npx",
      "args": ["-y", "@aman_asmuei/amem"]
    }
  }
}

Verifica que funciona:

amem-cli stats     # Should show "0 memories" initially

💬 Dile a tu IA: "Recuerda: usa siempre TypeScript estricto, nunca uses el tipo any"

🔄 Inicia una nueva sesión: "¿Qué recuerdas sobre TypeScript?" — lo recuerda al instante.


🧬 Impulsado por amem-core

amem es el servidor MCP. El motor de recuperación vive en @aman_asmuei/amem-core.

     Claude Code / Copilot / Cursor / any MCP client
                        │
                        │ MCP (stdio)
                        ▼
        ┌──────────────────────────────────┐
        │  @aman_asmuei/amem  (this pkg)   │
        │  33 Tools · 7 Resources · 2 Prompts
        │  CLI · Hooks · Dashboard         │
        └───────────────┬──────────────────┘
                        │ imports
                        ▼
        ┌──────────────────────────────────┐
        │  @aman_asmuei/amem-core          │
        │  Embeddings · HNSW · Recall      │
        │  Knowledge Graph · Reflection    │
        │  97.8% R@5 on LongMemEval-S      │
        └───────────────┬──────────────────┘
                        ▼
              ┌────────────────────┐
              │  SQLite + WAL      │
              │  ~/.amem/memory.db │
              └────────────────────┘
¿Por qué dos paquetes?
PaqueteRolInstalación
@aman_asmuei/amem (este)Servidor MCP + CLI + hooksnpm i -g @aman_asmuei/amem
@aman_asmuei/amem-coreLibrería TS pura, sin dependencias de MCPnpm i @aman_asmuei/amem-core

El mismo motor impulsa amem (servidor MCP), aman-agent (CLI), aman-tg (bot de Telegram) y cualquier aplicación Node a la que le des memoria. Las mejoras de recuperación se distribuyen mediante amem-core. Los cambios de herramientas MCP se distribuyen mediante amem. Versionan de forma independiente.

El titular 97.8% R@5 es la calidad del motor de amem-core (LongMemEval-S, nivel de sesión, 500 preguntas, cero llamadas API) — exactamente lo que obtienes ya sea que lo llames a través de MCP o importes la librería directamente.


⚙️ Cómo funciona

amem captura conocimiento en tres capas — desde completamente automático hasta completamente manual:

CapaCómoQué hace
AutomáticaGanchos de ciclo de vidaCaptura observaciones de herramientas, extrae automáticamente correcciones/decisiones/patrones al final de la sesión
Impulsada por IAReglas de extracciónTu IA llama proactivamente a memory_store cuando la corriges, tomas decisiones o expresas preferencias
ManualLenguaje natural"Recuerda: usamos PostgreSQL" o "Olvida la memoria de Redis"

Tipos de memoria

PrioridadTipoEjemplo
1.0corrección"No hagas mock de la base de datos en pruebas de integración"
0.85decisión"Elegimos Postgres sobre Mongo por ACID"
0.7patrón"Prefiere retornos tempranos sobre anidamiento"
0.7preferencia"Usa pnpm, no npm"
0.5topología"El módulo de autenticación vive en src/auth/"
0.4hecho"API lanzada en enero de 2025"

Las correcciones siempre aparecen primero — son las restricciones duras de tu IA.

🔄 Niveles de memoria y validez temporal

Niveles de memoria

NivelComportamiento
NúcleoSiempre se inyecta al inicio de la sesión (~500 tokens). Tus correcciones más críticas.
TrabajoAlcance de sesión, se muestra automáticamente para la tarea actual.
ArchivoPredeterminado. Buscable pero no se inyecta automáticamente.

Validez temporal

Los recuerdos no son para siempre. Cuando los hechos cambian:

  • Los recuerdos antiguos se expiran (no se eliminan) — se conservan para "¿qué era verdad en marzo?"
  • Las contradicciones se detectan automáticamente — almacenar una nueva decisión expira automáticamente la anterior
  • Consulta cualquier punto en el tiempo con memory_since
🧠 Bucle de memoria auto-evolutiva

Tu memoria no solo almacena — aprende de su propia estructura. Llama a memory_reflect para activar el motor de reflexión:

memory_reflect → Analyzes your entire memory graph
  │
  ├─ Clusters related memories (HNSW neighbor graph)
  ├─ Detects contradictions (negation pairs, numerical, low-overlap)
  ├─ Identifies synthesis candidates
  ├─ Surfaces knowledge gaps (topics with sparse recall)
  └─ Returns a structured report with suggested actions

El bucle de evolución:

  1. Reflexiona — memory_reflect agrupa tus recuerdos y encuentra patrones
  2. Sintetiza — la IA fusiona grupos relacionados en principios de orden superior mediante memory_store
  3. Enlaza — memory_relate conecta las síntesis con los recuerdos fuente (seguimiento mediante linaje de síntesis)
  4. Repite — en cada ciclo, el grafo se vuelve más coherente y abstracto

El sistema avisa automáticamente cuando la reflexión es necesaria (>7 días o >50 nuevos recuerdos desde la última ejecución).

📊 Cómo se ve el informe de reflexión
# Memory Reflection Report
Analyzed 127 memories in 12ms
Health Score: 68/100

## Stats
- Clusters: 8 (avg size: 4.2)
- Clustered: 34 | Orphans: 93
- Contradictions: 2
- Synthesis candidates: 3
- Knowledge gaps: 4

## Contradictions Found
⚠ Opposing language detected (23d apart, 87% similar)
  A: a1b2c3d4 "Always use semicolons in JavaScript..."
  B: e5f6g7h8 "Never use semicolons in JavaScript..."
  → Expire older memory a1b2c3d4 — newer supersedes it

## Synthesis Candidates
### cluster-0 (4 patterns)
  "These 4 related memories form a cluster about 'typescript, types':
  [patterns]:
    - 'Always use strict TypeScript types'
    - 'Prefer strict null checks'
    - 'Use unknown instead of any'
    - 'Enable strictNullChecks in tsconfig'

  Synthesize into a higher-order principle..."

## Knowledge Gaps
- "kubernetes deployment" — asked 3x, avg 25% confidence
- "database migration strategy" — asked 2x, avg 0% confidence

📈 Puntos de referencia

Precisión de recuperación (LongMemEval)

Todos los números provienen de amem-core v0.5.1 — el motor de recuperación que impulsa este servidor MCP. Cero llamadas API, todo local, totalmente reproducible.

LongMemEval-S (nivel de sesión) — métrica principal

MétricaPuntuación
R@195.0%
R@397.0%
R@5🏆 97.8%
R@1099.0%

500 preguntas · solo CPU · cero llamadas API

LongMemEval Oracle (nivel de turno)

MétricaPuntuación
R@166.2%
R@390.8%
R@594.6%
R@1097.5%

479 preguntas puntuables · 301s de ejecución · Node 22

Pipeline: bge-small-en-v1.5 bi-encoder local + ms-marco-MiniLM-L-6-v2 cross-encoder (int8, por lotes, activado por defecto). Consulta los puntos de referencia de amem-core para desgloses completos por tipo, evolución del pipeline y notas honestas.

Por qué esto importa para la cuestión de "reescribirlo en Rust". La cifra de rerank de 10.3ms anterior refleja una aceleración de ~30% sobre la implementación por pares que reemplazó — lograda con ~20 líneas de procesamiento por lotes más cuantización int8, sin reescritura nativa. Los caminos críticos ya eran eficientes; las ganancias restantes vinieron de usarlos con más cuidado. Nos mantenemos en TypeScript.

Latencia de búsqueda

Pipeline de recuperación completo (v0.5.1+)

Etapap50Porcentaje
Embedding (bi-encoder)3.0ms22%
Recuperación (HNSW + multi-estrategia)0.1ms1%
Reordenamiento (cross-encoder int8)10.3ms74%
Total~14ms100%

Solo índice HNSW (búsqueda vectorial)

RecuerdosHNSWFuerza brutaAceleración
1000.05ms0.10ms2x
1,0000.06ms0.50ms8x
5,0000.08ms2.44ms30x
10,0000.08ms5.35ms67x

Medido: promedio de 100 búsquedas, embeddings de 384 dimensiones, resultados top-10.

Sub-0.1ms a cualquier escala — efectivamente O(log n). HNSW es una dependencia opcional; se usa fuerza bruta como respaldo cuando no está disponible.


🛠️ Referencia de herramientas

Memoria principal (7 herramientas)

HerramientaDescripción
memory_storeAlmacena un recuerdo con tipo, etiquetas y confianza. Redacta automáticamente contenido privado y expira contradicciones automáticamente.
memory_recallBúsqueda semántica — modo compacto por defecto (~10x ahorro de tokens). Usa memory_detail para contenido completo.
memory_detailRecupera el contenido completo por ID después de un recuerdo compacto.
memory_contextCarga todo el contexto relevante para un tema, organizado por tipo con presupuesto de tokens.
memory_extractGuarda múltiples recuerdos de la conversación en lote.
memory_forgetElimina por ID o consulta (con confirmación).
memory_injectMuestra correcciones + decisiones + vecinos del grafo antes de comenzar a codificar.
Herramientas de precisión, historial, avanzadas, administración, recordatorios y mantenimiento (26 más)

Precisión e historial (5 herramientas)

HerramientaDescripción
memory_patchEdición quirúrgica a nivel de campo con instantánea automática.
memory_versionsVer el historial completo de ediciones o restaurar cualquier versión.
memory_searchBúsqueda exacta de texto completo mediante FTS5 con modo compacto.
memory_sinceConsulta temporal con rangos en lenguaje natural (7d, 2w, 1h).
memory_relateConstruye un grafo de conocimiento tipado entre recuerdos.

Avanzado (6 herramientas)

HerramientaDescripción
memory_multi_recallBúsqueda multi-estrategia con modo compacto: semántica + FTS5 + grafo + temporal.
memory_tierMueve recuerdos entre niveles: núcleo / trabajo / archivo.
memory_expireMarca como ya no válido — se conserva para el historial, excluido de la recuperación.
memory_summarizeAlmacena un resumen estructurado de sesión con decisiones, correcciones y métricas.
memory_historyVer resúmenes de sesiones anteriores.
memory_reflectMotor de reflexión auto-evolutivo — agrupa recuerdos, detecta contradicciones, identifica candidatos de síntesis y muestra brechas de conocimiento.

Administración y sincronización (4 herramientas)

HerramientaDescripción
memory_doctorEjecuta diagnósticos de salud de solo lectura en la base de datos de amem.
memory_repairRealiza reparaciones seguras y específicas en la base de datos de amem.
memory_configObtiene o establece la configuración de amem con salvaguardas de seguridad.
memory_syncImporta o exporta recuerdos entre amem y otros sistemas (auto-memoria de Claude, instrucciones de Copilot).

Recordatorios (4 herramientas)

HerramientaDescripción
reminder_setCrea un recordatorio con fecha límite y alcance opcionales.
reminder_listLista recordatorios activos (o todos), filtrables por alcance.
reminder_checkMuestra vencidos, de hoy y próximos (7 días).
reminder_completeMarca como completado (admite ID parcial).

Registro y mantenimiento (7 herramientas)

HerramientaDescripción
memory_logAñade turnos de conversación en bruto (sin pérdida, solo añadir).
memory_log_recallBusca o reproduce el registro por sesión, palabra clave o antigüedad.
memory_log_cleanupPoda entradas antiguas con retención configurable.
memory_statsConteos, desglose por tipo, distribución de confianza.
memory_exportExporta como Markdown o JSON.
memory_importImportación masiva desde JSON con deduplicación automática.
memory_consolidateFusiona duplicados, poda obsoletos, promueve frecuentes, decae inactivos.

📖 Guía de uso

Almacenar recuerdos

Lenguaje natural (más fácil)

"Remember: we use PostgreSQL, not MongoDB"
"Store a correction: never use console.log in production"
"Note that the auth module is in src/auth/"

Llamadas explícitas a herramientas

memory_store({
  content: "Never use 'any' — define proper interfaces",
  type: "correction",
  tags: ["typescript"],
  confidence: 1.0
})

Recuperar recuerdos

// Step 1: Compact index — ~50-100 tokens (default)
memory_recall({ query: "auth decisions", limit: 5 })
// -> a1b2c3d4 [decision] Auth service uses JWT tokens... (92%)
// -> e5f6g7h8 [correction] Never store tokens in localStorage... (100%)

// Step 2: Full details only for what you need
memory_detail({ ids: ["a1b2c3d4", "e5f6g7h8"] })
Más opciones de búsqueda
// Multi-strategy: semantic + FTS5 + graph + temporal
memory_multi_recall({
  query: "authentication architecture",
  limit: 10,
  weights: { semantic: 0.4, fts: 0.3, graph: 0.15, temporal: 0.15 }
})

// Exact keyword search (FTS5 syntax)
memory_search({ query: "OAuth PKCE" })
memory_search({ query: '"event sourcing"' })     // phrase match
memory_search({ query: "auth* NOT legacy" })      // boolean

Gestionar recuerdos

Editar, expirar, promover, vincular
// Surgical edit with auto-snapshot for rollback
memory_patch({ id: "a1b2c3d4", field: "content", value: "Updated text", reason: "clarified" })

// View edit history / restore
memory_versions({ memory_id: "a1b2c3d4" })

// Expire (preserve for history, exclude from recall)
memory_expire({ id: "a1b2c3d4", reason: "Migrated to GraphQL" })

// Promote to core tier (always loaded at session start)
memory_tier({ id: "a1b2c3d4", tier: "core" })

// Link related memories (graph builds itself, but you can add manual links)
memory_relate({ action: "relate", from_id: "abc", to_id: "xyz", relation_type: "supports" })

Tipos de relación: supports, contradicts, depends_on, supersedes, related_to, caused_by, implements — o define los tuyos propios.

Recordatorios

Seguimiento de plazos entre sesiones
reminder_set({ content: "Review PR #42", due_at: 1743033600000, scope: "global" })

reminder_check({})
// -> [OVERDUE] Review PR #42
// -> [TODAY] Deploy auth service
// -> [upcoming] Write quarterly report

reminder_complete({ id: "a1b2c3d4" })

Privacidad

Redacción automática
// Private blocks stripped before storage
memory_store({
  content: "DB password is <private>hunter2</private>, connect to prod at db.example.com",
  type: "topology", tags: ["database"]
})
// Stored: "DB password is [REDACTED], connect to prod at db.example.com"

// API keys, tokens, passwords auto-redacted by pattern matching
// Configure patterns in ~/.amem/config.json

⚔️ Comparación honesta: amem vs graphify

Haz clic para expandir — cómo se compara amem con graphify

graphify es la pregunta "¿y qué tal X?" más común cuando la gente descubre amem. Resuelven problemas fundamentalmente diferentes y son genuinamente complementarios.

Qué hace cada herramienta

amemgraphify
En una fraseMemoria persistente entre sesiones de IABase de código → grafo de conocimiento
Pregunta central"¿Qué ha aprendido mi IA sobre mí?""¿Cómo es esta base de código?"
EntradaLenguaje natural (correcciones, decisiones, preferencias)Archivos (código, documentación, PDFs, imágenes, vídeo)
SalidaRecuerdos recuperados ordenados por relevanciaGrafo estructural + informe + HTML interactivo
PersistenciaSiempre — la memoria sobrevive entre sesiones y herramientasInstantánea — graph.json persiste, pero no aprende con el tiempo
Cuándo se ejecutaContinuamente, en cada sesiónBajo demanda (/graphify .) o al hacer commit mediante git hook

Comparación técnica

amemgraphify
RuntimeTypeScript / Node (≥18)Python (≥3.10)
ProtocoloServidor MCP (33 herramientas, 7 recursos)Habilidad de IA (comando de barra) + servidor MCP opcional
AlmacenamientoSQLite + FTS5 + WALGrafo NetworkX → archivo JSON
BúsquedaEmbeddings semánticos + FTS5 + grafo + reordenamientoRecorrido de grafo (BFS/DFS) + búsqueda de nodos
Embeddingsbge-small-en-v1.5 local (384-dim)Ninguno — usa topología de grafo, no similitud vectorial
Comprensión de códigoNinguna — almacena lo que le cuentasProfunda — AST tree-sitter para 25 lenguajes
MultimodalSolo textoCódigo, documentación, PDFs, imágenes, vídeo, audio
LLM requeridoNo (todo local)Sí para documentación/imágenes (el código no requiere LLM gracias a tree-sitter)
Benchmark97.8% R@5 en LongMemEval-SReducción de tokens 71.5x frente a lectura de archivos en bruto
Soporte de herramientas de IAClaude Code, Copilot, Cursor, cualquier cliente MCPClaude Code, Codex, Copilot, Cursor, Gemini, Aider, Kiro, +10 más

Dónde gana cada uno

amem gana en:

  • Recordar tus preferencias, correcciones y decisiones entre proyectos y herramientas
  • Recuperación semántica — encontrar el recuerdo correcto a partir de una consulta vaga (97.8% R@5)
  • Inteligencia temporal — rastrear qué era verdad cuándo, expirando contradicciones automáticamente
  • Auto-evolución — el motor de reflexión agrupa, detecta contradicciones, identifica vacíos
  • Cero dependencia de LLM — todo se ejecuta localmente, sin llamadas a API

graphify gana en:

  • Comprender la estructura del código — grafos de llamadas, importaciones, jerarquías de clases, relaciones entre archivos
  • Ingestión multimodal — introduce código, artículos, capturas de pantalla, vídeos, y los grafica todos
  • Eficiencia de tokens — la compresión 71.5x significa que tu IA lee estructura, no archivos en bruto
  • Amplitud de soporte de lenguajes — 25 lenguajes de programación mediante AST tree-sitter
  • Amplitud de soporte de herramientas de IA — 15+ plataformas con comandos de instalación dedicados

Conclusiones honestas

  1. No compiten. amem recuerda tu conocimiento (decisiones, correcciones, preferencias). graphify mapea la estructura de la base de código (grafos de llamadas, dependencias, arquitectura). Datos diferentes, patrones de acceso diferentes.

  2. Usa ambos si quieres. Ejecuta graphify . para obtener un mapa estructural de tu proyecto. Usa amem para recordar "elegimos esta arquitectura porque X". El grafo le dice a tu IA qué existe. La memoria le dice por qué las cosas son así.

  3. graphify tiene mayor cobertura de plataformas (15+ herramientas de IA). amem tiene integración más profunda donde funciona (protocolo MCP con 33 herramientas, recursos estructurados, prompts).

  4. graphify necesita un LLM para archivos que no son código. amem es completamente local — sin llamadas a API, sin inferencia de modelos más allá del modelo de embeddings local.

  5. La elección real depende de tu punto de dolor. Si tu IA sigue olvidando tus preferencias y decisiones → amem. Si tu IA no puede navegar eficientemente por tu base de código → graphify. Si ambos → usa ambos.


🌐 Compatibilidad de plataformas

CaracterísticaClaude CodeGitHub Copilot CLICursor / Windsurf / Otros
Instalación de plugin con un comandoSíSí--
33 herramientas MCPSíSíSí
Habilidades de IA147--
Hooks de captura automáticaSíSí--
Resumen automático de sesiónSíSí--
Sincronización automática de memoriaSí----
Configuración CLI (amem-cli init)SíSíSí

Claude Code tiene la integración más profunda (plugin + hooks + sincronización automática de memoria). Copilot CLI es un cercano segundo. Otros clientes MCP obtienen el servidor completo de 33 herramientas mediante configuración manual.

Habilidades de IA

Habilidades disponibles por plataforma
Lo que dicesHabilidadClaude CodeCopilot CLI
"Recuerda nunca usar any type"rememberSíSí
"¿Qué recuerdas sobre auth?"recallSíSí
"Carga contexto para esta tarea"contextSíSí
"Muestra estadísticas de memoria"statsSíSí
"Ejecuta memory doctor"doctorSíSí
"Exporta mis recuerdos"exportSíSí
"Lista todas las correcciones"listSíSí
"Sincroniza mi memoria de Claude"syncSí--
"Abre el panel de memoria"dashboardSí--
"Instala hooks"hooksSí--

🔄 Trabajando con la Auto-Memoria de Claude Code

amem complementa la auto-memoria integrada de Claude — no la reemplaza.

Auto-memoria de Claudeamem
CapturaAutomática, cero configuraciónTipada con puntuaciones de confianza
AlmacenamientoArchivo markdown únicoSQLite con búsqueda, grafo, temporal
RecuperaciónArchivo completo cargado en cada sesiónSolo se muestran los recuerdos relevantes
HistorialSobrescrito al actualizarVersionado, validez temporal
BúsquedaNingunaSemántica + FTS5 + grafo + reordenamiento

Recomendado: Mantén ambos activados. Ejecuta amem-cli sync para importar los recuerdos de Claude en amem para acceso unificado y estructurado.

Sincronización Claude → amem
amem-cli sync              # Import all projects
amem-cli sync --dry-run    # Preview what would be imported
amem-cli sync --project myapp  # Import specific project
Tipo de ClaudeTipo de amemConfianza
feedbackcorrection1.0
projectdecision0.85
userpreference0.8
referencetopology0.7
Sincronización amem → Copilot

Exporta los recuerdos de amem a .github/copilot-instructions.md para que Copilot los lea como contexto persistente:

amem-cli sync --to copilot              # Export to current project
amem-cli sync --to copilot --dry-run    # Preview without writing
amem-cli sync --to copilot --project /path/to/repo

Esto genera markdown estructurado agrupado por prioridad:

  1. Correcciones (DEBEN seguirse) — restricciones estrictas
  2. Decisiones — elecciones arquitectónicas
  3. Preferencias — preferencias del usuario
  4. Patrones — convenciones de código
  5. Contexto — topología + hechos

La sección de amem está envuelta en marcadores <!-- amem:start/end --> — el contenido existente que no es de amem en el archivo se conserva.

Sincronización entre herramientas: Las decisiones tomadas en sesiones de Claude informan automáticamente a Copilot:

Claude Code → amem sync → amem DB → amem sync --to copilot → copilot-instructions.md

📊 Panel de control y Grafo de conocimiento

amem-cli dashboard              # Opens at localhost:3333
amem-cli dashboard --port=8080  # Custom port

Panel web con todas las funciones que incluye:

  • 🔍 Explorador de memoria — búsqueda, filtro por tipo/nivel/fuente, acciones en línea (promover, degradar, expirar)
  • 🕸️ Grafo de conocimiento interactivo — zoom, desplazamiento, clic para enfocar con resaltado de vecindario, panel de detalles, búsqueda, aristas direccionales
  • 📈 Analíticas — distribución de confianza, desglose por tipo, línea temporal de sesiones
  • ⏰ Recordatorios — ver y gestionar tareas entre sesiones
  • 📋 Vista previa de Copilot — ver lo que se exportaría a copilot-instructions.md

💻 Referencia CLI

# Setup
amem-cli init                          # Auto-configure AI tools
amem-cli rules                         # Generate extraction rules
amem-cli hooks                         # Install hooks for Claude Code
amem-cli hooks --target copilot        # Install hooks for GitHub Copilot CLI
amem-cli hooks --uninstall             # Remove hooks
amem-cli sync                          # Import Claude auto-memory → amem
amem-cli sync --to copilot             # Export amem → copilot-instructions.md
amem-cli doctor                        # Health diagnostics
amem-cli repair                        # Repair corrupted database from backups

# Dashboard
amem-cli dashboard                     # Web dashboard (localhost:3333)

# Memory operations
amem-cli recall "authentication"       # Semantic search
amem-cli stats                         # Statistics
amem-cli list --type correction        # List by type
amem-cli export --file memories.md     # Export to file
amem-cli forget abc12345               # Delete by short ID
amem-cli reset --confirm               # Wipe all data

🏗 Arquitectura

                        Your AI Tool
           Claude Code / Copilot CLI / any MCP client
                    │                │
                    │ MCP (stdio)    │ Lifecycle Hooks
                    ▼                ▼
          ┌─────────────────────────────────┐
          │   @aman_asmuei/amem             │  ← this package
          │                                 │
          │  33 Tools · 7 Resources · 2 Prompts
          │  Slash commands · CLI · Hooks   │
          │  Config: ~/.amem/config.json    │
          └────────────────┬────────────────┘
                           │ imports
                           ▼
          ┌─────────────────────────────────┐
          │   @aman_asmuei/amem-core        │  ← the engine
          │                                 │
          │  Multi-Strategy Retrieval       │
          │  [HNSW] + [FTS5] + [Graph] + [Temporal]
          │       + query expansion         │
          │       + cross-encoder reranker   │
          │                                 │
          │  Self-Evolving Reflection       │
          │  [Clustering] + [Contradictions]│
          │  + [Synthesis] + [Gap Detection]│
          │                                 │
          │  Embeddings: bge-small-en-v1.5  │
          │  Reranker: ms-marco-MiniLM int8 │
          │  97.8% R@5 on LongMemEval-S     │
          └────────────────┬────────────────┘
                           │
                           ▼
          ┌─────────────────────────────────┐
          │   SQLite + WAL + FTS5           │
          │   ~/.amem/memory.db             │
          │                                 │
          │   memories       (tiered)       │
          │   conversation_log (raw)        │
          │   memory_versions (history)     │
          │   memory_relations (graph)      │
          │   synthesis_lineage             │
          │   knowledge_gaps                │
          │   session_summaries             │
          │   reminders                     │
          └─────────────────────────────────┘

El servidor MCP amem es un envoltorio delgado alrededor de amem-core. El motor de recuperación, los embeddings, el grafo de conocimiento, la reflexión — todo vive en amem-core y versiona de forma independiente. ¿Error en el cableado MCP? Republica amem. ¿Mejora de recuperación? Republica amem-core. Sin acoplamiento.

Fórmula de clasificación

score = relevance x 0.45 + recency x 0.2 + confidence x 0.2 + importance x 0.15
FactorCómo funciona
RelevanciaSimilitud coseno mediante índice HNSW; respaldo de palabras clave con expansión de consulta
ActualidadDecaimiento exponencial (0.995^hours)
ConfianzaReforzada por confirmación repetida (0-1)
ImportanciaBasada en tipo: correcciones 1.0 ... hechos 0.4

La puntuación aditiva asegura que ningún factor bajo por sí solo elimine la clasificación.


⚙️ Configuración

Variables de entorno
VariablePredeterminadoDescripción
AMEM_DIR~/.amemDirectorio de almacenamiento
AMEM_DB~/.amem/memory.dbRuta de la base de datos
AMEM_PROJECT(auto desde git)Anulación del ámbito del proyecto
Archivo de configuración (~/.amem/config.json)

Se crea automáticamente con valores predeterminados:

{
  "retrieval": {
    "semanticWeight": 0.4,
    "ftsWeight": 0.3,
    "graphWeight": 0.15,
    "temporalWeight": 0.15,
    "rerankerEnabled": true
  },
  "privacy": {
    "enablePrivateTags": true,
    "redactPatterns": ["..."]
  },
  "tiers": {
    "coreMaxTokens": 500,
    "workingMaxTokens": 2000
  },
  "hooks": {
    "enabled": true,
    "captureToolUse": true,
    "captureSessionEnd": true
  }
}
📋 Historial de versiones

v0.23.0 — Panel de Grafo de Conocimiento Interactivo

Explorador de grafos a ancho completo con zoom/desplazamiento, clic para enfocar con resaltado de vecindario, panel de detalles con navegación de relaciones, búsqueda y filtro, aristas direccionales, diseño dirigido por fuerzas. Herramientas de administración (doctor, reparación, configuración, sincronización). 255 pruebas en 18 suites.

v0.19.0 — Bucle de Memoria Auto-Evolutiva

Motor de reflexión con agrupación basada en HNSW, detección de contradicciones en 3 capas (negación + numérica + baja superposición), candidatos de síntesis con seguimiento de linaje, detección de vacíos de conocimiento, puntuación de utilidad, aviso de activación automática en memory_inject. Nuevas tablas de BD: synthesis_lineage, knowledge_gaps, reflection_meta. Migración v5.

v0.18.0 — Divulgación Progresiva y Escala

Índice vectorial HNSW (67x más rápido a 10k), modo compacto predeterminado en recuperación/búsqueda, CLI de reparación de BD, seguridad de acceso concurrente, extractor de conversaciones heurístico, extracción automática al final de sesión.

v0.13.0 — Recuperación de Clase Mundial

Embeddings bge-small-en-v1.5, puntuación aditiva, expansión de consulta, grafo de conocimiento auto-relacionado, inyección consciente del grafo, amem doctor, benchmarks CI.

v0.9.x — Inteligencia Temporal

Validez temporal, expiración automática de contradicciones, recuperación multi-estrategia, reordenamiento cross-encoder, niveles de memoria, etiquetas de privacidad, hooks de ciclo de vida, resúmenes de sesión, panel de control, sistema de configuración.

v0.7.0 — v0.8.0

Importación/exportación, decaimiento de confianza, caché de embeddings, seguridad multi-proceso, CLI de auto-configuración, panel de control.

v0.1.0 — v0.5.x

Almacenamiento/recuperación central, embeddings locales, SQLite + WAL, consolidación, ámbito de proyecto, recordatorios, registro de conversaciones, grafo de conocimiento, FTS5, divulgación progresiva.


🧰 Stack tecnológico

CapaTecnología
ProtocoloMCP SDK ^1.25
LenguajeTypeScript 5.6+, modo estricto
Base de datosSQLite + WAL + FTS5
EmbeddingsHuggingFace bge-small-en-v1.5 (local, 80MB) + índice vectorial HNSW
Rerankingms-marco-MiniLM-L-6-v2 (activado por defecto, int8, por lotes, local)
ValidaciónZod 3.25+ con esquemas .strict()
PruebasVitest — 281 pruebas en 19 suites + benchmarks de recall
CI/CDGitHub Actions, publicación npm en release

🤝 Contribuciones

git clone https://github.com/amanasmuei/amem.git
cd amem && npm install
npm run build   # zero TS errors
npm test        # 281 tests pass

Los PRs deben pasar CI antes de fusionarse. Consulta Issues para tareas abiertas.



Hecho con ❤️ en 🇲🇾 Malasia por Aman Asmuei

GitHub npm Issues

Licencia MIT · Da una estrella ⭐ si amem salva a tu IA de la amnesia