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

✍️ OpenClawRadar📅 Publié: March 14, 2026🔗 Source
Modèles de Conception CLI pour Agents IA : Idées Reçues et Approches Pratiques
Ad

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.

Ad

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 niveau
  • tool <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

Ad

👀 See Also