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

Configuration d'instance Canary pour des mises à niveau sécurisées d'OpenClaw
Un utilisateur de Reddit partage une méthodologie détaillée pour tester les mises à jour d'OpenClaw avant la production : racine de configuration isolée, port séparé, matrice de tests rapides, et un format de rapport structuré.
Construisez un moniteur de jetons à 10 $ pour LM Studio à l'aide d'un écran ESP32
Un développeur a transformé un écran de station météo ESP32 à 10 $ en moniteur de tokens en direct pour LM Studio, en codant le firmware en 15 minutes avec Codex.

Tirer le meilleur parti de Claude : le workflow d'un analyste de données avec Cowork et Claude Code
Un analyste de données sans expérience en codage partage comment il utilise Cowork pour l'automatisation de bout en bout et Claude Code pour les tâches lourdes — construisant un outil de génération de leads utilisant l'API Google Places, un tableau de bord anti-fraude et une publication automatisée sur les réseaux sociaux.

Construire une plateforme d'agents IA serverless sur AWS pour 0,01 $/mois avec Claude Code
Un développeur a construit une plateforme serverless AWS complète exécutant des agents IA pour environ 0,01 $/mois en utilisant Claude Code sur 29 heures, éliminant les composants coûteux comme NAT Gateway (32 $/mois) et ALB (18 $/mois). Le projet comprend 233 tests unitaires, 35 tests E2E et se déploie avec une seule commande cdk deploy.