Remplacer les pipelines de récupération complexes par des commandes shell git simples pour les agents LLM

D'une pipeline complexe à un simple accès shell
L'équipe avait initialement construit DiffMem, un système de mémoire pour agents IA basé sur git avec l'historique des versions comme contexte. Leur couche de récupération utilisait sentence-transformers pour le scoring de similarité cosinus, rank-bm25 pour la recherche par mots-clés, et une pipeline LLM à deux passes pour affiner les requêtes et synthétiser les résultats. Cela a entraîné une image Docker de 3 Go (à cause des dépendances PyTorch), des taux de timeout de 10% pour les utilisateurs intensifs, et des démarrages à froid qui reconstruisaient un index BM25 en mémoire à chaque fois.
La réalisation : les LLM connaissent déjà git
L'idée est venue en reconnaissant que les commandes Unix sont densément représentées dans les données d'entraînement des LLM à travers des milliards de fichiers README, scripts CI et réponses Stack Overflow. L'équipe a réalisé qu'elle extrayait des informations de git avec son propre code pour les donner à un modèle qui comprend déjà les commandes git.
La solution : une seule fonction outil
Ils ont tout remplacé par un seul outil :
{
"name": "run",
"description": "Exécute une commande en lecture seule dans le dépôt de mémoire",
"parameters": {
"command": "Commande shell (supporte l'enchaînement avec |, &&, ||, ;)"
}
}
Comment fonctionne l'agent
L'agent suit un protocole fixe : lire le manifeste d'entité, exécuter une sonde temporelle sur l'historique des commits, regrouper l'investigation en un seul appel outil, produire un plan de récupération, puis s'arrêter. Il retourne des pointeurs, pas du contenu, gardant le contexte léger.
L'agent lit des signaux légers pendant les tours :
head -30pour la structuregrep -npour les mots-clésgit diff HEAD~3..pour les changements récents
Exemple réel : Trouver des connexions via l'historique des commits
Quand un utilisateur a envoyé un message d'anniversaire mentionnant se sentir isolé, l'agent a exécuté :
git log --format='%h %ad' --date=relative --name-only -15
Cela a révélé que wife.md et company.md avaient changé dans la même session, et qu'un collègue clé était apparu dans 2 des 3 dernières sessions. La recherche par mots-clés (BM25) n'aurait jamais trouvé company.md à partir de "se sentir isolé pour mon anniversaire", mais c'est la connexion temporelle dans l'historique git qui importait.
Au tour 3, l'agent a composé un seul appel outil avec neuf commandes enchaînées par des points-virgules :
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
Résultats
Le résultat final était un plan de récupération JSON avec des diffs git spécifiques, des niveaux de priorité et des estimations de tokens. Cela a permis de supprimer rank-bm25, sentence-transformers, scikit-learn et numpy. L'image Docker a diminué d'environ 3 Go, le serveur démarre plus vite, utilise moins de mémoire, et le taux de timeout de 10% a disparu. Ce qui reste : requests, openai et gitpython.
📖 Read the full source: r/LocalLLaMA
👀 See Also
Claude crée une application d'analyse immobilière en 3 heures avec des données Zillow en direct via clawhub
Un développeur a utilisé Claude avec l'outil clawhub zillow-full pour construire une application d'analyse de cash-flow locatif — récupérant des données en direct de l'API Zillow, prototypant l'interface autour de réponses JSON réelles, et livrant un prototype fonctionnel en un après-midi.

angular-grab : Outil d'extraction de contexte de composants Angular pour agents IA
angular-grab est un outil réservé aux développeurs qui vous permet de pointer sur n'importe quel élément d'interface utilisateur dans un serveur de développement Angular, d'appuyer sur Cmd+C et de copier la pile d'appels complète des composants avec les chemins de fichiers et le HTML dans votre presse-papiers pour coller dans des agents d'IA.

HomeButler : Gestion de laboratoire domestique sans jeton pour les agents OpenClaw
HomeButler est un binaire Go unique qui permet aux agents OpenClaw de gérer l'infrastructure du homelab sans clés API ni jetons. Il s'exécute localement et maintient toutes les opérations sur votre réseau.

MegaClaw : Configuration OpenClaw en conteneur avec Playwright et Homebrew
MegaClaw est une configuration Podman à deux images pour OpenClaw qui résout les problèmes d'installation courants comme les erreurs de permissions et les dépendances manquantes. Il utilise une construction multi-étapes avec Playwright et Homebrew préinstallés, et intègre la configuration utilisateur dans une image d'exécution.