Utiliser des LLM pour coder est devenu standard, mais envoyer du code propriétaire sur des API cloud soulève des problèmes de sécurité et de confidentialité évidents. Pour éviter toute fuite de données, la solution est de faire tourner l'inférence en local.
Ce projet, Pi Coding Agent + Llama.cpp Stack, propose un environnement de développement 100% conteneurisé pour faire tourner un agent de code de manière autonome.
Architecture
L'environnement tourne sous Docker. Il se compose de deux briques :
- Pi Coding Agent : L'agent interactif. Il analyse les prompts, lit les fichiers de votre projet et génère les modifications.
- Llama.cpp : Le backend d'inférence, optimisé pour exécuter des modèles GGUF sur du matériel grand public.
Caractéristiques techniques
- Zéro fuite de données : Aucun appel réseau vers l'extérieur. Le code reste sur la machine, ce qui rend le setup compatible avec des environnements d'entreprise stricts ou hors ligne (air-gapped).
- Support CPU & GPU : L'inférence tourne sur CPU classique, mais gère nativement l'accélération matérielle si vous avez un GPU NVIDIA (via le NVIDIA Container Toolkit).
- Modèle Qwen 3.5 : La stack utilise par défaut les modèles Qwen 3.5 d'Alibaba. La quantification
UD-Q4_K_XLest privilégiée pour offrir le meilleur ratio entre la vitesse d'inférence et la précision du code généré.
Déploiement
L'orchestration des conteneurs est gérée via un Makefile.
Initialiser la configuration :
cp .env.example .env
Build et lancement du serveur Llama.cpp (exemple avec accélération GPU) :
make build MODE=gpu
make start MODE=gpu
Ouvrir le terminal interactif de l'agent :
make agent MODE=gpu
Structure des volumes
Les données persistent entre les redémarrages via des volumes Docker locaux :
workspace/: Le point de montage contenant votre code source pour que l'agent puisse y accéder.models/: Le répertoire de cache des modèles GGUF (évite de retélécharger les poids depuis Hugging Face).agent_data/: Le stockage de l'état de l'agent et de l'historique des conversations.
Dépôt et documentation : 👉 github.com/opensecurity/code-offline