Skip to main content

Indexador de contexto enriquecido para optimización de RAG en LLMs con soporte Agentic Scaffolding, Auto-Sync, Trazabilidad y Persistencia tmux

Project description

RAG Context Indexer

Indexador de contexto enriquecido para optimización de RAG en LLMs. Motor agnóstico que inyecta metadatos semánticos en el código fuente y genera un rag-indexer.json para que los LLMs entiendan arquitecturas complejas ahorrando millones de tokens.

Instalación

pip install rag-context-indexer

Uso

# En la raíz de tu proyecto:

# 1. Scaffold: inyecta bloques @RAG_CONTEXT vacíos + genera .ai/prompts/
rag-indexer prepare

# 2. Instalar el pre-commit hook (una sola vez)
rag-indexer init

# 3. Ejecutar indexación manual (requiere API key)
rag-indexer run

Configuración

Crea un archivo .env en la raíz de tu proyecto:

# LLM activo: openai | anthropic | gemini | deepseek
ACTIVE_LLM=openai

# API Keys (solo la del LLM activo es necesaria)
OPENAI_API_KEY=sk-...
ANTHROPIC_API_KEY=sk-ant-...
GEMINI_API_KEY=AIza...
DEEPSEEK_API_KEY=sk-...

# Opcional: usar modelos de razonamiento pesados
USE_CODE_MODEL=false

Modelos soportados

LLM Tier Default Tier Code
OpenAI gpt-4o-mini gpt-4o
Anthropic claude-3-haiku claude-3-5-sonnet-latest
Gemini gemini-2.5-flash gemini-2.5-pro
DeepSeek deepseek-chat deepseek-coder

Plantilla JSON inyectada por archivo

{
  "archivo": "ruta/relativa/al/archivo.ext",
  "lineas": 0,
  "tokens_estimados": 0,
  "hash_contenido": "sha256_del_codigo_limpio",
  "creacion": "YYYY-MM-DD",
  "modificacion": "YYYY-MM-DD",
  "tags": ["dependencia1", "exportacion_principal"],
  "descripcion_corta": "Máx 50 chars.",
  "descripcion_larga": "100-500 chars, técnico."
}

Plantillas generadas por rag-indexer prepare

Además de los bloques @RAG_CONTEXT en cada archivo, prepare genera en .ai/prompts/:

  • 01_buenas_practicas.md — Constitución de ingeniería: Conventional Commits, Clean Code, seguridad, planificación, protocolo de confirmación con 3 banderas (RESUMEN / TECNICA / RESUMDA)
  • 02_menu_sesion.md — Menú de 15 opciones para gestionar sesiones con la IA (solo se crea si no existe, para que puedas personalizarlo)

Convención de commits enriquecida

Para máxima trazabilidad, los commits pueden incluir un JSON body con campos opcionales:

git commit -m "$(cat <<'EOF'
fix(modulo): descripción del fix

{
  "resuelve": "Descripción del bug cerrado",
  "antes": "Comportamiento anterior (síntoma visible)",
  "deuda_tecnica": "Limitación pendiente (si aplica)"
}
EOF
)"

Estos campos son parseados automáticamente por rag-indexer trace (v2.0.0, próximamente).

Sistema de Trazabilidad (rag-indexer trace)

Vincula cada commit con la decisión técnica original que lo causó. Ideal para debugging: dado un bug en la línea N de un archivo, encuentra exactamente qué interacción con la IA generó ese cambio y por qué.

# 1. Inicializar (una sola vez por proyecto)
rag-indexer trace-init

# 2. A partir de aquí, cada `git commit` actualiza el contexto automáticamente

# 3. Procesar historial existente
rag-indexer trace-backfill

# 4. Query de trazabilidad manual
git log -L 42,42:src/mi_archivo.py --pretty="%h %s"
grep -r "HASH_ENCONTRADO" .ai/contexto/

Genera en .ai/contexto/:

  • contexto_activo.json — últimas 25 interacciones con commits y decisiones técnicas
  • contexto_resumen.json — índice de bloques históricos
  • archivo/contexto_NNN.json — bloques archivados (25 interacciones c/u)

Auto-detección de sesiones: detecta automáticamente el directorio de sesiones de Claude Code (~/.claude/projects/{slug}/). Para otras IAs, establece RAG_TRACE_SESSIONS_DIR=/ruta/manual en .env.

Persistencia de sesión (rag-indexer tmux-*)

Mantiene la sesión de tu AI CLI activa aunque se caiga la terminal o se corte la conexión SSH. Ahorra tokens al no tener que re-explicar el contexto a la IA en cada reconexión.

# 1. Configurar e inicializar (detecta/instala tmux automáticamente)
rag-indexer tmux-init

# 2. Conectar o reconectar a la sesión del proyecto
rag-indexer tmux-attach

# 3. Ver estado de la sesión actual
rag-indexer tmux-status

# 4. Listar todas las sesiones rag-indexer activas
rag-indexer tmux-list

# 5. Eliminar la sesión del proyecto
rag-indexer tmux-del-session

Las sesiones se nombran {directorio}___rag-indexer (ej. mi-proyecto___rag-indexer) y tienen dos ventanas predefinidas:

  • [AI] — lanza tu AI CLI automáticamente (RAG_AI_CMD=claude por defecto)
  • [Shell] — terminal bash limpia para git, logs y comandos

Variables .env:

RAG_TMUX_ENABLED=true
RAG_AI_CMD=claude          # claude | cursor | aider | cualquier CLI
RAG_TMUX_SESSION=mi-proyecto___rag-indexer   # auto-generado, sobreescribible

⚠️ Las sesiones tmux no persisten reboots. Tras reiniciar el servidor, ejecuta rag-indexer tmux-attach para recrear la sesión.

Gestores de paquetes soportados para instalación automática: apt, apt-get, dnf, yum, pacman, brew.

Principios de diseño

  • Idempotencia: el hash SHA256 del código limpio evita llamadas innecesarias a la API
  • Anti vendor lock-in: sin SDKs de terceros, solo requests vía REST
  • Control de costos: variable USE_CODE_MODEL alterna entre tiers de modelos
  • Contexto de ejecución: siempre escanea os.getcwd(), no la ubicación del script

Licencia

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rag_context_indexer-1.11.1.tar.gz (31.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rag_context_indexer-1.11.1-py3-none-any.whl (36.7 kB view details)

Uploaded Python 3

File details

Details for the file rag_context_indexer-1.11.1.tar.gz.

File metadata

  • Download URL: rag_context_indexer-1.11.1.tar.gz
  • Upload date:
  • Size: 31.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for rag_context_indexer-1.11.1.tar.gz
Algorithm Hash digest
SHA256 f6a40021ceafac21b180e4a871234c8d51be960922005a54c26fa3c4f70798df
MD5 a22815d6adb24c3e6d81477790c18e19
BLAKE2b-256 9ae2fa418e8252664a3b535bddc41c220ec637829a5173add717d6d5c0a95dc4

See more details on using hashes here.

File details

Details for the file rag_context_indexer-1.11.1-py3-none-any.whl.

File metadata

File hashes

Hashes for rag_context_indexer-1.11.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ecffca43909090a0e4e599467c6408eef8d3ad9aed7a2b943eda4d4d5234fdda
MD5 a055b30fdafd70ca6b93c04cae4eb67e
BLAKE2b-256 4e215e47a8c2c951b0d2cacd84bf54d8010e0c1a458e88367189b030b9610370

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page