Reemplazando complejas tuberías de recuperación con simples comandos de shell de git para agentes LLM.

✍️ OpenClawRadar📅 Publicado: 20 de marzo de 2026🔗 Source
Reemplazando complejas tuberías de recuperación con simples comandos de shell de git para agentes LLM.
Ad

De tubería compleja a acceso simple a shell

El equipo originalmente construyó DiffMem, un sistema de memoria respaldado por git para agentes de IA con historial de versiones como contexto. Su capa de recuperación usaba sentence-transformers para puntuación de similitud coseno, rank-bm25 para búsqueda por palabras clave y una tubería de LLM de dos pasos para destilar consultas y sintetizar resultados. Esto resultó en una imagen Docker de 3 GB (debido a dependencias de PyTorch), tasas de tiempo de espera del 10% en usuarios intensivos y arranques en frío que reconstruían un índice BM25 en memoria cada vez.

La realización: los LLM ya conocen git

La idea surgió al reconocer que los comandos Unix están densamente representados en los datos de entrenamiento de LLM a través de miles de millones de archivos README, scripts de CI y respuestas de Stack Overflow. El equipo se dio cuenta de que estaban extrayendo información de git con su propio código y alimentándola a un modelo que ya entiende comandos git.

La solución: Una función de herramienta

Reemplazaron todo con una sola herramienta:

{
  "name": "run",
  "description": "Ejecuta un comando de solo lectura en el repositorio de memoria",
  "parameters": {
    "command": "Comando de shell (admite encadenamiento con |, &&, ||, ;)"
  }
}

Cómo funciona el agente

El agente sigue un protocolo fijo: leer el manifiesto de entidades, ejecutar una sonda temporal contra el registro de commits, agrupar la investigación en una sola llamada de herramienta, generar un plan de recuperación y luego detenerse. Devuelve punteros, no contenido, manteniendo el contexto ligero.

El agente lee señales ligeras durante los turnos:

  • head -30 para estructura
  • grep -n para palabras clave
  • git diff HEAD~3.. para cambios recientes
Ad

Ejemplo real: Encontrar conexiones a través del historial de commits

Cuando un usuario envió un mensaje de cumpleaños mencionando sentirse aislado, el agente ejecutó:

git log --format='%h %ad' --date=relative --name-only -15

Esto reveló que wife.md y company.md cambiaron en la misma sesión, y un colega clave apareció en 2 de las últimas 3 sesiones. La búsqueda por palabras clave (BM25) nunca habría encontrado company.md a partir de "sentirse aislado en mi cumpleaños", pero la conexión temporal en el historial de git fue lo que importó.

En el turno 3, el agente compuso una sola llamada de herramienta con nueve comandos encadenados con punto y coma:

git diff HEAD~2.. -- memories/people/wife.md; git log --stat -5 -- memories/people/wife.md; head -30 memories/people/wife.md; grep -n "birthday|surgery|stress" memories/people/wife.md; tail -50 timeline/2026-03.md; git diff HEAD~3.. -- timeline/2026-03.md; grep -n "project|deliverable" memories/contexts/company.md; git diff HEAD~2.. -- memories/contexts/company.md; git diff HEAD~1.. -- memories/people/colleague.md

Resultados

La salida final fue un plan de recuperación JSON con diffs de git específicos, niveles de prioridad y estimaciones de tokens. Esto permitió eliminar rank-bm25, sentence-transformers, scikit-learn y numpy. La imagen Docker se redujo ~3 GB, el servidor arranca más rápido, usa menos memoria y la tasa de tiempo de espera del 10% desapareció. Lo que queda: requests, openai y gitpython.

📖 Read the full source: r/LocalLLaMA

Ad

👀 Ver también