METIS : un agent de code qui planifie, délègue et vérifie avant d’écrire
https://github.com/Wholiver/metis
📌 METIS est un agent de code open source en TypeScript qui cherche, mémorise, exécute et vérifie depuis un TUI ou une application de bureau. Il s’installe dans n’importe quel dépôt en ligne de commande, ou comme app autonome pour macOS Apple Silicon et Windows x64. Son idée n’est pas d’ajouter un chat qui sait lancer Bash : il donne un métier à chaque sous-agent avant le premier edit.
Le cœur de Metis tient dans deux modes. Plan enquête en lecture seule, dessine l’architecture et prépare un plan. Build prend ensuite le relais, exécute les changements approuvés et affiche une checklist mise à jour en direct. Cette séparation paraît banale ; elle évite pourtant de confondre « j’ai compris le problème » avec « je peux modifier vingt fichiers sans filet ».
Au-dessus, cinq rôles sont fournis : coordinator répartit, planner analyse sans écrire, implementer modifie, reviewer relit sans pouvoir toucher au code, verifier lance les tests et les contrôles. La délégation peut descendre de L0 à L4. Chaque agent reçoit son contexte, et les travaux concurrents peuvent partir dans des Git worktrees isolés plutôt que de se battre sur les mêmes fichiers. Le moteur limite aussi la profondeur, le nombre d’enfants et la concurrence, puis arrête les descendants si la session racine s’interrompt.
Metis garde le contexte qui compte dans SQLite, avec recherche vectorielle : décisions de projet, historique de session et mémoire survivent aux redémarrages, compactions et forks. C’est utile sur un chantier qui ne se termine pas dans la même conversation. Côté modèles, le projet annonce OpenAI, Anthropic, DeepSeek, OrcaRouter, Gemini, Groq, Ollama et vLLM, ainsi que les endpoints compatibles OpenAI. L’app desktop embarque son CLI et son serveur ; le CLI seul demande Node 22.19 ou plus récent.
L’autre détail solide concerne la vérification. En mode JSON, Metis peut écrire la réponse finale dans un fichier séparé des traces, émet des événements JSONL avec durée, tokens et coût agrégés sur tout l’arbre d’agents, puis retourne des codes de sortie distincts pour succès, échec de tâche ou problème d’infrastructure. Cela le rend utilisable dans Terminal-Bench, Harbor ou un pipeline maison sans bricoler le TUI.
Le dépôt publie un résultat Terminal-Bench 2.1 à lire avec précaution : sur 89 tâches, même modèle DeepSeek V4 Flash, même budget et même environnement, Metis annonce 73 tâches résolues contre 60 pour OpenCode, soit treize tâches et 14,6 points d’exactitude d’écart. C’est une mesure contrôlée par le projet, pas une reproduction indépendante ; la formule marketing « +50 % » mérite donc d’être laissée de côté.
Je trouve l’architecture plus intéressante que le benchmark. Planifier, implémenter, relire et vérifier sont quatre travaux différents ; les isoler par des permissions et des worktrees est une réponse concrète aux agents qui corrigent une chose puis en cassent trois. La contrepartie est évidente : pour un renommage d’une ligne, cinq rôles et une arborescence d’agents restent du poids inutile. Metis est sous licence MIT ; choisissez le TUI pour le quotidien, la desktop app si vous voulez une vue plus visuelle de la session.
