Créer des CLI pour les agents IA : principes de conception issus du CLI gws de Google

Pourquoi la conception CLI axée sur les agents est importante
L'expérience développeur (DX) humaine optimise la découvrabilité et la tolérance, tandis que la DX des agents nécessite de la prévisibilité et une défense en profondeur. L'article soutient que l'adaptation des CLI conçus pour les humains aux agents est inefficace, et le démontre à travers l'interface en ligne de commande gws de Google pour Google Workspace, qui a été conçue dès le départ avec les agents d'IA comme consommateurs principaux.
Principes clés de conception
Charges utiles JSON brutes plutôt que des indicateurs sur mesure : Les humains préfèrent des indicateurs simples comme --title "Mon document", mais les agents fonctionnent mieux avec des charges utiles JSON directes qui correspondent aux schémas d'API sans perte de traduction.
Exemple de comparaison :
Centré sur l'humain (10 indicateurs, espace de noms plat) : my-cli spreadsheet create --title "Budget T1" --locale "en_US" --timezone "America/Denver" --sheet-title "Janvier" --sheet-type GRID --frozen-rows 1 --frozen-cols 2 --row-count 100 --col-count 10 --hidden falseCentré sur l'agent (un indicateur JSON) : gws sheets spreadsheets create --json ' { "properties": {"title": "Budget T1", "locale": "en_US", "timeZone": "America/Denver"}, "sheets": [{"properties": {"title": "Janvier", "sheetType": "GRID", "gridProperties": {"frozenRowCount": 1, "frozenColumnCount": 2, "rowCount": 100, "columnCount": 10}, "hidden": false}}] }'
L'interface en ligne de commande gws utilise les indicateurs --params et --json pour toutes les entrées, acceptant directement les charges utiles complètes de l'API. L'approche recommandée est de prendre en charge les deux voies dans le même binaire plutôt que de maintenir des outils séparés.
Considérations supplémentaires
L'article décrit plusieurs autres considérations de conception pour les CLI axés sur les agents :
- Introspection du schéma : Des schémas autodescriptifs que les agents peuvent introspecter à l'exécution
- Discipline de la fenêtre de contexte : Gérer la sortie pour qu'elle s'insère dans les limites de contexte de l'agent
- Durcissement des entrées : Protection contre les hallucinations des agents
- Compétences des agents : Livrer des capacités plutôt que de simples commandes
- Prise en charge multi-surface : Fonctionnement avec MCP, extensions et variables d'environnement
- Garde-fous de sécurité : Modes de simulation et assainissement des réponses
Les interfaces en ligne de commande deviennent l'interface à moindre friction pour que les agents d'IA interagissent avec des systèmes externes, nécessitant une sortie déterministe et lisible par machine plutôt que des interfaces orientées vers les humains.
📖 Lire la source complète : HN AI Agents
👀 See Also

Générateur de prompts socratiques construit comme artefact React dans Claude
Un développeur a créé un générateur de prompts socratique qui fonctionne comme un artefact React directement dans Claude, avec détection automatique de la complexité des entrées et génération de prompts à trois niveaux avec analyse des modes de défaillance.

Claude Code Matrix Channel Plugin Construit en Rust avec Support E2EE
Un développeur a créé un plugin de canal Matrix pour Claude Code, comblant un manque puisque les canaux officiels n'étaient disponibles que pour Discord et Telegram. Le plugin a été développé en Rust en utilisant Claude Code (CC) et a pris environ 24 heures à réaliser.

AgentPVP : Une arène de compétition LLM centrée sur les agents avec ELO, rivalités et bac à sable d'injection de prompts
AgentPVP permet aux agents LLM de s'inscrire, de jouer à 5 jeux de société via des API JSON, de maintenir un ELO par jeu, d'écrire des fichiers de rivalité et de s'insulter dans un salon global. Le HTML est facultatif — l'API est le site.

Klaw.sh : Orchestration de style Kubernetes pour les agents d'IA
Klaw.sh offre une solution d'orchestration pour le déploiement d'agents IA, inspirée de Kubernetes. Il simplifie la gestion avec des clusters, des espaces de noms et des canaux, réduisant la mémoire en réécrivant de Node.js vers Go.