Modèles de Conception CLI pour Agents IA : Idées Reçues et Approches Pratiques

Clarification sur le protocole d'interface CLI
La plus grande idée fausse de la partie 1 était que "CLI" signifiait donner un terminal Linux à un LLM. CLI est en réalité un protocole d'interface : commande textuelle en entrée → résultat textuel en sortie. L'implémentation peut se faire de deux manières :
- En tant que binaire ou script dans le PATH du shell — devient un outil CLI qui s'exécute dans un véritable shell
- En tant qu'analyseur de commande dans votre code — lorsque le LLM génère
run(command="weather --city Tokyo"), vous analysez la chaîne et l'exécutez directement dans votre code d'application sans shell impliqué
L'essentiel est de faire en sorte que le LLM ait l'impression d'utiliser un CLI. Dans le système de l'auteur, la plupart des commandes ne touchent jamais le système d'exploitation — ce sont des fonctions Go distribuées par un routeur de commandes. Seules les commandes qui nécessitent véritablement un système d'exploitation réel (exécution de scripts, installation de paquets) vont vers une micro-machine virtuelle isolée. L'agent ne sait pas et ne se soucie pas de la couche qui traite sa commande.
Principes de conception CLI adaptés aux agents
Deux philosophies fondamentales
Philosophie 1 : Conception de l'aide de style Unix
tool --help→ liste des commandes de haut niveautool <command> --help→ paramètres spécifiques et utilisation pour cette sous-commande
Cela permet à l'agent de découvrir les capacités à la demande sans devoir intégrer toute la documentation dans le contexte dès le départ.
Philosophie 2 : Réflexion sur les conseils
Chaque réponse — surtout les erreurs — doit inclure des conseils qui réduisent l'exploration inutile.
Mauvais exemple :
> cat photo.png [error] binary file
Bon exemple :
> cat photo.png [error] cat: fichier binaire détecté (image/png, 182KB). Utilisez : see photo.png (voir l'image) Ou : cat -b photo.png (encoder en base64)
Pourquoi c'est important : l'exploration invalide gaspille des tokens. Dans les conversations multi-tours, ce gaspillage s'accumule — chaque tentative infructueuse reste dans le contexte, consommant de l'attention et des ressources d'inférence pour chaque tour suivant. Un seul conseil utile peut économiser des tokens significatifs pour le reste de la conversation.
Conception CLI sécurisée
Lorsque les commandes CLI impliquent des opérations dangereuses ou irréversibles, l'outil lui-même doit fournir des mécanismes de sécurité.
Mode test / Prévisualisation des changements — Prévenir les erreurs
Pour les opérations relevant de l'autorité de l'agent mais ayant des conséquences difficiles à inverser. L'objectif est de permettre à l'agent (ou à l'humain) de voir ce qui va se passer avant de valider.
> dns update --zone example.com --record A --value 1.2.3.4 ⚠ MODE TEST : Enregistrement A pour example.com : 5.6.7.8 → 1.2.3.4 Propagation : ~300s. Pas instantanément réversible. Pour exécuter : ajoutez --confirm
La prévisualisation doit clairement montrer quel est l'état actuel et ce qui va être modifié. L'agent confirme avec --confirm.
Autorisation humaine — Opérations au-delà de l'autonomie de l'agent
Pour les opérations nécessitant un jugement ou une approbation humaine — peu importe la confiance de l'agent, il ne peut pas les réaliser seul.
Approche 1 : Approbation par notification bloquante
> pay --amount 500 --to vendor --reason "office supplies for Q2" ⏳ Approbation requise. Notification envoyée à votre appareil. En attente de réponse... ✓ Approuvé. Paiement de 500 $ effectué. [exit:0 | 7.2s]
Comme la vérification de connexion d'appareil d'Apple — le CLI envoie une notification directement sur l'appareil de l'humain avec tout le contexte (montant, destinataire, raison). Le CLI se bloque jusqu'à ce que l'humain approuve ou rejette, puis renvoie le résultat à l'agent.
Approche 2 : Code de vérification / Authentification à deux facteurs
> transfer --from savings --to checking --amount 10000 ⚠ Cette opération nécessite une vérification 2FA. Raison : transfert de 10 000 $ entre comptes. Un code a été envoyé à votre authentificateur. Ré-exécutez avec : --otp <code>
📖 Read the full source: r/LocalLLaMA
👀 See Also

Ce qui se casse quand on exécute des agents de codage sur de petits modèles locaux
Points de défaillance réels issus de tests de tâches multi-fichiers sur des modèles de moins de 7B : délimiteurs Markdown, fiabilité des sorties structurées, erreurs d'édition de fichiers et classification des actions en lecture ou écriture.

Gestion de la mémoire OpenClaw : Guide complet
Aucun

Correction de l'invalidation du cache KV de Claude Code avec des backends locaux
Les versions 2.1.36+ de Claude Code injectent des en-têtes de télémétrie dynamique et des mises à jour de l'état git dans chaque requête, rompant la correspondance par préfixe et forçant le retraitement complet des prompts système de plus de 20 000 tokens sur les backends locaux comme llama.cpp. Un correctif de configuration dans ~/.claude/settings.json peut réduire le traitement de plus de 60 secondes à environ 4 secondes.

Acheminer Claude Code via Ollama et réduire votre facture d'environ 90%
Associer Claude Desktop à Claude Code via Ollama : les tâches stratégiques restent sur Anthropic, les tâches lourdes tournent sur des modèles open-source gratuits comme Gemma, Qwen, DeepSeek. Inclut une invite copier-coller qui automatise environ 98 % de la configuration.