Si usas Claude Code, Cursor, Copilot o cualquier agente de IA para programar, seguro te ha pasado esto:
Le explicas a tu agente que en tu proyecto siempre usas Zustand para el estado, que los endpoints van en /api/v1/, que nunca uses any en TypeScript... y a los 20 minutos te genera código con Redux, rutas en /api/ y un any que te hace llorar.
El agente olvidó todo.
Y no es culpa suya. Estos agentes no tienen memoria persistente. Cada sesión es borrón y cuenta nueva.
El problema real
Cuando trabajas con agentes de IA en proyectos reales, te encuentras con esto:
Repetir las mismas instrucciones — "Usa Bun, no Node", "Los tests van con Vitest", "El formato de commits es conventional commits"... una y otra vez.
Decisiones que se pierden — Ayer decidiste usar un patrón específico después de 30 minutos de análisis. Hoy el agente no tiene ni idea y te propone algo completamente diferente.
Errores que se repiten — El agente intentó un approach que falló. ¿Crees que lo recuerda mañana? Spoiler: no.
Contexto del proyecto inexistente — El agente no sabe que tu función
calculateTax()tiene un bug conocido, o que el módulo de pagos está deprecado.
Es como trabajar con un desarrollador que tiene amnesia cada mañana.
"¿Y si uso un archivo CLAUDE.md con todo el contexto?"
Es la solución más común. Muchos creamos archivos .md con instrucciones del proyecto:
# CLAUDE.md
- Usar Bun en lugar de Node
- Los tests van con bun test
- Siempre usar TypeScript strict
- La base de datos es SQLite
- Los endpoints siguen el patrón /api/v1/...
El problema: no escala.
Los modelos de IA tienen un límite de contexto (tokens). Cada vez que inicias una sesión, ese archivo .md consume parte de ese límite. Y aquí viene el problema:
Proyectos pequeños: Funciona bien. Tu
CLAUDE.mdtiene 500 tokens, el agente tiene espacio de sobra.Proyectos medianos: Empiezas a añadir más reglas, decisiones arquitectónicas, patrones... El archivo crece a 5,000 tokens.
Proyectos grandes: Tu contexto del proyecto compite con el código que necesitas que el agente analice. Tienes que elegir: ¿contexto del proyecto o código relevante?
┌─────────────────────────────────────┐
│ LÍMITE DE CONTEXTO │
├─────────────────────────────────────┤
│ CLAUDE.md (crece sin control) │ ← Compite por espacio
├─────────────────────────────────────┤
│ Código actual del proyecto │ ← Lo que realmente importa
├─────────────────────────────────────┤
│ Tu conversación con el agente │
└─────────────────────────────────────┘
Además, un archivo .md estático tiene otros problemas:
- No es selectivo — Carga TODO aunque solo necesites una parte
- No aprende — No puede registrar qué funcionó y qué no
- No evoluciona — Tienes que actualizarlo manualmente
- Sin búsqueda semántica — Si buscas "manejo de estado", no encuentra "Zustand para store global"
Lo que necesitas es memoria dinámica que:
- Cargue solo lo relevante para la tarea actual
- Aprenda de errores pasados
- Se actualice automáticamente
- Entienda el contexto semántico
La solución: darle memoria al agente
Creé code-recall, un servidor MCP (Model Context Protocol) que actúa como la memoria persistente de tu agente de IA.
¿Qué es MCP? Es un protocolo que permite a los agentes de IA conectarse con herramientas externas. Claude Code, Cursor y otros ya lo soportan nativamente.
¿Qué puede recordar?
Decisiones de arquitectura:
"Decidimos usar SQLite en lugar de PostgreSQL porque el proyecto es local-first y no necesita un servidor de base de datos."
Patrones del proyecto:
"En este proyecto, todos los componentes de UI van en
src/components/ui/y siguen el patrón de composición."
Warnings importantes:
"NUNCA modificar la función
legacyAuth()— está deprecada pero 15 servicios dependen de ella."
Aprendizajes de errores:
"Intentamos usar
fs.watchpara hot-reload pero fallaba en macOS. La solución fue usarchokidar."
Reglas automáticas (Guardrails)
Además de memorias, puedes definir reglas que el agente debe seguir:
Trigger: "creando un endpoint de API"
Must do:
- Agregar validación de input con Zod
- Escribir tests de integración
- Documentar en OpenAPI
Must NOT:
- Usar `any` en los tipos
- Retornar errores como strings
Ask first:
- ¿Requiere autenticación?
Cada vez que el agente detecta que está creando un endpoint, automáticamente recuerda estas reglas.
Cómo funciona por dentro
code-recall usa búsqueda semántica, no keywords. Esto significa que si guardaste:
"Usar Zustand para manejo de estado global"
Y luego preguntas sobre "state management" o "dónde guardar datos de la sesión", el sistema entiende que es relevante y lo recupera.
La arquitectura:
- SQLite — Base de datos local, sin servidores externos
- sqlite-vec — Extensión para búsqueda vectorial
- Embeddings locales — Modelo MiniLM que corre 100% en tu máquina (sin enviar datos a ningún lado)
- Bun — Runtime ultrarrápido
Todo corre localmente. Tus memorias no salen de tu computadora.
Instalación en 2 minutos
Requisitos
-
Bun instalado (
curl -fsSL https://bun.sh/install | bash)
Instalar
bun install -g code-recall
Configurar con Claude Code
Añade esto a tu configuración de MCP (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"code-recall": {
"command": "bunx",
"args": ["code-recall"]
}
}
}
Reinicia Claude Code y listo.
Uso en la práctica
Una vez configurado, el agente tiene acceso a estas herramientas:
Guardar una decisión
"Guarda que decidimos usar React Query para data fetching
porque necesitamos cache automático y revalidación"
El agente llama a store_observation internamente.
Buscar contexto
"¿Qué decisiones hemos tomado sobre manejo de estado?"
El agente busca semánticamente en tus memorias.
Crear una regla
"Crea una regla: cuando modifique componentes de UI,
siempre debo verificar accesibilidad con jest-axe"
Verificar reglas antes de actuar
"Voy a crear un nuevo hook de React,
¿hay alguna regla que deba seguir?"
Analizar estructura de código
"Analiza la estructura de src/services/auth.ts"
Extrae clases, funciones, interfaces y tipos del archivo.
Automatizando todo con Skills
Usar las herramientas manualmente está bien, pero ¿no sería mejor que el agente automáticamente consultara la memoria antes de hacer cambios?
Para eso creé una Skill de Claude Code. Las Skills son instrucciones que enseñan a Claude cuándo y cómo usar herramientas específicas.
Instalación de la Skill
# Desde la raíz de tu proyecto
mkdir -p .claude/skills/code-recall
curl -o .claude/skills/code-recall/SKILL.md \
https://raw.githubusercontent.com/AbianS/code-recall/main/.claude/skills/code-recall/SKILL.md
¿Qué hace la Skill?
Una vez instalada, Claude automáticamente:
Al inicio de sesión:
→ Llama a get_briefing() para cargar el contexto del proyecto
→ Ve estadísticas, warnings activos y errores pasados
Antes de hacer cambios:
→ Ejecuta search_memory() para buscar decisiones relacionadas
→ Ejecuta check_rules() para verificar qué reglas aplican
Después de tomar decisiones:
→ Guarda la decisión con store_observation()
→ Incluye el razonamiento para referencia futura
Después de implementar:
→ Registra si funcionó o falló con record_outcome()
→ Los fallos se priorizan en búsquedas futuras
Ejemplo real
Sin la Skill, tendrías que decir:
"Antes de crear este endpoint, busca si hay decisiones sobre autenticación y verifica las reglas de APIs"
Con la Skill instalada, simplemente dices:
"Crea un endpoint para obtener el perfil del usuario"
Y Claude automáticamente:
- Busca decisiones pasadas sobre endpoints y autenticación
- Verifica las reglas que aplican a "crear endpoint"
- Te muestra: "Encontré que usamos JWT y hay una regla que requiere rate limiting"
- Implementa siguiendo el contexto
- Guarda la decisión si es relevante
Es la diferencia entre tener un asistente al que debes recordarle todo vs. uno que ya conoce el proyecto.
El flujo ideal
- Inicio del proyecto: Defines las reglas base y decisiones de arquitectura
- Durante el desarrollo: El agente consulta automáticamente antes de generar código
- Cuando algo falla: Guardas el aprendizaje para no repetir el error
- Sesiones futuras: Todo el contexto persiste, sin repetir explicaciones
Resultados reales
Desde que uso code-recall en mis proyectos:
- Cero repeticiones de instrucciones básicas del proyecto
- Consistencia en el código generado (mismo estilo, mismos patrones)
- Menos errores porque el agente recuerda qué no funcionó antes
- Onboarding más rápido cuando vuelvo a un proyecto después de semanas
Open Source
code-recall es completamente open source y gratuito.
- GitHub: github.com/AbianS/code-recall
-
npm:
bun install -g code-recall
Si te parece útil, una estrella en GitHub ayuda mucho.
TL;DR
Los agentes de IA olvidan todo entre sesiones. code-recall es un servidor MCP que les da memoria persistente:
- Guarda decisiones, patrones, warnings y aprendizajes
- Define reglas que el agente debe seguir automáticamente
- Búsqueda semántica (entiende contexto, no solo keywords)
- 100% local, tus datos no salen de tu máquina
- Instalación en 2 minutos
bun install -g code-recall
Dale memoria a tu agente. Tu yo del futuro te lo agradecerá.
Top comments (0)